{"version":3,"sources":["webpack://vue-plotly/webpack/universalModuleDefinition","webpack://vue-plotly/webpack/bootstrap","webpack://vue-plotly/./node_modules/incremental-convex-hull/ich.js","webpack://vue-plotly/./node_modules/glsl-tokenizer/string.js","webpack://vue-plotly/./node_modules/cell-orientation/orientation.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/image/constants.js","webpack://vue-plotly/./node_modules/gl-line3d/lines.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/surface/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/notifier.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/link_traces.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/ohlc/index.js","webpack://vue-plotly/./node_modules/color-normalize/index.js","webpack://vue-plotly/./node_modules/box-intersect/lib/sort.js","webpack://vue-plotly/./node_modules/plotly.js/src/constants/gl3d_markers.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/gl3d/layout/tick_marks.js","webpack://vue-plotly/./node_modules/plotly.js/lib/scattermapbox.js","webpack://vue-plotly/./node_modules/world-calendars/dist/main.js","webpack://vue-plotly/./node_modules/ndarray-homography/xform.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattercarpet/event_data.js","webpack://vue-plotly/./node_modules/detect-kerning/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterpolargl/hover.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/surface/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/lib/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattermapbox/format_labels.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/cross_trace_defaults.js","webpack://vue-plotly/./node_modules/gl-vec3/clone.js","webpack://vue-plotly/./node_modules/core-js/internals/function-bind-context.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/svg_text_utils.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/splom/scene_update.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/image/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/choropleth/hover.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/waterfall/style.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/heatmap/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/transition_axes.js","webpack://vue-plotly/./node_modules/is-buffer/index.js","webpack://vue-plotly/./node_modules/plotly.js/build/plotcss.js","webpack://vue-plotly/./node_modules/gl-plot3d/scene.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/rangeselector/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/regex.js","webpack://vue-plotly/./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/pointcloud/index.js","webpack://vue-plotly/./node_modules/ndarray-extract-contour/contour.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/sankey/constants.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/heatmap/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/axes.js","webpack://vue-plotly/./node_modules/glsl-tokenizer/lib/builtins-300es.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/violin/helpers.js","webpack://vue-plotly/./node_modules/es6-iterator/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/box/layout_defaults.js","webpack://vue-plotly/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://vue-plotly/./node_modules/normals/normals.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/xy_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/gl2d/index.js","webpack://vue-plotly/./node_modules/gl-format-compiler-error/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/isosurface/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/geo/constants.js","webpack://vue-plotly/./node_modules/nextafter/nextafter.js","webpack://vue-plotly/./node_modules/plotly.js/src/constants/gl3d_dashes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/barpolar/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/geo_location_utils.js","webpack://vue-plotly/./node_modules/rat-vec/muls.js","webpack://vue-plotly/./node_modules/big-rat/lib/bn-to-num.js","webpack://vue-plotly/./node_modules/gl-vec4/scaleAndAdd.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/colorscale_calc.js","webpack://vue-plotly/./node_modules/es6-iterator/string.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/gup.js","webpack://vue-plotly/./node_modules/d3-force/src/center.js","webpack://vue-plotly/./node_modules/d3-force/src/constant.js","webpack://vue-plotly/./node_modules/d3-force/src/jiggle.js","webpack://vue-plotly/./node_modules/d3-quadtree/src/add.js","webpack://vue-plotly/./node_modules/d3-quadtree/src/cover.js","webpack://vue-plotly/./node_modules/d3-quadtree/src/data.js","webpack://vue-plotly/./node_modules/d3-quadtree/src/extent.js","webpack://vue-plotly/./node_modules/d3-quadtree/src/quad.js","webpack://vue-plotly/./node_modules/d3-quadtree/src/find.js","webpack://vue-plotly/./node_modules/d3-quadtree/src/remove.js","webpack://vue-plotly/./node_modules/d3-quadtree/src/root.js","webpack://vue-plotly/./node_modules/d3-quadtree/src/size.js","webpack://vue-plotly/./node_modules/d3-quadtree/src/visit.js","webpack://vue-plotly/./node_modules/d3-quadtree/src/visitAfter.js","webpack://vue-plotly/./node_modules/d3-quadtree/src/x.js","webpack://vue-plotly/./node_modules/d3-quadtree/src/y.js","webpack://vue-plotly/./node_modules/d3-quadtree/src/quadtree.js","webpack://vue-plotly/./node_modules/d3-force/src/collide.js","webpack://vue-plotly/./node_modules/d3-force/src/link.js","webpack://vue-plotly/./node_modules/d3-dispatch/src/dispatch.js","webpack://vue-plotly/./node_modules/d3-timer/src/timer.js","webpack://vue-plotly/./node_modules/d3-force/src/simulation.js","webpack://vue-plotly/./node_modules/d3-force/src/manyBody.js","webpack://vue-plotly/./node_modules/d3-force/src/radial.js","webpack://vue-plotly/./node_modules/d3-force/src/x.js","webpack://vue-plotly/./node_modules/d3-force/src/y.js","webpack://vue-plotly/./node_modules/d3-force/src/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contourcarpet/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterpolargl/calc.js","webpack://vue-plotly/./node_modules/robust-in-sphere/in-sphere.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/volume/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/axis_autotype.js","webpack://vue-plotly/./node_modules/world-calendars/dist/calendars/taiwan.js","webpack://vue-plotly/./node_modules/svg-arc-to-cubic-bezier/modules/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/heatmap/find_empties.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram2dcontour/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/parcoords/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/image/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/bar/cross_trace_calc.js","webpack://vue-plotly/./node_modules/core-js/internals/ie8-dom-define.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/table/constants.js","webpack://vue-plotly/./node_modules/robust-scale/robust-scale.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/colorscale/layout_attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/waterfall/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/streamtube/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/lib/mesh3d.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/setcursor.js","webpack://vue-plotly/./node_modules/big-rat/lib/bn-sign.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/arrays_to_calcdata.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergeo/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattermapbox/convert.js","webpack://vue-plotly/./node_modules/es6-symbol/is-symbol.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/choroplethmapbox/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/subplot_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/constraint_mapping.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/polar/layout_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/polar/legacy/undo_manager.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/calendars/calendars.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/gl3d/index.js","webpack://vue-plotly/./node_modules/es6-promise/dist/es6-promise.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/is_plain_object.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/sunburst/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/dragelement/cursor.js","webpack://vue-plotly/./node_modules/color-space/hsl.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/modebar/buttons.js","webpack://vue-plotly/./node_modules/core-js/modules/es.array.reduce.js","webpack://vue-plotly/./node_modules/gl-mat4/multiply.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/parcats/base_plot.js","webpack://vue-plotly/./node_modules/has-passive-events/index.js","webpack://vue-plotly/./node_modules/es5-ext/object/assign/is-implemented.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/annotations3d/attributes.js","webpack://vue-plotly/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://vue-plotly/./node_modules/es5-ext/array/from/is-implemented.js","webpack://vue-plotly/./node_modules/box-intersect/lib/median.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram2d/attributes.js","webpack://vue-plotly/./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack://vue-plotly/./node_modules/gl-axes3d/properties.js","webpack://vue-plotly/./node_modules/gl-streamtube3d/streamtube.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/violin/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/annotations/common_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/surface/index.js","webpack://vue-plotly/./node_modules/uniq/uniq.js","webpack://vue-plotly/./node_modules/split-polygon/clip-poly.js","webpack://vue-plotly/./node_modules/type/plain-function/is.js","webpack://vue-plotly/./node_modules/core-js/internals/array-for-each.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/table/base_plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/select.js","webpack://vue-plotly/./node_modules/big-rat/div.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/indicator/defaults.js","webpack://vue-plotly/./node_modules/es5-ext/string/#/contains/is-implemented.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterternary/defaults.js","webpack://vue-plotly/./node_modules/glsl-tokenizer/lib/literals.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/make_bubble_size_func.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/titles/index.js","webpack://vue-plotly/./node_modules/fast-isnumeric/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/geometry2d.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/defaults.js","webpack://vue-plotly/./node_modules/convex-hull/ch.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/set_convert.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/bar/constants.js","webpack://vue-plotly/./node_modules/d3-path/src/path.js","webpack://vue-plotly/./node_modules/d3-shape/src/array.js","webpack://vue-plotly/./node_modules/d3-shape/src/constant.js","webpack://vue-plotly/./node_modules/d3-shape/src/point.js","webpack://vue-plotly/./node_modules/d3-shape/src/link/index.js","webpack://vue-plotly/./node_modules/es5-ext/object/valid-callable.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/graph_interact.js","webpack://vue-plotly/./node_modules/gl-vec3/lerp.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/heatmap/clean_2d_array.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/dom.js","webpack://vue-plotly/./node_modules/world-calendars/dist/calendars/thai.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/modebar/modebar.js","webpack://vue-plotly/./node_modules/core-js/internals/html.js","webpack://vue-plotly/./node_modules/color-space/rgb.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattermapbox/select.js","webpack://vue-plotly/./node_modules/core-js/internals/a-function.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/rangeslider/index.js","webpack://vue-plotly/./node_modules/es6-weak-map/polyfill.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/bar/defaults.js","webpack://vue-plotly/./node_modules/es6-symbol/index.js","webpack://vue-plotly/./node_modules/css-font/lib/util.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/indicator/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/lib/scatterpolar.js","webpack://vue-plotly/./node_modules/to-float32/index.js","webpack://vue-plotly/./node_modules/ndarray-sort/sort.js","webpack://vue-plotly/./node_modules/gl-texture2d/texture.js","webpack://vue-plotly/./node_modules/core-js/internals/require-object-coercible.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/densitymapbox/convert.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/parcoords/axisbrush.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/colorscale/cross_trace_defaults.js","webpack://vue-plotly/./node_modules/gl-vao/lib/vao-emulated.js","webpack://vue-plotly/./node_modules/core-js/internals/array-method-has-species-support.js","webpack://vue-plotly/./node_modules/plotly.js/src/locale-en-us.js","webpack://vue-plotly/./node_modules/type/lib/safe-to-string.js","webpack://vue-plotly/./node_modules/plotly.js/src/locale-en.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/box/attributes.js","webpack://vue-plotly/./node_modules/convex-hull/lib/ch1d.js","webpack://vue-plotly/./node_modules/ndarray-gradient/fdg.js","webpack://vue-plotly/./node_modules/base64-js/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/errorbars/defaults.js","webpack://vue-plotly/./node_modules/es5-ext/object/assign/index.js","webpack://vue-plotly/./node_modules/iota-array/iota.js","webpack://vue-plotly/./node_modules/gl-vec4/set.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/fx/hoverlabel_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/select.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/colorscale/helpers.js","webpack://vue-plotly/./node_modules/es5-ext/object/is-object.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/geojson_utils.js","webpack://vue-plotly/./node_modules/big-rat/lib/rationalize.js","webpack://vue-plotly/./node_modules/simplicial-complex-boundary/boundary.js","webpack://vue-plotly/./node_modules/plotly.js/lib/sunburst.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/treemap/draw_ancestors.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/waterfall/layout_defaults.js","webpack://vue-plotly/./node_modules/es6-weak-map/is-implemented.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/splom/defaults.js","webpack://vue-plotly/./node_modules/gl-shader/lib/shader-cache.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/rangeslider/constants.js","webpack://vue-plotly/./node_modules/gl-vec3/angle.js","webpack://vue-plotly/./node_modules/buffer/node_modules/isarray/index.js","webpack://vue-plotly/./node_modules/delaunay-triangulate/triangulate.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/shapes/draw.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/polar/legacy/micropolar_manager.js","webpack://vue-plotly/./node_modules/core-js/internals/to-absolute-index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/treemap/constants.js","webpack://vue-plotly/./node_modules/core-js/internals/export.js","webpack://vue-plotly/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://vue-plotly/./node_modules/polybooljs/index.js","webpack://vue-plotly/./node_modules/gl-vec3/squaredLength.js","webpack://vue-plotly/./node_modules/simplicial-complex/topology.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/cone/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram2d/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnel/calc.js","webpack://vue-plotly/./node_modules/plotly.js/lib/aggregate.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/annotations/draw.js","webpack://vue-plotly/./node_modules/es6-symbol/lib/private/setup/symbol-registry.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/barpolar/layout_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/smooth_fill_2d_array.js","webpack://vue-plotly/./node_modules/type/value/ensure.js","webpack://vue-plotly/./node_modules/gl-vec4/create.js","webpack://vue-plotly/./node_modules/gl-vec4/copy.js","webpack://vue-plotly/./node_modules/gl-error3d/errorbars.js","webpack://vue-plotly/./node_modules/permutation-rank/index.js","webpack://vue-plotly/./node_modules/gl-vec3/transformQuat.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/table/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/splom/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattercarpet/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/lib/streamtube.js","webpack://vue-plotly/./node_modules/gl-vec3/cross.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergl/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/tick_mark_defaults.js","webpack://vue-plotly/./node_modules/gl-plot2d/lib/line.js","webpack://vue-plotly/./node_modules/util/node_modules/inherits/inherits_browser.js","webpack://vue-plotly/./node_modules/gl-shader/index.js","webpack://vue-plotly/./node_modules/gl-cone3d/cone.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/splom/helpers.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/dragelement/align.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergl/plot.js","webpack://vue-plotly/./node_modules/gl-vec3/scale.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/treemap/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/sankey/select.js","webpack://vue-plotly/./node_modules/css-element-queries/src/ResizeSensor.js","webpack://vue-plotly/./node_modules/gl-vec3/sqrLen.js","webpack://vue-plotly/./node_modules/has-hover/index.js","webpack://vue-plotly/./node_modules/core-js/internals/engine-v8-version.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/heatmap/interp2d.js","webpack://vue-plotly/./node_modules/plotly.js/lib/barpolar.js","webpack://vue-plotly/./node_modules/gl-vec3/negate.js","webpack://vue-plotly/./node_modules/world-calendars/dist/calendars/persian.js","webpack://vue-plotly/./node_modules/plotly.js/src/plot_api/template_api.js","webpack://vue-plotly/./node_modules/font-atlas/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/sunburst/layout_defaults.js","webpack://vue-plotly/./node_modules/robust-compress/compress.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/bar/style.js","webpack://vue-plotly/./node_modules/@plotly/d3-sankey-circular/dist/d3-sankey-circular.es.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/relative_attr.js","webpack://vue-plotly/./node_modules/slab-decomposition/node_modules/binary-search-bounds/search-bounds.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/parcoords/helpers.js","webpack://vue-plotly/./node_modules/weak-map/weak-map.js","webpack://vue-plotly/./node_modules/plotly.js/lib/splom.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/surface/defaults.js","webpack://vue-plotly/./node_modules/util/util.js","webpack://vue-plotly/./node_modules/clean-pslg/lib/rat-seg-intersect.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contourcarpet/attributes.js","webpack://vue-plotly/./node_modules/unquote/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/identity.js","webpack://vue-plotly/./node_modules/compare-angle/cmpangle.js","webpack://vue-plotly/./node_modules/gl-axes3d/lib/background.js","webpack://vue-plotly/./node_modules/object-assign/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/shapes/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/drawing/symbol_defs.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/gl3d/layout/spikes.js","webpack://vue-plotly/./node_modules/core-js/internals/engine-user-agent.js","webpack://vue-plotly/./node_modules/es6-iterator/valid-iterable.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram2dcontour/attributes.js","webpack://vue-plotly/./node_modules/polybooljs/lib/geojson.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnel/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/annotations/click.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/empty_pathinfo.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/annotations/convert_coords.js","webpack://vue-plotly/./node_modules/box-intersect/lib/intersect.js","webpack://vue-plotly/./node_modules/robust-linear-solve/linsolve.js","webpack://vue-plotly/./node_modules/color-id/index.js","webpack://vue-plotly/./node_modules/is-plain-obj/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/waterfall/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/violin/layout_attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/registry.js","webpack://vue-plotly/./node_modules/plotly.js/lib/surface.js","webpack://vue-plotly/./node_modules/is-iexplorer/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/xy_defaults.js","webpack://vue-plotly/./node_modules/flatten-vertex-data/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/include_components.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/bar/layout_attributes.js","webpack://vue-plotly/./node_modules/core-js/internals/object-define-properties.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/fillcolor_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/lib/scattergeo.js","webpack://vue-plotly/./node_modules/gl-mesh3d/lib/shaders.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/hover.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnelarea/calc.js","webpack://vue-plotly/./node_modules/bn.js/lib/bn.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergl/scene_update.js","webpack://vue-plotly/./node_modules/gl-vec3/round.js","webpack://vue-plotly/./node_modules/zero-crossings/zc.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/polar/legacy/micropolar.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnel/cross_trace_calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/colorscale/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/parcoords/lines.js","webpack://vue-plotly/./node_modules/@turf/area/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattercarpet/index.js","webpack://vue-plotly/./node_modules/big-rat/mul.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/axis_ids.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/errorbars/compute_error.js","webpack://vue-plotly/./node_modules/gl-vec4/clone.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergl/format_labels.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/updatemenus/constants.js","webpack://vue-plotly/./node_modules/gl-scatter3d/lib/glyphs.js","webpack://vue-plotly/./node_modules/big-rat/sign.js","webpack://vue-plotly/./node_modules/parse-rect/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/parcats/plot.js","webpack://vue-plotly/./node_modules/world-calendars/dist/calendars/islamic.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/treemap/layout_attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/image/event_data.js","webpack://vue-plotly/./node_modules/plotly.js/lib/heatmap.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/mesh3d/index.js","webpack://vue-plotly/./node_modules/plotly.js/lib/funnel.js","webpack://vue-plotly/./node_modules/quat-slerp/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/plot_api/validate.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/mapbox/mapbox.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/ohlc/ohlc_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/plot_api/plot_config.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/attributes.js","webpack://vue-plotly/./node_modules/gl-pointcloud2d/pointcloud2d.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/splom/hover.js","webpack://vue-plotly/./node_modules/@turf/bbox/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram/attributes.js","webpack://vue-plotly/./node_modules/cwise-compiler/compiler.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/calc_selection.js","webpack://vue-plotly/./node_modules/core-js/modules/es.array.for-each.js","webpack://vue-plotly/./node_modules/matrix-camera-controller/matrix.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/colorscale/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/defaults.js","webpack://vue-plotly/./node_modules/big-rat/cmp.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/heatmap/xyz_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/style_defaults.js","webpack://vue-plotly/./node_modules/gl-vec3/rotateX.js","webpack://vue-plotly/./node_modules/plotly.js/src/snapshot/helpers.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/bar/arrays_to_calcdata.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram/bin_attributes.js","webpack://vue-plotly/./node_modules/vue-resize-directive/dist/Vueresize.js","webpack://vue-plotly/./node_modules/core-js/internals/path.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/updatemenus/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/cross_trace_calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/relink_private.js","webpack://vue-plotly/./node_modules/node-libs-browser/mock/process.js","webpack://vue-plotly/./node_modules/interval-tree-1d/interval-tree.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/legend/draw.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/plot_api/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/image/defaults.js","webpack://vue-plotly/./node_modules/core-js/internals/indexed-object.js","webpack://vue-plotly/./node_modules/gl-fbo/fbo.js","webpack://vue-plotly/./node_modules/plotly.js/lib/parcoords.js","webpack://vue-plotly/./node_modules/gl-mat4/rotateY.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/ternary/layout_attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/geo/layout_attributes.js","webpack://vue-plotly/./node_modules/repeat-string/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/image/style.js","webpack://vue-plotly/./node_modules/es5-ext/object/map.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/command.js","webpack://vue-plotly/./node_modules/cdt2d/lib/delaunay.js","webpack://vue-plotly/./node_modules/plotly.js/lib/scattergl.js","webpack://vue-plotly/./node_modules/plotly.js/lib/pie.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/orient_text.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/colorscale/scales.js","webpack://vue-plotly/./node_modules/gl-axes3d/lib/lines.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/pie/index.js","webpack://vue-plotly/./node_modules/pad-left/index.js","webpack://vue-plotly/./node_modules/gl-mat2/invert.js","webpack://vue-plotly/./node_modules/slab-decomposition/slabs.js","webpack://vue-plotly/./node_modules/core-js/internals/native-symbol.js","webpack://vue-plotly/./node_modules/compare-cell/compare.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/indicator/constants.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/violin/defaults.js","webpack://vue-plotly/./node_modules/gl-vec3/exactEquals.js","webpack://vue-plotly/./node_modules/svg-path-bounds/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/treemap/layout_defaults.js","webpack://vue-plotly/./node_modules/point-in-big-polygon/pnp-big.js","webpack://vue-plotly/./node_modules/plotly.js/lib/filter.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/images/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/geo/projections.js","webpack://vue-plotly/./node_modules/gl-vec3/inverse.js","webpack://vue-plotly/./node_modules/cwise-compiler/lib/compile.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/rangeslider/helpers.js","webpack://vue-plotly/./node_modules/parse-unit/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/rangeslider/calc_autorange.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/constants.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/barpolar/layout_attributes.js","webpack://vue-plotly/./node_modules/core-js/internals/array-includes.js","webpack://vue-plotly/./node_modules/core-js/modules/es.array.filter.js","webpack://vue-plotly/./node_modules/big-rat/lib/is-bn.js","webpack://vue-plotly/./node_modules/gl-vec4/length.js","webpack://vue-plotly/./node_modules/plotly.js/src/snapshot/svgtoimg.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/cheater_basis.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/dragelement/index.js","webpack://vue-plotly/./node_modules/gl-heatmap2d/lib/shaders.js","webpack://vue-plotly/./node_modules/color-name/index.js","webpack://vue-plotly/./node_modules/gl-vec3/rotateY.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/box/index.js","webpack://vue-plotly/./node_modules/plotly.js/lib/histogram.js","webpack://vue-plotly/./node_modules/extract-frustum-planes/extract-planes.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/tick_label_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/marker_defaults.js","webpack://vue-plotly/./node_modules/gl-vec3/len.js","webpack://vue-plotly/./node_modules/core-js/internals/to-length.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergl/helpers.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/hover.js","webpack://vue-plotly/./node_modules/core-js/internals/has.js","webpack://vue-plotly/./node_modules/gl-vec4/normalize.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/isosurface/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/style.js","webpack://vue-plotly/./node_modules/core-js/modules/es.string.replace.js","webpack://vue-plotly/./node_modules/gl-error3d/shaders/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/volume/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/densitymapbox/attributes.js","webpack://vue-plotly/./node_modules/gl-vec4/min.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/choropleth/plot.js","webpack://vue-plotly/./node_modules/clamp/index.js","webpack://vue-plotly/./node_modules/strongly-connected-components/scc.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/mesh3d/convert.js","webpack://vue-plotly/./node_modules/world-calendars/dist/plus.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/polar/legacy/index.js","webpack://vue-plotly/./node_modules/gl-mesh3d/mesh.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/errorbars/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/filter_unique.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/waterfall/constants.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/densitymapbox/calc.js","webpack://vue-plotly/./node_modules/earcut/src/earcut.js","webpack://vue-plotly/./node_modules/boundary-cells/boundary.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/shapes/defaults.js","webpack://vue-plotly/./node_modules/core-js/internals/shared.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/gl3d/zip3.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/pie/layout_defaults.js","webpack://vue-plotly/./node_modules/gl-vec4/subtract.js","webpack://vue-plotly/./node_modules/core-js/internals/own-keys.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergeo/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/create_spline_evaluator.js","webpack://vue-plotly/./node_modules/gl-vec3/ceil.js","webpack://vue-plotly/./node_modules/big-rat/lib/str-to-bn.js","webpack://vue-plotly/./node_modules/gl-select-static/select.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/treemap/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/rangeslider/oppaxis_attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/box/event_data.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram/bin_label_vals.js","webpack://vue-plotly/./node_modules/gl-mat4/fromQuat.js","webpack://vue-plotly/./node_modules/colormap/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/line_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/polar/polar.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/pie/helpers.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/push_unique.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/annotations/draw_arrow_head.js","webpack://vue-plotly/./node_modules/big-rat/to-float.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattercarpet/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/indicator/calc.js","webpack://vue-plotly/./node_modules/point-cluster/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/animation_attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/waterfall/event_data.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/table/attributes.js","webpack://vue-plotly/./node_modules/core-js/internals/create-property-descriptor.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/ternary/ternary.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/index.js","webpack://vue-plotly/./node_modules/plotly.js/lib/contour.js","webpack://vue-plotly/./node_modules/gl-plot3d/lib/shader.js","webpack://vue-plotly/./node_modules/mouse-event/mouse.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergeo/format_labels.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/barpolar/defaults.js","webpack://vue-plotly/./node_modules/ndarray-fill/index.js","webpack://vue-plotly/./node_modules/gl-plot2d/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/keyed_container.js","webpack://vue-plotly/./node_modules/gl-plot2d/lib/box.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterpolargl/format_labels.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/index.js","webpack://vue-plotly/./node_modules/glsl-tokenizer/lib/builtins.js","webpack://vue-plotly/./node_modules/type/object/is.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/sankey/calc.js","webpack://vue-plotly/./node_modules/gl-spikes2d/spikes.js","webpack://vue-plotly/./node_modules/es6-iterator/array.js","webpack://vue-plotly/./node_modules/gl-axes3d/lib/ticks.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/show_no_webgl_msg.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergl/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterpolargl/defaults.js","webpack://vue-plotly/./node_modules/core-js/internals/object-assign.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/box/layout_attributes.js","webpack://vue-plotly/./node_modules/gl-plot2d/lib/text.js","webpack://vue-plotly/./node_modules/gl-vec3/divide.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/images/convert_coords.js","webpack://vue-plotly/./node_modules/orbit-camera-controller/orbit.js","webpack://vue-plotly/./node_modules/gl-vec4/transformMat4.js","webpack://vue-plotly/./node_modules/gl-surface3d/lib/shaders.js","webpack://vue-plotly/./node_modules/es5-ext/object/is-value.js","webpack://vue-plotly/./node_modules/ndarray-ops/ndarray-ops.js","webpack://vue-plotly/(webpack)/buildin/module.js","webpack://vue-plotly/./node_modules/type/function/is.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterpolar/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/constants/alignment.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/indicator/base_plot.js","webpack://vue-plotly/./node_modules/gl-vec4/squaredLength.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/candlestick/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/label_defaults.js","webpack://vue-plotly/./node_modules/core-js/internals/string-multibyte.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/densitymapbox/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/lib/violin.js","webpack://vue-plotly/./node_modules/es5-ext/string/random-uniq.js","webpack://vue-plotly/./node_modules/core-js/internals/array-species-create.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/dates.js","webpack://vue-plotly/./node_modules/plotly.js/lib/volume.js","webpack://vue-plotly/./node_modules/weakmap-shim/create-store.js","webpack://vue-plotly/./node_modules/plotly.js/lib/scatterternary.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/ohlc/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/coerce.js","webpack://vue-plotly/./node_modules/rat-vec/sub.js","webpack://vue-plotly/./node_modules/tinycolor2/tinycolor.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterpolar/defaults.js","webpack://vue-plotly/./node_modules/parenthesis/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/colorbar/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattermapbox/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/bar/helpers.js","webpack://vue-plotly/./node_modules/es5-ext/object/for-each.js","webpack://vue-plotly/./node_modules/es5-ext/object/valid-object.js","webpack://vue-plotly/./node_modules/plotly.js/src/plot_api/plot_schema.js","webpack://vue-plotly/./node_modules/es5-ext/string/is-string.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/sunburst/fx.js","webpack://vue-plotly/./node_modules/gamma/index.js","webpack://vue-plotly/./node_modules/core-js/internals/internal-state.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/parcats/calc.js","webpack://vue-plotly/./node_modules/glsl-tokenizer/lib/operators.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/box/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/table/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/constraints.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/array.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/rangeslider/defaults.js","webpack://vue-plotly/./node_modules/gl-util/context.js","webpack://vue-plotly/./node_modules/gl-cone3d/create_mesh.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/mesh3d/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/pie/base_plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/stack_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/anchor_utils.js","webpack://vue-plotly/./node_modules/plotly.js/src/constants/filter_ops.js","webpack://vue-plotly/./node_modules/plotly.js/lib/waterfall.js","webpack://vue-plotly/./node_modules/webgl-context/index.js","webpack://vue-plotly/./node_modules/performance-now/lib/performance-now.js","webpack://vue-plotly/./node_modules/plotly.js/lib/treemap.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram/bin_functions.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/mesh3d/calc.js","webpack://vue-plotly/./node_modules/robust-segment-intersect/segseg.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/angles.js","webpack://vue-plotly/./node_modules/d3/d3.js","webpack://vue-plotly/./node_modules/core-js/internals/redefine.js","webpack://vue-plotly/./node_modules/d3-collection/src/map.js","webpack://vue-plotly/./node_modules/d3-collection/src/nest.js","webpack://vue-plotly/./node_modules/d3-collection/src/set.js","webpack://vue-plotly/./node_modules/d3-collection/src/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram/event_data.js","webpack://vue-plotly/./node_modules/gl-mat4/translate.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnel/event_data.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/volume/convert.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/filter_visible.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/bar/select.js","webpack://vue-plotly/./node_modules/plotly.js/lib/choroplethmapbox.js","webpack://vue-plotly/./node_modules/es5-ext/function/is-function.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/colorbar/has_colorbar.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/annotations/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/axis_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnel/arrays_to_calcdata.js","webpack://vue-plotly/./node_modules/@turf/meta/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/box/select.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/sliders/defaults.js","webpack://vue-plotly/./node_modules/big-rat/lib/ctz.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram/cross_trace_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/constants/interactions.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/pie/style.js","webpack://vue-plotly/./node_modules/big-rat/is-rat.js","webpack://vue-plotly/./node_modules/es5-ext/object/keys/shim.js","webpack://vue-plotly/./node_modules/gl-vec4/index.js","webpack://vue-plotly/./node_modules/gl-vec3/scaleAndAdd.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/colorscale/layout_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/constants/xmlns_namespaces.js","webpack://vue-plotly/./node_modules/gl-vec4/divide.js","webpack://vue-plotly/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/line_grid_defaults.js","webpack://vue-plotly/./node_modules/core-js/internals/define-well-known-symbol.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattermapbox/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/nested_property.js","webpack://vue-plotly/./node_modules/plotly.js/src/fonts/ploticon.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/sunburst/style.js","webpack://vue-plotly/./node_modules/plotly.js/lib/candlestick.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/gl_format_color.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnel/layout_attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/fonts/mathjax_config.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/gl3d/layout/convert.js","webpack://vue-plotly/./node_modules/simplify-planar-graph/node_modules/union-find/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/heatmap/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/sankey/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/table/data_split_helpers.js","webpack://vue-plotly/./node_modules/dtype/index.js","webpack://vue-plotly/./node_modules/core-js/internals/enum-bug-keys.js","webpack://vue-plotly/./node_modules/affine-hull/aff.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/pie/layout_attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/constants/docs.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/indicator/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/barpolar/attributes.js","webpack://vue-plotly/./node_modules/gl-spikes3d/spikes.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/grid/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/parcoords/plot.js","webpack://vue-plotly/./node_modules/signum/sgn.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/legend/helpers.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/array_minmax.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/polar/set_convert.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/indicator/index.js","webpack://vue-plotly/./node_modules/font-measure/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/choropleth/index.js","webpack://vue-plotly/./node_modules/world-calendars/dist/calendars/ummalqura.js","webpack://vue-plotly/./node_modules/gl-mat4/perspective.js","webpack://vue-plotly/./node_modules/gl-vec4/lerp.js","webpack://vue-plotly/./node_modules/core-js/internals/to-object.js","webpack://vue-plotly/./node_modules/update-diff/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/sunburst/layout_attributes.js","webpack://vue-plotly/./node_modules/gl-vec4/dot.js","webpack://vue-plotly/./node_modules/alpha-complex/alpha.js","webpack://vue-plotly/./node_modules/es5-ext/object/keys/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/violin/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnelarea/plot.js","webpack://vue-plotly/./node_modules/ext/global-this/index.js","webpack://vue-plotly/./node_modules/permutation-parity/permutation-sign.js","webpack://vue-plotly/./node_modules/normalize-svg-path/index.js","webpack://vue-plotly/./node_modules/core-js/internals/object-create.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/images/index.js","webpack://vue-plotly/./node_modules/es6-weak-map/is-native-implemented.js","webpack://vue-plotly/./node_modules/type/lib/to-short-string.js","webpack://vue-plotly/./node_modules/regl/dist/regl.js","webpack://vue-plotly/./node_modules/type/plain-function/ensure.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/throttle.js","webpack://vue-plotly/./node_modules/node-libs-browser/node_modules/events/events.js","webpack://vue-plotly/./node_modules/elementary-circuits-directed-graph/johnson.js","webpack://vue-plotly/./node_modules/gl-shader/lib/create-attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/format_labels.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/errorbars/index.js","webpack://vue-plotly/./node_modules/color-rgba/index.js","webpack://vue-plotly/./node_modules/ndarray-pack/convert.js","webpack://vue-plotly/./node_modules/core-js/internals/native-weak-map.js","webpack://vue-plotly/./node_modules/gl-scatter3d/lib/shaders.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram2d/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/fx/constants.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/calc_gridlines.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/fx/click.js","webpack://vue-plotly/./node_modules/matrix-camera-controller/node_modules/binary-search-bounds/search-bounds.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/waterfall/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnel/style.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/splom/select.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram2d/sample_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/domain.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/clear_gl_canvases.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergeo/calc.js","webpack://vue-plotly/./node_modules/core-js/internals/an-object.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterpolar/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/violin/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/fx/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/pad_attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/streamtube/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/sankey/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/lib/table.js","webpack://vue-plotly/./node_modules/plotly.js/lib/image.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/layout_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram2d/index.js","webpack://vue-plotly/./node_modules/core-js/internals/descriptors.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattermapbox/hover.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/drawing/index.js","webpack://vue-plotly/./node_modules/core-js/internals/create-property.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/convert_to_constraints.js","webpack://vue-plotly/./node_modules/defined/index.js","webpack://vue-plotly/./node_modules/dup/dup.js","webpack://vue-plotly/./node_modules/type/lib/resolve-exception.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/legend/handle_click.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/densitymapbox/event_data.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/dragelement/unhover.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/candlestick/calc.js","webpack://vue-plotly/./node_modules/glsl-tokenizer/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/mapbox/index.js","webpack://vue-plotly/./node_modules/core-js/internals/is-object.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/sankey/base_plot.js","webpack://vue-plotly/./node_modules/circumradius/crad.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/pie/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/image/attributes.js","webpack://vue-plotly/./node_modules/ndarray-warp/warp.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/constraint_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/violin/layout_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/events.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/parcats/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/candlestick/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/table/data_preparation_helper.js","webpack://vue-plotly/./node_modules/compare-oriented-cell/compare.js","webpack://vue-plotly/./node_modules/cdt2d/lib/triangulation.js","webpack://vue-plotly/./node_modules/world-calendars/dist/calendars/chinese.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/heatmap/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/rangeselector/draw.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/pie/event_data.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/waterfall/hover.js","webpack://vue-plotly/./node_modules/core-js/internals/inspect-source.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/waterfall/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/choroplethmapbox/index.js","webpack://vue-plotly/./node_modules/world-calendars/dist/calendars/nanakshahi.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterpolar/calc.js","webpack://vue-plotly/./node_modules/es6-iterator/get.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterpolar/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/set_contours.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergeo/hover.js","webpack://vue-plotly/./node_modules/core-js/internals/advance-string-index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterternary/format_labels.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/choroplethmapbox/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/rangeslider/draw.js","webpack://vue-plotly/./node_modules/mat4-interpolate/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/bar/sieve.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/calc_labels.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/map_1d_array.js","webpack://vue-plotly/./node_modules/mouse-event-offset/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/sunburst/constants.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/choropleth/attributes.js","webpack://vue-plotly/./node_modules/gl-vec3/length.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter3d/convert.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/errorbars/attributes.js","webpack://vue-plotly/./node_modules/gl-vao/lib/do-bind.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/parcoords/merge_length.js","webpack://vue-plotly/./node_modules/right-now/browser.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram/constants.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/ab_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/sunburst/defaults.js","webpack://vue-plotly/./node_modules/@turf/centroid/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/colorbar/draw.js","webpack://vue-plotly/./node_modules/is-mobile/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/constants.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterpolargl/plot.js","webpack://vue-plotly/./node_modules/box-intersect/lib/partition.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnel/hover.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/colorbar/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/rangeslider/attributes.js","webpack://vue-plotly/./node_modules/filtered-vector/fvec.js","webpack://vue-plotly/./node_modules/es5-ext/array/from/shim.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/updatemenus/scrollbox.js","webpack://vue-plotly/./node_modules/convex-hull/lib/ch2d.js","webpack://vue-plotly/./node_modules/type/prototype/is.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter3d/attributes.js","webpack://vue-plotly/./node_modules/gl-vec3/copy.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/extend.js","webpack://vue-plotly/./node_modules/plotly.js/lib/histogram2d.js","webpack://vue-plotly/./node_modules/core-js/internals/uid.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/bar/style_defaults.js","webpack://vue-plotly/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://vue-plotly/./node_modules/add-line-numbers/index.js","webpack://vue-plotly/./node_modules/gl-vec3/normalize.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/ohlc/defaults.js","webpack://vue-plotly/./node_modules/ieee754/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/pie/attributes.js","webpack://vue-plotly/./node_modules/gl-vec3/sqrDist.js","webpack://vue-plotly/./node_modules/mouse-change/mouse-listen.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/waterfall/layout_attributes.js","webpack://vue-plotly/./node_modules/robust-product/product.js","webpack://vue-plotly/./node_modules/es6-iterator/is-iterable.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram2d/hover.js","webpack://vue-plotly/./node_modules/core-js/internals/regexp-exec.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/fx/layout_attributes.js","webpack://vue-plotly/./node_modules/robust-orientation/orientation.js","webpack://vue-plotly/./node_modules/gl-mat4/invert.js","webpack://vue-plotly/./node_modules/gl-plot3d/camera.js","webpack://vue-plotly/./node_modules/type/value/is.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/bar/uniform_text.js","webpack://vue-plotly/./node_modules/plotly.js/src/transforms/groupby.js","webpack://vue-plotly/./node_modules/reduce-simplicial-complex/reduce.js","webpack://vue-plotly/./node_modules/core-js/internals/is-forced.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/template_attributes.js","webpack://vue-plotly/./node_modules/es6-symbol/polyfill.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterternary/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram/average.js","webpack://vue-plotly/./node_modules/gl-vec3/fromValues.js","webpack://vue-plotly/./node_modules/gl-vec3/floor.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/modebar/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergl/calc.js","webpack://vue-plotly/./node_modules/gl-vec4/inverse.js","webpack://vue-plotly/./node_modules/cdt2d/cdt2d.js","webpack://vue-plotly/./node_modules/plotly.js/lib/groupby.js","webpack://vue-plotly/./node_modules/es6-symbol/lib/private/generate-name.js","webpack://vue-plotly/./node_modules/text-cache/textcache.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/dragbox.js","webpack://vue-plotly/./node_modules/es5-ext/object/valid-value.js","webpack://vue-plotly/./node_modules/regl-scatter2d/bundle.js","webpack://vue-plotly/./node_modules/rat-vec/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/scale_zoom.js","webpack://vue-plotly/./node_modules/gl-heatmap2d/heatmap.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/legend/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/treemap/attributes.js","webpack://vue-plotly/./node_modules/box-intersect/lib/sweep.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/font_attributes.js","webpack://vue-plotly/./node_modules/d/auto-bind.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergl/hover.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterpolar/format_labels.js","webpack://vue-plotly/./node_modules/planar-dual/loops.js","webpack://vue-plotly/./node_modules/polybooljs/lib/intersecter.js","webpack://vue-plotly/./node_modules/gl-mat4/rotate.js","webpack://vue-plotly/./node_modules/core-js/modules/es.array.concat.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/parcats/defaults.js","webpack://vue-plotly/./node_modules/gl-vec3/dist.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/calendars/index.js","webpack://vue-plotly/./node_modules/colormap/colorScale.js","webpack://vue-plotly/./node_modules/glsl-read-float/index.js","webpack://vue-plotly/./node_modules/regl-splom/index.js","webpack://vue-plotly/./node_modules/lerp/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/lookup_carpetid.js","webpack://vue-plotly/./node_modules/core-js/internals/object-define-property.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/heatmapgl/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/sliders/attributes.js","webpack://vue-plotly/./node_modules/big-rat/sub.js","webpack://vue-plotly/./node_modules/gl-mat4/scale.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/line_points.js","webpack://vue-plotly/./node_modules/slab-decomposition/lib/order-segments.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/rangeselector/get_update_object.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/splom/plot.js","webpack://vue-plotly/./node_modules/es5-ext/object/set-prototype-of/is-implemented.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/geo/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/gl3d/layout/defaults.js","webpack://vue-plotly/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://vue-plotly/./node_modules/gl-select-box/selectbox.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/stats.js","webpack://vue-plotly/./node_modules/robust-sum/robust-sum.js","webpack://vue-plotly/./node_modules/box-intersect/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergeo/event_data.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/isosurface/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnel/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/heatmapgl/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/clear_responsive.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/parcats/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/plot_api/to_image.js","webpack://vue-plotly/./node_modules/es5-ext/math/sign/is-implemented.js","webpack://vue-plotly/./node_modules/array-normalize/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattercarpet/format_labels.js","webpack://vue-plotly/./node_modules/ndarray-linear-interpolate/interp.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/fx/layout_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/plot_api/subroutines.js","webpack://vue-plotly/./node_modules/orbit-camera-controller/lib/quatFromFrame.js","webpack://vue-plotly/./node_modules/gl-shader/lib/GLError.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnelarea/style.js","webpack://vue-plotly/./node_modules/d3-color/src/define.js","webpack://vue-plotly/./node_modules/d3-color/src/color.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/basis.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/basisClosed.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/constant.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/color.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/rgb.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/numberArray.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/array.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/date.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/number.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/object.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/string.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/transform/parse.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/value.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/discrete.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/hue.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/round.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/transform/decompose.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/transform/index.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/zoom.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/hsl.js","webpack://vue-plotly/./node_modules/d3-color/src/math.js","webpack://vue-plotly/./node_modules/d3-color/src/lab.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/lab.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/hcl.js","webpack://vue-plotly/./node_modules/d3-color/src/cubehelix.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/cubehelix.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/piecewise.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/quantize.js","webpack://vue-plotly/./node_modules/d3-interpolate/src/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/fx/attributes.js","webpack://vue-plotly/./node_modules/gl-vec3/subtract.js","webpack://vue-plotly/./node_modules/bit-twiddle/twiddle.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/localize.js","webpack://vue-plotly/./node_modules/core-js/modules/es.symbol.js","webpack://vue-plotly/./node_modules/gl-axes3d/lib/cube.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/ohlc/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/fx/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/shapes/attributes.js","webpack://vue-plotly/./node_modules/mouse-wheel/wheel.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/colorbar.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/cone/convert.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/polar/helpers.js","webpack://vue-plotly/./node_modules/polybooljs/lib/segment-chainer.js","webpack://vue-plotly/./node_modules/core-js/internals/array-method-is-strict.js","webpack://vue-plotly/./node_modules/plotly.js/src/plot_api/plot_template.js","webpack://vue-plotly/./node_modules/interval-tree-1d/node_modules/binary-search-bounds/search-bounds.js","webpack://vue-plotly/./node_modules/es5-ext/array/#/clear.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/layout_attributes.js","webpack://vue-plotly/./node_modules/core-js/internals/to-integer.js","webpack://vue-plotly/./node_modules/polybooljs/lib/build-log.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/pie/style_one.js","webpack://vue-plotly/./node_modules/world-calendars/dist/calendars/mayan.js","webpack://vue-plotly/./node_modules/plotly.js/src/plot_api/container_array_match.js","webpack://vue-plotly/./node_modules/is-obj/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/lib/scatter3d.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnelarea/base_plot.js","webpack://vue-plotly/./node_modules/gl-vec3/max.js","webpack://vue-plotly/./node_modules/a-big-triangle/triangle.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/annotations/arrow_paths.js","webpack://vue-plotly/./node_modules/barycentric/barycentric.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/frame_attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/pie/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/modebar/manage.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/choroplethmapbox/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/choropleth/event_data.js","webpack://vue-plotly/./node_modules/plotly.js/lib/indicator.js","webpack://vue-plotly/./node_modules/gl-surface3d/surface.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterternary/hover.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/parcoords/base_plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/colorbar/constants.js","webpack://vue-plotly/./node_modules/world-calendars/dist/calendars/julian.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/ohlc/select.js","webpack://vue-plotly/./node_modules/double-bits/double.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/box/defaults.js","webpack://vue-plotly/./node_modules/core-js/modules/es.regexp.exec.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattermapbox/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/bar/hover.js","webpack://vue-plotly/./node_modules/world-calendars/dist/calendars/coptic.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/get_data.js","webpack://vue-plotly/./node_modules/gl-text/dist.js","webpack://vue-plotly/./node_modules/core-js/internals/regexp-flags.js","webpack://vue-plotly/./node_modules/plotly.js/src/snapshot/download.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/loggers.js","webpack://vue-plotly/./node_modules/gl-constants/1.0/numbers.js","webpack://vue-plotly/./node_modules/core-js/internals/array-method-uses-to-length.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/ternary/index.js","webpack://vue-plotly/./node_modules/cdt2d/lib/monotone.js","webpack://vue-plotly/./node_modules/gl-streamtube3d/lib/shaders.js","webpack://vue-plotly/./node_modules/array-range/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/errorbars/style.js","webpack://vue-plotly/./node_modules/gl-vec4/random.js","webpack://vue-plotly/./node_modules/simplify-planar-graph/node_modules/bit-twiddle/twiddle.js","webpack://vue-plotly/./node_modules/surface-nets/surfacenets.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/ohlc/style.js","webpack://vue-plotly/./node_modules/regl-error2d/index.js","webpack://vue-plotly/./node_modules/es5-ext/array/from/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/rangeselector/constants.js","webpack://vue-plotly/./node_modules/plotly.js/src/transforms/helpers.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/geo/layout_defaults.js","webpack://vue-plotly/./node_modules/gl-mat4/determinant.js","webpack://vue-plotly/./node_modules/gl-vec4/negate.js","webpack://vue-plotly/./node_modules/gl-vao/vao.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnel/constants.js","webpack://vue-plotly/./node_modules/glsl-shader-name/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergl/constants.js","webpack://vue-plotly/./node_modules/weakmap-shim/hidden-store.js","webpack://vue-plotly/./node_modules/alpha-shape/alpha.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/sunburst/base_plot.js","webpack://vue-plotly/./node_modules/es6-symbol/validate-symbol.js","webpack://vue-plotly/./node_modules/gl-constants/lookup.js","webpack://vue-plotly/./node_modules/plotly.js/src/plot_api/manage_arrays.js","webpack://vue-plotly/./node_modules/gl-plot2d/lib/shaders.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/box/style.js","webpack://vue-plotly/./node_modules/zero-crossings/lib/zc-core.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/waterfall/cross_trace_calc.js","webpack://vue-plotly/./node_modules/ndarray/ndarray.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/type_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/plot_api/plot_api.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/mapbox/constants.js","webpack://vue-plotly/./node_modules/core-js/internals/well-known-symbol.js","webpack://vue-plotly/./node_modules/buffer/index.js","webpack://vue-plotly/./node_modules/core-js/modules/es.object.keys.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/polygon.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/treemap/base_plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/mesh3d/defaults.js","webpack://vue-plotly/./node_modules/point-in-big-polygon/node_modules/binary-search-bounds/search-bounds.js","webpack://vue-plotly/./node_modules/core-js/internals/array-iteration.js","webpack://vue-plotly/./node_modules/gl-vec3/rotateZ.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/noop.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/choroplethmapbox/convert.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/polar/legacy/axis_attributes.js","webpack://vue-plotly/./node_modules/plotly.js/lib/pointcloud.js","webpack://vue-plotly/./node_modules/pick-by-alias/index.js","webpack://vue-plotly/./node_modules/plotly.js/lib/box.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contourcarpet/index.js","webpack://vue-plotly/./node_modules/simplicial-complex-contour/contour.js","webpack://vue-plotly/./node_modules/gl-mesh3d/lib/closest-point.js","webpack://vue-plotly/./node_modules/box-intersect/lib/brute.js","webpack://vue-plotly/./node_modules/gl-vec3/forEach.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattercarpet/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/violin/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/constants/delta.js","webpack://vue-plotly/./node_modules/plotly.js/lib/histogram2dcontour.js","webpack://vue-plotly/./node_modules/polybooljs/lib/segment-selector.js","webpack://vue-plotly/./node_modules/to-px/browser.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattermapbox/index.js","webpack://vue-plotly/./node_modules/vectorize-text/index.js","webpack://vue-plotly/./node_modules/es5-ext/object/create.js","webpack://vue-plotly/./node_modules/es6-symbol/is-implemented.js","webpack://vue-plotly/./node_modules/gl-matrix-invert/invert.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/surface/convert.js","webpack://vue-plotly/./node_modules/plotly.js/src/transforms/filter.js","webpack://vue-plotly/./node_modules/es5-ext/math/sign/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/parcoords/parcoords.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/legend/constants.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/ohlc/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/annotations/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/annotations/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/plots.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/fx/layout_global_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/gl3d/scene.js","webpack://vue-plotly/./node_modules/d3-array/src/ascending.js","webpack://vue-plotly/./node_modules/d3-array/src/bisector.js","webpack://vue-plotly/./node_modules/d3-array/src/bisect.js","webpack://vue-plotly/./node_modules/d3-array/src/cross.js","webpack://vue-plotly/./node_modules/d3-array/src/number.js","webpack://vue-plotly/./node_modules/d3-array/src/array.js","webpack://vue-plotly/./node_modules/d3-array/src/ticks.js","webpack://vue-plotly/./node_modules/d3-array/src/threshold/sturges.js","webpack://vue-plotly/./node_modules/d3-array/src/max.js","webpack://vue-plotly/./node_modules/d3-array/src/mean.js","webpack://vue-plotly/./node_modules/d3-array/src/min.js","webpack://vue-plotly/./node_modules/d3-array/src/sum.js","webpack://vue-plotly/./node_modules/d3-array/src/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/end_plus.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/pointcloud/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/make_color_map.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/gl3d/layout/axis_defaults.js","webpack://vue-plotly/./node_modules/mat4-recompose/index.js","webpack://vue-plotly/./node_modules/plotly.js/lib/scattercarpet.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterpolargl/attributes.js","webpack://vue-plotly/./node_modules/array-bounds/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/streamtube/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/geo/zoom.js","webpack://vue-plotly/./node_modules/world-calendars/dist/calendars/hebrew.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/cone/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/gl3d/layout/axis_attributes.js","webpack://vue-plotly/./node_modules/gl-vec4/squaredDistance.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/treemap/draw_descendants.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram/norm_functions.js","webpack://vue-plotly/./node_modules/two-product/two-product.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterpolargl/index.js","webpack://vue-plotly/./node_modules/core-js/internals/to-primitive.js","webpack://vue-plotly/./node_modules/polytope-closest-point/lib/closest_point_2d.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/polar/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/pie/plot.js","webpack://vue-plotly/./node_modules/world-calendars/dist/calendars/nepali.js","webpack://vue-plotly/./node_modules/polybooljs/lib/linked-list.js","webpack://vue-plotly/./node_modules/plotly.js/lib/core.js","webpack://vue-plotly/./node_modules/gl-axes3d/lib/shaders/index.js","webpack://vue-plotly/./node_modules/gl-vao/lib/vao-native.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter3d/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergl/attributes.js","webpack://vue-plotly/./node_modules/css-font/stringify.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/colorscale/index.js","webpack://vue-plotly/./node_modules/gl-vec3/transformMat4.js","webpack://vue-plotly/./node_modules/ext/global-this/implementation.js","webpack://vue-plotly/./node_modules/abs-svg-path/index.js","webpack://vue-plotly/./node_modules/robust-determinant/robust-determinant.js","webpack://vue-plotly/./node_modules/es6-iterator/for-of.js","webpack://vue-plotly/./node_modules/gl-vec4/add.js","webpack://vue-plotly/./node_modules/plotly.js/src/transforms/sort.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/densitymapbox/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/topojson_utils.js","webpack://vue-plotly/./node_modules/core-js/internals/is-pure.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/heatmap/style.js","webpack://vue-plotly/./node_modules/raf/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/violin/style.js","webpack://vue-plotly/./node_modules/plotly.js/src/plot_api/helpers.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/fx/helpers.js","webpack://vue-plotly/./node_modules/plotly.js/src/core.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/annotations3d/defaults.js","webpack://vue-plotly/./node_modules/ndarray-sort/lib/compile_sort.js","webpack://vue-plotly/./node_modules/edges-to-adjacency-list/e2a.js","webpack://vue-plotly/./node_modules/es5-ext/number/to-integer.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/pointcloud/convert.js","webpack://vue-plotly/./node_modules/core-js/internals/classof-raw.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/queue.js","webpack://vue-plotly/./node_modules/core-js/internals/shared-store.js","webpack://vue-plotly/./node_modules/triangulate-hypercube/triangulate-cube.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/axis_attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/bar/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/treemap/index.js","webpack://vue-plotly/./node_modules/ndarray-pack/doConvert.js","webpack://vue-plotly/./node_modules/plotly.js/lib/choropleth.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergl/convert.js","webpack://vue-plotly/./node_modules/functional-red-black-tree/rbtree.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/treemap/partition.js","webpack://vue-plotly/(webpack)/buildin/global.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/heatmap/style_defaults.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/cluster.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/hierarchy/count.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/hierarchy/each.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/hierarchy/path.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/hierarchy/links.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/hierarchy/index.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/array.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/pack/enclose.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/pack/siblings.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/accessors.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/constant.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/pack/index.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/treemap/round.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/treemap/dice.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/partition.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/stratify.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/tree.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/treemap/slice.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/treemap/squarify.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/treemap/index.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/treemap/binary.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/treemap/sliceDice.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/treemap/resquarify.js","webpack://vue-plotly/./node_modules/d3-hierarchy/src/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/override_cursor.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/close_boundaries.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnel/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/annotations3d/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/sankey/plot.js","webpack://vue-plotly/./node_modules/gl-pointcloud2d/lib/shader.js","webpack://vue-plotly/./node_modules/monotone-convex-hull-2d/index.js","webpack://vue-plotly/./node_modules/convex-hull/lib/chnd.js","webpack://vue-plotly/./node_modules/plotly.js/src/snapshot/index.js","webpack://vue-plotly/./node_modules/core-js/internals/object-keys-internal.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/violin/hover.js","webpack://vue-plotly/./node_modules/gl-vec3/div.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/isosurface/convert.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnel/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/snapshot/tosvg.js","webpack://vue-plotly/./node_modules/plotly.js/src/plot_api/edit_types.js","webpack://vue-plotly/./node_modules/gl-select-box/lib/shaders.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/pointcloud/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/volume/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/image/hover.js","webpack://vue-plotly/./node_modules/gl-scatter3d/lib/get-simple-string.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/fx/defaults.js","webpack://vue-plotly/./node_modules/robust-dot-product/dot-prod.js","webpack://vue-plotly/./node_modules/core-js/internals/document-create-element.js","webpack://vue-plotly/./node_modules/gl-vec3/epsilon.js","webpack://vue-plotly/./node_modules/binary-search-bounds/search-bounds.js","webpack://vue-plotly/./node_modules/core-js/modules/es.object.assign.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/updatemenus/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/annotations/calc_autorange.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/gl3d/layout/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/barpolar/calc.js","webpack://vue-plotly/./node_modules/core-js/internals/set-global.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/autorange.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterternary/attributes.js","webpack://vue-plotly/./node_modules/gl-vec3/min.js","webpack://vue-plotly/./node_modules/planar-graph-to-polyline/lib/trim-leaves.js","webpack://vue-plotly/./node_modules/typedarray-pool/pool.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergeo/style.js","webpack://vue-plotly/./node_modules/country-regex/index.js","webpack://vue-plotly/./node_modules/es5-ext/object/_iterate.js","webpack://vue-plotly/./node_modules/simplify-planar-graph/simplify.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/shapes/calc_autorange.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/prepare_regl.js","webpack://vue-plotly/./node_modules/filtered-vector/node_modules/binary-search-bounds/search-bounds.js","webpack://vue-plotly/./node_modules/gl-vec3/create.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/parcats/parcats.js","webpack://vue-plotly/./node_modules/core-js/internals/hidden-keys.js","webpack://vue-plotly/./node_modules/core-js/internals/fails.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/heatmap/convert_column_xyz.js","webpack://vue-plotly/./node_modules/gl-shader/lib/create-uniforms.js","webpack://vue-plotly/./node_modules/core-js/internals/get-built-in.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter3d/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/choropleth/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/mapbox/convert_text_opts.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/mapbox/layers.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/color/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/category_order_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/snapshot/cloneplot.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/densitymapbox/index.js","webpack://vue-plotly/./node_modules/two-sum/two-sum.js","webpack://vue-plotly/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://vue-plotly/./node_modules/gl-vec4/transformQuat.js","webpack://vue-plotly/./node_modules/gl-vec3/add.js","webpack://vue-plotly/./node_modules/plotly.js/lib/sort.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/rangeselector/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/constants.js","webpack://vue-plotly/./node_modules/es6-weak-map/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/box/plot.js","webpack://vue-plotly/./node_modules/cwise-compiler/lib/thunk.js","webpack://vue-plotly/./node_modules/cubic-hermite/hermite.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/gl2d/convert.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/mod.js","webpack://vue-plotly/./node_modules/world-calendars/dist/calendars/discworld.js","webpack://vue-plotly/./node_modules/gl-vec3/mul.js","webpack://vue-plotly/./node_modules/gl-shader/lib/runtime-reflect.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/bar/event_data.js","webpack://vue-plotly/./node_modules/core-js/internals/set-to-string-tag.js","webpack://vue-plotly/./node_modules/plotly.js/lib/densitymapbox.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/parcoords/defaults.js","webpack://vue-plotly/./node_modules/is-svg-path/index.js","webpack://vue-plotly/./node_modules/es5-ext/number/to-pos-integer.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/calc_clippath.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnel/layout_defaults.js","webpack://vue-plotly/./node_modules/core-js/internals/array-reduce.js","webpack://vue-plotly/./node_modules/gl-axes3d/lib/text.js","webpack://vue-plotly/./node_modules/util/support/isBufferBrowser.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/contours_defaults.js","webpack://vue-plotly/./node_modules/es5-ext/object/copy.js","webpack://vue-plotly/./node_modules/svg-path-bounds/node_modules/normalize-svg-path/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/compute_control_points.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/heatmap/hover.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/heatmap/make_bound_array.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/images/attributes.js","webpack://vue-plotly/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/bar/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/layout_attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/gl2d/camera.js","webpack://vue-plotly/./node_modules/svg-path-sdf/index.js","webpack://vue-plotly/./node_modules/core-js/modules/es.array.map.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnelarea/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterternary/event_data.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/shapes/constants.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/tick_value_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/ohlc/hover.js","webpack://vue-plotly/./node_modules/gl-vec4/scale.js","webpack://vue-plotly/./node_modules/cdt2d/lib/filter.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/clean_ticks.js","webpack://vue-plotly/./node_modules/core-js/internals/global.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/make_crossings.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/treemap/style.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/errorbars/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/drawing/attributes.js","webpack://vue-plotly/./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/geo/geo.js","webpack://vue-plotly/./node_modules/gl-axes3d/axes.js","webpack://vue-plotly/./node_modules/gl-vec3/equals.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/search.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter3d/index.js","webpack://vue-plotly/./node_modules/union-find/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/updatemenus/defaults.js","webpack://vue-plotly/./node_modules/gl-mat4/create.js","webpack://vue-plotly/./node_modules/is-browser/client.js","webpack://vue-plotly/./node_modules/gl-vec4/max.js","webpack://vue-plotly/./node_modules/gl-vec4/multiply.js","webpack://vue-plotly/./node_modules/cwise/lib/wrapper.js","webpack://vue-plotly/./node_modules/bitmap-sdf/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/polar/layout_attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/annotations3d/convert.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/image/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/constants.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/subtypes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/splom/edit_style.js","webpack://vue-plotly/./node_modules/vectorize-text/lib/vtext.js","webpack://vue-plotly/./node_modules/big-rat/lib/num-to-bn.js","webpack://vue-plotly/./node_modules/css-font/parse.js","webpack://vue-plotly/./node_modules/core-js/internals/object-keys.js","webpack://vue-plotly/./node_modules/path-browserify/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/set_convert.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/color/attributes.js","webpack://vue-plotly/./node_modules/3d-view/view.js","webpack://vue-plotly/./node_modules/plotly.js/lib/ohlc.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/cone/defaults.js","webpack://vue-plotly/./node_modules/topojson-client/src/identity.js","webpack://vue-plotly/./node_modules/topojson-client/src/transform.js","webpack://vue-plotly/./node_modules/topojson-client/src/bbox.js","webpack://vue-plotly/./node_modules/topojson-client/src/reverse.js","webpack://vue-plotly/./node_modules/topojson-client/src/feature.js","webpack://vue-plotly/./node_modules/topojson-client/src/stitch.js","webpack://vue-plotly/./node_modules/topojson-client/src/mesh.js","webpack://vue-plotly/./node_modules/topojson-client/src/merge.js","webpack://vue-plotly/./node_modules/topojson-client/src/bisect.js","webpack://vue-plotly/./node_modules/topojson-client/src/neighbors.js","webpack://vue-plotly/./node_modules/topojson-client/src/quantize.js","webpack://vue-plotly/./node_modules/topojson-client/src/untransform.js","webpack://vue-plotly/./node_modules/topojson-client/index.js","webpack://vue-plotly/./node_modules/gl-mat4/fromRotationTranslation.js","webpack://vue-plotly/./node_modules/es6-symbol/lib/private/setup/standard-symbols.js","webpack://vue-plotly/./node_modules/string-split-by/index.js","webpack://vue-plotly/./node_modules/draw-svg-path/index.js","webpack://vue-plotly/./node_modules/es5-ext/object/set-prototype-of/index.js","webpack://vue-plotly/./node_modules/robust-subtract/robust-diff.js","webpack://vue-plotly/./node_modules/gl-vec3/squaredDistance.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/waterfall/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/sunburst/plot.js","webpack://vue-plotly/./node_modules/mapbox-gl/dist/mapbox-gl.js","webpack://vue-plotly/./node_modules/es5-ext/object/set-prototype-of/shim.js","webpack://vue-plotly/./node_modules/sprintf-js/src/sprintf.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/streamtube/calc.js","webpack://vue-plotly/./node_modules/plotly.js/lib/calendars.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/gl2d/scene2d.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/cone/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/sankey/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/lib/contourcarpet.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergl/edit_style.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter3d/calc_errors.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/candlestick/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/transforms/aggregate.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergeo/defaults.js","webpack://vue-plotly/./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack://vue-plotly/./node_modules/parse-svg-path/index.js","webpack://vue-plotly/./node_modules/gl-vec3/dot.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnelarea/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/splom/calc.js","webpack://vue-plotly/./node_modules/gl-spikes3d/shaders/index.js","webpack://vue-plotly/./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://vue-plotly/./node_modules/rat-vec/add.js","webpack://vue-plotly/./node_modules/gl-mat4/lookAt.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/table/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/array_container_defaults.js","webpack://vue-plotly/./node_modules/gl-quat/slerp.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/heatmapgl/convert.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram/hover.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/sliders/constants.js","webpack://vue-plotly/./node_modules/planar-graph-to-polyline/pg2pl.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/densitymapbox/hover.js","webpack://vue-plotly/./node_modules/es5-ext/function/noop.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/choropleth/style.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/attributes.js","webpack://vue-plotly/./node_modules/color-parse/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterternary/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/constants/numerical.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/fx/hover.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/legend/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/legend/attributes.js","webpack://vue-plotly/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://vue-plotly/./node_modules/core-js/internals/is-array.js","webpack://vue-plotly/./node_modules/plotly.js/src/snapshot/filesaver.js","webpack://vue-plotly/./node_modules/regl-line2d/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattercarpet/hover.js","webpack://vue-plotly/./node_modules/@plotly/d3-sankey/src/align.js","webpack://vue-plotly/./node_modules/@plotly/d3-sankey/src/constant.js","webpack://vue-plotly/./node_modules/@plotly/d3-sankey/src/sankey.js","webpack://vue-plotly/./node_modules/@plotly/d3-sankey/src/sankeyLinkHorizontal.js","webpack://vue-plotly/./node_modules/@plotly/d3-sankey/index.js","webpack://vue-plotly/./node_modules/glslify/browser.js","webpack://vue-plotly/./node_modules/is-string-blank/index.js","webpack://vue-plotly/./node_modules/es5-ext/function/is-arguments.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/violin/cross_trace_calc.js","webpack://vue-plotly/./node_modules/simplicial-complex-contour/lib/codegen.js","webpack://vue-plotly/./node_modules/gl-mat4/rotateX.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/text_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/parcoords/index.js","webpack://vue-plotly/./node_modules/css-font/index.js","webpack://vue-plotly/./node_modules/type/string/coerce.js","webpack://vue-plotly/./node_modules/atob-lite/atob-browser.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/line_shape_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contourcarpet/defaults.js","webpack://vue-plotly/./node_modules/gl-shader/lib/reflect.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/ternary/layout_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/barpolar/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/matrix.js","webpack://vue-plotly/./node_modules/turntable-camera-controller/turntable.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnelarea/attributes.js","webpack://vue-plotly/./node_modules/es5-ext/object/keys/is-implemented.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterternary/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/bar/layout_defaults.js","webpack://vue-plotly/./node_modules/gl-mat4/transpose.js","webpack://vue-plotly/./node_modules/gl-plot2d/lib/grid.js","webpack://vue-plotly/./node_modules/mat4-decompose/normalize.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/isosurface/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/style.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/legend/style.js","webpack://vue-plotly/./node_modules/plotly.js/src/snapshot/toimage.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/sliders/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/catmull_rom.js","webpack://vue-plotly/./node_modules/gl-vec3/multiply.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/choropleth/select.js","webpack://vue-plotly/./node_modules/es5-ext/math/sign/shim.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/makepath.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatterpolar/hover.js","webpack://vue-plotly/./node_modules/gl-buffer/buffer.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/axis_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/create_i_derivative_evaluator.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/sliders/draw.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/plot.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/barpolar/hover.js","webpack://vue-plotly/./node_modules/clean-pslg/clean-pslg.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergl/select.js","webpack://vue-plotly/./node_modules/plotly.js/lib/isosurface.js","webpack://vue-plotly/./node_modules/mat4-decompose/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/splom/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/sunburst/attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/splom/base_plot.js","webpack://vue-plotly/./node_modules/gl-cone3d/lib/shaders.js","webpack://vue-plotly/./node_modules/gl-vec3/random.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/legend/get_legend_data.js","webpack://vue-plotly/./node_modules/plotly.js/lib/carpet.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/clean_number.js","webpack://vue-plotly/./node_modules/invert-permutation/index.js","webpack://vue-plotly/./node_modules/plotly.js/lib/parcats.js","webpack://vue-plotly/./node_modules/plotly.js/lib/funnelarea.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/cartesian/position_defaults.js","webpack://vue-plotly/./node_modules/marching-simplex-table/mstab.js","webpack://vue-plotly/./node_modules/es5-ext/object/normalize-options.js","webpack://vue-plotly/./node_modules/plotly.js/lib/heatmapgl.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/marker_colorbar.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnelarea/layout_attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/gl3d/layout/layout_attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/annotations3d/draw.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/box/cross_trace_calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/colorscale/attributes.js","webpack://vue-plotly/./node_modules/d/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contour/find_all_paths.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergeo/select.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/polar/constants.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/mapbox/layout_defaults.js","webpack://vue-plotly/./node_modules/plotly.js/lib/cone.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/choropleth/defaults.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/create_j_derivative_evaluator.js","webpack://vue-plotly/./node_modules/glsl-tokenizer/lib/literals-300es.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/sankey/render.js","webpack://vue-plotly/./node_modules/es5-ext/object/assign/shim.js","webpack://vue-plotly/./node_modules/big-rat/add.js","webpack://vue-plotly/./node_modules/assert/assert.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/sunburst/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/parcoords/attributes.js","webpack://vue-plotly/./node_modules/point-cluster/quad.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/to_log_range.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/contourcarpet/plot.js","webpack://vue-plotly/./node_modules/gl-scatter3d/pointcloud.js","webpack://vue-plotly/./node_modules/current-script-polyfill/currentScript.js","webpack://vue-plotly/./node_modules/plotly.js/lib/bar.js","webpack://vue-plotly/./node_modules/core-js/internals/shared-key.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/parcoords/constants.js","webpack://vue-plotly/./node_modules/big-rat/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/rangeselector/defaults.js","webpack://vue-plotly/./node_modules/gl-vec3/sub.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/mapbox/layout_attributes.js","webpack://vue-plotly/./node_modules/lodash.debounce/index.js","webpack://vue-plotly/./node_modules/plotly.js/lib/sankey.js","webpack://vue-plotly/./node_modules/gl-mat4/ortho.js","webpack://vue-plotly/./node_modules/polybooljs/lib/epsilon.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattermapbox/event_data.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/table/index.js","webpack://vue-plotly/./node_modules/es5-ext/string/#/contains/shim.js","webpack://vue-plotly/./node_modules/es5-ext/string/#/contains/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/str2rgbarray.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/gl3d/project.js","webpack://vue-plotly/./node_modules/gl-vec3/index.js","webpack://vue-plotly/./node_modules/gl-vec4/fromValues.js","webpack://vue-plotly/./node_modules/plotly.js/src/plots/polar/legacy/area_attributes.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/box/hover.js","webpack://vue-plotly/./node_modules/gl-vec4/distance.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/make_trace_groups.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/carpet/axis_aligned_line.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/heatmap/plot.js","webpack://vue-plotly/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://vue-plotly/./src/components/Plotly.vue?3437","webpack://vue-plotly/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://vue-plotly/./src/components/events.js","webpack://vue-plotly/./src/components/methods.js","webpack://vue-plotly/./src/utils/helper.js","webpack://vue-plotly/./src/components/Plotly.vue","webpack://vue-plotly/./src/components/Plotly.vue?8beb","webpack://vue-plotly/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://vue-plotly/./src/components/Plotly.vue?ea2a","webpack://vue-plotly/./node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/histogram2dcontour/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/sunburst/helpers.js","webpack://vue-plotly/./node_modules/gl-mat4/clone.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/bar/attributes.js","webpack://vue-plotly/./node_modules/gl-vec3/distance.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/streamtube/convert.js","webpack://vue-plotly/./node_modules/gl-mat3/invert.js","webpack://vue-plotly/./node_modules/gl-mat4/rotateZ.js","webpack://vue-plotly/./node_modules/plotly.js/src/lib/index.js","webpack://vue-plotly/./node_modules/core-js/internals/to-indexed-object.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/treemap/calc.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/colorbar/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/heatmap/colorbar.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattercarpet/calc.js","webpack://vue-plotly/./node_modules/weakmap-shim/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/funnelarea/layout_defaults.js","webpack://vue-plotly/./node_modules/gl-line3d/lib/shaders.js","webpack://vue-plotly/./node_modules/world-calendars/dist/calendars/ethiopian.js","webpack://vue-plotly/./node_modules/math-log2/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/updatemenus/draw.js","webpack://vue-plotly/./node_modules/get-canvas-context/index.js","webpack://vue-plotly/./node_modules/core-js/internals/dom-iterables.js","webpack://vue-plotly/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/shapes/helpers.js","webpack://vue-plotly/./node_modules/circumcenter/circumcenter.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scattergeo/index.js","webpack://vue-plotly/./node_modules/@turf/helpers/index.js","webpack://vue-plotly/./node_modules/gl-mat4/identity.js","webpack://vue-plotly/./node_modules/gl-vec3/set.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/scatter/get_trace_color.js","webpack://vue-plotly/./node_modules/gl-vec3/transformMat3.js","webpack://vue-plotly/./node_modules/plotly.js/src/traces/bar/index.js","webpack://vue-plotly/./node_modules/plotly.js/src/components/images/draw.js","webpack://vue-plotly/./node_modules/ext/global-this/is-implemented.js","webpack://vue-plotly/./node_modules/plotly.js/lib/scatterpolargl.js","webpack://vue-plotly/./node_modules/simplify-planar-graph/node_modules/simplicial-complex/topology.js"],"names":["root","factory","exports","module","define","amd","self","this","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","incrementalConvexHull","orient","compareCell","compareCells","Simplex","vertices","adjacent","boundary","lastVisited","GlueFacet","cell","index","compareGlue","a","b","bakeOrient","code","push","proc","Function","join","test","flip","u","BAKED","Triangulation","dimension","simplices","interior","filter","tuple","Array","proto","points","randomSearch","length","Error","initialSimplex","slice","apply","initialCoords","initialCell","list","verts","j","adj","v","k","indexOf","triangles","useRandom","insert","handleBoundaryDegeneracy","point","toVisit","pop","cellAdj","neighbor","nv","vv","walk","random","initIndex","Math","outerLoop","cellVerts","prev","addPeaks","tovisit","glueFacets","indexOfN","indexOfNeg1","na","vverts","vadj","ncell","opposite","uu","nface","nptr","sort","ai","bi","cells","nc","bcell","cv","ptr","parity","tokenize","tokenizeString","str","opt","generator","tokens","concat","orientation","colormodel","rgb","min","max","fmt","suffix","rgba","hsl","hsla","createLinePlot","createBuffer","createVAO","createTexture","unpackFloat","bsearch","ndarray","shaders","createShader","createPickShader","identity","distance","sqrt","filterClipBounds","bounds","result","PickResult","tau","position","dataCoordinate","arcLength","LinePlot","gl","shader","pickShader","buffer","vao","texture","clipBounds","Infinity","vertexCount","pickId","lineWidth","dashScale","opacity","hasAlpha","dirty","pixelRatio","options","scene","attributes","location","nextPosition","color","defaultTexture","data","wrap","REPEAT","linePlot","update","isTransparent","isOpaque","pickSlots","setPickBase","id","drawTransparent","draw","camera","uniforms","model","view","projection","dashTexture","screenShape","drawingBufferWidth","drawingBufferHeight","TRIANGLE_STRIP","unbind","drawPick","connectGaps","arcLengthArray","pointArray","positions","colors","hadGap","fill_loop","acolor","bcolor","w0","isNaN","isFinite","isArray","t0","dashArray","dashes","prefixSum","unshift","set","le","setPixels","dispose","pick","selection","ti","x","dataIndex","colorscaleCalc","gd","trace","surfacecolor","vals","containerStr","cLetter","z","d3","isNumeric","NOTEDATA","text","displayLength","ts","notifierContainer","select","selectAll","enter","append","classed","notes","style","each","thisText","note","html","on","transition","killNote","lines","split","duration","delay","thisIndex","splice","remove","LINKEDFILLS","tonextx","tonexty","tonext","plotinfo","cdscatter","group","prevtrace","groupIndex","groupIndices","needsSort","prevGroupIndex","nextGroupIndex","prevUnstackedGroupIndex","stackgroup","fill","_groupIndex","cdscatterSorted","traceA","traceB","prevtraces","visible","_nexttrace","_prevtrace","_ownfill","substr","moduleType","basePlotModule","categories","meta","supplyDefaults","calc","plot","hoverPoints","selectPoints","clamp","dtype","isInt","Uint8Array","Uint8ClampedArray","type","Ctor","output","normalize","floor","wrapper","INSERT_SORT_CUTOFF","n0","insertionSort","quickSort","left","right","jptr","y","swap","move","rotate","shufflePivot","px","py","compare","comparePivot","sixth","index1","index5","index3","index2","index4","el1","el2","el3","el4","el5","less","great","tmp","pivot1X","pivot1Y","pivot2X","pivot2Y","ptr0","ptr2","ptr4","ptr5","ptr6","ptr7","i1","circle","square","diamond","cross","computeTickMarks","Axes","Lib","AXES_NAMES","centerPoint","contourLevelsFromTicks","ticks","tlevel","clevel","axesOptions","glRange","glplot","axesPixels","sceneLayout","fullSceneLayout","axes","_length","hi","lo","pixelsPerDataUnit","dataScale","abs","_input_range","range","_m","tickModeCached","tickmode","nticks","constrain","autoTicks","dataTicks","calcTicks","replace","contourLevels","assign","Calendars","regionalOptions","invalidCalendar","invalidDate","invalidMonth","invalidYear","differentCalendars","local","calendars","_localCals","CDate","calendar","year","month","day","_calendar","_year","_month","_day","_validateLevel","isValid","_exports","pad","substring","BaseCalendar","shortYearCutoff","GregorianCalendar","language","instance","toLowerCase","cal","newDate","substituteDigits","digits","digit","substituteChineseDigits","powers","localNumber","power","units","arguments","date","leapYear","epoch","formatYear","monthOfYear","weekOfYear","daysInYear","dayOfYear","daysInMonth","dayOfWeek","weekDay","extraInfo","add","offset","period","compareTo","toJD","fromJD","jd","toJSDate","fromJSDate","jsd","toString","today","_validate","Date","minMonth","minDay","epochs","monthsInYear","firstMonth","fromMonthOfYear","ord","daysInWeek","_correctAdd","_add","resyncYearMonth","yearMonths","ymd","e","hasYearZero","w","dir","valid","error","jdEpoch","daysPerMonth","monthNames","monthNamesShort","dayNames","dayNamesShort","dayNamesMin","dateFormat","firstDay","isRTL","checkDate","setHours","setMinutes","setSeconds","setMilliseconds","getHours","getFullYear","getMonth","getDate","cdate","baseCalendar","gregorian","warp","invert","applyHomography","dest","src","Xi","X","out_c","inp_c","wr","out","pt","cd","pointNumber","cdi","kerning","canvas","document","createElement","ctx","getContext","asciiPairs","createPairs","family","pairs","table","fs","threshold","fontSize","font","pair","width","measureText","kerningWidth","emWidth","leftChar","String","fromCharCode","rightChar","ascii","hover","makeHoverPointText","pointData","xval","yval","hovermode","stash","rArray","thetaArray","theta","scatterPointData","newPointData","undefined","subplot","isPtInside","xLabelVal","yLabelVal","Color","colorScaleAttrs","hovertemplateAttrs","baseAttrs","extendFlat","overrideAll","makeContourProjAttr","axLetter","valType","dflt","makeContourAttr","show","start","editType","end","size","project","defaultLine","usecolormap","highlight","highlightcolor","highlightwidth","attrs","arrayOk","hovertext","hovertemplate","connectgaps","colorAttr","showScaleDflt","autoColorDflt","editTypeOverride","contours","hidesurface","lightposition","lighting","ambient","diffuse","specular","roughness","fresnel","_deprecated","zauto","zmin","zmax","hoverinfo","showlegend","transforms","Plotly","register","fullLayout","labels","_subplot","ax","mockAxis","lonlat","lonLabel","tickText","c2l","latLabel","fullData","tracei","filli","tracej","xaxis","yaxis","clone","Float32Array","aFunction","fn","that","xmlnsNamespaces","LINE_SPACING","getSize","_selection","_dimension","node","getBoundingClientRect","FIND_TEX","convertToTspans","_context","_callback","tex","attr","MathJax","match","parent","parentNode","empty","svgClass","_promises","Promise","resolve","parseInt","config","texToSVG","_svgEl","_glyphDefs","_svgBBox","newSvg","showText","mathjaxGroup","appendChild","insertBefore","cloneNode","firstChild","height","preserveAspectRatio","overflow","g","stroke","newSvgW","newSvgH","newX","middle","textHeight","dy","transform","hasLink","buildSVGText","positionText","LT_MATCH","GT_MATCH","cleanEscapesForTex","_texString","_config","originalRenderer","originalConfig","originalProcessSectionDelay","tmpDiv","Hub","Queue","extendDeepAll","processSectionDelay","Config","messageStyle","tex2jax","inlineMath","displayAlign","menuSettings","renderer","setRenderer","randomID","randstr","visibility","Typeset","glyphDefs","log","svgBBox","TAG_STYLES","sup","sub","span","em","SHIFT_DY","RESET_DY","ZERO_WIDTH_SPACE","PROTOCOLS","NEWLINES","SPLIT_TAGS","ONE_TAG","BR_TAG","BR_TAG_ALL","STYLEMATCH","HREFMATCH","TARGETMATCH","POPUPMATCH","getQuotedMatch","_str","re","convertEntities","COLORMATCH","plainText","opts","len","allowedTags","ellipsis","eLen","oldParts","newParts","prevTag","tagType","pLen","pLen2","entityToUnicode","mu","amp","lt","gt","nbsp","times","plusmn","deg","ENTITY_MATCH","fullMatch","innerMatch","outChar","charAt","fromCodePoint","stringFromCodePoint","stringFromCharCode","containerNode","currentNode","nodeStack","currentLine","newLine","lineNode","createElementNS","svg","class","oldNodeStack","enterNode","nodeSpec","nodeType","nodeAttrs","target","href","popup","onclick","newNode","addTextNode","resetter","createTextNode","exitNode","innerNode","hasLines","parts","parti","tagStyle","extra","css","dummyAnchor","protocol","encodeURI","decodeURI","alignHTMLWith","_base","container","thisRect","getTop","getLeft","alignH","horizontalAlign","alignV","verticalAlign","bRect","cRect","bottom","top","lineCount","setOrGet","val","thisX","thisY","nodeName","makeEditable","context","_delegate","delegate","dispatch","handlerElement","handleClick","appendEditable","mathjaxClass","selectElementContents","_el","el","createRange","selectNodeContents","sel","window","getSelection","removeAllRanges","addRange","focus","plotDiv","div","cStyle","parseFloat","initialText","fontFamily","background","outline","margin","padding","contenteditable","_editing","textContent","edit","editDiv","event","activeElement","blur","which","cancel","input","immediate","rebind","_fullLayout","uid","splomScenes","_splomScenes","reset","first","matrix","selectBatch","unselectBatch","destroy","matrixOptions","eventData","animatable","fillText","makeHoverInfo","loc","flags","hasName","hasLocation","hasZ","hasText","hasIdAsNameLabel","nameOverride","zLabel","extraText","isInside","geo","_polygons","contains","x0","x1","xa","c2p","ct","y0","y1","ya","Drawing","DESELECTDIM","barStyle","resizeText","styleTextPoints","gTrace","di","isBlank","cont","marker","line","dashLine","dash","selectedpoints","selected","connector","lineGroupStyle","scatterAttrs","FORMAT_LINK","impliedEdits","xtype","dx","ytype","transpose","values","zsmooth","hoverongaps","xgap","ygap","zhoverformat","Registry","edits","transitionOpts","makeOnCompleteCallback","onComplete","t1","t2","raf","easeFn","ease","easing","_transitionData","_interruptCallbacks","cancelAnimationFrame","transitionInterrupt","now","requestAnimationFrame","doFrame","unsetSubplotTransform","_defs","clipId","setTranslate","setScale","_offset","traceGroups","setPointGroupScale","setTextPointsScale","hideOutsideRangePoints","updateSubplot","progress","xlen","ylen","editX","xr1","editY","yr1","viewBox","xr0","simpleMap","r2l","dx0","dx1","l2r","yr0","dy0","dy1","drawOne","skipTitle","redrawComponents","_id","xScaleFactor","yScaleFactor","clipDx","clipDy","fracDx","fracDy","plotDx","plotDy","clipRect","zoomScalePts","zoomScaleTxt","transitionComplete","aobj","_name","then","tInterp","isBuffer","obj","constructor","isSlowBuffer","readFloatLE","_isBuffer","rules","Y","selector","fullSelector","addStyleRule","createCamera","createAxes","axesRanges","createSpikes","createSelect","createFBO","drawTriangle","mouseChange","perspective","ortho","isMobile","tablet","MouseSelect","mouse","screen","dataPosition","roundUpPow10","round","base","pow","ceil","defaultBool","createScene","body","glOptions","premultipliedAlpha","antialias","preserveDrawingBuffer","accumBuffer","preferFloat","accumShader","isOrtho","cameraObject","_ortho","cameraOptions","eye","center","up","zoomMin","zoomMax","enable","disable","spikeOptions","spikes","objects","pickBufferIds","pickBufferCount","pickBuffers","pickDirty","cameraParams","viewShape","contextLost","shape","aspect","aspectRatio","pickRadius","zNear","zFar","fovy","PI","clearColor","autoResize","autoBounds","autoScale","autoCenter","clipToBounds","snapToData","onselect","onrender","oncontextloss","mouseListener","_stopped","getAspectratio","setAspectratio","aspectratio","setBounds","axisIndex","setClearColor","clearRGBA","clear","COLOR_BUFFER_BIT","DEPTH_BUFFER_BIT","pickShape","resizeListener","clientWidth","clientHeight","innerWidth","innerHeight","nextWidth","nextHeight","reallocPickIds","numObjs","numPick","obj_loop","pickCount","nbuffer","checkContextLoss","isContextLost","enabled","renderPick","colorMask","depthMask","BLEND","DEPTH_TEST","depthFunc","LEQUAL","buf","begin","addEventListener","idx","removeEventListener","_mouseRotating","_prevButtons","enableMouseListeners","buttons","prevObj","change","query","objPick","coord","nBounds","prevBounds","redraw","cameraMoved","tick","obb","olo","ohi","boundsChanged","tickSpacing","calcCameraParams","axesBounds","bindFramebuffer","FRAMEBUFFER","viewport","CULL_FACE","hasTransparent","LESS","blendEquation","FUNC_ADD","blendFunc","ONE","ONE_MINUS_SRC_ALPHA","render","maxS","schema","subplots","rangeselector","layoutAttributes","handleDefaults","counter","head","tail","openEnded","matchBeginning","fullTail","startWithPrefix","RegExp","toIndexedObject","nativeGetOwnPropertyNames","f","windowNames","getOwnPropertyNames","getWindowNames","it","pool","array","cube","bitmask","stride","scalar","pointer","delta","step","pcube","qcube","pdelta","vert","createSurfaceExtractor","VERTEX_IDS","PHASES","VERTEX_COUNT","POOL_SIZE","POINTER","TEMPORARY","permBitmask","mask","order","compileSurfaceProcedure","vertexFunc","faceFunc","phaseFunc","scalarArgs","typesig","arrayArgs","funcName","vars","args","ptrStr","stepVal","sizeVariable","cubeDelta","cubeStep","signFlag","jperm","forLoopBegin","forLoopEnd","fillEmptySlice","phaseFuncArgs","processGridCell","vertexPredicate","vertexArgs","corner","subset","edge","faceArgs","createLoop","procedureCode","mallocUint32","freeUint32","msg","arrays","arrayArguments","scalars","scalarArguments","vertex","phase","getters","nodeTextOffsetHorizontal","nodeTextOffsetVertical","nodePadAcross","sankeyIterations","forceIterations","forceTicksPerFrame","cn","sankey","sankeyLinks","sankeyLink","sankeyNodeSet","sankeyNode","nodeRect","nodeCapture","nodeCentered","nodeLabelGuide","nodeLabel","nodeLabelTextPath","histogram2dCalc","convertColumnData","clean2dArray","interp2d","findEmpties","makeBoundArray","binned","getFromId","isContour","traceIs","isHist","isGL2D","_minDtick","zIn","isArray1D","_x","_y","_z","makeCalcdata","_emptypoints","noZsmooth","_input","warn","avgdx","maxErrX","avgdy","maxErrY","maxRowLength","xIn","xArray","yIn","yArray","_extremes","findExtremes","cd0","_text","_hovertext","xCenter","yCenter","xRanges","yRanges","pts","coloring","dummyTrace","xcalendar","ycalendar","xfill","yfill","Plots","svgTextUtils","Titles","axAttrs","cleanTicks","constants","ONEAVGYEAR","ONEAVGMONTH","ONEDAY","ONEHOUR","ONEMIN","ONESEC","MINUS_SIGN","BADNUM","alignmentConstants","MID_SHIFT","CAP_SHIFT","OPPOSITE_SIDE","setConvert","autoType","axisIds","id2name","name2id","cleanId","listIds","getFromTrace","autorange","getAutoRange","coerceRef","containerIn","containerOut","extraOption","axlist","_subplots","refAttr","attrDef","coerce","coercePosition","axRef","cleanPos","pos","ensureNumber","fraction2r","cleanPosition","axIds","_redrawOneComp","moduleName","methodName","stashName","shortCircuit","method","getComponentMethod","indices","ind","getDataConversions","targetArray","d2cTarget","_categories","d2c","c2d","toNum","autoShiftNumericBins","binStart","dataMin","dataMax","edgecount","midcount","intcount","blankCount","nearEdge","dtick","dataCount","binshift","autoShiftMonthBins","stats","findExactDates","exactDays","numMonths","Number","exactYears","tickIncrement","exactMonths","nextBinStart","arrayTicks","tickvals","ticktext","ticksOut","rng","r0expanded","r1expanded","tickMin","tickMax","tickVal2l","d2l_noadd","d2l","vali","tickTextObj","getDataToCoordFunc","counterLetter","minDtick","newDiff","newFirst","allow","_forceTick0","saveRangeInitial","overwrite","axList","hasOneAxisChanged","isNew","_rangeInitial","hasChanged","saveShowSpikeInitial","allSpikesEnabled","_showSpikeInitial","showspikes","_showspikes","_cartesianSpikesEnabled","autoBin","nbins","is2d","dummyAx","aggNums","_dataSpan","c2r","tick0","size0","distinctData","distinctVals","msexp","minDiff","LN10","minSize","roundUp","stdev","binEnd","bincount","finalSize","tickFirst","prepTicks","minPx","nt","tickfont","autoTickRound","_tmin","startTick","endTick","axrev","tickVals","isDLog","xPrevious","maxTicks","minor","isAngular","_tmax","_prevDateHead","_inCalcTicks","roundBase10","roundBase24","roundBase60","roundDays","roundLog1","roundLog2","roundAngles","roundDTick","roughDTick","roundingSet","_tickexponent","_tickround","tick0ms","tick0str","tick0len","tick1len","map","r2d","maxend","rangeexp","isSIFormat","exponentformat","beyondSI","tf","fontColor","formatDate","extraPrecision","tr","hoverformat","getTickFormat","M","S","headStr","dateStr","_dateFormat","_extraFormat","splitIndex","formatLog","hideexp","tickformat","dtChar0","numFormat","mod","absP","exponentFormat","firstChar","formatCategory","tt","formatMultiCategory","cats","tt2","text2","formatLinear","showexponent","formatAngle","thetaunit","num","frac","num2frac","deg2rad","isNeg","almostEq","findGCD","findPrecision","precision","number","gcd","getBase","dateTick0","roughX2","olddtick","axSign","tType","dtSigned","incrementMonth","tickset","x2","sRound","r0","tmin","dtNum","mult","newDTick","cnt","noSuffixPrefix","arrayMode","axType","isHidden","showAttr","firstOrLast","last","tickprefix","showtickprefix","ticksuffix","showticksuffix","tickson","showdividers","inbounds","l2p","xbnd","hoverLabelText","val2","logOffScale","tx","SIPREFIXES","exponent","fmtoverride","tickRound","separatethousands","ah","_numFormat","signedExponent","dp","numSeparate","_separators","getBoundaryVals","_push","bndIndex","xb","getSecondaryLabelVals","lookup","interp","getDividerVals","current","calcLabelLevelBbox","cls","_selections","thisLabel","selectTickLabel","bb","bBox","tickDataFn","axInfo","drawDividers","dividers","layer","exit","dividercolor","crispRound","dividerwidth","transFn","path","approxTitleDepth","title","extraLines","drawTitle","titleStandoff","axId","_depth","standoff","offsetBase","linewidth","side","showticklabels","avoid","getPxPosition","tickLabels","translation","getTranslate","offsetLeft","offsetTop","propContainer","propName","placeholder","_dfltTitle","clipEnds","anyCounterAxLineAtZero","counterAxis","mainCounterAxis","_mainAxis","zeroPosition","_plots","_mainSubplot","mainplotinfo","overlays","lineNearZero","counterLetterAxes","counterAxis2","ax2","showline","tolerance","zerolinewidth","closeEnough","pos2","_mainLinePosition","_mainMirrorPosition","linePositions","_linepositions","hasBarsOrFill","_fullData","gTick","mj","axAutoMarginID","axMirrorAutoMarginID","rangeSliderAutoMarginID","makeAxisGroups","traces","groups","groupsi","xi","yi","groupj","group0","mergeAxisGroups","intoSet","fromSet","swapAxisGroup","xIds","yIds","xFullAxes","yFullAxes","layout","allAxKeys","keys","noSwapAttrs","numericTypes","keyi","xVal","yVal","allEqual","coerceLinearX","coerceLinearY","xVali","yVali","swapAxisAttrs","annotations","ann","xref","yref","swapAttrs","dfltTitle","np","nestedProperty","tickstop","stopi","convertToMs","compareLogTicks","priority","leftPriority","rightPriority","isProperStop","convert","convertFn","leftDtick","rightDtick","isProperLogStop","isLeftDtickNull","isRightDtickNull","isDtickInRangeLeft","isDtickInRangeRight","tickformatstops","dtickrange","getSubplots","subplotObj","allSubplots","cartesian","gl2d","findSubplotsWithAxis","aParts","bParts","axMatch","subplotsWithAx","sp","makeClipPaths","_hasOnlyLargeSploms","fullWidth","fullHeight","xaList","yaList","clipList","axClips","_clips","_uid","arg","_paper","xaxislayer","yaxislayer","gridlayer","zerolinelayer","_infolayer","syncOrAsync","axDone","_r","_rl","mainLinePosition","mainMirrorPosition","mainPlotinfo","mainAxLayer","_vals","mirror","_tickAngles","_prevTickAngles","llbboxes","getLabelLevelBbox","valsClipped","makeTransFn","boundaryVals","gridVals","_gridVals","dividerVals","_subplotsWith","finishedGrids","mainCounterID","gridPath","drawGrid","drawZeroLine","tickSigns","getTickSigns","tickSubplots","mirrorTickPath","fullTickPath","tickPath","mainTickPath","makeTickPath","_anchorAxis","dividerLookup","drawTicks","linepositions","spTickPath","seq","drawLabels","labelFns","makeLabelFns","bboxKey","repositionOnUpdate","secondary","hasRangeSlider","llbbox","mirrorPush","rangeSliderPush","sMirror","outsideTickLen","ticklen","automargin","domainIndices","reverse","rExtra","xr","lExtra","xl","bExtra","yb","tExtra","yt","anchor","domain","_counterDomainMin","_counterDomainMax","autoMargin","sideOpposite","main","shift","sgn","angle","ticksOnOutsideLabels","labelStandoff","labelShift","rad","cos","sin","ff","flipIt","xFn","yFn","anchorFn","heightFn","h","tickangle","crisp","tickcolor","tickwidth","counterAx","showgrid","shouldShowZeroLine","isArrayMode","grid","_gw","gridwidth","gridcolor","zl","da","db","idSort","zerolinecolor","tickAngle","prevAngle","labelsReady","positionLabels","nLines","lineHeight","anchorHeight","mjWidth","mjShift","allLabelsReady","all","newPromise","autoangle","fixLabelOverlaps","maxFontSize","lbbArray","vLen","rotate90","bBoxIntersect","gap","lbb","_redrawFromAutoMarginCount","done","anchorAxis","gs","_size","zeroline","allowAutoMargin","axGroups","v100","kernels","gaussian","exp","makeKDE","calcItem","kernel","bandwidth","factor","sum","getPositionOnKdePath","valuePx","posLetter","valLetter","pointOnPath","findPointOnPath","pathLength","posCenterPx","posOnPath0","posOnPath1","getKdeValue","valueDist","extractVal","kde","posDensityScale","Iterator","callable","autoBind","defineProperties","TypeError","__list__","__context__","__nextIndex__","_onAdd","_onDelete","_onClear","_next","__redo__","_unBind","next","_createResult","_resolve","off","forEach","redo","iterator","_supply","layoutIn","layoutOut","traceType","category","hasTraceType","supplyLayoutDefaults","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toPrimitive","has","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","getOwnPropertyDescriptor","O","P","DEFAULT_NORMALS_EPSILON","DEFAULT_FACE_EPSILON","vertexNormals","faces","specifiedEpsilon","N","normals","epsilon","v0","v1","v2","d01","m01","d21","m21","norm","faceNormals","traceIn","traceOut","handleCalendarDefaults","minRowLength","Scene2D","layoutGlobalAttrs","Cartesian","fxAttrs","getSubplotData","idRoot","idRegex","attrRegex","_has","layoutAttrOverrides","baseLayoutAttrOverrides","plot_bgcolor","hoverlabel","subplotIds","subplotId","fullSubplotData","_scene2d","graphDiv","querySelector","staticPlot","plotGlPixelRatio","calcdata","clean","newFullData","newFullLayout","oldFullData","oldFullLayout","oldSceneKeys","oldSubplot","subplotData","drawFramework","toSVG","imageData","toImage","image","_glimages","xmlns","updateFx","dragmode","sprintf","glConstants","shaderName","addLineNumbers","formatCompilerError","errLog","typeName","FRAGMENT_SHADER","longForm","shortForm","errorStrings","errors","errorString","lineNo","trim","long","short","colorscaleDefaults","defaultColor","supplyIsoDefaults","isomin","isomax","dim","capDim","showCap","sliceDim","showSlice","showSpaceframe","showSurface","showContour","prefix","projNames","axesNames","lonaxisSpan","lataxisSpan","scopeDefaults","world","lonaxisRange","lataxisRange","projType","projRotate","usa","europe","projParallels","asia","africa","clipPad","landColor","waterColor","locationmodeToLayer","sphereSVG","fillLayers","ocean","land","lakes","lineLayers","subunits","countries","coastlines","rivers","frame","layers","layersForChoropleth","layerNameToAdjective","doubleBits","SMALLEST_DENORM","UINT_MAX","nextafter","NaN","pack","solid","dot","longdash","dashdot","longdashdot","crossTraceCalc","colorbar","formatLabels","styleOnSelect","countryRegex","turfArea","turfCentroid","turfBbox","loggers","isPlainObject","polygon","countryIds","locationmodeToIdFinder","countryNameToISO3","countryName","iso3","regex","locationToFeature","locationmode","features","filteredFeatures","locationId","properties","gu","feature2polygons","feature","appendPolygon","geometry","coords","coordinates","polygons","doesCrossAntiMerdian","_pts","tester","crossAntiMeridianIndex","stitch","si","getTraceGeojson","geojson","PlotlyGeoAssets","geojsonIn","extractTraceFeature","calcTrace","featuresOut","appendFeature","fIn","featureidkey","fOut","findCentroid","featuresIn","poly","maxArea","polyi","area","default","fetchTraceGeoData","calcData","promises","fetch","url","reject","json","err","status","wait","interval","setInterval","clearInterval","computeBbox","rat","mul","muls","sign","bn2num","words","scaleAndAdd","scale","hasColorscale","calcColorscale","subTypes","hasMarkers","StringIterator","setPrototypeOf","__length__","char","charCodeAt","keyFun","repeat","descend","unwrap","nodes","force","sx","sy","initialize","_","cover","tree","xm","ym","xp","yp","_root","leaf","_x0","_y0","_x1","_y1","addAll","xz","yz","visit","y2","q","x3","y3","quads","radius","d2","retainer","previous","removeAll","child","callback","defaultX","defaultY","quadtree","Quadtree","leaf_copy","copy","treeProto","vx","vy","source","extent","find","visitAfter","radii","strength","iterations","ri","ri2","prepare","quad","rj","jiggle","constant","nodeById","nodeId","strengths","distances","count","bias","defaultStrength","link","alpha","links","initializeStrength","initializeDistance","noop","Dispatch","parseTypenames","typenames","types","typename","T","taskHead","taskTail","timeout","pokeDelay","clockLast","clockNow","clockSkew","clock","performance","setFrame","setTimeout","clearNow","Timer","_call","_time","timer","time","restart","timerFlush","wake","nap","poke","sleep","clearTimeout","stop","initialRadius","initialAngle","simulation","alphaMin","alphaDecay","alphaTarget","velocityDecay","forces","stepper","fx","fy","initializeNodes","initializeForce","closest","distanceMin2","distanceMax2","theta2","accumulate","weight","distanceMin","distanceMax","radiuses","lookupCarpet","setContours","heatmappishCalc","a0","b0","carpet","_carpetTrace","aax","aaxis","bax","baxis","_a","_b","carpetdata","tracedata","_defaultColor","calcMarkerSize","TOO_MANY_POINTS","radialAxis","radialaxis","angularAxis","angularaxis","_theta","ppad","sizeAvg","twoProduct","robustSum","robustDiff","robustScale","NUM_EXPAND","cofactor","generateSum","expr","makeProduct","toks","determinant","makeSquare","terms","neg","posExpr","negExpr","funcArgs","inSphere0","inSphere1","inSphere2","CACHED","slowInSphere","generateInSphereTest","procArgs","linearOK","moreDates","inc","dcnt","ncnt","seen","stri","isDateTime","curvenums","curvecats","cleanNumber","multiCategory","isArrayOrTypedArray","noMultiCategory","gregorianCalendar","TaiwanCalendar","yearsOffset","_t2gYear","_g2tYear","taiwan","_slicedToArray","sliceIterator","arr","_arr","_n","_d","_e","_s","_i","TAU","mapToEllipse","_ref","rx","ry","cosphi","sinphi","centerx","centery","approxUnitArc","ang1","ang2","tan","vectorAngle","ux","uy","acos","getArcCenter","cx","cy","largeArcFlag","sweepFlag","pxp","pyp","rxsq","rysq","pxpsq","pypsq","radicant","centerxp","centeryp","vx1","vy1","vx2","vy2","arcToBezier","_ref2","_ref2$xAxisRotation","xAxisRotation","_ref2$largeArcFlag","_ref2$sweepFlag","curves","lambda","_getArcCenter","_getArcCenter2","ratio","segments","curve","_mapToEllipse","_mapToEllipse2","_mapToEllipse3","arraysToCalcdata","binFunctions","normFunctions","doAvg","getBinSpanLabelRound","i2","pa","mainData","counterData","cumulativeSpec","cumulative","binsAndPos","calcAllAutoBins","binSpec","pos0","nonuniformBins","binEdges","bins","counts","inputPoints","total","histnorm","func","histfunc","densityNorm","rawCounterData","extremeFunc","sizeInit","binFunc","normFunc","isAvg","pr2c","r2c","roundFn","nMax","uniqueValsPerBin","leftGap","rightGap","ptNumber2cdIndex","posi","findBin","cdf","direction","currentbin","seriesLen","firstNonzero","lastNonzero","ph0","ph1","width1","tagSelected","_overlayEdgeCase","autoVals","binAttr","groupName","binOpts","_histogramBinOpts","isOverlay","barmode","cleanBound","cleanDate","setBound","newBins","allPos","isFirstVisible","has2dMap","hasHist2dContour","mainDatai","dirs","_autoBin","newBinSpec","sizeFound","handleSingleValueOverlays","traceInputBins","traceBinOptsCalc","mainStart","startIn","hasStart","startFound","traceStart","newStart","mainEnd","endIn","hasEnd","endFound","traceEnd","autoBinAttr","overlaidTraceGroup","getConnectedHistograms","pastThisTrace","singleValuedTraces","resulti","binSpeci","isSingleValued","dataVals","xid","yid","currentBin","vi","prevSum","firstHalfPoint","nextHalfPoint","prevRow","thisPt","neighborCount","newNeighborHash","foundNewNeighbors","empties","neighborHash","noNeighborList","nextRow","row","blank","rowLength","handleSampleDefaults","handleContoursDefaults","handleStyleDefaults","coerce2","Colorscale","constHalf","lineColor","cscale","extractOpts","colorscale","cdimage","imageLayer","makeTraceGroups","temp","plotGroup","imageWidth","imageHeight","isOffScreen","noImage","ipx","jpx","ipx0","ipx1","jpx0","jpx1","_scaler","fillStyle","fillRect","image3","toDataURL","getAxisGroup","Sieve","fullTraces","calcTraces","calcTracesHorz","calcTracesVert","fullTrace","barnorm","bargap","groupgap","bargroupgap","setGroupPositions","sa","excluded","included","initBase","setGroupPositionsInOverlayMode","setGroupPositionsInGroupMode","setGroupPositionsInStackOrRelativeMode","collectExtents","scalendar","hasB","hasBase","sieve","sepNegVal","overlapNoMerge","setOffsetAndWidth","sieveBars","normalizeBars","setBaseAndTop","setOffsetAndWidthInGroupMode","unhideBarsWithinTrace","stackBars","bar","isOutmostBar","_outmost","barGroupWidth","barWidthPlusGap","barWidth","offsetFromCenter","barwidth","poffset","bargroupwidth","bardelta","binWidth","applyAttributes","setBarCenterAndWidth","updatePositionAxis","distinctPositions","nTraces","overlap","groupId","alignmentGroups","_alignmentOpts","alignmentGroupOpts","alignmentgroup","nOffsetGroups","offsetGroups","_offsetIndex","newPoffset","calcTrace0","initialPoffset","_width","initialBarwidth","newBarwidth","pLetter","getAxisLetter","poffsetIsArray","barwidthIsArray","calcBar","allowMinDtick","vpad","calcBarOffset","calcBarWidth","padded","sLetter","allBaseAboveZero","tozero","isFunnel","put","inTraceSieve","sTop","sTiny","sMin","l2c","sMax","needsPadding","extents","pMin","pMax","roundFactor","p0","p1","pVal","s0","s1","fails","cellPad","columnExtentOffset","columnTitleOffset","emptyHeaderHeight","latexCheck","goldenRatio","lineBreaker","maxDimensionCount","overdrag","releaseTransitionDuration","releaseTransitionEase","scrollbarCaptureWidth","scrollbarHideDelay","scrollbarHideDuration","scrollbarOffset","scrollbarWidth","transitionDuration","transitionEase","uplift","wrapSpacer","wrapSplitCharacter","tableControlView","scrollBackground","yColumn","columnBlock","scrollAreaClip","scrollAreaClipRect","columnBoundary","columnBoundaryClippath","columnBoundaryRect","columnCells","columnCell","cellRect","cellText","cellTextHolder","scrollbarKit","scrollbar","scrollbarSlider","scrollbarGlyph","scrollbarCaptureZone","twoSum","scaleLinearExpansion","pq","bv","scales","sequential","Reds","sequentialminus","Blues","diverging","RdBu","coloraxis","_isSubplotObj","noColorAxis","barAttrs","lineAttrs","texttemplateAttrs","directionAttrs","dirTxt","measure","eventDataKeys","textinfo","extras","texttemplate","textposition","insidetextanchor","textangle","textfont","insidetextfont","outsidetextfont","constraintext","cliponaxis","increasing","decreasing","totals","offsetgroup","tubex","tubey","tubez","tubeu","traceCoordinate","tubev","tubew","divergence","handleXYDefaults","handleStackDefaults","handleMarkerDefaults","handleLineDefaults","handleLineShapeDefaults","handleTextDefaults","handleFillColorDefaults","stackGroupOpts","defaultMode","PTS_LINESONLY","gradient","dfltHoverOn","fillDflt","markerColor","hoveron","errorBarsSupplyDefaults","axis","inherit","coerceSelectionMarkerOpacity","csr","BN","cmp","mergeArray","customdata","mergeArrayCastPositive","symbol","markerLine","markerGradient","fontAttrs","anim","groupnorm","stackgaps","smoothing","simplify","fillcolor","symbolList","maxdisplayed","sizeref","sizemin","sizemode","unselected","colorEditType","getTopojsonFeatures","geoJsonUtils","geoUtils","scatterLayer","frontplot","gTraces","removeBADNUM","lineCoords","calcTraceToLineCoords","lineData","makePolygon","makeLine","calcPt","calcGeoJSON","geoLayout","locations","topojson","lonArray","latArray","fitbounds","bboxGeojson","lon","lonaxis","_ax","lat","lataxis","makeBubbleSizeFn","convertTextOpts","appendArrayPointValue","initContainer","makeBlank","paint","makeCircleOpts","colorFn","sizeFn","opacityFn","arrayColor","arraySize","arrayOpacity","addTraceOpacity","size2radius","makeColorScaleFuncFromTrace","mo","mo2","fns","isBADNUM","props","mcc","mc","mrc","ms","makeSelectedPointStyleFns","selectedOpacityFn","selectedColorFn","selectedSizeFn","makeSymbolGeoJSON","fillSymbol","getFillFunc","blankFillFunc","_module","pointValues","_meta","texttemplateString","_d3locale","mx","isVisible","hasFill","hasCircles","hasSymbols","circleOpts","iconSize","textOpts","choroplethAttrs","below","Template","handleDomainDefaults","defaults","subplotLayoutIn","subplotLayoutOut","subplotType","subplotAttributes","partition","ids","idsLength","baseId","newContainer","uirevision","dfltDomains","filterOps","coerceValue","operation","coercedValue","hasArrayValue","COMPARISON_OPS2","INTERVAL_OPS","SET_OPS","makeRangeSettings","makeInequalitySettings","sampleLetter","aggLetter","hasAggregationData","handleSubplotDefaults","handleTickValueDefaults","handleTickMarkDefaults","handleTickLabelDefaults","handleCategoryOrderDefaults","handleLineGridDefaults","axisNames","contIn","contOut","bgColor","combine","paper_bgcolor","sector","axName","coerceAxis","axIn","axOut","_attr","_traceIndices","_expandedIndex","dataAttr","axisName2dataArray","handleAxisTypeDefaults","axData","dfltColor","dfltFontColor","autoRange","isValidRange","cleanRange","dfltRange","coerceFont","counterclockwise","clockwise","tickSuffixDflt","outerTicks","showTickLabels","blend","showLine","showGrid","noZeroLine","undoCommands","isExecuting","execute","command","action","setCallback","callbackFunc","undo","hasUndo","hasRedo","getCommands","getPreviousCommand","getIndex","Scene","GL3D","SCENE","counterRegex","sceneIds","sceneId","fullSceneData","_scene","viewInitial","oldSceneKey","sceneNum","global","objectOrFunction","isFunction","_isArray","vertxNext","customSchedulerFn","asap","queue","flush","scheduleFlush","setScheduler","scheduleFn","setAsap","asapFn","browserWindow","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","process","isWorker","importScripts","MessageChannel","useNextTick","nextTick","useVertxTimer","useMutationObserver","observer","observe","characterData","useMessageChannel","channel","port1","onmessage","port2","postMessage","useSetTimeout","globalSetTimeout","attemptVertx","vertx","runOnLoop","runOnContext","onFulfillment","onRejection","_arguments","PROMISE_ID","makePromise","_state","invokeCallback","_result","subscribe","Constructor","promise","PENDING","FULFILLED","REJECTED","GET_THEN_ERROR","ErrorObject","selfFulfillment","cannotReturnOwn","getThen","tryThen","fulfillmentHandler","rejectionHandler","handleForeignThenable","thenable","sealed","fulfill","reason","_reject","_label","handleOwnThenable","handleMaybeThenable","maybeThenable","then$$","publishRejection","_onerror","publish","_subscribers","subscribers","settled","detail","TRY_CATCH_ERROR","tryCatch","hasCallback","succeeded","failed","initializePromise","resolver","nextId","Enumerator","_instanceConstructor","_remaining","_enumerate","validationError","entries","race","needsResolver","needsNew","polyfill","promiseToString","cast","_eachEntry","entry","resolve$$","_then","_settledAt","_willSettleAt","state","enumerator","_setScheduler","_setAsap","_asap","versions","getPrototypeOf","d3Hierarchy","makeColorScaleFn","makePullColorFn","generateExtendedColors","ALMOST_EQUAL","sunburstExtendedColorWays","treemapExtendedColorWays","countDescendants","nChild","children","branches","leaves","_values","getId","hasIds","parents","hasValues","parent2children","refs","addToLookup","isValidKey","isValidVal","pid","label","dummyId","hasMultipleRoots","impliedRoots","hasImpliedRoot","stratify","parentId","message","hierarchy","branchvalues","partialSum","reduce","pullColor","scaleColor","hasColors","_hasColorscale","_runCrossTraceCalc","desiredType","colorWay","colorMap","dfltColorCount","pickColor","cursorset","xanchor","yanchor","alias","t3","Icons","modeBarButtons","handleCartesian","ev","button","currentTarget","astr","getAttribute","mag","r1","fixedrange","rangeInitial","rangeNow","rangeNew","_isHoriz","setAttribute","handleDrag3d","gl3d","layoutUpdate","val2d","handleCamera3d","didUpdate","getNextHover3d","_previousVal","currentSpikes","hovermodeAStr","spikeAStr","handleHover3d","handleGeo","geoIds","newScale","resetView","getNextHover","toggleHover","newHover","setSpikelineVisibility","areSpikesOn","handleMapboxZoom","mapbox","aObj","zoom","viewKeys","toImageButtonOptions","format","icon","click","notifier","isIE","filename","catch","sendDataToCloud","disk","editInChartStudio","pencil","zoom2d","zoombox","pan2d","pan","select2d","selectbox","lasso2d","lasso","zoomIn2d","zoom_plus","zoomOut2d","zoom_minus","autoScale2d","autoscale","resetScale2d","home","hoverClosestCartesian","tooltip_basic","gravity","hoverCompareCartesian","tooltip_compare","zoom3d","pan3d","orbitRotation","tableRotation","resetCameraDefault3d","resetCameraLastSave3d","movie","hoverClosest3d","toggle","zoomInGeo","zoomOutGeo","resetGeo","hoverClosestGeo","hoverClosestGl2d","hoverClosestPie","resetViewSankey","_viewInitial","resetViews","toggleSpikelines","spikeline","resetViewMapbox","zoomInMapbox","zoomOutMapbox","$","$reduce","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","1","forced","callbackfn","multiply","a00","a01","a02","a03","a10","a11","a12","a13","a20","a21","a22","a23","a30","a31","a32","a33","b1","b2","b3","getModuleCalcData","parcatsPlot","PARCATS","cdModuleAndOthers","hadTable","hasTable","_paperdiv","isBrowser","detect","supported","foo","trzy","annAttrs","templatedArray","ay","xshift","yshift","align","valign","bgcolor","bordercolor","borderpad","borderwidth","showarrow","arrowcolor","arrowhead","startarrowhead","arrowside","arrowsize","startarrowsize","arrowwidth","startstandoff","captureevents","classof","regexpExec","R","exec","from","Boolean","findMedian","genPartition","partitionStartLessThan","PARTITION_THRESHOLD","boxes","elemSize","boxPtr","aPtr","bPtr","mid","pivot","pivot0","value0","pivot1","value1","pivot2","value2","histogramAttrs","makeBinAttrs","heatmapAttrs","nbinsx","xbins","nbinsy","ybins","autobinx","autobiny","bingroup","xbingroup","ybingroup","DOMIterables","createNonEnumerableProperty","COLLECTION_NAME","Collection","CollectionPrototype","axesProperties","getPlanes","splitPoly","cubeParams","m4mul","m4transpose","v4transformMat4","mvp","AxesRange3D","SCRATCH_P","SCRATCH_Q","RANGES","SCRATCH_X","params","ranges","frustum","i_loop","Q","positive","grad","vec3","vec4","GRID_TYPES","streamToTube","stream","maxDivergence","minDistance","maxNorm","velocities","divergences","vectors","previousVerts","currentVerts","intensities","previousIntensity","currentIntensity","currentVector","previousVector","facets","fwd","a1","tmp1","tmp2","tmp3","vertexIntensity","createTubes","streams","colormap","tubes","tube","newCell","findLastSmallerIndex","sampleMeshgrid","vectorField","gridInfo","meshgrid","z0","z1","x0off","x1off","y0off","y1off","z0off","z1off","mX0","mX1","mY0","mY1","mZ0","mZ1","xf","yf","zf","reversedX","reversedY","reversedZ","filled","v000","v001","v010","v011","v101","v110","v111","c00","c01","c10","c11","lerp","c0","c1","findMinSeparation","xs","minSeparation","calculateMinPositionDistance","ys","zs","zi","xSep","ySep","zSep","startingPositions","maxLength","tubeSize","absoluteTubeSize","gridFill","getVelocity","getDivergence","subtract","vz","minX","minY","minZ","maxX","maxY","maxZ","inBounds","boundsSize","maxStepSize","maxStepSizeSq","op","dv","dvLength","sqLen","squaredLength","squaredDistance","tubeScale","createMesh","createTubeMesh","crossTraceDefaults","annIn","annOut","borderColor","borderOpacity","borderWidth","showArrow","annotation","hoverText","globalHoverLabel","hoverBG","hoverBorder","contrast","unique_pred","unique_eq","unique","sorted","robustDot","planeT","plane","lerpW","wa","wb","splitPolygon","negative","classRe","functionToString","$forEach","tablePlot","TABLE","polybool","Fx","throttle","makeEventData","clearGlCanvases","redrawReglTraces","MINSELECT","filteredPolygon","polygonTester","getAxId","prepSelect","startX","startY","dragOptions","filterPoly","selectionTester","mergedPolygons","currentPolygon","searchInfo","zoomLayer","_zoomlayer","dragBBox","element","path0","pw","xaxes","ph","yaxes","allAxes","altKey","coerceSelectionsCache","BENDPX","outlines","fillRangeItems","corners","throttleID","SELECTID","searchTraces","determineSearchTraces","p2r","p2d","axValue","ascending","dataPts","lassoPoints","filtered","moveFn","selectdirection","xmin","xmax","ymin","ymax","addPt","selectionDefs","mergePolygons","multiTester","drawSelection","SELECTDELAY","thisSelection","traceSelection","traceSelections","fillSelectionItem","updateSelectedState","emit","clickFn","numClicks","evt","clickmode","clearSelectionsCache","selectOnClick","doneFn","doneFnCompleted","xAxes","yAxes","polygonOutlines","currentSelectionDef","thisTracesSelection","pointOrBinSelected","hoverData","_hoverdata","sendEvents","isHoverDataSet","clickedPtInfo","extractClickedPtInfo","isBinnedTrace","pointNumbers","isOnlyThisBinSelected","isOnlyOnePointSelected","isPointOrBinSelected","shiftKey","newPointSelectionDef","allSelectionDefs","isPointSelectionDef","newPointNumTester","pointSelectionDef","omitFirstEdge","idxWantedTrace","idxActualTrace","isRect","degenerate","testers","contained","selectingOnSameSubplot","_lastSelectedSubplot","hasModifierKey","clearSelect","xAxisIds","yAxisIds","_xaxes","_yaxes","info","createSearchInfo","sankeyInfo","paths","ppts","hoverOnBox","hoverDatum","binNumber","ptNum","ptNums","ptNumsSet","ptNumToTest","isSameTrace","tracesWithSelectedPts","fullInputTrace","_fullInput","tracePreGUI","_tracePreGUI","pointIndices","pointIndex","hasRegl","node3","nodeRangePlot3","res","difference","regions","inverted","union","zoomlayer","rationalize","handleArrayContainerDefaults","_hasNumber","_hasDelta","_hasGauge","_range","bignumberFontSize","deltaFontSize","gaugeIn","gaugeOut","axisIn","axisOut","auto","coerceGauge","gauge","coerceGaugeAxis","defaultNumberFontSize","relative","_scaleNumbers","isBullet","_isBullet","_isAngular","defaultBarThickness","valueThickness","handleItemDefaults","stepDefaults","stepIn","stepOut","steps","sizeRef","sizeMin","baseFn","baseSize","interactConstants","numStripRE","titleClass","editAttr","prop","traceIndex","containerGroup","isplaceholder","txt","editable","templateString","elShouldExist","ensureSingle","titleLayout","titleEl","scootTitle","transformVal","fontWeight","previousPromises","titleElIn","titleGroup","backside","shiftSign","titlebb","paperbb","maxshift","maxShift","avoidbb","shiftTemplate","setPlaceholder","SHOW_PLACEHOLDER","HIDE_PLACEHOLDER","allBlankCharCodes","original","locationCache","workingPath","workingTextWidth","segmentsIntersect","x4","y4","det","perpDistance2","xab","yab","llab","xac","yac","fcAB","xbc","ybc","crossProduct","segmentDistance","x12","y12","x34","y34","ll12","ll34","dist2","getTextLocation","totalPathLen","positionOnPath","textWidth","getPointAtLength","atan","pCenter","clearLocationCache","getVisibleSegment","pt0","ptTotal","pTotal","getTotalLength","getDistToPlot","distToPlot","isClosed","diff","iterationLimit","handleXYZDefaults","handleConstraintDefaults","isConstraint","convexHull1d","convexHull2d","convexHullnd","convexHull","ms2DateTime","dateTime2ms","numConstants","FP_SAFE","LOG_CLIP","fromLog","isValidCategory","toLog","clip","dt2ms","msecTenths","msRounded","ms2dt","getCategoryName","setCategoryIndex","_categoriesMap","curLength","setMultiCategoryIndex","arrayIn","arrayOut","getCategoryIndex","getCategoryPosition","p2l","p2c","d2r","l2d","d2p","r2p","r2c_just_indices","setupMultiCategory","traceIndices","matchGroups","_axisMatchGroups","axId2","ind0","ind1","rl0","rl1","r2fraction","rangeAttr","DFLTRANGEY","DFLTRANGEX","rangemode","linCenter","MIN_MS","MAX_MS","usePrivateRange","overlaying","_replotting","isTypedArray","subarray","isPtWithinRange","clearCalc","emptyCategories","found","categoriesMap","_initialCategories","sortByInitialCategories","affectedTraces","_matchGroup","locale","timeFormat","utc","separators","numberFormat","TEXTPAD","pi","tauEpsilon","Path","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","arc","ccw","cw","rect","linkSource","linkTarget","argv","curveHorizontal","linkHorizontal","dragElement","setCursor","makeDragBox","DRAGGERSIZE","initInteractions","mainplot","maindrag","onmousemove","_rehover","_hoversubplot","_lasthover","onmouseout","_dragging","unhover","showAxisDragHandles","hoverLayer","_hoverlayer","onmousedown","cursor","_draggers","az","zOld","rowlen","collen","getCollen","old2new","cleanZvalue","padOld2new","axisMapping","axMapping","traceCategories","xMap","yMap","zNew","getGraphDiv","gdElement","getElementById","isPlotDiv","HTMLElement","removeElement","elParent","removeChild","styleString","addRelatedStyleRule","styleSheet","sheet","insertRule","addRule","deleteRelatedStyleRule","ThaiCalendar","thai","Parser","DOMParser","ModeBar","graphInfo","createModeBar","modeBar","_modebardiv","_privateplot","modeBarId","className","displayModeBar","modebar","bgSelector","activecolor","needsNewButtons","hasButtons","needsNewLogo","hasLogo","displaylogo","needsNewLocale","removeAllButtons","updateButtons","watermark","logoGroup","getLogo","childNodes","updateActiveButton","_this","buttonElements","buttonsNames","buttonGroup","createGroup","buttonConfig","buttonName","createButton","createIcon","question","thisIcon","iconHeight","ascent","descent","svgNS","svgDoc","parseFromString","buttonClicked","dataAttrClicked","thisval","isToggleButton","button3","currentButtons","newplotlylogo","getBuiltIn","subtypes","lonlat2","modHalf","xy","oppAxisAttrs","helpers","rangeslider","calcAutorange","makeData","autoMarginOpts","WeakMapPoly","isValue","ensureValue","randomUniq","getIterator","forOf","toStringTagSymbol","isNative","objHasOwnProperty","iterable","WeakMap","delete","__weakMapData__","handleText","moduleHasSelected","moduleHasUnselected","moduleHasConstrain","moduleHasCliponaxis","moduleHasTextangle","moduleHasInsideanchor","handleGroupingDefaults","posAxId","alignmentOpts","alignmentIndex","offsetGroupOpts","offsetIndex","hasPathbar","hasBoth","hasInside","hasOutside","dfltFont","insideTextFontDefault","isTraceTextfontColorSet","isColorInheritedFromLayoutFont","pathbarTextFontDefault","sizes","isSize","extendDeep","colorAttrs","domainAttrs","axesAttrs","textFontAttrs","gaugeBarAttrs","thickness","items","stepsAttrs","valueformat","reference","INCREASING","SYMBOL","COLOR","DECREASING","float32","float","fract32","fract","narr","compile","CACHE","typeSig","compiled","ops","createTexture2D","linearTypes","filterTypes","wrapTypes","lazyInitLinearTypes","LINEAR","NEAREST_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","NEAREST","NEAREST_MIPMAP_NEAREST","LINEAR_MIPMAP_LINEAR","CLAMP_TO_EDGE","MIRRORED_REPEAT","acceptTextureDOM","HTMLCanvasElement","HTMLImageElement","HTMLVideoElement","ImageData","convertFloatToUint8","inp","reshapeTexture","maxSize","getParameter","MAX_TEXTURE_SIZE","_shape","texImage2D","TEXTURE_2D","_mipLevels","Texture2D","handle","_magFilter","_minFilter","_wrapS","_wrapT","_anisoSamples","wrapVector","wrapS","wrapT","_wrapVector","shapeVector","_shapeVector","isPacked","texSubImageArray","x_off","y_off","mip_level","cformat","ctype","mipLevels","packed","FLOAT","UNSIGNED_BYTE","LUMINANCE","ALPHA","LUMINANCE_ALPHA","RGB","RGBA","needsMip","texSubImage2D","pack_buffer","mallocFloat32","mallocUint8","pack_view","freeFloat32","freeUint8","initTexture","bindTexture","texParameteri","TEXTURE_MIN_FILTER","TEXTURE_MAG_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","createTextureShape","maxTextureSize","getExtension","createTextureDOM","directData","createTextureArray","buf_store","malloc","buf_array","free","raw","minFilter","magFilter","mipSamples","psamples","ext","texParameterf","TEXTURE_MAX_ANISOTROPY_EXT","unit","activeTexture","TEXTURE0","ACTIVE_TEXTURE","deleteTexture","generateMipmap","heatmap","_opts","hasArrayRadius","cOpts","scl","reversescale","flipScale","scl01","color0","addOpacity","heatmapColor","zExp","sortAsc","sorterAsc","snapRatio","snapOvershoot","vAdjacent","snapClose","closeToCovering","ordinalScaleSnap","isHigh","existingRanges","overlappingExisting","aHere","aPrev","nextI","aNext","barHorizontalSetup","captureWidth","backgroundBarHorizontalSetup","setHighlight","brush","filterSpecified","sectionHeight","iNext","pixelRanges","unitToPx","getConsolidated","currentGap","unitRanges","pr","getRegion","fPix","handleHeight","clearCursor","styleHighlight","renderHighlight","tweenCallback","barToStyle","snapDuration","getInterval","active","closestInterval","intervals","pixIntervals","hoveredInterval","previousInterval","nextInterval","region","intervalPix","ordinal","unitTickvals","unitLocation","unitToPaddedPx","rangei","clickableOrdinalRange","dragstart","lThis","sourceEvent","stopPropagation","verticalPadding","unitRange","svgBrush","wasDragged","grabbingBar","pixelRange","grabPoint","barLength","stayingIntervals","multiselect","int2","startExtent","inBrushDrag","brushStartCallback","drag","newExtent","brushCallback","dragend","mousemove","grabLocation","brushClear","brushEndCallback","mergeIntervals","hasNewExtent","attachDragBehavior","preventDefault","behavior","startAsc","renderAxisBrush","axisBrush","highlightShadow","strokeWidth","strokeColor","strokeOpacity","fillColor","fillOpacity","ensureAxisBrush","axisOverlays","getBrushExtent","axisBrushMoved","dedupeRealRanges","currentInterval","makeFilter","consolidated","getBounds","makeBrush","rangeSpecified","initialRange","cleanRanges","sortedTickVals","rSnapped","relinkColorAttrs","outerCont","cbOpt","_colorAx","isAuto","autocolorscale","cbOpts","_colorAxes","bindAttribs","VAOEmulated","_elements","_attributes","_elementsType","UNSIGNED_SHORT","createVAOEmulated","elements","elementsType","drawElements","drawArrays","wellKnownSymbol","V8_VERSION","SPECIES","METHOD_NAME","dictionary","error2","days","shortDays","months","shortMonths","periods","dateTime","decimal","thousands","grouping","currency","dayMonth","dayMonthYear","scatterMarkerAttrs","scatterMarkerLineAttrs","q1","median","q3","lowerfence","upperfence","notched","notchwidth","notchspan","boxpoints","jitter","pointpos","boxmean","mean","sd","quartilemethod","outliercolor","outlierwidth","whiskerwidth","dup","cwiseCompiler","TEMPLATE_CACHE","GRADIENT_CACHE","EmptyProc","thisVars","localVars","centralDiff","pre","post","lvalue","rvalue","zeroOut","generateTemplate","names","generateGradient","boundaryConditions","token","handleBoundary","facet","cod","loStr","hiStr","pickStr","boundStr","bnd","outStr","cPickStr","dPickStr","aPickStr","bPickStr","sfaces","linkNames","linkArgs","bc","cached","byteLength","toByteArray","fromByteArray","revLookup","Arr","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","curByte","tripletToBase64","encodeChunk","uint8","extraBytes","maxChunkLength","len2","objName","hasErrorBars","symmetric","copyAttr","inheritObj","iota","namelength","hasOnlyLines","tinycolor","isValidScale","colorKey","isArrayWithOneNumber","showscale","cmin","cmax","constantAttrs","letterAttrs","colorAx","cont2","k2","_sync","extractScale","sclNew","makeColorScaleFunc","specs","toRgb","sclFunc","_sclFunc","linear","noNumericCheck","returnArray","colorArray2rbga","colorArray","colorObj","toRgbString","function","lineString","_coords","num2bn","numer","denom","snumer","sdenom","cmpn","styleOne","attachFxHandlers","onPathbar","slices","barDifY","viewX","viewY","pathSlice","toMoveInsideSlice","strTransform","hasTransition","handleSlicesExit","makeUpdateSliceInterpolator","makeUpdateTextInterpolator","refRect","eachWidth","_entryDepth","pathIds","listPath","sliceData","packing","inner","descendants","level","getPtId","updateSlices","sliceTop","setSliceCursor","hideOnRoot","hideOnLeaves","isTransitioning","_hoverX","_hoverY","slicePath","attrTween","pt2","transitionTime","CLICK_TRANSITION_TIME","transitionEasing","CLICK_TRANSITION_EASING","_transitioning","hovered","getPtLabel","sliceTextGroup","sliceText","ensureUniformFontSize","determineTextFont","textBB","weakMap","mergeLength","isOpenSymbol","dimensionDefaults","dimIn","dimOut","dimensions","handleAxisDefaults","dimLength","showUpper","showupperhalf","showLower","showlowerhalf","showDiag","diagonal","xAxesDflt","yAxesDflt","diag","_diag","xList","yList","fillAxisStashes","counterAxId","_splomAxes","matches","mustShiftX","mustShiftY","_axesDim","i0","iN","xaId","yaId","_splomSubplots","_splomGridDflt","xside","yside","isOpen","isBubble","getShaderReference","program","createProgram","GLError","SHADER_COUNTER","ShaderReference","programs","cache","ContextCache","deleteProgram","deleteShader","compileShader","shaderSource","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","console","linkProgram","vshader","fshader","attribs","attachShader","bindAttribLocation","getProgramParameter","LINK_STATUS","getProgramInfoLog","getCache","ctxCache","vref","fref","getProgram","isShader","shaderObj","prog","isProgram","containerClassName","bgClassName","rangePlotClassName","maskMinClassName","maskMaxClassName","slideBoxClassName","grabberMinClassName","grabAreaMinClassName","handleMinClassName","grabberMaxClassName","grabAreaMaxClassName","handleMaxClassName","maskMinOppAxisClassName","maskMaxOppAxisClassName","maskColor","maskOppAxisColor","slideBoxFill","slideBoxCursor","grabAreaFill","grabAreaCursor","grabAreaWidth","handleWidth","handleRadius","handleStrokeWidth","extraPad","fromValues","tempA","tempB","cosine","ch","uniq","LiftedPoint","compareLifted","ap","bp","triangulate1D","includePointAtInfinity","lifted","triangulate","upper","dpoints","dindex","hull","arrayEditor","_shapeUpperLayer","_shapeLowerLayer","shapelayer","shapes","drawShape","mainPlot","shapeLayer","getPathString","setClipPath","shapePosition","setupDragElement","shapePath","shapeOptions","clipAxes","setClipUrl","xAnchor","yAnchor","e0","optN","optS","optW","optE","pathIn","dragMode","MINWIDTH","MINHEIGHT","xPixelSized","xsizemode","yPixelSized","ysizemode","isLine","isPath","editHelpers","modifyItem","x2p","getDataToPixel","y2p","p2x","getPixelToData","p2y","sensoryElement","obtainSensoryElement","prepFn","startDrag","endDrag","abortDrag","createLineDragHandles","minSensoryWidth","sensoryWidth","circleStyle","circleRadius","updateDragMode","tagName","clientX","clientY","getCursor","renderVisualCues","deactivateClipPathTemporarily","moveShape","resizeShape","removeVisualCues","getUpdateObj","noOp","moveX","moveY","encodeDate","movePath","newX0","newY0","newX1","newY1","newN","newS","newW","newE","renderAnchor","isNotPath","visualCues","posX","midRange","extractPathCoords","paramIsX","posY","paramIsY","roundPositionForSharpStrokeRendering","crossPath","vBarPath","hBarPath","init","x2r","y2r","shapePositionToRange","decodeDate","convertPath","xAnchorPos","yAnchorPos","rArc","rightPt","topPt","xSizemode","ySizemode","segmentRE","segment","paramNumber","segmentType","xParams","yParams","nParams","numParams","paramString","paramRE","param","micropolar","UndoManager","manager","framework","_gd","previousConfigClone","convertedInput","undoManager","_inputConfig","_container","Axis","adapter","plotly","fillLayout","isPolar","getConfig","getLiveConfig","getLiveScales","angularScale","radialScale","setUndoPoint","configClone","util","cloneJson","_configClone","_previousConfigClone","paperDiv","paper","dflts","toInteger","integer","gapWithPathbar","redefine","setGlobal","copyConstructorProperties","isForced","FORCED","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","internalObjectKeys","enumBugKeys","hiddenKeys","PolyBool","BuildLog","Epsilon","Intersecter","SegmentChainer","SegmentSelector","GeoJSON","buildLog","operate","poly1","poly2","seg1","seg2","comb","seg3","bl","addRegion","calculate","segments1","segments2","i3","combined","inverted1","inverted2","selectUnion","selectIntersect","intersect","selectDifference","selectDifferenceRev","differenceRev","selectXor","xor","polygonFromGeoJSON","toPolygon","polygonToGeoJSON","fromPolygon","bits","UnionFind","il","countVertices","vc","jl","cloneCells","ncells","l1","m1","l0","m0","as","bs","compareZipped","zipped","findCell","incidence","from_cells","to_cells","cl","kn","popCount","dual","vertex_count","skeleton","explode","k0","nextCombination","connectedComponents_dense","components","component_labels","ranks","connectedComponents_sparse","vj","connectedComponents","mesh3dAttrs","fromMesh3d","calcSelection","fixNum","prevGoodNum","serieslen","connectToNext","cNext","vTotal","begR","sumR","difR","drawArrowHead","drawRaw","modifyBase","annClipID","annPosPx","annGroup","annTextGroup","editTextPosition","textEvents","annotationText","annTextGroupInner","hoverOptions","hoverFont","bBoxRef","loneHover","outerContainer","loneUnhover","borderfull","annTextBG","isSizeConstrained","annTextClip","_topclips","annText","textLayout","initialEvent","fullAnnotation","drawGraphicalElements","anchor3","wholeLink","hasMathjax","anntextBB","annWidth","annHeight","outerWidth","outerHeight","shiftFraction","annotationIsOffscreen","letters","basePx","textPadShift","alignPosition","autoAlignFraction","textShift","tailRef","dimAngle","annSizeFromWidth","annSizeFromHeight","annSize","overallShift","posPx","posFraction","arrowLength","maxPx","shiftPlus","shiftMinus","xShift","yShift","texty","textx","setRect","baseTextTransform","drawArrow","headX","headY","tailX","tailY","textX","textY","rotationXYMatrix","applyTransform","apply2DTransform","applyTransform2","apply2DTransform2","xLeft","xRight","yTop","yBottom","edges","strokewidth","arrowColor","arrowSide","arrowGroup","arrow","annotationPosition","arrowDragHeadX","arrowDragHeadY","annx0","anny0","arrowDrag","annxy0","xcenter","ycenter","axref","ayref","notesBox","selectedObj","xUpdate","yUpdate","widthFraction","_xsize","_xshift","heightFraction","_ysize","_yshift","validateSymbol","registry","SymbolPolyfill","for","keyFor","subplotsDone","ip","jp","ni","nj","avgSurrounding","dxp","dxm","dap","dam","dbp","dbm","reldiff","overrelaxation","dmax","tol","resid","itermax","iter","d0","d1","j0","boundaryCnt","newVal","resolveException","is","createErrorBars","IDENTITY","ErrorBars","capSize","lineOffset","updateBounds","cz","orthoFix","pixelScaleF","LINES","FACE_TABLE","emitFace","offsets","inverse","rank","permutation","pinv","unrank","nf","transformQuat","qx","qy","qz","qw","ix","iy","iz","iw","gup","svgUtil","raiseToTop","cancelEeaseColumn","cancelTransition","prepareData","splitData","roundHalfWidth","maxLineWidth","scrollAreaBottomClipKey","columnBoundaryClipKey","specIndex","flatData","__data__","renderScrollbarKit","bypassVisibleBar","calcTotalHeight","blocks","rowBlocks","firstRowAnchor","rowsHeight","scrollbarState","totalHeight","scrollableAreaHeight","groupHeight","headerHeight","currentlyVisibleHeight","barWiggleRoom","wiggleRoom","topY","scrollY","bottomY","dragMultiplier","xPosition","columnDragInProgress","bbox","pixelVal","inverseScale","makeDragRow","origin","scrollbarScrollInProgress","renderColumnCellTree","allColumnBlock","renderColumnCells","renderColumnCell","supplyStylingValues","renderCellRect","sizeAndStyleRect","renderCellTextHolder","renderCellText","setFont","populateCellText","setCellHeightAndPositionY","splitToCells","keyWithinBlock","spec","col","column","gridPick","rowNumber","cellBorderWidth","columnWidth","atomicSelection","userSuppliedContent","stringSupplied","hasBreaks","userBrokenText","mayHaveMarkup","latex","isLatex","hasWrapSplitCharacter","textToRender","prefixSuffixedText","wrappingNeeded","wrapped","hasWrapCharacter","cellHeightMayIncrease","needsConvertToTspans","hrefPreservedText","fragments","hrefRestoredFragments","frag","fragment","renderCallback","wrapTextMaker","updateYPositionMaker","content","columnMoved","gdColumnsOriginalOrder","gdColumns","columnorder","easeColumn","cellsBlock","headerBlock","headerBlocks","auxiliaryBlocks","findPagesAndCacheHeights","scrollHeight","pages","pTop","blockIndex","block","blockRows","rows","rowHeight","allRowsHeight","pBottom","windowTop","windowBottom","updateBlockYPosition","cellsColumnBlock","page","yTranslate","conditionalPanelRerender","prevPages","allTableControlView","optionalMultiplier","optionalPosition","eventD","dd","multiplier","initialScrollY","revolverIndex","shouldComponentUpdate","currentRepaint","toRerender","getComputedTextLength","currentAddition","currentAdditionLength","separatorLength","rest","currentRow","currentRowLength","rowLengthLimit","settledY","getBlock","rowIndex","firstRowIndex","declaredRowHeight","requiredHeight","finalHeight","increase","columnCellElement","box","rectBox","currentTransform","baseVal","consolidate","yPosition","optionalWidth","rowAnchor","yOffset","getRow","rowBlock","wrappedTraceHolders","dynamic","wrappedTraceHolder","traceHolder","translateX","translateY","cvEnter","wheeling","newY","deltaY","noChange","vm","columns","movedColumn","sortableColumns","newOrder","xIndex","xScale","splitToPanels","dragHandle","headerColumnBlock","scatterGlAttrs","cartesianIdRegex","markerLineAttrs","markerAttrs","makeAxesValObject","freeLength","hoverOn","bx","by","bz","tickLen","tickWidth","tickColor","showTicks","createLines","Lines","vbo","lineVert","lineFrag","screenBox","drawLine","endX","endY","ctor","superCtor","super_","writable","configurable","TempCtor","createUniformWrapper","createAttributeWrapper","makeReflect","shaderCache","runtime","Shader","lastAttribCount","_vref","_fref","_relink","vertShader","fragShader","compareAttributes","vertSource","fragSource","newAttribCount","ACTIVE_ATTRIBUTES","oldAttribCount","enableVertexAttribArray","disableVertexAttribArray","useProgram","pvref","VERTEX_SHADER","pfref","testProgram","attributeUnpacked","attributeNames","attributeLocations","locVector","curLocation","uniformLocations","relink","getUniformLocation","vectorfield","vertexIntensityBounds","coneOffset","p2","u2","positionVectors","vectorScale","skipIt","minV","maxV","invertedMaxNorm","coneScale","coneSize","absoluteConeSize","intensity","createConeMesh","getDimIndex","visibleDims","_visibleDims","vmin","vmax","createScatter","createLine","createError","Text","prepareRegl","linkTraces","styleTextSelection","getViewport","cdata","success","regl","_glcanvas","error2d","line2d","scatter2d","fill2d","glText","textsToAdd","textsToRemove","removedTexts","textOptions","lineOptions","srcPos","firstptdef","lastptdef","errorBatch","errorXOptions","errorYOptions","markerOptions","fillOrder","fillOptions","fillData","nextTrace","nextOptions","nextPos","xx","yy","prevLinePos","hole","fillmode","selectMode","clickSelectEnabled","selPts","selIndices2selPoints","selDict","unselPts","xpx","ypx","unselOpts","markerUnselectedOptions","markerSelectedOptions","vpRange0","vpRange","bottomText","withColorscale","headerSize","_hovered","pathbar","_sankey","graph","partOfGroup","globalWindow","mozRequestAnimationFrame","webkitRequestAnimationFrame","forEachElement","isCollectionTyped","jQuery","Elements","getElementSize","offsetWidth","offsetHeight","setStyle","ResizeSensor","EventQueue","sizeInfo","newQueue","attachResizeEvent","resized","resizedAttached","resizeSensor","pointerEvents","zIndex","maxWidth","styleChild","expand","expandChild","shrink","shrinkChild","rafId","computedStyle","getComputedStyle","getPropertyValue","lastWidth","lastHeight","initialHiddenCheck","lastAnimationFrame","resetExpandShrink","scrollLeft","scrollTop","invisible","resetSensor","onResized","onScroll","addEvent","cb","attachEvent","elem","detach","mutations","addedNodes","childList","subtree","hasHover","matchMedia","version","userAgent","v8","INTERPTHRESHOLD","NEIGHBORSHIFTS","correctionOvershoot","maxFractionalChange","iterateInterp2d","emptyPoints","overshoot","neighborShift","neighborRow","neighborVal","neighborSum","initialVal","minNeighbor","maxNeighbor","negate","PersianCalendar","epBase","epYear","depoch","cycle","cyear","ycycle","aux1","aux2","yday","persian","jalali","PlotSchema","plotAttributes","dfltConfig","mergeTemplates","oldTemplate","newTemplate","oldKeys","mergeOne","oldVal","templater","arrayTemplater","_template","item","oldItem","newItem","defaultItems","templateitemname","getBaseKey","key2","baseKey2","walkStyleKeys","templateOut","getAttributeInfo","basePath","pathAttr","nextPath","getNextPath","nextBasePath","baseKey","_noTemplating","_isLinkedToArray","dfltDone","namedIndex","usedNames","dfltKey","arrayDefaultKey","dfltPath","pathInArray","itemPropInArray","dfltProp","templateProp","getLayoutInfo","getLayoutValObject","getTraceInfo","getTraceValObject","hasPlainObject","templateCount","makeTemplate","figure","_basePlotModules","_modules","template","traceTemplate","typeTemplates","oldTypeTemplates","oldTypeLen","typeLen","oldLayoutTemplate","oldDataTemplate","validateTemplate","figureIn","layoutTemplate","dataTemplate","errorList","layoutPaths","crawlLayoutForContainers","nextPaths","crawlLayoutTemplateForContainers","typeCount","crawlForMissingTemplates","stringifyFont","defaultChars","atlas","chars","newchars","textAlign","textBaseline","colorway","compressExpansion","attributeTextFont","attributeInsideTextFont","attributeOutsideTextFont","barcount","stylePoints","pointStyle","determineFont","stylePointsInSelectionMode","selectedPointStyle","styleTextInSelectionMode","txs","selectedFontColor","selectedTextStyle","layoutFont","textFont","barColor","getBarColor","getInsideTextFont","getOutsideTextFont","getTextFont","defaultValue","getFontValue","defaultFont","wouldFallBackToLayoutFont","attributeDefinition","attributeValue","familyValue","getValue","sizeValue","colorValue","coerceString","coerceNumber","coerceColor","targetDepth","depth","justify","sourceLinks","targetLinks","_typeof","ascendingSourceBreadth","ascendingBreadth","ascendingTargetBreadth","partOfCycle","circularLinkType","nodeCenter","linkSourceCenter","linkTargetCenter","defaultId","defaultNodes","defaultLinks","getNodeID","verticalMargin","baseRadius","sankeyCircular","paddingRatio","circularLinkGap","sortNodes","computeNodeLinks","identifyCircles","computeNodeValues","computeNodeDepths","selectCircularLinkTypes","computeNodeBreadths","computeLinkBreadths","linkSortingIterations","iteration","sortSourceLinks","sortTargetLinks","resolveNodeLinkOverlaps","fillHeight","addCircularPathData","circular","getCircleMargins","totalTopLinksWidth","totalBottomLinksWidth","totalRightLinksWidth","totalLeftLinksWidth","maxColumn","scaleSankeySize","currentWidth","currentHeight","newWidth","newHeight","scaleX","scaleY","sortKeys","initializeNodeBreadth","resolveCollisions","relaxLeftAndRight","thisPadding","ky","nodesLength","numberOfNonSelfLinkingCycles","columnsLength","nodeHeight","avg","avgTargetY","avgSourceY","y0cycle","y1cycle","nodeAlign","nodeWidth","nodePadding","nodePaddingRatio","circularLinkID","adjList","cycles","circularLinks","numberOfTops","numberOfBottoms","selfLinking","linkAngle","circularLinksCross","link1","link2","sourceCount","targetCount","onlyCircularLink","nodeSourceLinks","nodeTargetLinks","calcVerticalBuffer","sortLinkColumnAscending","circularPathData","verticalBuffer","bufferOverThisLink","topLinks","bottomLinks","arcRadius","leftNodeBuffer","rightNodeBuffer","sourceWidth","sourceX","targetX","sourceY","targetY","leftSmallArcRadius","leftLargeArcRadius","rightSmallArcRadius","rightLargeArcRadius","verticalFullExtent","verticalLeftInnerExtent","verticalRightInnerExtent","thisColumn","thisCircularLinkType","sameColumnLinks","sortLinkSourceYDescending","sortLinkSourceYAscending","radiusOffset","sortLinkTargetYDescending","sortLinkTargetYAscending","leftInnerExtent","rightInnerExtent","leftFullExtent","rightFullExtent","createCircularPathString","normalPath","pathString","linkColumnDistance","linkXLength","linkPerpendicularYToLinkSource","longerLink","shorterLink","heightFromY1ToPependicular","yPerpendicular","incline","linkPerpendicularYToLinkTarget","columnToTest","maxColumnToTest","numberOfColumnsToTest","B0_t","B1_t","B2_t","B3_t","py_t","linkY0AtColumn","linkY1AtColumn","adjustNodeHeight","otherNode","nodesOverlap","nodeA","nodeB","sankeyY0","sankeyY1","moveNodes","nodesSourceLinks","nodeSourceLinksLength","sameInclines","link2Adj","link1Adj","ySourceOffset","offsetFromBottom","nodesTargetLinks","nodesTargetLinksLength","yTargetOffset","minY0","maxY1","chartHeight","ASCEND","SIMPLEATTR","baseAttr","relativeAttr","compileSearch","predicate","reversed","extraArgs","useNdarray","earlyOut","compileBoundsSearch","ge","eq","convertTypedArray","isOrdinal","ses","ok","weakMapPermitHostObjects","doubleWeakMapCheckSilentFailure","HostWeakMap","navigator","testMap","testObject","freeze","gopn","defProp","isExtensible","HIDDEN_NAME_PREFIX","HIDDEN_NAME","crypto","getRandomValues","ArrayBuffer","ab","u8s","u8","isNotHiddenName","originalGetPropertyNames","getPropertyNames","oldFreeze","getHiddenRecord","oldSeal","seal","oldPreventExtensions","preventExtensions","calledAsFunctionWarningDone","OurWeakMap","calledAsFunctionWarning","get___","opt_default","hiddenRecord","has___","set___","delete___","lastIndex","constFunc","DoubleWeakMap","dset","hmap","omap","enableSwitching","dget","dhas","ddelete","permitHostObjects___","Proxy","mapLegacy","oldAttr","newAttr","_xlength","_ylength","surfaceColor","dims","contourDim","getOwnPropertyDescriptors","descriptors","formatRegExp","isString","inspect","JSON","stringify","isNull","isObject","deprecate","noDeprecation","warned","deprecated","throwDeprecation","traceDeprecation","debugEnviron","debugs","stylize","stylizeNoColor","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","styles","arrayToHash","hash","recurseTimes","ret","primitive","formatPrimitive","visibleKeys","isError","formatError","isRegExp","isDate","braces","toUTCString","formatArray","formatProperty","reduceToSingleString","simple","isNumber","desc","cur","numLinesEst","ar","isNullOrUndefined","isSymbol","objectToString","isPrimitive","debuglog","NODE_DEBUG","toUpperCase","timestamp","getMinutes","getSeconds","inherits","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","callbackify","callbackified","maybeCb","rej","promisify","promiseResolve","promiseReject","custom","solveIntersection","ratMul","ratDiv","ratSub","ratSign","rvSub","rvAdd","rvMuls","ratPerp","ba","dc","baXdc","ac","dcXac","contourAttrs","contourContourAttrs","atype","btype","autocontour","ncontours","showlines","showlabels","labelfont","labelformat","reg","compareAngle","robustProduct","testInterior","bcd","sabc","sabd","ic","abc","abd","createBackgroundCube","bg","BackgroundCube","Uint16Array","ELEMENT_ARRAY_BUFFER","normal","needsBG","POLYGON_OFFSET_FILL","polygonOffset","TRIANGLES","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","toObject","shouldUseNative","test1","test2","order2","test3","letter","symbols","to","drawModule","includeBasePlot","rs","rd","rc","rc2","ne","se","sw","nw","rt","r2","pentagon","hexagon","hexagon2","octagon","star","y5","hexagram","aPart","rp","hourglass","noDot","bowtie","needLine","noFill","asterisk","str2RGBArray","SpikeOptions","drawSides","createSpikeOptions","merge","spikecolor","spikesides","spikethickness","isIterable","histogram2dAttrs","GeoPoly","LineString","ls","eps","regionInsideRegion","pointInsideRegion","roots","addChild","forceWinding","winding","last_x","last_y","curr_x","curr_y","isclockwise","geopolys","addExterior","getInterior","barPlot","clearMinTextSize","plotConnectorRegions","cdModule","traceLayer","isHorizontal","connectors","getXY","layerClipId","plotConnectorLines","sAxis","pAxis","nextS0","nextP0","nextS1","nextP1","funnelmode","funnelgap","funnelgroupgap","hasClickToShow","sets","getToggleSets","explicitOff","onClick","toggleSets","onSet","offSet","annotationsOut","anni","showMode","pointj","toggleType","explicitOffSet","hoverLen","clicktoshow","clickData2r","_xclick","_yclick","constraintMapping","endPlus","contoursFinal","_operation","cs","pathinfo","basePathinfo","ci","crossings","starts","edgepaths","toLogRange","newType","doExtra","attrPrefix","currentVal","boxIntersectIter","bruteForce","bruteForcePartial","partial","bruteForceFull","full","sweep","BRUTE_FORCE_CUTOFF","SCAN_CUTOFF","SCAN_COMPLETE_CUTOFF","partitionInteriorContainsInterval","partitionStartEqual","partitionEndLessThanEqual","partitionContainsPoint","partitionContainsPointProper","IFRAME_SIZE","DFRAME_SIZE","INIT_CAPACITY","BOX_ISTACK","mallocInt32","BOX_DSTACK","mallocDouble","iterInit","levels","log2","maxInts","nextPow2","maxDoubles","iterPush","redStart","redEnd","blueStart","blueEnd","iptr","dptr","onePointPartial","red","redIndex","blueOffset","blue","blueId","bluePtr","blueX","red_loop","redPtr","retval","redId","onePointFull","initFull","xSize","xBoxes","ySize","yBoxes","yIndex","blueIndex","redCount","blueCount","scanComplete","scanBipartite","red0","sweepBipartite","blue0","blue1","red1","redX","sweepComplete","generateSolver","robustLinearSolve0d","robustLinearSolve1d","A","generateDispatch","toNumber","normalized","fromNumber","plotConnectors","isSum","waterfallmode","waterfallgap","waterfallgroupgap","boxLayoutAttrs","violinmode","boxmode","violingap","boxgap","violingroupgap","boxgroupgap","Loggers","pushUnique","ExtendModule","basePlotAttributes","baseLayoutAttributes","registerTraceModule","thisType","categoriesIn","subplotsRegistry","registerSubplot","categoryObj","allCategories","componentName","allTypes","componentsRegistry","mergeComponentAttrsToTrace","traceLayoutAttributes","bpmName","styleRules","plotType","findArrayRegexps","mergeComponentAttrsToSubplot","registerComponentModule","layoutArrayContainers","subplotName","transformType","transformsRegistry","mergeComponentAttrsToTransform","registerTransformModule","hasTransform","hasCalcTransform","calcTransform","registerLocale","baseLocale","newDict","newFormat","hasDict","hasFormat","locales","localeRegistry","localeObj","baseLocaleObj","arrayAttrRegexps","_arrayAttrRegexps","layoutArrayRegexes","componentSchema","traceAttrs","transformAttrs","subplotModule","subplotAttrs","subplotAttr","componentLayoutAttrs","getTraceType","apiMethodRegistry","collectableSubplotTypes","newModule","getModule","getTransformIndices","appVersion","hasX","hasY","_cheater","flattenVertexData","dstLength","containerArrayName","cartesianList","hasCartesianOrGL2D","itemi","hasXref","hasYref","newAxis","definePropertyModule","anObject","objectKeys","Properties","inheritColorFromMarker","markerLineColor","glslify","triVertSrc","triFragSrc","edgeVertSrc","edgeFragSrc","pointVertSrc","pointFragSrc","pickVertSrc","pickFragSrc","pickPointVertSrc","contourVertSrc","contourFragSrc","meshShader","wireShader","pointShader","pointPickShader","contourShader","getTraceColor","minRad","kink","dxRaw","dyRaw","dxy","distfn","getDistanceFunction","getClosest","xc","yc","sizeVal","sNorm","spikeDistance","xCross","polygonsIn","inside","yAvg","maxHoverDistance","pieCalc","assert","endian","isBN","_init","Buffer","wordSize","parseHex","parseBase","_initNumber","_initArray","_parseHex","_parseBase","strip","toArray","limbLen","limbPow","word","imuln","_iaddn","_expand","_normSign","zeros","groupSizes","groupBases","toBitArray","bitLength","bit","wbit","smallMulTo","carry","ncarry","rword","maxJ","groupSize","groupBase","isZero","modn","idivn","toJSON","toBuffer","toArrayLike","ArrayType","reqLength","littleEndian","andln","iushrn","clz32","_countBits","_zeroBits","zeroBits","toTwos","inotn","iaddn","fromTwos","testn","notn","ineg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","uxor","bytesNeeded","bitsLeft","setn","iadd","isub","comb10MulTo","al0","ah0","al1","ah1","a2","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","bl0","bh0","bl1","bh1","bl2","bh2","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","bigMulTo","hncarry","jumboMulTo","fftm","FFTM","mulp","mulTo","makeRBT","revBin","rb","permute","rbt","rws","iws","rtws","itws","rtwdf","itwdf","rtwdf_","itwdf_","ie","ro","io","guessLen13b","odd","conjugate","normalize13b","ws","convert13b","stub","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","iushln","carryMask","newCarry","ishln","hint","extended","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","bhi","bhiBits","qj","divmod","divn","umod","divRound","dm","half","acc","egcd","B","C","D","isEven","im","isOdd","jm","_invmp","invm","bincn","ucmp","gtn","gten","gte","ltn","lten","lte","eqn","Red","toRed","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","outLen","mod3","one","nOne","lpow","inv","windowSize","wnd","currentLen","mont","resetOpts","textSelectedOptions","textUnselectedOptions","initOpts","findZeroCrossings","core","µ","inputConfig","liveConfig","axisConfig","datum","_data","_index","dataOriginal","colorIndex","defaultColorRange","darker","strokeDash","strokeSize","isStacked","dataWithGroupId","grouped","nest","dataYStack","stacked","prevArray","yStack","sumArrays","chartCenter","highestStackedValue","arrayLast","flattenArray","DATAEXTENT","angularDataMerged","deduplicate","hasOnlyLineOrDotPlot","needsEndSpacing","useProvidedDomain","angularDomain","angularDomainStep","angularDomainWithPadding","tickCount","ticksCount","ticksStep","angularTicksStep","minorTicks","angularAxisRange","toPrecision","endPadding","doc","ownerDocument","importNode","documentElement","legendContainer","chartGroup","lineStyle","fontStyle","outlineColor","showLegend","display","datumClone","dotType","visibleInLegend","Legend","legendConfig","defaultConfig","reverseOrder","legend","legendBBox","getBBox","centeringOffset","titleBBox","gridLinesVisible","gridCircles","backgroundCircle","backgroundColor","currentAngle","tickSize","ticksSuffix","tickOrientation","angularAxisEnter","minorTickColor","tickLength","ticksText","labelOffset","labelsVisible","rewriteTicks","rightmostTickEndX","getCTM","hasGeometry","geometryContainer","geometryConfigs","geometryConfig","dB","iB","geometryConfigsGrouped","geometryConfigsGrouped2","finalGeometryConfig","angularValue","radialValue","guides","tooltipContainer","angularTooltip","tooltipPanel","radialTooltip","geometryTooltip","hasTick","angularGuideLine","mouseAngle","getMousePos","angleWithOriginOffset","convertToCartesian","angularGuideCircle","hide","newColor","textData","xClone","getinputConfig","category10","AREA","LINE","DOT","BAR","_override","_objA","_objB","_rndSnd","dataFromEquation2","_equation","_step","dataFromEquation","ensureArray","_val","_count","fillArrays","_obj","_valueNames","parse","validateKeys","objHasKeys","zip","arrayEqual","thetaRadians","_value","_digits","_referenceElement","mousePos","mouseX","mouseY","atan2","duplicatesCount","uniques","dups","duplicates","translator","sourceBranch","targetBranch","targetBranchCopy","previousValue","currentValue","PolyChart","colorScale","isStack","domainMin","pI","dataConfig","stackTop","stackedData","dotSize","getPolarCoordinates","radial","interpolate","lineInterpolation","dotVisible","markStyle","lineSelection","angularRange","triangleAngle","startAngle","endAngle","innerRadius","outerRadius","geometryLayer","polarCoordinates","geometryType","getColorScale","category20","BarChart","AreaChart","DotPlot","flattenData","isContinuous","legendContainerGroup","svgEnter","dataNumbered","shapeGenerator","_type","squareSize","symbolTypes","colorBandWidth","legendElement","symbolType","legendAxis","textColor","tooltipEl","tooltipTextEl","backgroundEl","tooltipEnter","boxStyle","backGroundW","backGroundH","_pos","outputConfig","toTranslate","traceorder","funnels","funnelsVert","funnelsHorz","funnelnorm","minVal","maxVal","vertexShaderSource","fragmentShaderSource","maxDim","depthLimitEpsilon","maskHeight","dummyPixel","dataPixel","paletteTextureConfig","ensureDraw","read","_gl","SCISSOR_TEST","scissor","renderBlock","glAes","renderState","blockLineCount","sampleCount","rafKey","blockNumber","currentRafs","scissorX","scissorY","scissorWidth","viewBoxSize","clearOnly","drawCompleted","adjustDepth","palette","unitToColor","calcPickColor","rgbIndex","makePoints","paddedUnitValues","makeVecAttr","vecIndex","pointPairs","pad2","getAttrName","setAttributes","emptyAttributes","usage","makeItem","leftmost","rightmost","itemNumber","panelSizeX","panelSizeY","crossfilterDimensionIndex","drwLayer","constraints","canvasOverdrag","canvasWidth","canvasHeight","deselectedLinesColor","deselectedLines","itemModel","resolution","viewBoxPos","dim0A","dim0B","dim0C","dim0D","dim1A","dim1B","dim1C","dim1D","contextColor","layoutWidth","layoutHeight","scissorHeight","viewportX","viewportY","viewportWidth","viewportHeight","expandedPixelRange","dh","canvasGL","initialDims","maskTexture","isContext","isPick","paletteTexture","prevAxisOrder","profile","srcRGB","dstRGB","srcAlpha","dstAlpha","equation","cull","face","dither","loA","hiA","loB","hiB","loC","hiC","loD","hiD","dNew","viewModel","makeConstraints","limits","bitMask","prevEnd","nextRange","textureData","renderGLParcoords","panels","setChanged","panelCount","lowestX","highestX","dim0","canvasX","dim1","canvasY","nextX","readPixel","readPixels","pixelArray","meta_1","RADIUS","geomReduce","geom","calculateArea","polygonArea","ringArea","p3","lowerIndex","middleIndex","upperIndex","coordsLength","AX_ID_PATTERN","axNum","AX_NAME_PATTERN","only2d","idList","idi","sceneIds3D","zaxis","subplotLists","id1","id2","letter1","letter2","makeComputeErrorValue","dataPt","arrayminus","valMinus","computeErrorValue","computeErrorValueMinus","valueminus","scatterFormatLabels","headerGroupClassName","headerClassName","headerArrowClassName","dropdownButtonGroupClassName","dropdownButtonClassName","buttonClassName","itemRectClassName","itemTextClassName","menuIndexAttrName","autoMarginIdRoot","blankHeaderOpts","minWidth","minHeight","textPadX","arrowPadX","textOffsetX","textOffsetY","arrowOffsetX","gapButtonHeader","gapButton","activeColor","hoverColor","arrowSymbol","down","vectorizeText","getGlyph","GLYPH_CACHE","fontCache","lineSpacing","styletags","breaklines","bolds","italics","subscripts","superscripts","triSymbol","lineSymbol","bnsign","parseRect","parcats","parcatsModels","IslamicCalendar","islamic","treemapcolorway","extendtreemapcolors","crawl","objIn","objOut","valIn","valOut","nestedSchema","getNestedSchema","isInfoArray","isColorscale","isInSchema","valInPart","valOutPart","arrayItems","validate","_p","_nestedSchema","indexList","valInj","valOutj","fillLayoutSchema","dataOut","layoutSchema","traceSchema","traceLayoutAttr","dataIn","transformsIn","transformsOut","transformSchema","code2msgFunc","inBase","unused","convertPathToAttributeString","splitKey","keyMinusId","idMatch","mapboxgl","createMapboxLayer","Mapbox","_glcontainer","isStatic","createFramework","accessToken","styleObj","traceHash","layerList","belowLookup","dragging","accesstoken","updateMap","createMap","getStyleObj","Map","convertCenter","bearing","pitch","interactive","doubleClickZoom","boxZoom","attributionControl","addControl","AttributionControl","compact","_canvas","rejectOnError","initFx","once","fillBelowLookup","updateData","updateLayout","resolveOnRender","hasTraceAtTop","getBelow","val2list","traceType2orderIndex","choroplethmapbox","densitymapbox","scattermapbox","styleValuesMapbox","convertStyleVal","stylesNonMapbox","styleValueDflt","styleUrlPrefix","styleUrlSuffix","traceObj","calcDataSorted","idLoop","setCenter","setZoom","setBearing","setPitch","updateLayers","updateFramework","resize","_scrollZoom","scrollZoom","onRender","loaded","handler","mapOnErrorMsg","emitUpdate","viewNow","getView","getViewEditsWithDerived","fullLayoutNow","originalEvent","optsNow","_preGUI","getViewEdits","lngLat","lng","onClickInPanFn","clickMode","oldDragOptions","onClickInPanHandler","dragPan","pxpy","unproject","getCanvas","setOptions","getMapLayers","getStyle","addLayer","mapLayers","LngLat","mapCenter","getCenter","getZoom","getBearing","getPitch","_derived","open","high","low","close","configAttributes","plotlyServerURL","annotationTail","axisTitleText","colorbarPosition","colorbarTitleText","legendPosition","legendText","titleText","autosizable","responsive","fillFrame","frameMargins","doubleClick","doubleClickDelay","showAxisRangeEntryBoxes","showTips","showLink","linkText","noBlank","sendData","showSources","showSendToCloud","showEditInChartStudio","modeBarButtonsToRemove","modeBarButtonsToAdd","setBackground","topojsonURL","mapboxAccessToken","logging","notifyOnLogging","queueLength","globalTransforms","SHADERS","Pointcloud2D","offsetBuffer","pickBuffer","sizeMinCap","sizeMax","areaRatio","pointCount","pickOffset","createPointcloud2D","dataBox","visiblePointCountEstimate","pointVertex","pointFragment","pickVertex","pickFragment","addObject","removeObject","dataStraightThrough","idStraightThrough","idToIndex","Int32Array","packedId","unifiedDraw","MATRIX","PICK_VEC4","dataX","dataY","basicPointSize","pickPixelRatio","pointCloud","pointSize","centerFraction","DITHER","POINTS","pointId","dataCoord","calcHover","maxDistance","minDist","ptx","pty","dist","coordEach","bardir","createThunk","Procedure","argTypes","shimArgs","arrayBlockIndices","offsetArgs","offsetArgIndex","indexArgs","shapeArgs","debug","compileCwise","user_args","proc_args","arg_type","blockIndices","printCode","blockSize","m4interp","invert44","rotateX","rotateY","rotateZ","lookAt","translate","DEFAULT_CENTER","MatrixCameraController","initialMatrix","_components","prevMatrix","nextMatrix","computedMatrix","computedInverse","computedEye","computedUp","computedCenter","computedRadius","_limits","createMatrixCameraController","recalcMatrix","tidx","mat","comps","dt","imat","idle","lastT","setMatrix","yaw","roll","tvec","dz","setDistance","setDistanceLimits","lim","getDistanceLimits","hasColorbar","colorbarDefaults","npMaybe","parentCont","colorScaleDefaults","parentContIn","parentContOut","inTrace","thisFn","colorAxes","colorbarVisuals","minIn","maxIn","validMinMax","autoColorscaleDflt","sclIn","sclTemplate","showScale","handleABDefaults","_clipPathId","validData","coordDefaults","coordStr","coordType","isValidZ","allRowsAreArrays","oneRowIsFilled","hasOneNumber","xName","yName","handleLabelDefaults","showLines","_dfltShowLegend","pz","sc","cc","getDelay","getRedrawFunc","hasPolar","hasLegacyPolar","encodeSVG","encodeURIComponent","DOM_URL","URL","webkitURL","fixBinary","createObjectURL","blob","revokeObjectURL","createBlob","Blob","binary","atob","octetStream","IMAGE_URL_PREFIX","MSG_IE_BAD_FORMAT","initial","IntersectionObserver","isIntersecting","disconnect","leading","trailing","maxWait","modifiers","$el","$once","offsetParent","__visibility__listener__","debounce","inserted","__e","__g","F","G","W","virtual","U","valueOf","rootBounds","boundingClientRect","intersectionRect","intersectionRatio","_checkForIntersections","THROTTLE_TIMEOUT","_observationTargets","_queuedEntries","_rootMarginValues","_parseRootMargin","rootMargin","thresholds","_initThresholds","detatchEvent","host","IntersectionObserverEntry","POLL_INTERVAL","USE_MUTATION_OBSERVER","some","_registerInstance","_monitorIntersections","unobserve","_unmonitorIntersections","_unregisterInstance","takeRecords","_monitoringIntersections","_monitoringInterval","_domObserver","_rootIsInDom","_getRootRect","_rootContainsTarget","_computeTargetAndRootIntersection","_hasCrossedThreshold","_expandRectByRootMargin","padAttrs","buttonsAttrs","args2","showactive","borderLine","insertBlank","hasAnyBlanks","posAttr","newEntry","prevEntry","getInterp","pt1","subplotStackOpts","_scatterStackOpts","posj","sumj","groupOpts","valAttr","stackGroup","allPositions","_rawLength","cdj","arrayPad","ppadRaw","calcAxisExpansion","relinkPrivateKeys","toContainer","fromContainer","fromVal","toVal","minLen","platform","arch","execPath","browser","env","binding","cwd","chdir","kill","umask","dlopen","uptime","memoryUsage","uvCounters","NOT_FOUND","SUCCESS","EMPTY","IntervalTreeNode","leftPoints","rightPoints","createWrapper","rebuild","ntree","createIntervalTree","rebuildWithInterval","rebuildWithoutInterval","reportLeftRange","reportRightRange","reportRange","compareNumbers","compareBegin","compareEnd","leftIntervals","rightIntervals","centerIntervals","IntervalTree","rw","lw","queryPoint","queryInterval","tproto","Events","FROM_TL","FROM_BR","getLegendData","clickOrDoubleClick","legendItem","evtData","curveNumber","expandedIndex","frames","_frames","_group","clickVal","triggerHandler","_clickTimeout","_legendMouseDownTime","dblClickVal","drawTexts","isPieLike","isEditable","maxNameLength","_maxNameLength","textEl","ensureLength","textGap","newName","fullInput","groupbyIndices","kcont","keyedContainer","constructUpdate","targetLength","setupTraceToggle","newMouseDownTime","traceToggle","getTime","_dragged","computeTextDimensions","mathjaxNode","bw","mathjaxBB","textLines","textNode","titlePad","_titleWidth","_titleHeight","getTitleSize","computeLegendDimensions","isVertical","isGrouped","bw2","itemGap","endPad","getYanchor","isBelowPlotArea","isAbovePlotArea","_maxHeight","toggleRectWidth","_height","titleSize","tracegroupgap","_lgroupsLength","getXanchor","isLeftOfPlotArea","isRightOfPlotArea","isBeyondPlotAreaY","hw","_maxWidth","maxItemWidth","combinedItemWidth","maxRowWidth","maxGroupHeightInRow","groupOffsetX","groupOffsetY","maxWidthInGroup","offsetY","oneRowLegend","maxItemHeightInRow","offsetX","rowWidth","_effHeight","expandMargin","isRightAnchor","isCenterAnchor","isBottomAnchor","isMiddleAnchor","legendData","hiddenSlices","hiddenlabels","_topdefs","clipPath","ensureSingleById","scrollBox","scrollBar","scrollBarEnterAttrs","scrollBarColor","lx","ly","autoexpand","lx0","ly0","_scrollY","eventY0","eventY1","scrollBoxY0","scrollBarHeight","scrollBarMinHeight","scrollBarYMax","scrollBarMargin","scrollBoxYMax","scrollRatio","scrollBoxY","scrollBarWidth","scrollHandler","getScrollBarDragY","getNaturalDragY","scrollBarDrag","changedTouches","ctrlKey","scrollBoxTouchDrag","clickedTrace","scatterLineAttrs","newPlot","restyle","relayout","_guiRestyle","_guiRelayout","_guiUpdate","_storeDirectGUIEdit","react","extendTraces","prependTraces","addTraces","deleteTraces","moveTraces","purge","addFrames","deleteFrames","animate","setPlotConfig","downloadImage","templateApi","FRAMEBUFFER_UNSUPPORTED","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","colorAttachmentArrays","saveFBOState","fbo","FRAMEBUFFER_BINDING","rbo","RENDERBUFFER_BINDING","TEXTURE_BINDING_2D","restoreFBOState","bindRenderbuffer","RENDERBUFFER","lazyInitColorAttachments","maxColorAttachments","MAX_COLOR_ATTACHMENTS_WEBGL","COLOR_ATTACHMENT0","NONE","throwFBOError","attachment","framebufferTexture2D","initRenderBuffer","component","createRenderbuffer","renderbufferStorage","framebufferRenderbuffer","rebuildFBO","createFramebuffer","numColors","_ext","useStencil","_useStencil","useDepth","_useDepth","colorType","_colorType","_color_rb","RGBA4","drawBuffersWEBGL","WEBGL_depth_texture","UNSIGNED_INT_24_8_WEBGL","DEPTH_STENCIL","DEPTH_STENCIL_ATTACHMENT","DEPTH_COMPONENT","DEPTH_ATTACHMENT","_depth_rb","DEPTH_COMPONENT16","STENCIL_INDEX","STENCIL_ATTACHMENT","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","_destroyed","deleteFramebuffer","deleteRenderbuffer","Framebuffer","0","reshapeFBO","maxFBOSize","MAX_RENDERBUFFER_SIZE","WEBGL_draw_buffers","OES_texture_float","stencil","ternaryAxesAttrs","linecolor","titlefont","caxis","geoAxesAttrs","lightLine","scope","rotation","parallels","showcoastlines","coastlinecolor","coastlinewidth","showland","landcolor","showocean","oceancolor","showlakes","lakecolor","showrivers","rivercolor","riverwidth","showcountries","countrycolor","countrywidth","showsubunits","subunitcolor","subunitwidth","showframe","framecolor","framewidth","thisArg","targetObj","bindingValueHasChanged","changed","computeAnimateBindings","computeLayoutBindings","bindings","attrName","computeDataBindings","thisTraces","nAttr","thisPath","manageCommandObserver","commandList","onchange","_commandObserver","lookupTable","hasSimpleAPICommandBindings","check","checkEvents","_internalOn","_removeInternalListener","bindingsByValue","refBinding","computeAPICommandBindings","executeAPICommand","_method","allArgs","inCircle","testFlip","triangulation","stack","delaunayRefine","numPoints","stars","refDxy","dpdx","dpdy","offsetMultiplier","l2","offsetMultplier","defaultScale","getScale","parseScale","isValidScaleArray","highestVal","MAJOR_AXIS","MINOR_AXIS","SCREEN_AXIS","OFFSET_VEC","SHAPE","zeroVec","copyVec","vertBuffer","tickOffset","gridCount","gridOffset","vertBuf","drawAxisLine","minorAxis","majorAxis","noffset","screenAxis","drawAxisTicks","drawZero","createSlabDecomposition","createRBTree","orderSegments","SlabDecomposition","slabs","horizontal","compareHorizontal","searchBucket","lastNode","seg","IntervalSegment","closed","Event","numSegments","numEvents","events","horiz","castUp","bucket","hitNode","lastHit","lastSegment","otherHitNode","hbucket","compareInt","aw","bulletNumberDomainSize","bulletPadding","titlePadding","horizontalPadding","boxDefaults","spanmodeDflt","handlePointsDefaults","boxWidth","boxFillColor","boxLineColor","boxLineWidth","boxVisible","meanLineColor","meanLineWidth","meanLineVisible","meanline","exactEquals","isSvgPath","pathBounds","preprocessPolygon","makeSlabs","makeIntervalTree","visitInterval","intervalSearch","buildVerticalIndex","intervalTable","segs","buildSlabSearch","lastOrientation","classifyEmpty","createClassifyVertical","testVertical","createClassifyPointDegen","testNormal","loops","numLoops","vsegments","loop","numVertices","testSlab","imageDefaults","imageIn","imageOut","gdMock","axLetters","_imgIndices","addProjectionsToD3","d3_geo_projectFeature","d3_geo_projectGeometry","geometries","d3_geo_projectGeometryType","sink","d3_geo_projectObjectType","Feature","FeatureCollection","d3_geo_projectPoints","d3_geo_projectLines","d3_geo_projectPoint","d3_geo_projectLine","lineStart","d3_geo_projectNoop","lineEnd","d3_geo_projectPolygon","polygonStart","polygonEnd","holes","ring","d3_geo_projectClockwise","d3_geo_projectContains","Point","MultiPoint","MultiLineString","Polygon","MultiPolygon","Sphere","pj","xj","yj","ε","ε2","π","halfπ","radians","degrees","sinci","asin","projectionMutator","eckert4","λ","φ","δ","cosφ","interrupt","lobes","forward","hemilobes","lobe","hemibounds","pointEqual","stream_","sphere","λ0","φ0","φ1","λ2","φ2","resample","resampled","rotateStream","sphereStream","hammerAzimuthalEqualArea","azimuthalEqualArea","hammer","hammerQuarticAuthalic","hammerProjection","coefficient","kavrayskiy7","miller","mollweideBromleyθ","Cp","θ","Cpsinθ","mollweideBromley","Cx","Cy","mollweide","SQRT2","naturalEarth","φ4","robinsonConstants","robinson","sinusoidal","aitoff","sinciα","winkel3","sinλ","sinλ_2","cosλ_2","sinφ","sin_2φ","sin2φ","cos2φ","sin2λ_2","E","δxδλ","δxδφ","δyδλ","δyδφ","denominator","δλ","δφ","innerFill","nargs","has_index","pidx","outerFill","matched","indexStr","countMatches","orders","processBlock","dtypes","carg","arrNum","offArgIndex","offArg","localStr","arrStr","reStrArr","ptrStrArr","typeSummary","summary","generateCWiseOp","blockBegin","blockEnd","loopBegin","loopEnd","loopOrders","arglist","off_arg","init_string","loopName","axisIDs","rangeSlider","rangeSliderData","_offsetShift","_rangeSliderData","bottomDepth","titleHeight","listAxes","RELATIVE_CULL_TOLERANCE","toLength","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","includes","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","EventEmitter","svgToImg","emitter","Image","ieSvgError","svgBlob","h0","h1","img","isIE9orBelow","isSafari","onload","imgData","drawImage","errorMsg","onerror","cheaterslope","ascal","bscal","aval","bval","nb","adata","bdata","slope","mouseOffset","supportsPassive","coverSlip","pointerOffset","unhoverRaw","dragCover","initialTarget","rightClick","_clampFn","minDrag","_mouseDownTime","onStart","_ontouchstart","passive","ontouchstart","clampFn","onDone","onMove","MINDRAG","dxdy","_dragdata","e2","MouseEvent","createEvent","initMouseEvent","bubbles","cancelable","screenX","screenY","metaKey","relatedTarget","dispatchEvent","extractPlanes","handlePrefixSuffix","showAttrDflt","getShowAttrDflt","tickPrefix","tickSuffix","handleOtherDefaults","contColor","tickFormat","tickformatStops","inclusionAttr","tickformatstopDefaults","showAttrsAll","showAttrs","sameVal","every","valueIn","valueOut","pass","defaultMLC","noSelect","noLine","gradientType","argument","OPEN_RE","isDotSymbol","DOT_RE","heatmapHoverPoints","hoverPt","createIsosurfaceTrace","styleText","fillGroupStyle","textPointStyle","fixRegExpWellKnownSymbolLogic","requireObjectCoercible","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","nativeReplace","maybeCallNative","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","regexp","functionalReplace","fullUnicode","unicode","results","matchStr","accumulatedResult","nextSourcePosition","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","capture","vertSrc","fragSrc","isosurfaceAttrs","surface","spaceframe","caps","opacityscale","flatshading","contour","scatterMapboxAttrs","choroplethLayer","backplot","bboxFeature","stronglyConnectedComponents","lowValue","scc","sccLinks","sccAdjList","strongConnect","linkCount","allLinks","adjacencyList","alphaShape","parseColorScale","str2RgbaArray","zip3","Mesh3DTrace","mesh","parseColorArray","toDataCoords","toRoundIndex","delaunayCells","delaunayaxis","hasValidIndices","createMesh3DTrace","_trace","handlePick","selectIndex","textLabel","zcalendar","alphahull","lightPosition","vertexNormalsEpsilon","vertexnormalsepsilon","faceNormalsEpsilon","facenormalsepsilon","contourEnable","contourColor","contourWidth","useFacetNormals","intensitymode","vertexcolor","vertexColors","facecolor","cellColors","meshColor","invalidArguments","invalidFormat","missingNumberAt","unknownNameAt","unexpectedLiteralAt","unexpectedText","settings","UNIX_EPOCH","SECS_PER_DAY","TICKS_EPOCH","TICKS_PER_DAY","ATOM","COOKIE","FULL","ISO_8601","JULIAN","RFC_822","RFC_850","RFC_1036","RFC_1123","RFC_2822","RSS","TICKS","TIMESTAMP","W3C","monthNumbers","doubled","calculateWeek","iFormat","formatNumber","formatName","shortNames","longNames","formatMonth","localiseNumbers","formatMonthName","useLongName","localNumbers","literal","parseDate","parseMonth","doy","shortYear","getNumber","isDoubled","iValue","getMonthNumber","getName","getMonthName","checkLiteral","iSave","determineDate","dateSpec","defaultDate","currentDate","offsetString","pattern","Polar","DEFAULT_VERTEX_NORMALS_EPSILON","DEFAULT_FACE_NORMALS_EPSILON","getContour","closestPoint","SimplicialMesh","triShader","lineShader","trianglePositions","triangleIds","triangleColors","triangleUVs","triangleNormals","triangleVAO","edgePositions","edgeIds","edgeColors","edgeUVs","edgeVAO","pointPositions","pointIds","pointColors","pointUVs","pointSizes","pointVAO","contourPositions","contourVAO","triangleCount","edgeCount","contourLineWidth","contourCount","ambientLight","diffuseLight","specularLight","_model","_view","_projection","_resolution","getOpacityFromScale","genColormap","nshades","unpackIntensity","numVerts","cellIntensity","numCells","takeZComponent","createMeshShader","uv","createWireShader","createPointShader","createPointPickShader","createContourShader","createSimplicialMesh","meshTexture","vertexIds","vertexWeights","wi","pb","tPos","tCol","tNor","tUVs","tIds","ePos","eCol","eUVs","eIds","pPos","pCol","pUVs","pSiz","pIds","cellNormals","vertexUVs","cellUVs","intensityLo","intensityHi","cellIntensityBounds","meshPointSize","Uint32Array","inverseModel","kambient","kdiffuse","kspecular","eyePosition","invCameraMatrix","pickData","cellId","simplex","weights","interpIntensity","errorCoords","yh","noYS","xh","noXS","hasAnimation","keyFunc","xObj","error_x","yObj","error_y","sparse","errorbars","errorbar","vis","yerror","yw","xerror","xw","copy_ystyle","earcut","holeIndices","invSize","hasHoles","outerLen","outerNode","linkedList","eliminateHoles","earcutLinked","signedArea","insertNode","equals","removeNode","filterPoints","again","steiner","ear","indexCurve","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minTX","minTY","maxTX","maxTY","zOrder","prevZ","nextZ","intersects","locallyInside","isValidDiagonal","getLeftmost","compareX","eliminateHole","findHoleBridge","hx","hy","my","tanMin","sectorContainsSector","sortLinked","numMerges","pSize","qSize","inSize","intersectsPolygon","middleInside","q2","o1","o2","o3","o4","onSegment","Node","an","deviation","trianglesArea","flatten","holeIndex","sz","handleShapeDefaults","shapeIn","shapeOut","dfltType","shapeType","xSizeMode","ySizeMode","pos2r","r2pos","attrAnchor","sizeMode","_shapeIndices","rangeToShapePosition","dflt0","dflt1","attr0","attr1","in0","in1","inAnchor","noneOrAll","IS_PURE","store","copyright","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","colorAttributes","asmoothing","bsmoothing","imax","jmax","f0","f1","f2","f3","ak","u3","ou","ou2","ou3","v3","ov","ov2","ov3","str2BN","createSelectBuffer","selectRange","SelectResult","SelectBuffer","_readTimeout","_readCallback","c2","c3","toMoveInsideBar","uniformText","recordMinTextSize","drawDescendants","drawAncestors","getKey","isHierarchyRoot","plotOne","findEntryWithLevel","selAncestors","selDescendants","isRoot","uniformtext","maxDepth","getMaxDepth","hasVisibleDepth","vpw","vph","barW","barH","barPad","pathbarOrigin","findClosestEdge","ref","tiling","isLeftOfRect","isRightOfRect","isBottomOfRect","isTopOfRect","prevLookupPathbar","prevLookupSlices","nextOfPrevEntry","getPrev","getOrigin","_maxDepth","_backgroundColor","_atRootLevel","cenX","cenY","viewMapX","viewMapY","barY0","barX0","viewBarX","viewBarY","xStart","limitX0","edgeshape","pathAncestor","halfH","pL","pR","pA","pB","pC","pD","pathDescendant","FILLET","hasFlag","hasBottom","hasTop","isHeader","hasRight","hasLeft","leftToRight","limY","constrained","anchorX","anchorY","interpFromParent","parentPrev","makeExitSliceInterpolator","entryPrev","prev0","getTextTransform","isEntry","cdmodule","_treemaplayer","isFullReplot","oneYear","oneMonth","oneDay","oneHour","oneMin","oneSec","biggestDigitChanged","biggestGuaranteedDigitChanged","nextDigit","didDigitChange","dateParts1","dateParts","dateParts2","disambiguateEdges","dv0","dv1","dv2","edge0","edge1","leftDigit","rightDigit","dashExclude","increment","isRightEdge","dashPos","roundedV","nextV","fromQuat","z2","yx","zx","zy","zz","wx","wy","wz","createColormap","indicies","fromrgba","torgba","nsteps","cmap","amt","rgb2hex","rgbaStr","rgb2float","dig","hex","lineColorDflt","noDash","setConvertCartesian","setConvertPolar","doAutoRange","dragBox","rad2deg","_hasClipOnAxisFalse","vangles","radialAxisAngle","clipPaths","clipIds","clipIdBase","forTraces","_polarlayer","radialTickLayout","angularTickLayout","strTickLayout","axLayout","computeSectorBBox","ax0","ay0","ax1","ay1","snapToVertexAngle","angleDist","findIndexOfMin","updateElement","strTranslate","strRotate","polarCalcData","polarLayout","generalUpdatePerTraceModule","radialLayout","angularLayout","layerNames","frontPlotIndex","layerData","isAngularAxisBelowTraces","isRadialAxisBelowTraces","xDomain","yDomain","xOffset","xLength","yLength","sectorInRad","xLength2","yLength2","xDomain2","yDomain2","sectorBBox","dxSectorBBox","dySectorBBox","arDomain","arSector","xOffset2","yOffset2","cxx","cyy","updateAngularAxis","updateRadialAxis","updateRadialAxisTitle","mockCartesianAxis","dPath","pathSubplot","bboxIndices","setRange","rl","drl","hasRoomForIt","fillViewInitialKey","setGeometry","gridPathFn","pathArc","newTickLayout","tickSign","tLayer","tLayer2","_angle","angleRad","cosa","sina","t2g","_transFn","transFn2","cosRad","sinRad","gridshape","angleDelta","isAngleInsideSector","updateAngularDrag","updateRadialDrag","updateMainDrag","MINZOOM","OFFEDGE","clampTiny","findXYatLength","findEnclosingVertexAngles","chw","cornerHalfWidth","chl","cornerLen","mainDrag","makeDragger","dimmed","lum","zb","dragOpts","xy2r","xy2a","ra2xy","pathCorner","pathSector","am","rm","pathCornerForPolygons","va0","va1","innerPts","outerPts","xy0","xy1","mperp","midPts","zoomPrep","polarLayoutNow","getLuminance","makeZoombox","makeCorners","clampAndSetR0R1","rr0","rr1","applyZoomMove","path1","cpath","transitionZoombox","updateObj","computeZoomUpdates","zoomMove","findPolygonRadius","findIntersectionXY","zoomMoveForPolygons","vangles0","vangles1","zoomDone","removeZoombox","showDoubleClickNotifier","newRng","zoomClick","dragModeNow","findPolygonOffset","rngIndex","radialDragBoxSize","ty","angle0","rbase","moveFn2","angle1","rprime","radialDrag","makeRectDragger","dvec","rvec","comp","rotateMove","rerangeMove","computeRadialAxisUpdates","dr","moduleCalcData","moduleCalcDataVisible","filterVisible","dbs","angularDragBoxSize","angularDrag","pathAnnulus","rot0","rot1","rrot1","scatterTraces","scatterPoints","scatterTextPoints","trans","trans2","isFullCircle","computeRotationUpdates","thetag","c2g","isPtInsidePolygon","isPtInsideSector","pathPolygon","pathPolygonAnnulus","formatPiePercent","vRounded","lastIndexOf","formatPieValue","getFirstFilled","castOption","itemStr","ARROWPATHS","ends","startRot","endRot","headStyle","startHeadStyle","startScale","doStart","doEnd","backOff","backoff","startBackOff","hideLine","backOffX","backOffY","startBackOffX","startbackOffY","pathlen","start0","dstart","end0","dend","shortening","drawhead","arrowHeadStyle","rot","arrowScale","noRotate","ctz","roundRat","iv","ir","ybits","lastReading","_lastValue","secondLastReading","deltaRef","lastY","relativeDelta","fromcurrent","ordering","final","columnwidth","header","bitmap","Ternary","makeFramework","aTickLayout","bTickLayout","cTickLayout","_ternarylayer","defs","layoutId","ternaryCalcData","ternaryLayout","graphSize","adjustLayout","plotbg","clipIdRelative","clipDef","clipDefRelative","plotContainer","grids","plotLayers","toplevel","whRatio","xDomainFinal","yDomainFinal","xDomainCenter","yDomainCenter","wmax","hmax","amin","bmin","yDomain0","triangleClip","triangleClipRelative","plotTransform","bTransform","bgrid","aTransform","agrid","cTransform","cgrid","drawAxes","aline","bline","cline","doTitles","titlesuffix","drawAx","apad","bpad","axLayer","counterAngle","stashKey","caRad","CLEN","BLPATH","BRPATH","TOPPATH","STARTMARKER","SHOWZOOMOUTTIP","mins0","span0","mins","dragger","clickZoomPan","plotDrag","dragDone","panPrep","makeUpdate","_mins","getAFrac","getBFrac","getCFrac","afrac","bfrac","cfrac","xSpan","dxScaled","dyScaled","minsorted","minindices","plotTransform2","mouseButtons","mouseElement","srcElement","mouseRelativeX","mouseRelativeY","handleRThetaDefaults","createGLPlot2D","createPick","createGrid","createText","createBox","GLPlot2D","gridLineEnable","gridLineWidth","gridLineColor","tickMarkLength","tickMarkWidth","tickMarkColor","tickPad","tickEnable","labelPad","labelAngle","labelEnable","labelColor","titleCenter","titleEnable","titleAngle","titleColor","zeroLineEnable","zeroLineWidth","zeroLineColor","borderLineEnable","borderLineWidth","borderLineColor","_tickBounds","static","pickDelay","_pickTimeout","_drawPick","_depthCounter","deepClone","compareTicks","setDirty","setOverlayDirty","nextDepthValue","viewPixels","zeroIntercept","drawTickMarks","scrX","scrY","pickResult","pickValue","setScreenBox","nbox","setDataBox","different","setViewBox","axisTicks","labelSize","labelFont","titleFont","addOverlay","removeOverlay","SIMPLE_PROPERTY_REGEX","NAME","VALUE","BOTH","UNSET","baseObj","keyName","valueName","baseProp","changeTypes","indexLookup","isSimpleValueProp","changeType","newValue","rename","createBoxes","Boxes","boxVert","drawBox","loX","loY","hiX","hiY","scatterPolarFormatLabels","possibleTypes","tarjan","isIndex","convertToD3Sankey","linkSpec","hasLinkColorArray","linkedNodes","componentCount","colorscales","maxNodeId","nodeCount","groupLookup","nodeIndex","groupedLinks","concentrationscale","totalCount","hasNodeColorArray","childrenNodes","circularityPresent","nodeLen","sources","targets","init2dArray","_nodes","_links","_groups","_groupLookup","GLSpikes2D","createSpikes2D","spikeEnable","spikeWidth","spikeColor","spikeCenter","centerX","centerY","ArrayIterator","kind","__kind__","prettyPrint","spacing","stepStr","sigFigs","xstr","xis","defaultTicks","ticksEqual","ticksA","ticksB","equal","IndexedObject","nativeAssign","alphabet","chr","argumentsLength","createTextElements","getText","TextElements","tickX","labelCount","textVert","textFrag","DATA_AXIS","SCREEN_OFFSET","ZERO_2","textAngle","screenScale","dataAxis","screenOffset","titleCount","titleOffset","DATA_SHIFT","DATA_SCALE","TEXT_SCALE","boundScale","dataCenter","dataWidth","viewLo","viewHi","viewScale","screenLo","screenHi","dataShift","textScale","textCoordinate","axesTicks","coordScale","coordShift","divide","images","currentPos","currentSize","newPos","newSize","createOrbitController","filterVector","mat4FromQuat","quatFromFrame","len3","len4","normalize4","al","OrbitCameraController","initQuat","initCenter","initRadius","computedRotation","quat","rr","getMatrix","uz","ul","rz","ru","fz","fu","fr","fl","fromJSON","transformMat4","pickSrc","createPickContourShader","_undefined","fixup","pcompile","makeOp","assign_ops","band","bor","bxor","lshift","rshift","rrshift","unary_ops","not","bnot","recip","binary_ops","neq","leq","geq","math_unary","math_comm","math_noncomm","any","prod","norm2squared","norm2","norminf","norm1","inf","argmin","argmax","assigns","webpackPolyfill","isPrototype","FROM_BL","plots","plotBasePlot","cleanBasePlot","OHLCattrs","boxAttrs","lineColorDefault","showLabels","globalFont","CONVERT_TO_STRING","second","codeAt","generated","originalArray","EPOCHJD","utcFormat","DATETIME_REGEXP","DATETIME_REGEXP_CN","YFIRST","isWorldCalendar","lpad","sunday","isJSDate","tzOffset","getTimezoneOffset","offsetTweak","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","getMilliseconds","isWorld","isChinese","H","cDate","calInstance","isIntercalary","toMonthIndex","UTC","setUTCFullYear","getUTCMonth","getUTCDate","NINETYDAYS","THREEHOURS","FIVEMIN","includeTime","msec10","dateJD","timeMs","getUTCHours","ms2DateTimeLocal","fracMatch","modDateFormat","formatter","fracSecs","toFixed","MAXSECONDS","formatTime","timePart","timeStr","sec","secStr","extraFormat","THREEDAYS","dMonth","setUTCMonth","hiddenStore","createStore","INCREASING_COLOR","DECREASING_COLOR","baseTraceAttrs","valObjectDef","valObjectMeta","validateFunction","propMock","coerceFunction","data_array","propOut","enumerated","string","okToCoerce","strict","colorlist","isColor","subplotid","flaglist","vParts","info_array","coercePart","propPart","twoD","vNew","vOut","arrayItems2D","innerItemsOnly","attribute","propIn","dfltObj","coerceHoverinfo","moduleAttrs","valObj","_dataLength","smoDflt","usmoDflt","bnsub","trimLeft","trimRight","tinyCounter","mathRound","mathMin","mathMax","mathRandom","inputToRGB","_originalInput","_g","_roundA","_format","_gradientType","_ok","_tc_id","stringInputToObject","isValidCSSUnit","rgbToRgb","convertToPercentage","hsvToRgb","hslToRgb","boundAlpha","bound01","rgbToHsl","hue2rgb","rgbToHsv","rgbToHex","allow3Char","rgbaToHex","allow4Char","convertDecimalToHex","rgbaToArgbHex","desaturate","amount","toHsl","clamp01","saturate","greyscale","lighten","brighten","darken","spin","hue","complement","triad","tetrad","splitcomplement","analogous","part","monochromatic","hsv","toHsv","modification","isDark","getBrightness","isLight","getOriginalInput","getFormat","getAlpha","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHex","toHexString","toHex8","toHex8String","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","needsAlphaFormat","_applyModification","_applyCombination","fromRatio","color1","color2","mix","rgb1","rgb2","readability","isReadable","wcag2","wcag2Parms","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","isOnePointZero","processPercent","isPercentage","parseIntFromHex","convertHexToDecimal","matchers","CSS_INTEGER","CSS_NUMBER","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","hsva","hex3","hex6","hex4","hex8","named","parms","brackets","escape","flat","bracket","pRE","replaceToken","refId","prevStr","replaceRef","curr","parenthesis","thicknessmode","lenmode","xpad","ypad","outlinecolor","outlinewidth","titleside","handleLonLatDefaults","isOutOfBounds","coerceEnumerated","arrayOrScalar","getLineWidth","mlw","baseAttributes","frameAttributes","animationAttributes","polarAreaAttrs","polarAxisAttrs","editTypes","IS_SUBPLOT_OBJ","IS_LINKED_TO_ARRAY","ARRAY_ATTR_REGEXPS","DEPRECATED","UNDERSCORE_ATTRS","layoutHeadAttr","basePlotModules","baseOverrides","recurseIntoValObject","valObject","newValObject","getTraceAttributes","copyBaseAttributes","copyModuleAttributes","fullAttrString","legendgroup","formatAttributes","isValObject","getLayoutAttributes","handleBasePlotModule","assignPolarLayoutAttrs","xkey","insertAttrs","getTransformAttributes","getFramesAttributes","mergeValTypeAndRole","formatArrayContainers","makeSrcAttr","role","itemName","newAttrs","valObjects","metaKeys","animation","specifiedLevel","attrString","findArrayAttributes","baseContainer","baseAttrName","arrayAttributes","isArrayStack","splittableAttr","crawlIntoTrace","astrPartial","newAstrPartial","tNum","objToString","heatmapPlot","makeCrossings","findAllPaths","emptyPathinfo","convertToConstraints","closeBoundaries","costConstants","LABELOPTIMIZER","makeBackground","plotgroup","perimeter","bggroup","bgfill","makeFills","hasFills","boundaryPath","fillgroup","fillitems","fullpath","prefixBoundary","joinAllPaths","endpt","newendpt","nexti","possiblei","addpath","startsleft","newloop","istop","isbottom","isleft","isright","smoothopen","ptNew","smoothclosed","makeLinesAndLabels","lineContainer","clipLinesForLabels","linegroup","lineClip","createLineClip","labelGroup","labelClipPathData","labelData","contourFormat","labelFormatter","dummyText","xLen","yLen","xRng","yRng","xMin","xMax","yMin","yMax","plotDiagonal","normLength","LABELDISTANCE","LABELINCREASE","calcTextOpts","LABELMIN","maxLabels","LABELMAX","findBestTextLocation","addLabelData","locationCost","halfWidth","halfHeight","normX","normY","cost","EDGECOST","ANGLECOST","labeli","dxd","dyd","sameLevel","distOffset","SAMELEVELDISTANCE","distFactor","NEIGHBORCOST","SAMELEVELFACTOR","clipGaps","clips","clipPathInfo","makeClipMask","emptyPoint","zmask","cdcontours","contourLayer","heatmapColoringLayer","cdheatmaps","leftedge","rightedge","bottomedge","topedge","fillPathinfo","makeLines","opencontourlines","pedgepaths","closedcontourlines","ppaths","formatAxis","_axis","plotBounds","INITIALSEARCHPOINTS","ITERATIONS","newLocation","newCost","MAXCOST","dxw","dxh","dyw","dyh","bBoxPts","lineClipPath","pieHelpers","parentString","isSunburst","isTreemap","_hasHoverLabel","_hasHoverEvent","onMouseOver","traceNow","ptNumber","getParent","_cast","castHoverinfo","hoverCenterX","hoverCenterY","pxmid","rInscribed","flag","valueLabel","currentPath","getPath","allPercents","insertPercent","percentParent","formatPercent","percentEntry","percentRoot","isValidTextValue","hoverItems","nameLength","hovertemplateLabels","rpx1","idealAlign","onMouseOut","noTransition","isLeaf","nextEntry","findEntryWithChild","nextLevel","typeClickEvtData","animOpts","g_ln","p_ln","lngamma","gamma","NATIVE_WEAK_MAP","objectHas","sharedKey","enforce","getterFor","TYPE","wmget","wmhas","wmset","metadata","STATE","filterUnique","createParcatsModel","maxCats","createDimensionModel","dimensionInd","containerInd","displayInd","dimensionLabel","dragX","createCategoryModel","categoryInd","categoryValue","categoryLabel","valueInds","dragY","updateCategoryModel","categoryModel","valueInd","createPathModel","categoryInds","rawColor","updatePathModel","pathModel","getUniqueInfo","uniqueValues","uniqueValueCounts","uniqueValueInds","inds","uniqueVal","valInd","itemInd","uniqueCounts","validateDimensionDisplayInds","displayInds","displayindex","isRangePermutation","_displayindex","validateCategoryProperties","uniqueInfoDim","_categoryarray","_ticktext","indsSpecified","uniqueInfoDims","categoryValues","categoryorder","categoryarray","dimInd","markerColorscale","getMarkerColorInfo","tryColorscale","numValues","pathModels","categoryIndsDims","categoryIndsPath","pathColorInfo","pathKey","dimensionModels","catInd","catValue","catLabel","getPos","posAxis","hasPosArray","hasPos0","hasPosStep","pos0c","makeBins","initNestedArray","valAxis","numKey","boxVals","posArray","posDistinct","dPos","ptFilterFn","lf","uf","_hasPreCompStats","valArrayRaw","med","sortByVal","computeLowerFence","computeUpperFence","computeLowerOutlierBound","uo","computeUpperOutlierBound","computeNotchSpan","ln","un","imin","pts2","valArray","posBins","ptsPerBin","minLowerNotch","maxUpperNotch","usesExclusive","usesInclusive","lower","mci","TRACE_TO_CALC","scaleZoom","makePadFn","concatExtremes","getConstraintOpts","thisID","allAxisIds","idj","axj","doesNotConstrainRange","linkableAxes","counterAxj","thisGroup","linkableAxesNoLoops","updateConstraintGroups","constraintGroups","scaleanchor","scaleratio","groupi","keyj","thisGroupIndex","thisGroupKeys","baseScale","updateDomain","inputDomain","_inputDomain","constraintoward","matchOpts","scaleOpts","scaleanchorDflt","constrainDflt","_axisConstraintGroups","splomStash","axisID","normScale","minScale","maxScale","matchScale","normScales","hasAnyDomainConstraint","_inputRange","_constraintShrinkable","domainShrunk","rangeShrunk","rangeCenter","rangeMin","rangeMax","halfRange","outerMin","outerMax","getPad","extremes","minArray","maxArray","domainExpand","isConstrained","isView","DataView","_rowLength","len0","_constructor","arg0","argi","leni","allArray","totalLen","_requestRangeslider","rangeContainerIn","rangeContainerOut","yNames","rangemodeDflt","yAxOut","rangeMode","coerceRange","isCanvas","isElement","createCanvas","VectorMesh","triangleVectors","vector","createVectorMesh","tVec","velocity","surfaceAttrs","perStackAttrs","stackOpts","firstTrace","attrFound","traceHasAttr","isOrientation","trace2","heatmapCalc","zOut","cVals","min0","max0","isLeftAnchor","isTopAnchor","COMPARISON_OPS","CONSTRAINT_REDUCTION","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","hr","checkCollinear","modModule","twoPI","aBnds","rBnds","_path","aStart","aMid","aEnd","rStart","rEnd","isCircle","largeArc","d3_arraySlice","d3_array","d3_document","d3_documentElement","d3_window","defaultView","setProperty","d3_element_prototype","Element","d3_element_setAttribute","d3_element_setAttributeNS","setAttributeNS","d3_style_prototype","CSSStyleDeclaration","d3_style_setProperty","space","d3_ascending","d3_number","d3_numeric","d3_bisector","descending","quantile","numbers","variance","d3_bisect","d3_transposeLength","bisectLeft","bisect","bisectRight","bisector","shuffle","indexes","permutes","merged","d3_range_integerScale","d3_class","d3_Map","d3_map_proto","d3_map_zero","d3_map_escape","d3_map_unescape","d3_map_has","d3_map_remove","d3_map_keys","d3_map_size","d3_map_empty","d3_Set","d3_identity","d3_rebind","d3_vendorSymbol","d3_vendorPrefixes","prefixName","sortValues","rollup","mapType","keyValue","setter","valuesByKey","sortKey","keyMap","d3_noop","d3_dispatch","d3_dispatch_event","listeners","listenerByName","listener","d3_eventPreventDefault","d3_eventSource","d3_eventDispatch","of","thiz","argumentz","e1","requote","d3_requote_re","d3_subclass","__proto__","d3_selection","d3_selectionPrototype","d3_select","d3_selectAll","querySelectorAll","d3_selectMatches","d3_selectMatcher","Sizzle","matchesSelector","d3_selection_selector","d3_selection_selectorAll","subgroup","subnode","subgroups","d3_nsXhtml","d3_nsPrefix","xhtml","xlink","xml","d3_selection_attr","attrNull","removeAttribute","attrNullNS","removeAttributeNS","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","qualify","d3_collapse","d3_selection_classedRe","d3_selection_classes","d3_selection_classed","d3_selection_classedName","classedConstant","classedFunction","classList","d3_selection_style","styleNull","removeProperty","styleConstant","styleFunction","d3_selection_property","propertyNull","propertyConstant","propertyFunction","d3_selection_creator","namespace","namespaceURI","createNS","d3_selectionRemove","d3_selection_dataNode","d3_selection_filter","d3_selection_sortComparator","comparator","d3_selection_each","d3_selection_enter","d3_selection_enterPrototype","getAttributeNS","innerHTML","before","groupData","nodeData","updateNodes","enterNodes","exitNodes","nodeByKeyValue","keyValues","nextSibling","d3_selection_enterInsertBefore","d3_selection_on","d3_selection_onListener","d3_selection_onFilters","onRemove","onAdd","d3_selection_onFilter","upgroup","mouseenter","mouseleave","related","compareDocumentPosition","d3_event_dragSelect","d3_event_dragId","d3_event_dragSuppress","suppressClick","d3_mousePoint","d3_mouse_bug44083","ownerSVGElement","createSVGPoint","scrollX","border","ctm","getScreenCTM","pageX","pageY","matrixTransform","clientLeft","clientTop","d3_behavior_dragTouchId","identifier","touch","touches","mousedown","touchstart","subject","dragOffset","correspondingElement","dragged","dragId","dragName","dragSubject","moved","ended","dragRestore","position0","position1","τ","τε","d3_radians","d3_degrees","d3_sgn","d3_cross2d","d3_acos","d3_asin","d3_sinh","d3_cosh","d3_tanh","d3_haversin","ρ","ρ2","ρ4","interpolateZoom","ux0","uy0","ux1","uy1","coshr0","translate0","center0","mousewheelTimer","touchtime","scaleExtent","d3_behavior_zoomInfinity","zooming","mouseup","mousedowned","d3_behavior_zoomWheel","mousewheeled","dblclicked","touchstarted","scaleTo","translateTo","zoomTo","__chart__","rescale","zoomstarted","zoomed","zoomended","location0","d3_selection_interrupt","scale0","locations0","distance0","zoomName","touchmove","touchend","relocate","started","LN2","distance1","scale1","d3_behavior_zoomDelta","deltaMode","wheelDelta","view1","d3_transitionInheritId","tween","d3_color","d3_hsl","d3_rgb_parse","d3_rgb_hsl","d3_hslPrototype","d3_hsl_rgb","m2","d3_rgb","d3_hcl","d3_lab_hcl","d3_lab","d3_rgb_lab","brighter","hcl","d3_hclPrototype","d3_hcl_lab","d3_lab_K","lab","d3_lab_X","d3_lab_Y","d3_lab_Z","d3_labPrototype","d3_lab_rgb","d3_lab_xyz","d3_xyz_rgb","d3_xyz_lab","d3_rgbNumber","d3_rgbString","d3_rgbPrototype","d3_rgb_hex","d3_rgb_parseNumber","d3_rgb_names","d3_rgb_xyz","d3_functor","d3_xhrType","response","mimeType","d3_xhr","xhr","headers","request","XMLHttpRequest","responseType","respond","d3_xhrHasResponse","load","XDomainRequest","onreadystatechange","readyState","onprogress","send","setRequestHeader","overrideMimeType","beforesend","abort","d3_xhr_fixCallback","responseText","functor","dsv","delimiter","reFormat","delimiterCode","typedResponse","formatRow","parseRows","eol","EOL","EOF","I","formatRows","fieldSet","fields","field","csv","tsv","d3_timer_queueHead","d3_timer_queueTail","d3_timer_interval","d3_timer_timeout","d3_timer_frame","d3_timer","d3_timer_step","d3_timer_mark","d3_timer_sweep","d3_format_precision","d3_formatPrefixes","d3_formatPrefix","d3_locale_numberFormat","locale_decimal","locale_thousands","locale_grouping","locale_currency","formatGroup","specifier","d3_format_re","zfill","comma","d3_format_types","d3_format_typeDefault","zcomma","fullSuffix","formatPrefix","after","toExponential","d3_time","d3_date","d3_date_utc","getDay","getUTCDay","getUTCFullYear","setDate","d3_time_prototype","setUTCDate","setDay","setUTCDay","setFullYear","setUTCHours","setUTCMilliseconds","setUTCMinutes","setMonth","setUTCSeconds","setTime","d3_time_interval","range_utc","d3_time_interval_utc","d3_locale_timeFormat","locale_dateTime","locale_date","locale_time","locale_periods","locale_days","locale_shortDays","locale_months","locale_shortMonths","d3_time_format","d3_time_formatPads","d3_time_formats","L","Z","d3_time_parse","localZ","d3_time_parsers","multi","d3_time_formatMulti","d3_time_periodLookup","d3_time_dayRe","d3_time_formatRe","d3_time_dayLookup","d3_time_formatLookup","d3_time_dayAbbrevRe","d3_time_dayAbbrevLookup","d3_time_monthRe","d3_time_monthLookup","d3_time_monthAbbrevRe","d3_time_monthAbbrevLookup","d3_time_formatPad","sundayOfYear","mondayOfYear","d3_time_zone","d3_time_parseWeekdayAbbrev","d3_time_parseWeekday","d3_time_parseMonthAbbrev","d3_time_parseMonth","d3_time_parseLocaleFull","d3_time_parseDay","d3_time_parseHour24","d3_time_parseDayOfYear","d3_time_parseMilliseconds","d3_time_parseMonthNumber","d3_time_parseMinutes","d3_time_parseAmPm","d3_time_parseSeconds","d3_time_parseWeekNumberSunday","d3_time_parseWeekdayNumber","d3_time_parseWeekNumberMonday","d3_time_parseLocaleDate","d3_time_parseLocaleTime","d3_time_parseYear","d3_time_parseFullYear","d3_time_parseZone","d3_time_parseLiteralPercent","years","week","weeks","d3_time_numberRe","d3_time_percentRe","d3_time_expandYear","zh","zm","formats","d3_locale_enUS","d3_adder","d3_adderSum","d3_adderTemp","av","d3_geo_streamGeometry","d3_geo_streamGeometryType","d3_geo_streamObjectType","d3_geo_streamLine","d3_geo_streamPolygon","GeometryCollection","coordinate","d3_geo_areaSum","d3_geo_area","d3_geo_centroidW0","d3_geo_centroidW1","d3_geo_centroidX0","d3_geo_centroidY0","d3_geo_centroidZ0","d3_geo_centroidX1","d3_geo_centroidY1","d3_geo_centroidZ1","d3_geo_centroidX2","d3_geo_centroidY2","d3_geo_centroidZ2","d3_geo_areaRingSum","d3_geo_areaRingStart","λ00","φ00","cosφ0","sinφ0","nextPoint","dλ","sdλ","adλ","d3_geo_cartesian","spherical","d3_geo_cartesianDot","d3_geo_cartesianCross","d3_geo_cartesianAdd","d3_geo_cartesianScale","d3_geo_cartesianNormalize","d3_geo_spherical","d3_geo_sphericalEqual","λ1","λ_","λ__","φ__","dλSum","bound","ringPoint","ringStart","ringEnd","linePoint","equatorial","inflection","λi","antimeridian","φi","compareRanges","withinRange","best","centroid","d3_geo_centroid","d3_geo_centroidPoint","d3_geo_centroidLineStart","d3_geo_centroidLineEnd","d3_geo_centroidRingStart","d3_geo_centroidPointXYZ","d3_geo_compose","compose","d3_true","d3_geo_clipPolygon","clipStartInside","d3_geo_clipPolygonIntersection","d3_geo_clipPolygonLinkCircular","isSubject","other","d3_geo_clip","pointVisible","clipLine","clipStart","rotatedClipStart","pointRing","d3_geo_pointInPolygon","polygonStarted","d3_geo_clipSort","pointLine","d3_geo_clipBufferListener","ringListener","ringSegments","d3_geo_clipSegmentLength1","rejoin","d3_geo_clipAntimeridian","d3_geo_clipAntimeridianLine","d3_geo_clipAntimeridianInterpolate","sλ0","sλ1","d3_geo_clipAntimeridianIntersect","cosφ1","sinλ0_λ1","meridian","parallel","meridianNormal","polarAngle","point0","intersection","φarc","d3_geo_clipCircle","cr","smallRadius","notHemisphere","d3_geo_circleInterpolate","v00","point2","point1","two","n1","n2","n2n2","n1n2","n1xn2","polar","d3_geom_clipLine","d3_geo_clipExtentMAX","d3_geo_clipExtent","x__","y__","v__","x_","y_","v_","listener_","bufferListener","insidePolygon","wn","comparePoints","ca","d3_geo_conic","projectAt","d3_geo_projectionMutator","d3_geo_conicEqualArea","ρ0","ρ0_y","clipExtent","conicEqualArea","albers","albersUsa","lower48Point","alaskaPoint","hawaiiPoint","lower48","alaska","hawaii","pointStream","lower48Stream","alaskaStream","hawaiiStream","d3_geo_pathAreaSum","d3_geo_pathAreaPolygon","d3_geo_pathBoundsX0","d3_geo_pathBoundsY0","d3_geo_pathBoundsX1","d3_geo_pathBoundsY1","d3_geo_pathArea","d3_geo_pathAreaRingStart","x00","y00","d3_geo_pathBounds","d3_geo_pathBoundsPoint","d3_geo_pathBuffer","pointCircle","d3_geo_pathBufferCircle","pointLineStart","lineEndPolygon","pointRadius","d3_geo_lengthSum","d3_geo_pathCentroid","d3_geo_pathCentroidPoint","d3_geo_pathCentroidLineStart","d3_geo_pathCentroidLineEnd","d3_geo_pathCentroidRingStart","d3_geo_pathContext","d3_geo_resample","δ2","cosMinDistance","resampleRecursive","resampleNone","d3_geo_transformPoint","b00","resampleLineTo","dx2","dy2","d3_geo_pathProjectStream","d3_geo_projectionRadians","d3_geo_transform","d3_geo_projection","projectRotate","δx","δy","projectResample","δγ","preclip","postclip","clipAngle","d3_geo_rotation","invalidate","d3_geo_equirectangular","d3_geo_identityRotation","d3_geo_rotationλ","d3_geo_rotationφγ","d3_geo_forwardRotationλ","cosδφ","sinδφ","cosδγ","sinδγ","sr","d3_geo_circleAngle","d3_geo_graticuleX","d3_geo_graticuleY","d3_source","d3_target","d3_geo_interpolate","cy0","sy0","cy1","sy1","kx0","ky0","kx1","ky1","projectStream","contextStream","cacheStream","methods","equirectangular","Δλ","sinΔλ","cosΔλ","sinφ1","graticule","X1","X0","Y1","Y0","DX","DY","majorExtent","minorExtent","majorStep","minorStep","greatArc","source_","target_","d3_geo_length","d3_geo_lengthLineStart","d3_geo_azimuthal","azimuthal","cosλ","sinc","cosc","d3_geo_azimuthalEqualArea","cosλcosφ","d3_geo_azimuthalEquidistant","d3_geo_conicConformal","d3_geo_mercator","d3_geo_conicEquidistant","azimuthalEquidistant","conicConformal","conicEquidistant","d3_geo_gnomonic","d3_geo_mercatorProjection","clipAuto","gnomonic","mercator","d3_geo_orthographic","orthographic","d3_geo_stereographic","d3_geo_transverseMercator","d3_geom_pointX","d3_geom_pointY","d3_geom_hullUpper","hs","d3_geom_hullOrder","stereographic","transverseMercator","flippedPoints","skipLeft","skipRight","d3_geom_polygonPrototype","d3_geom_polygonInside","d3_geom_polygonIntersect","x43","y43","ua","d3_geom_polygonClosed","d3_geom_voronoiEdges","d3_geom_voronoiCells","d3_geom_voronoiBeaches","d3_geom_voronoiFirstCircle","d3_geom_voronoiCircles","d3_geom_voronoiBeachPool","d3_geom_voronoiCirclePool","d3_geom_voronoiBeach","d3_geom_voronoiRedBlackNode","site","d3_geom_voronoiCreateBeach","beach","d3_geom_voronoiDetachBeach","d3_geom_voronoiDetachCircle","d3_geom_voronoiRemoveBeach","disappearing","lArc","iArc","nArcs","d3_geom_voronoiSetEdgeEnd","d3_geom_voronoiCreateEdge","d3_geom_voronoiAttachCircle","d3_geom_voronoiAddBeach","dxl","dxr","directrix","d3_geom_voronoiLeftBreakPoint","d3_geom_voronoiRightBreakPoint","newArc","lSite","rSite","hb","hc","rfocx","rfocy","pby2","lfocx","lfocy","plby2","hl","aby2","d3_geom_voronoiCell","d3_geom_voronoiCloseCells","iHalfEdge","halfEdges","nHalfEdges","iCell","d3_geom_voronoiHalfEdge","d3_geom_voronoiCreateBorderEdge","d3_geom_voronoiHalfEdgeOrder","d3_geom_voronoiCircle","cSite","ha","d3_geom_voronoiClipEdges","d3_geom_voronoiConnectEdge","vb","fm","fb","va","d3_geom_voronoiEdge","d3_geom_voronoiRedBlackTree","d3_geom_voronoiRedBlackRotateLeft","d3_geom_voronoiRedBlackRotateRight","d3_geom_voronoiRedBlackFirst","d3_geom_voronoi","sites","d3_geom_voronoiVertexOrder","diagram","grandpa","uncle","sibling","voronoi","d3_geom_voronoiClipExtent","d3_geom_voronoiTriangleArea","d3_geom_quadtreeCompatX","d3_geom_quadtreeCompatY","d3_geom_quadtreeNode","d3_geom_quadtreeVisit","d3_geom_quadtreeFind","minDistance2","distance2","d3_interpolateRgb","ag","br","d3_interpolateObject","d3_interpolate","d3_interpolateNumber","d3_interpolateString","bm","d3_interpolate_numberA","d3_interpolate_numberB","delaunay","compat","x1_","y1_","x2_","y2_","nx","ny","insertChild","nPoint","interpolateRgb","interpolateObject","interpolateNumber","interpolateString","interpolators","d3_interpolateArray","interpolateArray","d3_ease_default","d3_ease","d3_ease_poly","d3_ease_quad","cubic","d3_ease_cubic","d3_ease_sin","d3_ease_exp","d3_ease_circle","elastic","d3_ease_elastic","back","d3_ease_back","bounce","d3_ease_bounce","d3_ease_mode","d3_ease_reverse","d3_ease_reflect","d3_ease_clamp","d3_ease_cubicInOut","d3_interpolateHcl","bh","d3_interpolateHsl","d3_interpolateLab","aa","d3_interpolateRound","d3_transform","kx","d3_transformNormalize","kz","d3_transformDot","d3_transformCombine","skew","interpolateHcl","interpolateHsl","interpolateLab","interpolateRound","d3_transformIdentity","d3_interpolateTransformPop","d3_interpolateTranslate","ta","tb","d3_interpolateRotate","ra","d3_interpolateSkew","d3_interpolateScale","ka","kb","d3_interpolateTransform","d3_uninterpolateNumber","d3_uninterpolateClamp","d3_layout_bundlePath","lca","d3_layout_bundleLeastCommonAncestor","d3_layout_bundleAncestors","ancestors","aNodes","bNodes","aNode","bNode","sharedNode","d3_layout_forceDragstart","fixed","d3_layout_forceDragend","d3_layout_forceMouseover","d3_layout_forceMouseout","d3_layout_forceAccumulate","charges","charge","pointCharge","interpolateTransform","bundle","chord","chords","sortGroups","sortSubgroups","sortChords","groupSums","subgroupIndex","dj","subindex","resort","friction","linkDistance","d3_layout_forceLinkDistance","linkStrength","d3_layout_forceLinkStrength","chargeDistance2","d3_layout_forceChargeDistance2","repulse","dw","dn","dragmove","resume","chargeDistance","neighbors","candidates","d3_layout_hierarchyRebind","d3_layout_hierarchyLinks","d3_layout_hierarchyVisitBefore","d3_layout_hierarchyVisitAfter","nodes2","d3_layout_hierarchyChildren","d3_layout_hierarchyValue","d3_layout_hierarchySort","childs","revalue","pie","d3_layout_pieSortByValue","padAngle","arcs","d3_layout_stackX","d3_layout_stackY","d3_layout_stackOut","d3_layout_stackOrderDefault","d3_layout_stackOffsetZero","series","d3_layout_stackOrders","d3_layout_stackOffsets","d3_layout_stackMaxIndex","sums","d3_layout_stackReduceSum","tops","bottoms","silhouette","wiggle","s2","s3","o0","zero","d3_layout_stackSum","d3_layout_histogramBinSturges","d3_layout_histogramBinFixed","d3_layout_histogramRange","d3_layout_packSort","d3_layout_packInsert","_pack_next","_pack_prev","d3_layout_packSplice","d3_layout_packIntersects","d3_layout_packSiblings","d3_layout_packLink","d3_layout_packPlace","isect","d3_layout_packUnlink","d3_layout_packTransform","d3_layout_treeSeparation","d3_layout_treeLeft","d3_layout_treeRight","d3_layout_treeMove","wm","wp","d3_layout_treeShift","d3_layout_treeAncestor","vim","ancestor","d3_layout_clusterY","d3_layout_clusterX","d3_layout_clusterLeft","d3_layout_clusterRight","d3_layout_treemapPadNull","d3_layout_treemapPad","d3_scaleExtent","d3_scaleRange","rangeExtent","d3_scale_bilinear","uninterpolate","d3_scale_nice","nice","d3_scale_niceStep","d3_scale_niceIdentity","histogram","frequency","valuer","ranger","binner","bin","separation","nodeSize","root0","root1","wrapTree","firstWalk","secondWalk","sizeNode","node1","siblings","midpoint","apportion","vip","vop","vom","sip","sop","sim","som","cluster","previousNode","treemap","stickies","sticky","squarify","score","remaining","worst","stickify","rmax","rmin","padFunction","padConstant","σ","logNormal","bates","irwinHall","d3_scale_polylinear","d3_scale_linear","rangeRound","d3_scale_linearTicks","d3_scale_linearTickFormat","d3_scale_linearNice","d3_scale_linearRebind","d3_scale_linearTickRange","d3_scale_linearPrecision","d3_scale_linearFormatPrecision","d3_scale_linearFormatSignificant","d3_scale_log","niced","d3_scale_logNiceNegative","d3_scale_logFormat","d3_scale_pow","powp","d3_scale_powPow","powb","d3_scale_ordinal","rangeBand","rangePoints","rangeRoundPoints","rangeBands","outerPadding","rangeRoundBands","d3_category10","d3_category20","category20b","d3_category20b","category20c","d3_category20c","d3_scale_quantile","quantiles","invertExtent","d3_scale_quantize","d3_scale_threshold","d3_scale_identity","d3_zero","quantize","d3_svg_arcInnerRadius","d3_svg_arcOuterRadius","cornerRadius","padRadius","d3_svg_arcAuto","d3_svg_arcStartAngle","d3_svg_arcEndAngle","d3_svg_arcPadAngle","circleSegment","d3_svg_arcSweep","rc1","rc0","oc","kc","lc","t30","d3_svg_arcCornerTangents","t12","t03","ox","oy","cx0","cx1","d3_svg_line","defined","d3_svg_lineLinear","interpolateKey","tension","d3_svg_lineInterpolators","d3_svg_lineLinearClosed","d3_svg_lineStep","d3_svg_lineStepBefore","d3_svg_lineStepAfter","basis","d3_svg_lineBasis","d3_svg_lineBasisOpen","d3_svg_lineBasisClosed","d3_svg_lineBundle","cardinal","d3_svg_lineCardinal","d3_svg_lineCardinalOpen","d3_svg_lineCardinalClosed","monotone","d3_svg_lineMonotone","d3_svg_lineHermite","d3_svg_lineCardinalTangents","tangents","lp","d3_svg_lineDot4","d3_svg_lineBasisBezier3","d3_svg_lineBasisBezier","d3_svg_lineBasisBezier1","d3_svg_lineBasisBezier2","d3_svg_lineSlope","d3_svg_lineFiniteDifferences","d3_svg_lineMonotoneTangents","d3_svg_lineRadial","d3_svg_area","interpolateReverse","points0","points1","fx0","fy0","fx1","fy1","d3_svg_chordRadius","d3_svg_diagonalProjection","d3_svg_diagonalRadialProjection","d3_svg_symbolSize","d3_svg_symbolType","d3_svg_symbolCircle","projection_","d3_svg_symbols","d3_svg_symbolTan30","d3_svg_symbolSqrt3","d3_transitionId","d3_transitionNamespace","d3_transitionInherit","d3_transitionNode","d3_transition","d3_selection_interruptNS","lock","activeId","d3_transitionPrototype","d3_transition_tween","d3_transition_text","tweens","schedule","elapsed","cancelId","subnodes","nameNS","attrTweenNS","styleTween","inheritId","id0","tickFormat_","d3_svg_axisDefaultOrient","innerTickSize","outerTickSize","tickPadding","tickArguments_","tickValues","tickTransform","tickEnter","tickExit","tickUpdate","pathUpdate","lineEnter","lineUpdate","textEnter","textUpdate","d3_svg_axisX","d3_svg_axisY","d3_svg_axisOrients","tickSubdivide","xExtentDomain","yExtentDomain","xExtent","yExtent","xClamp","yClamp","resizes","d3_svg_brushResizes","brushstart","d3_svg_brushCursor","gUpdate","backgroundUpdate","redrawX","redrawY","eventTarget","event_","resizing","resizingX","resizingY","keydown","keyup","brushmove","brushend","ex","ey","keyCode","move1","extent1","extent0","d3_time_formatUtc","d3_time_formatIso","d3_time_formatIsoNative","toISOString","d3_time_scale","tickMethod","d3_time_scaleSteps","d3_time_scaleMilliseconds","d3_time_scaleDate","skip","skipped","iso","seconds","minute","minutes","hour","timezone","hours","d3_time_scaleLocalMethods","d3_time_scaleLocalFormat","d3_time_scaleUtcMethods","d3_time_scaleUtcFormat","d3_json","d3_html","selectNode","createContextualFragment","responseXML","inspectSource","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","createResult","setResult","createObject","setObject","setMap","Set","zLabelVal","_indexToPoints","percentInitial","percentPrevious","percentTotal","findNearestOnAxis","generateIsoMeshes","VolumeTrace","createVolumeTrace","rawId","_meshX","_meshY","_meshZ","_Ys","_Zs","_Xs","_meshI","_meshJ","_meshK","_meshIntensity","baseFilter","calcDataFilter","isCalcData","filterFn","getCentroid","isFunctionStringTag","isV","getStackOpts","interpolateGaps","setFirstScatter","xAttr","yAttr","xValid","yValid","xId","yId","firstScatter","_firstScatter","firstScatterGroup","stackOrientation","xOptions","yOptions","markerTrans","sizeOut","stackAx","clickModule","convertCoords","visibleDflt","autorangeDflt","reverseDflt","noHover","ticksonDflt","isMultiCategory","noTickson","showDividers","excludeWrapCoord","stopG","geometryMaybeCollection","isGeometryCollection","wrapShrink","coordIndex","isFeatureCollection","isFeature","featureIndex","geomIndex","multiFeatureIndex","geometryIndex","geomType","coordReduce","initialValue","currentCoord","propEach","propReduce","currentProperties","featureEach","featureReduce","currentFeature","coordAll","geomEach","featureProperties","featureBBox","featureId","currentGeometry","flattenEach","flattenReduce","segmentEach","segmentIndex","previousCoords","previousFeatureIndex","previousMultiIndex","prevGeomIndex","featureIndexCoord","multiPartIndexCoord","currentSegment","segmentReduce","lineEach","lineReduce","findSegment","findPoint","stepAttrs","sliderDefaults","sliderIn","sliderOut","stepCount","_stepCount","visSteps","_visibleSteps","currentValueIsVisible","countTrailingZeros","ctzNumber","BINATTRS","aStr","BINDIRECTIONS","binDir","allBinOpts","histTraces","mustMatchTracesLookup","otherTracesList","orientation2binDir","getAxisType","fillBinOpts","fallbackGroupName","needsNewItem","_xautoBinFinished","_yautoBinFinished","aGroupId","binGroupFound","bingroupIn","binGroup","binGroupInDir","attrSpec","nbinsFound","_pielayer","isRat","colorAxIn","colorAxOut","coerceAx","svgAttrs","colorMix","lightFraction","gridColorDflt","gridColor","gridWidth","showGridLines","showZeroLine","wrappedWellKnownSymbolModule","scatterGeoAttrs","mapboxAttrs","npGet","curPart","allSame","curCont","propStr","indexed","propParts","badContainer","npSet","ARGS_PATTERN","isDeletable","containerLevels","toDelete","setArrayAll","checkNewContainer","joinPropStr","newPart","toAdd","containerArray","innerParts","arrayVal","allSet","thisVal","thisPropStr","deleteThis","firstPart","nextPart","_sunburstlayer","colorDflt","colorDfltRgba","opacityDflt","calculateColor","colorIn","opacityIn","colorOut","validateColor","validateOpacity","formatColor","getColor","getOpacity","colori","opacityi","isArrayColorIn","isArrayOpacityIn","globalConfig","PlotlyConfig","MathJaxConfig","skipStartupTypeset","Configured","AxesOptions","tickFont","lineEnable","lineMirror","lineTickEnable","lineTickMirror","lineTickLength","lineTickWidth","lineTickColor","gridEnable","zeroEnable","backgroundEnable","_defaultTickPad","_defaultLabelPad","_defaultLineTickLength","createAxesOptions","showbackground","backgroundcolor","makeSet","yr","xd","yd","rowFromTo","rowFrom","rowTo","headerPanel","headerCells","headerRowBlocks","revolverPanel1","revolverPanel2","fromTo","buster","Int8Array","Int16Array","Float64Array","affineHull","linearlyIndependent","nhull","piecolorway","extendpiecolors","DATE_FORMAT_LINK","handleAxisPositionDefaults","axisLayoutAttrs","SI_PREFIX","drawBulletGauge","bullet","axisLayer","gaugeBg","gaugeOutline","bulletHeight","innerBulletHeight","bulletLeft","bulletRight","drawRect","bgBullet","styleShape","fgBullet","bulletOutline","drawAngularGauge","gaugePosition","valueToAngle","arcPathGenerator","drawArc","bgArc","valueArcPathGenerator","valueArc","valueArcPath","arcTween","thresholdArc","gaugeBorder","drawNumbers","bignumberbBox","deltabBox","numbersbBox","numbersX","numbersY","numbersAlign","numbersAnchor","transitionFormat","transitionValueFormat","transitionAx","drawBignumber","bignumberAx","bignumberSuffix","bignumberPrefix","writeNumber","interpolator","transitionFmt","drawDelta","deltaAx","deltaFmt","deltaValue","deltaFormatText","numberFmt","deltaFill","_deltaLastValue","writeDelta","bignumberCenter","deltaCenter","numbersScaler","scaleRatio","_numbersTop","newAngle","zrange","axisOptions","fitTextInsideBox","fitTextInsideCircle","elRadius","textAnchor","_indicatorlayer","hasGauge","angularGauge","angularaxisLayer","bulletGauge","bulletaxisLayer","titleY","titleX","titlebBox","scatterPolarAttrs","theta0","dtheta","AxisSpikes","OUTER_FACE","INNER_FACE","lastCubeProps","outerFace","innerFace","gridAttrs","roworder","noGridCell","getAxes","gridVal","splomVal","sizeDefaults","gridIn","dfltRows","dfltColumns","hasSubplotGrid","hasXaxes","hasYaxes","isSplomGenerated","gridOut","useDefaultSubplots","_hasSubplotGrid","dfltSideX","dfltSideY","rowOrder","dfltGapX","dfltGapY","_domains","fillGridPositions","dfltGap","dfltSide","dirGap","cellDomain","cellStart","contentDefaults","subplotsOut","yPos","axisMap","_axisMap","subplotsIn","rowOut","rowIn","fillGridAxes","anchors","_anchors","axisId","iFinal","axesIn","axesAllowed","fillOneAxis","parcoords","newIndex","visibleIndices","orig","origIndex","currentIndex","sorter","currentDims","fullIndices","inputIndices","iIn","filterChanged","initialDimIndex","newRanges","newConstraints","preGUI","constraintrange","fullDimension","restyleData","axesMoved","legendLayout","isReversed","minMax","setConvertRadial","rFilter","g2c","g2p","toRadians","fromRadians","setConvertAngular","_d2c","_c2d","coord0","dcoord","rad2c","c2rad","rad2t","t2rad","rad2g","g2rad","catLen","_period","g2t","applyOrigin","tittle","clearRect","topPx","firstTop","getImageData","bottomPx","baselinePx","baseline","alphabetic","medianPx","hangingPx","hanging","ideographicPx","ideographic","capHeight","xHeight","firstBottom","overshootPx","iData","UmmAlQuraCalendar","daysCount","mcjdn","ummalqura_dat","lunation","ii","ummalqura","near","far","mappers","dict","sunburstcolorway","extendsunburstcolors","alphaComplex","circumradius","scalegroup","scalemode","spanmode","piePlot","determineInsideTextFont","layoutAreas","prerenderTitles","positionTitleOutside","formatSliceLabel","getBetween","setCoords","baseratio","h2","totalValues","sumSteps","allPoints","getPoint","hidden","lastX","rY","prevLeft","prevRight","TL","TR","BL","BR","calcPos","_funnelarealayer","textPosition","titleTextGroup","globalThis","permutationSign","visited","_120","bezierX","bezierY","quadX","quadY","quadratic","large_arc_flag","sweep_flag","recursive","rx2","ry2","f2old","x2old","y2old","degress","activeXDocument","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","write","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","contentWindow","NullProtoObject","ActiveXObject","safeToString","reNewLine","ia","Ab","Za","Bb","Cb","onDestroy","Db","$a","Eb","devicePixelRatio","extensions","optionalExtensions","Fb","restore","J","alloc","allocType","freeType","ma","eb","Ha","Ia","gb","Gb","persistentData","bufferData","Qa","bufferCount","deleteBuffer","bindBuffer","getTotalBufferSize","jb","Ra","ja","_reglType","_buffer","subdata","bufferSubData","createStream","destroyStream","getBuffer","_initBuffer","Hb","primType","vertCount","oes_element_index_uint","elementsCount","uint16","uint32","Sa","getElements","lb","Ib","Ea","mb","Ta","Jb","ob","Ja","qa","Kb","internalformat","flipY","premultiplyAlpha","compressed","unpackAlignment","colorSpace","channels","alignment","Lb","La","pixelStorei","needsFree","needsCopy","fa","ga","Ua","qb","naturalWidth","naturalHeight","sb","videoWidth","videoHeight","Ma","compressedTexSubImage2D","copyTexSubImage2D","genMipmaps","mipmapHint","mipmask","mipmap","compressedTexImage2D","copyTexImage2D","ib","anisotropic","Va","Mb","V","K","ext_texture_filter_anisotropic","refCount","bindCount","texInfo","Aa","pixels","textureCount","fast","nearest","none","rgba4","rgb565","luminance","ext_srgb","srgb","srgba","oes_texture_float","oes_texture_half_float","float16","webgl_depth_texture","webgl_compressed_texture_s3tc","webgl_compressed_texture_atc","webgl_compressed_texture_pvrtc","webgl_compressed_texture_etc1","Nb","textureFormats","oa","za","ea","maxTextureUnits","decRef","getTotalTextureSize","create2D","subimage","_texture","createCube","cubeCount","getTexture","Ob","renderbuffer","_renderbuffer","framebuffer","colorAttachments","depthStencilAttachment","stencilAttachment","depthAttachment","framebufferCount","getError","colorCount","colorTexture","colorFormat","depthTexture","depthStencilTexture","depthStencil","Wa","Na","_framebuffer","use","setFBO","ext_color_buffer_half_float","webgl_color_buffer_float","getFramebuffer","ub","divisor","Pb","maxAttributes","Record","Qb","fragId","vertId","uniformsCount","attributesCount","getActiveUniform","getActiveAttrib","getAttribLocation","getMaxUniformsCount","getMaxAttributesCount","shaderCount","Rb","framebufferWidth","framebufferHeight","Ba","Ca","Sb","def","save","cond","Oa","thisDep","contextDep","propDep","Tb","Ka","Fa","batchId","shared","invoke","attribCache","scopeAttrib","scissor_box","strings","progVar","OFFSET","ELEMENTS","isBufferArgs","primTypes","instances","Xa","compareFuncs","Ga","dst","blendFuncs","blendEquations","Pa","fail","zfail","zpass","stencilOps","Da","isStream","glTypes","drawBuffer","backBuffer","instancing","contextDynamic","needsContext","needsFramebuffer","la","isDynamic","unbox","DynamicVariable","ext_blend_minmax","angle_instanced_arrays","webgl_draw_buffers","orientationType","maxDrawbuffers","procs","Ub","accessor","Ya","Vb","colorBits","depthBits","stencilBits","subpixelBits","maxAnisotropic","pointSizeDims","lineWidthDims","maxViewportDims","maxCombinedTextureUnits","maxCubeMapSize","maxRenderbufferSize","maxVertexUniforms","maxVertexTextureUnits","maxVaryingVectors","maxFragmentUniforms","glsl","vendor","readFloat","npotTextureCube","int8","int16","int32","triangle","Wb","renderbufferCount","rgba16f","rgb16f","rgba32f","getTotalRenderbufferSize","never","lequal","greater","notequal","gequal","always","keep","decrement","Xb","endQueryIndex","startQueryIndex","ext_disjoint_timer_query","beginQuery","createQueryEXT","beginQueryEXT","endQuery","endQueryEXT","pushScopeStats","getQueryObjectEXT","gpuTime","getNumPendingQueries","deleteQueryEXT","refresh","opBack","opFront","cpuTime","batch","poll","clearDepth","clearStencil","getContextAttributes","framebuffer_reglType","framebufferCube","hasExtension","_refresh","timerCache","_clearTimeout","minInterval","previousOnDone","ReflectOwnKeys","Reflect","ReflectApply","receiver","ProcessEmitWarning","warning","ownKeys","NumberIsNaN","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","prepend","existing","newListener","onceWrapper","fired","removeListener","wrapFn","_onceWrap","_listeners","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","RangeError","setMaxListeners","getMaxListeners","doError","er","addListener","prependListener","prependOnceListener","originalListener","removeAllListeners","rawListeners","eventNames","circuits","blocked","Ak","unblock","circuit","subgraph","minId","adjacencyStructureSCC","leastVertexComponent","sccs","ccs","leastVertex","vertexId","ShaderAttribute","_wrapper","_locations","_constFunc","addVectorAttribute","constFuncArgs","varNames","addMatrixAttribute","vertexAttribPointer","scratch","vertexAttrib","locs","mockGd","xLabel","yLabel","xyAttrs","copy_zstyle","xyzAttrs","error_z","hoverInfo","calcPoint","hoverPoint","yerr","yerrneg","xerr","xerrneg","scatter","scatter3d","scattergl","makeComputeError","parsed","do_convert","createShaderWrapper","perspectiveVertSrc","orthographicVertSrc","projectionVertSrc","drawFragSrc","ATTRIBUTES","pickPerspective","pickOrtho","pickProject","glyph","createPerspective","createOrtho","createProject","createPickPerspective","createPickOrtho","createPickProject","makeIncrements","nonuniform","binsToCalc","getRanges","uniqueVals","gapLow","gapHigh","xr2c","yr2c","xc2r","yc2r","xBinsAndPos","xBinSpec","xPos0","yBinsAndPos","yBinSpec","yPos0","onecol","zerocol","nonuniformBinsX","nonuniformBinsY","xEdges","yEdges","densitynorm","extremefunc","sizeinit","binfunc","normfunc","doavg","xinc","yinc","xBinSize","xBinStart","xBinEnd","yBinSize","yBinStart","yBinEnd","ipCol","uniqueValsPerX","uniqueValsPerY","xVals","yVals","xGapLow","xGapHigh","yGapLow","yGapHigh","YANGLE","HOVERARROWSIZE","HOVERTEXTPAD","HOVERFONTSIZE","HOVERFONT","HOVERMINTIME","HOVERID","axisLetter","crossAxisLetter","j1","gridlines","_gridlines","minorgridlines","_minorgridlines","boundarylines","_boundarylines","crossData","crossAxis","xcp","_xctrl","ycp","_yctrl","nea","neb","constructValueGridline","tj","pxy","dxydi0","dxydi1","dxydj0","dxydj1","xpoints","ypoints","b2j","crossLength","evalxy","dxydi","a2i","dxydj","constvar","constructArrayGridline","arraytick0","arraydtick","minorgridcount","minorgridcolor","minorgridwidth","startline","startlinecolor","startlinewidth","endline","endlinecolor","endlinewidth","annotationsDone","emitClick","stopImmediatePropagation","isAbsolute","isTotal","previousSum","hasTotals","rawS","mlc","els","unels","matrixOpts","unselectedOptions","selectedOptions","viewOpts","description","dfltX","dfltY","calcMarkerColorscale","isNonBlankString","isValidLoc","hasLocationData","scatterPlot","mlayer","rg","boxPlot","linePoints","cdViolins","violinLayer","makePath","baseTolerance","linearized","bPos","bdPos","hasBothSides","hasPositiveSide","hasNegativeSide","violins","pathPos","pathNeg","pathSel","density","posCenter","maxKDE","groupStats","_violinScaleGroupStats","maxCount","startPt","endPt","bdPosScaled","bPosPxOffset","plotBoxAndWhiskers","plotBoxMean","meanPaths","plotPoints","paste","traceAttr","cdAttr","makeCoerceHoverInfo","fillFn","fillArray","valuesuffix","arrangement","basePlotLayoutAttributes","handleTypeDefaults","handlePositionDefaults","appendList","ax2traces","xaMayHide","yaMayHide","xaMustDisplay","yaMustDisplay","yaMustNotReverse","yaMayReverse","axHasImage","noGrids","xaName","yaName","positionAxis","xNames","axNames","plotBgColor","axLayoutIn","axLayoutOut","getCounterAxes","counterAxes","getOverlayableAxes","axName2","_annIndices","_counterAxes","overlayableAxes","defaultOptions","spikedash","spikemode","spikesnap","showSpikes","rangeSliderDefaults","rangeSelectorDefaults","anchoredAxis","fixedRangeDflt","group2","layerName","getExtraText","isAll","hasLon","hasLat","lonShift","xval2","distFn","lonlatShifted","drawing","setPosition","setSize","translatePoint","translatePoints","hideOutsideRangePoint","singleLineStyle","ld","lw1","dashStyle","dlw","singleFillStyle","SYMBOLDEFS","symbolNames","symbolFuncs","symbolNeedLines","symbolNoDot","symbolNoFill","symDef","MAXSYMBOL","DOTPATH","makePointPath","symbolNumber","vbase","HORZGRADIENT","VERTGRADIENT","stopFormatter","gradientInfo","radialreversed","horizontalreversed","vertical","verticalreversed","gradientID","colorStops","fullID","stops","tc","tinyRGB","getFullUrl","className2query","_gradientUrlQueryParts","initGradients","gradientsGroup","makePointStyleFns","singlePointStyle","ms2mrc","om","perPointGradient","so","markerLineWidth","mlcc","lineScale","markerScale","mgt","gradientColor","mgc","selectedAttrs","unselectedAttrs","selectedMarker","unselectedMarker","smo","usmo","smoIsDefined","usmoIsDefined","smc","usmc","sms","usms","smsIsDefined","usmsIsDefined","makeSelectedTextStyleFns","selectedTextFont","unselectedTextFont","stc","selectedTextColorFn","mrc2","TEXTOFFSETSIGN","textPointPosition","markerRadius","numLines","extracTextFontSize","extractOption","tp","CatmullRomExp","makeTangent","prevpt","thispt","nextpt","smoothness","d1x","d1y","d2x","d2y","d1a","d2a","numx","numy","denom1","denom2","pLast","STEPPATH","hv","vh","hvh","vhv","STEPLINEAR","onestep","makeTester","testref","savedBBoxes","savedBBoxesCount","maxSavedBBoxes","nodeHash","inputText","localId","baseUrl","_exportedPlot","_baseUrl","inTester","testNode","innerBB","testRect","SCALE_RE","yScale","TEXT_POINT_LAST_TRANSLATION_RE","existingTransform","propertyKey","copyPathinfo","pi0","pi1","op0","op1","dupe_array","dupe_number","dupe","stringCoerce","toShortString","resolveMessage","defaultMessage","inputOptions","isOptional","errorMessage","SHOWISOLATETIP","itemClick","itemclick","itemDoubleClick","itemdoubleclick","attrUpdate","attrIndices","carrs","carrIdx","thisLabelIndex","hasLegendgroup","traceIndicesInGroup","nextVisibility","setVisibility","isClicked","isInGroup","notInLegend","otherState","isIsolated","updateKeys","insertUpdate","attrIndex","valueArray","lastGroupbyIndex","curState","hoverConstants","oldhoverdata","calcCommon","ptFunc","_numBoxes","literals100","operators","builtins100","literals300es","builtins300es","NORMAL","TOKEN","BLOCK_COMMENT","LINE_COMMENT","PREPROCESSOR","OPERATOR","INTEGER","IDENT","BUILTIN","KEYWORD","WHITESPACE","HEX","isnum","isoperator","allBuiltins","allLiterals","builtinsDict","literalsDict","chunk","block_comment","line_comment","preprocessor","operator","readtoken","whitespace","determine_operator","is_composite_operator","contentstr","getSubplotCalcData","MAPBOX","findAccessToken","mapboxIds","tokensUseful","tokensListed","hasOneSetMapboxStyle","wontWork","isMapboxStyle","noAccessTokenErrorMsg","missingStyleErrorMsg","multipleTokensErrorMsg","requiredVersion","wrongVersionErrorMsg","subplotCalcData","oldMapboxKeys","oldMapboxKey","subplotDiv","logo","mapboxLogo","path2","attributions","attributionGroup","attributionText","multilineAttributions","SANKEY","subplotUpdateFx","bgRect","_bgRect","newGroups","oldGroups","newGroup","findNode","hadPlot","hasPlot","circumcenter","avgDist","extendedColorWayList","hiddenLabels","_hasValues","dlabel","label0","allThisTraceLabels","isAggregated","shouldSort","extendedColorWays","colorString","cm","zminDesc","zmaxDesc","do_warp","do_warp_1","do_warp_2","do_warp_3","handleConstraintValueDefaults","zvalue","lineDfltColor","boxLayoutDefaults","plotObj","_ev","internalEv","_internalEv","_internalOnce","_removeAllInternalListeners","trigger","jQueryHandlerValue","nodeEventHandlerValue","handlers","arrayMax","maybeArray","squareStringMatrix","matrixIn","maxLen","padLen","emptyStrings","padArray","makeRowBlock","anchorToRowBlock","auxiliary","blockAnchorKeys","makeAnchorToRowBlock","rowHeights","minimumFillHeight","currentRowHeight","currentAnchor","currentBlockHeight","currentBlock","makeIdentity","currentFirstRowIndex","blockCounter","lastRowIndex","cellsValues","slicer","headerValuesIn","headerValues","groupWidth","headerRowHeights","anchorToHeaderRowBlock","uniqueKeys","columnOrder","columnWidths","totalColumnWidths","foundKey","compareOrientedCells","createTriangulation","removePair","compareLex","removeTriangle","addTriangle","ChineseCalendar","MONTH_NUMBER_REGEXP","_validateYear","monthIndex","toChineseMonth","isIntercalaryMonth","MONTH_NAME_REGEXP","monthName","MONTH_SHORT_NAME_REGEXP","monthString","intercalaryMonth","invalidIntercalaryMonth","maxMonthIndex","monthDaysTable","LUNAR_MONTH_DAYS","firstThursday","validatedYear","invalidyear","packedDate","CHINESE_NEW_YEAR","solar","toSolar","lunar","toLunar","fromString","dateString","DATE_REGEXP","resultYear","resultMonthIndex","resultCanBeIntercalaryMonth","correctedMonthIndex","chinese","yearOrDate","monthOrResult","solarDate","lunarDate","isValidYear","isValidMonth","isValidDay","chineseNewYearPackedDate","daysFromNewYear","chineseNewYearJSDate","jsDate","isIntercalaryOrResult","monthsFromNewYear","getUpdateObject","makeSelectorData","selectorKeyFunc","isActive","axisLayout","drawButtonRect","selectorLayout","getFillColor","_isActive","_isHovered","drawButtonText","getLabel","reposition","tHeight","hEff","tWidth","tLines","wEff","minButtonWidth","selectors","appendArrayMultiPointValues","percent","hoverOnBars","DIRSYMBOL","vAxis","deltaLabel","finalLabel","initialLabel","_glTrace","updateOnSelect","layerId","hr_name","NanakshahiCalendar","nanakshahi","isArguments","iteratorSymbol","autoContours","inputContours","isLonLatOverEdges","aLabel","bLabel","cLabel","axisOpts","slideBox","grabAreaMin","grabAreaMax","mouseMove","pixelMin","pixelMax","_pixelMin","_pixelMax","setDataRange","mouseUp","setPixelRange","oppAxisOpts","oppAxisRangeOpts","hw2","clampOppAxis","clampHandle","pixelMinOppAxis","d2pOppAxis","pixelMaxOppAxis","drawBg","borderCorrect","offsetShift","addClipPath","_clipId","drawRangePlot","rangePlots","isMainPlot","oppAxisName","mockFigure","isRangePlot","rangePlot","filterRangePlotCalcData","drawMasks","maskMin","maskMax","maskMinOppAxis","maskMaxOppAxis","maskOppBorder","drawSlideBox","drawGrabbers","grabberMin","grabberMax","handleFixAttrs","handleDynamicAttrs","handleMin","handleMax","grabAreaFixAttrs","keyFunction","rangeSliders","axRng","range0","range1","range0OppAxis","range1OppAxis","distOppAxis","recompose","decompose","slerp","state0","state1","quaternion","oldValue","tobj","gridline","_labels","endAnchor","isFirst","isLast","rootPosition","mouseEventOffset","getBoundingClientOffset","scatterGeoMarkerLineAttrs","createScatterPlot","DASH_PATTERNS","MARKER_SYMBOLS","calculateError","LineWithMarkers","errorBars","textMarkers","delaunayMesh","dataPoints","textLabels","constructDelaunay","filteredPoints","filteredIds","calculateErrorParams","parseAlignmentX","parseAlignmentY","calculateTextOffset","defaultAlignmentX","defaultAlignmentY","textOffset","calculateSize","sizeIn","calculateSymbol","symbolIn","formatParam","paramIn","extraFn","paramOut","convertPlotlyOptions","zc","scaleFactor","d3locale","lineDashes","scatterColor","scatterSize","scatterMarker","scatterLineWidth","scatterLineColor","scatterAngle","textSize","projectScale","projectOpacity","errorBounds","errorParams","errorColor","errorLineWidth","errorCapSize","delaunayAxis","surfaceaxis","delaunayColor","arrayToColor","createLineWithMarkers","scatterOptions","errorOptions","dashPattern","scatterOpacity","highlightScale","delaunayOptions","traceref","tracerefminus","doBind","nattribs","MAX_VERTEX_ATTRIBS","attrib","vertexAttrib1f","vertexAttrib2f","vertexAttrib3f","vertexAttrib4f","ARRAY_BUFFER","dimi","mimickAxisDefaults","axesList","helpers_1","xSum","ySum","colorBars","makeColorBarData","cbbg","cbfills","cblines","cbaxis","cbtitleunshift","cbtitle","cboutline","drawColorBar","_fillcolor","_line","_levels","_filllevels","_fillgradient","_zrange","calcOpts","moduleOpts","allowsMultiplotCbs","contName","_traceIndex","_propPrefix","colorAxOpts","titleSide","lineColormap","fillColormap","levelsIn","levelsOut","calcLevels","fillLevels","lineLevels","thickPx","thickFrac","lenPx","lenFrac","xpadFrac","yExtraPx","ypadFrac","xLeftFrac","yBottomFrac","yBottomPx","yTopPx","_lenFrac","_thickFrac","_xLeftFrac","_yBottomFrac","mockColorBarAxis","titlex","titley","autoNtick","dtFactor","dtexp","titleCont","titleOpts","dfltTitleOpts","otherClass","drawDummyTitle","drawCbTitle","drawAxis","titleTrans","mathJaxNode","lineSize","jsPlaceholder","nlines","fills","cbfill","zBounds","fillEl","cbline","positionCB","titleWidth","outerwidth","outerheight","xoffset","marginOpts","tFrac","bFrac","lFrac","rFrac","extraThickness","zr0","zr1","fillLevelsIn","cbAxisIn","cbAxisOut","mobileRE","tabletRE","BOTTOMSTART","TOPSTART","LEFTSTART","RIGHTSTART","NEWDELTA","CHOOSESADDLE","104","208","713","1114","SADDLEREMAINDER","2","4","7","8","11","13","14","scatterglPlot","sceneUpdate","subRArray","subThetaArray","markerSel","markerUnsel","textSel","textUnsel","rawx","rawy","fargs","reads","sizeLetter","percentInitialLabel","percentPreviousLabel","percentTotalLabel","colorbarOut","colorbarIn","createFilteredVector","cubicHermite","FilteredVector","velocity0","_velocity","_scratch","getZero","initState","initVelocity","initTime","steady","dcurve","derivative","stable","jump","sf","statePtr","toPosInt","validValue","arrayLike","Context","mapFn","ScrollBox","hbar","vbar","barRadius","boxL","boxR","boxT","boxB","isDown","isLeft","isRight","isUp","boxW","boxH","_box","needsHorizontalScrollBar","hbarW","hbarH","hbarL","hbarT","_hbarXMin","_hbarTranslateMax","needsVerticalScrollBar","vbarW","vbarH","vbarL","vbarT","_vbarYMin","_vbarTranslateMax","clipL","clipR","clipT","clipB","_clipRect","onBoxDrag","_onBoxDrag","_onBoxWheel","onBarDrag","_onBarDrag","translateXMax","translateYMax","convexHull2D","monotoneHull","DASHES","makeProjectionAttr","primitivesLoopSplice","inputs","isDeep","keepAllKeys","noArrayCopies","copyIsArray","allPrimitives","extendDeepNoArrays","postfix","padLeft","delim","totalDigits","handleOHLC","handleDirection","isLE","mLen","nBytes","eMax","eBias","nBits","insidetextorientation","pull","titleposition","mouseListen","buttonState","mods","alt","control","attached","updateMods","handleEvent","nextButtons","nextY","clearState","handleBlur","handleMods","handleMouseMove","handleMouseDown","handleMouseUp","attachListeners","detachListeners","ensureSingleAndAddDatum","cdSubplot","traceLayerClasses","zoomScaleQueryParts","plotMethod","zoomScale","clipOnAxisFalseQuery","clipOnAxisFalseTraces","makeSubplotData","regulars","xa2","ya2","makeSubplotLayer","xLayer","layerValue2layerClass","yLayer","hasOnlyLargeSploms","mainplotgroup","overlinesBelow","overaxesBelow","overplot","overlinesAbove","overaxesAbove","xlines","ylines","backLayer","imagelayer","purgeSubplotLayers","overlayIdsToRemove","removeSubplotExtras","subplotInfo","overlayInfo","transitionAxes","finalizeSubplots","spSVG","spAll","allX","allY","ki","pcd","oldPlots","newPlots","oldSubplotList","hadGl","hasGl","oldAxIDs","oldAxId","hadCartesian","hasCartesian","_cartesianlayer","oldSubplotId","subplotLayers","draglayer","imageRoot","canvases","canvasToImage","heatmapHover","xRange","yRange","regexpFlags","stickyHelpers","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","charsAdded","strCopy","multiline","hoverdistance","spikedistance","robustSubtract","EPSILON","ERRBOUND3","ERRBOUND4","orientation3Exact","orientation4Exact","adx","bdx","cdx","ady","bdy","cdy","adz","bdz","cdz","bdxcdy","cdxbdy","cdxady","adxcdy","adxbdy","bdxady","permanent","slowOrient","generateOrientationProc","b01","b02","b03","b04","b05","b06","b07","b08","b09","b10","b11","createView","mouseWheel","hasPassive","distanceLimits","pmatrix","keyBindingMode","enableWheel","rotateSpeed","zoomSpeed","translateSpeed","flipX","modes","ctime","sizeChanged","getMode","curUp","curEye","curCenter","setMode","_active","ncenter","neye","nup","_lastX","_lastY","_lastMods","handleInteraction","ctrl","drot","kzoom","wheelListener","shouldHide","minKey","getMinKey","minsize","pointsAccessorFunction","transformOne","srcArray","newTrace","arrayLookup","groupNameObj","transformIndex","originalPointsAccessor","groupNames","newData","arrayAttrs","styleLookup","indexCnts","suppliedName","nameformat","indexToPoints","clearExpandedTraceDefaultColors","_compareAsJSON","transformIn","transformOut","styleIn","styleOut","thisStyle","newTraces","compareOrientedCell","reduceCellComplex","detection","POLYFILL","NATIVE","describeVariables","descPart","quotedKeys","HiddenSymbol","isNativeSafe","NativeSymbol","generateName","setupStandardSymbols","setupSymbolRegistry","ignore","__description__","__name__","manage","AxisIDs","scatterCalc","expandForErrorBars","errExt","_bnds","sceneOptions","errorX","errorY","errorBarPositions","hasTooManyPoints","snap","monotoneTriangulate","makeIndex","delaunayFlip","filterTriangulation","canonicalizeEdge","compareEdge","canonicalizeEdges","getDefault","cdt2d","exterior","infinity","objPrototype","created","ie11BugWorkaround","textGet","globals","__TEXT_CACHE","shapeX","tri","fontcache","bufferSize","ew","xa0","ya0","xaHash","yaHash","xActive","yActive","allFixedRanges","hasScatterGl","hasSplom","hasSVG","updates","isMainDrag","singleEnd","recomputeAxisLists","hashValues","isDirectionActive","calcLinks","isSubplotConstrained","getDragCursor","zoomMode","zoomDragged","clearAndResetSelect","attrStr","getEndText","hAlign","vAlign","_hmpixcount","_hmlumcount","_transitioningWithDuration","noZoom","xyCorners","xCorners","yCorners","updateZoombox","zoomAxRanges","updateMatchedAxRange","dragTail","dragModePrev","isSelectOrLasso","_redrag","dragDataNow","updateSubplots","scrollViewBox","redrawTimer","REDRAWDELAY","zoomWheel","_enablescrollzoom","gbb","xfrac","yfrac","zoomWheelOneAxis","ticksAndAnnotations","axRange","doZoom","dragAxList","dxySign","dxyFraction","yStart","axArray","movedAx","newLinearizedEnd","otherEnd","axi","dZoom","newEnd","matchedAxes","constrainedAxes","xLinks","yLinks","activeAxIds","pushActiveAxIds","doubleClickConfig","plotinfos","splom","xrng","yrng","xScaleFactor2","yScaleFactor2","editX2","editY2","getShift","getLinkedScaleFactor","scaleAndGetShift","attachWheelEventHandler","dragClass","dragger3","activeVal","r0Fraction","r1Fraction","linkedAxes","axRangeLinear0","axRangeLinearSpan","linkedR0Fraction","pix","nsew","clen","xID","yID","xLinkID","yLinkID","xaHashLinked","xaxesLinked","yaHashLinked","yaxesLinked","wheelEventName","onwheel","_onwheel","onmousewheel","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","arr2","colorId","extend","updateDiff","f32","Scatter","paletteIds","markerTextures","markerCache","maxColors","tooManyColors","shaderOptions","paletteSize","scaleFract","translateFract","positionBuffer","xFract","positionFractBuffer","yFract","sizeBuffer","borderSize","colorBuffer","borderColorId","activation","drawMarker","circleOptions","drawCircle","pixelSize","_this2","_len","_key","drawItem","getMarkerDrawOptions","markerId","selectionBuffer","markerTexture","lod","markerActivation","_lod$l","_this3","_len2","_key2","ondraw","hasSize","hasColor","updateColor","_bounds","_positions","markers","markerMasks","addMarker","_id2","vp","_i2","_group2","_i3","_colorId","_i4","sdf","distArr","_i5","_i6","updatePalette","extend$1","reglScatter2d","scatter$$1","float2rat","rangeLinear","createHeatmap2D","GLHeatmap2D","weightBuffer","idBuffer","xData","yData","WEIGHTS","boundX","boundY","viewTransform","PICK_VECTOR","colorLevels","colorValues","lox","loy","hix","hiy","numX","numY","yc0","yc1","xc0","xc1","colorIdx","pieAttrs","sunburstAttrs","maxdepth","squarifyratio","depthfade","sqInit","isort","BLUE_FLAG","RED_SWEEP_QUEUE","RED_SWEEP_INDEX","BLUE_SWEEP_QUEUE","BLUE_SWEEP_INDEX","COMMON_SWEEP_QUEUE","COMMON_SWEEP_INDEX","SWEEP_EVENTS","rcount","eventLength","sqPop","sqPush","istart","iend","redOffset","redActive","blueActive","commonActive","redShift","blueShift","isRed","oidx","ensurePlainFunction","normalizeOptions","dgs","overwriteDefinition","resolveContext","yl","htx","hbg","hbc","hts","htc","htf","hnl","ht","fakeCd","pointData2","rVal","rLabel","thetaVal","thetaLabel","planarDual","numEdges","cut","noCut","nextCell","nextVertex","nextDir","nbhd","extractCycle","shouldGlue","pcycle","ncycle","LinkedList","selfIntersection","segmentNew","segmentId","myFill","above","otherFill","segmentCopy","event_root","eventCompare","p1_isStart","p1_1","p1_2","p2_isStart","p2_1","p2_2","pointsCompare","pointsSame","pointAboveOrOnLine","eventAdd","other_pt","here","isStart","eventAddSegmentStart","primary","ev_start","eventAddSegmentEnd","ev_end","eventAddSegment","eventUpdateEnd","segmentChop","eventDivide","primaryPolyInverted","secondaryPolyInverted","status_root","statusCompare","ev1","ev2","pointsCollinear","statusFindSurrounding","findTransition","checkIntersection","linesIntersect","a1_equ_b1","a2_equ_b2","a1_between","pointBetween","a2_between","alongA","alongB","isEmpty","getHead","surrounding","checkBothIntersections","eve","tempStatus","segmentUpdate","rewind","st","exists","statusRemove","b12","b20","b21","b22","createProperty","arraySpeciesCreate","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","dimensionIn","dimensionOut","orderDefault","isValidArray","labelfontDflt","categoryfontDefault","handleTraceDefaults","CANONICAL_TICK","coptic","discworld","ethiopian","hebrew","julian","mayan","nepali","CANONICAL_SUNDAY","DFLTRANGE","UNKNOWN","d3ToWorldCalendars","worldCalFmt","modifier","directive","directiveLen","directiveObj","replacementPart","getCal","allCals","calendarObj","makeAttrs","makeTraceAttrsDescription","xAttrs","axisAttrs","histogram2d","histogram2dcontour","mesh3d","ohlc","candlestick","valuecalendar","targetcalendar","decodeFloat","UINT8_VIEW","FLOAT_VIEW","arrRange","SPLOM","passes","passId","getBox","iloy","ihiy","jlox","jhix","iitem","jitem","this$1","planned","updateItem","i$1","tracePasses","passOffset","multirange","multipadding","ih","i$2","ref$1","ref$2","passes$1","passOffset$1","firstAxis","maybeCarpet","nativeDefineProperty","Attributes","commonList","animationAttrs","currentvalue","activebgcolor","gripBgActiveColor","railBgColor","railBorderColor","railBorderWidth","minorticklen","minorTickLength","LOG_CLIP_PLUS","LOG_CLIP_MINUS","clusterStartPt","clusterEndPt","clusterHighPt","clusterLowPt","clusterHighFirst","clusterUnitVector","thisVector","clusterRefDist","clusterHighVal","clusterLowVal","clusterMinDeviation","clusterMaxDeviation","thisDeviation","latestXFrac","latestYFrac","xLog","yLog","minTolerance","pti","getPt","crossesViewport","xFrac0","yFrac0","xFrac1","yFrac1","getTolerance","nextPt","xFrac","yFrac","offScreenFraction","toleranceGrowth","ptDist","xEdge","yEdge","lastXEdge","lastYEdge","lastFarPt","edgePt","getEdgeIntersections","maxScreensAway","xEdge0","xEdge1","yEdge0","yEdge1","getLinearEdgeIntersections","ptCount","ptInt","onlyConstrainedPoint","sameEdge","getHVEdgeIntersections","ptInt1","ptInt2","getABAEdgeIntersections","limit0","limit1","ptToAlter","midShift","getClosestCorner","updateEdge","xSame","ySame","xSame2","ySame2","updateEdgesForReentry","intersections","lastPt","horizontalOrder","alo","ahi","blo","getXRange","buttonLayout","currentRange","stepmode","base2","xrange","createMatrix","visibleLength","domains","dmn","needsBaseUpdate","commonLength","selOpts","splomCalcData","plainObject","customCreate","createGeo","GEO","plotGeo","geoId","geoCalcData","_geolayer","oldGeoKeys","oldGeoKey","oldGeo","subplotLayout","supplyGl3dAxisLayoutDefaults","handleGl3dDefaults","sceneLayoutIn","sceneLayoutOut","bgColorCombined","cameraKeys","hasAspect","defaultAspectMode","aspectMode","aspectmode","fullGl3dData","getDfltFromLayout","hasNon3D","RE","SelectBox","boxBuffer","boxShader","selectBox","innerColor","outerColor","createSelectBox","boxVertex","boxFragment","screenWidth","screenHeight","numArr","scalarScalar","linearExpansionSum","eptr","fptr","ei","fi","_bv","_av","_br","_ar","q0","boxIntersectWrapper","RESULT","boxEmpty","convertBoxes","boxIntersect","redList","redIds","blueList","blueIds","appendItem","intersectFullArray","intersectBipartiteArray","arg1","arg2","meshAttrs","makeSliceAttr","makeCapAttr","_responsiveChartHandler","bundlecolors","sortpaths","plotApi","imageDataOnly","isImpliedOrValid","fullOpts","clonedGd","layoutImage","configImage","redrawFunc","urlToImageData","_carpet","ij","ab2ij","interp1d","w00","w01","interp3d","u0","u1","w000","w010","w100","w110","w001","w011","w101","w111","interpNd","isHoriz","hovermodeDflt","hoverMode","hasMapbox","hasGeo","axisConstraints","enforceAxisConstraints","cleanAxisConstraints","SVG_TEXT_ANCHOR_START","SVG_TEXT_ANCHOR_MIDDLE","SVG_TEXT_ANCHOR_END","overlappingDomain","existingX","existingY","lsInner","autosize","_hasZeroWidth","_hasZeroHeight","drawMainTitle","getLinePosition","lwHalf","_lw","lowerBackgroundIDs","backgroundIds","lowerDomains","noNeedForBg","pgNode","plotgroupBg","xLinesXLeft","xLinesXRight","xLinesYBottom","xLinesYTop","leftYLineWidth","rightYLineWidth","yLinesYBottom","yLinesYTop","yLinesXLeft","yLinesXRight","connectYBottom","connectYTop","extraSubplot","lowerBackgrounds","_bgLayer","plotClipId","plotClip","xLinePath","xLinePathFree","yLinePath","yLinePathFree","mainPath","pathFn","pathFnFree","xPath","shouldShowLinesOrTicks","findCounterAxisLineWidth","yPath","shouldShowLineThisSide","anchorAx","sideIndex","getMainTitleX","hPadShift","getMainTitleY","vPadShift","getMainTitleTextAnchor","getMainTitleDy","layoutStyles","doAutoMargin","doTraceStyle","editStyleCalls","editStyle","doColorBars","layoutReplot","doLegend","doTicksRelayout","updateGrid","doModeBar","doCamera","setViewport","drawData","cartesianIds","polarIds","_splomGrid","doAutoRangeAndConstraints","groupLoop","finalDraw","drawMarginPushers","rawError","shortMessage","longMessage","definition","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","color_formatHex","formatHex","color_formatHsl","hslConvert","formatHsl","color_formatRgb","formatRgb","rgbn","Rgb","rgbConvert","rgb_formatHex","rgb_formatRgb","Hsl","hsl2rgb","displayable","exponential","nogamma","rgbGamma","rgbSpline","spline","rgbBasis","rgbBasisClosed","basisClosed","isNumberArray","numberArray","genericArray","reA","reB","cssNode","cssRoot","cssView","svgNode","skewX","parseCss","parseSvg","pxComma","pxParen","degParen","interpolateTransformCss","interpolateTransformSvg","rho","rho2","rho4","epsilon2","tanh","hslLong","Xn","Yn","Zn","labConvert","Lab","Hcl","hcl2lab","rgb2lrgb","xyz2lab","lab2xyz","lrgb2rgb","hclConvert","hclLong","ED","EB","BC_DA","cubehelixConvert","Cubehelix","cubehelixGamma","cubehelix","cosh","sinh","cubehelixLong","piecewise","samples","hoverLabelAttrs","INT_BITS","INT_MAX","INT_MIN","isPow2","log10","prevPow2","REVERSE_TABLE","tab","interleave2","deinterleave2","interleave3","deinterleave3","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","nativeObjectCreate","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","defineWellKnownSymbol","setToStringTag","HIDDEN","TO_PRIMITIVE","setInternalState","ObjectPrototype","$Symbol","$stringify","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","tag","$defineProperty","$defineProperties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","sym","useSetter","useSimple","FORCED_JSON_STRINGIFY","$replacer","getCubeEdges","pCubeVerts","cubeVerts","zero3","transformHg","FRUSTUM_PLANES","CUBE_EDGES","CUBE_AXIS","CUBE_RESULT","cubeEdges","farthest","cutCorner","cdOHLC","ohlcLayer","xo","yo","hoverModule","containerOrSelection","isD3Selection","castHoverOption","_coerce","supplyLayoutGlobalDefaults","inbox","quadrature","toPX","mouseWheelListen","noScroll","deltaX","deltaZ","makeColorMap","isColorbar","conePlot","Cone","ww","axisName2scaleIndex","anchor2coneOffset","tip","anchor2coneSpan","coneOpts","axisName","_normMax","meshData","_pad","createConeTrace","cone","polygonIn","polygonOut","xpyp","xstar","ystar","dsin","dcos","tanA","cotanA","del","makeRegularPolygon","makeClippedPolygon","a2xy","findXY","cycleIndex","xyN","minFn","adelta","transformForSVG","pts0","pts1","outer","chains","chainStart","first_match","matches_head","matches_pt1","second_match","next_match","chain","setMatch","chainNew","chainMatch","addToHead","grow","grow2","oppo","oppo2","chainRemoveHead","chainRemoveTail","chainClose","chainAddHead","chainAddTail","chainConnect","reverseF","reverseChain","appendChain","chainReverse","chain1","chain2","tail2","head2","chainJoin","TEMPLATEITEMNAME","templateAttrs","validItemName","lastChar","traceTemplater","traceCounts","typei","baseName","defaultsTemplate","templateItems","itemIn","templateItemName","templateItem","outi","_templateitemname","parentIn","itemOut","lengthIn","resetUpdate","updateOut","applyUpdate","updateToApply","hidesources","datarevision","editrevision","selectionrevision","nextSegmentId","curVert","segmentRemove","MayanCalendar","amod","haabMonths","tzolkinMonths","baktun","katun","forYear","haab","_toHaab","tzolkin","_toTzolkin","haabMonthName","haabMonth","haabDay","tzolkinDayName","tzolkinDay","tzolkinTrecena","arrayStr","rootContainers","regexpContainers","rootPart","maxpoints","TriangleCache","createABigTriangle","_triangleBuffer","barycentric","solve","baseframe","handleLabelsAndValues","hasLabels","hasPositive","_hasLabels","textInfo","textTemplate","titlePosition","scatterSubTypes","getButtonGroups","buttonsToRemove","buttonsToAdd","hasGL3D","hasPie","hasFunnelarea","hasGL2D","hasTernary","hasSankey","allAxesFixed","areAllAxesFixed","addGroup","commonGroup","zoomGroup","hoverGroup","resetGroup","dragModeGroup","hasNoHover","isSelectable","appendButtonsToGroups","selectable","fillCustomButton","customButtons","_modeBar","buttonGroups","convertOnSelect","LAYER_PREFIX","traceLayerPrefix","ChoroplethMapbox","sourceId","_update","optsAll","getSource","setData","_removeLayers","_addLayers","removeLayer","removeSource","choroplethMapbox","addSource","createSurfacePlot","surfaceNets","SURFACE_VERTEX_SIZE","QUAD","PERMUTATIONS","SurfacePickResult","N_COLORS","divseq","SurfacePlot","contourPickShader","contourBuffer","dynamicBuffer","dynamicVAO","objectOffset","intensityBounds","_shader","_pickShader","_coordinateBuffer","_vao","_colorMap","_contourShader","_contourPickShader","_contourBuffer","_contourVAO","_contourOffsets","_contourCounts","_vertexCount","_pickResult","_dynamicBuffer","_dynamicVAO","_dynamicOffsets","_dynamicCounts","contourTint","enableHighlight","highlightColor","highlightTint","highlightLevel","enableDynamic","dynamicLevel","dynamicColor","dynamicTint","dynamicWidth","surfaceProject","contourProject","colorBounds","_field","mallocFloat","vertexColor","ZERO_VEC","PROJECT_DATA","projections","computeProjectionData","cubeAxis","axisSquish","nclipBounds","UNIFORMS","lowerBound","upperBound","zOffset","MATRIX_INVERSE","DEFAULT_PERM","drawCore","transparent","clipClamped","projectData","PICK_UNIFORMS","handleArray","toColor","handleColor","coordinateBuffer","nparams","levelIndex","padField","dstField","srcField","srcShape","dstShape","levelsChanged","fsize","freeFloat","tick2","dfields","dxdu","dxdv","dydu","dydv","dzdu","dzdv","nz","nl","lo_intensity","hi_intensity","tverts","tptr","j_loop","vf","change_test","contourVerts","contourLevel","levelOffsets","levelCounts","edge_loop","axis_loop","iu","floatBuffer","dyanamicLevel","scratchBuffer","jx","jy","cu","scatterHover","yFracUp","textPart","_hovertitle","parcoordsPlot","hadParcoords","hasParcoords","JulianCalendar","posOffset","DOUBLE_VIEW","UINT_VIEW","hasTypedArrays","toDoubleLE","lowUintLE","highUintLE","toDoubleBE","lowUintBE","highUintBE","toDouble","writeUInt32LE","readDoubleLE","lowUint","writeDoubleLE","readUInt32LE","highUint","fraction","denormalized","hasPreCompStats","boxmeanDflt","notchedDflt","getDims","sLen","defaultOrientation","yDims","xDims","setInX","setInY","hasCategories","outlierColorDflt","lineoutliercolor","modeDflt","ORDER","ScatterMapbox","sourceIds","layerIds","setSourceData","scatterMapbox","barPointData","posVal","pRangeCalc","isClosest","isWaterfall","maxSpikeDistance","thisBarMinPos","thisBarMaxPos","minPos","maxPos","_positionFn","_minPos","_maxPos","positionFn","thisBarPositionFn","labelLabel","CopticCalendar","SUBPLOT_PATTERN","remainingCalcData","subplotX","subplotY","spmatch","Font","createRegl","createGl","fontAtlas","isObj","parseUnit","metrics","isStretchSupported","fontStretch","GlText","isRegl","charBuffer","charOffset","atlasSize","atlasDim","cols","charStep","positionOffset","normalViewport","viewportArray","baseFontSize","newAtlasChars","newFont","newFontSize","baseString","stretch","variant","fonts","fontString","textArray","textOffsets","atlasContext","baseChar","positionData","j$1","charIds","sizeData","i$3","ptr$1","count$1","j$2","prevChar","prevWidth","currWidth","prevOffset","kerning$1","maxCols","maxAtlasSize","atlasWidth","atlasHeight","atlasCanvas","alignOffset","baselineOffset","colorData","i$4","l$1","i$5","isBatch","i$6","ignoreCase","dotAll","fileSaver","_snapshotInProgress","messages","3","5","6","256","512","513","514","515","516","517","518","519","768","769","770","771","772","773","774","775","776","1024","1028","1029","1032","1280","1281","1282","1285","1286","2304","2305","2849","2884","2885","2886","2928","2929","2930","2931","2932","2960","2961","2962","2963","2964","2965","2966","2967","2968","2978","3024","3042","3088","3089","3106","3107","3317","3333","3379","3386","3408","3410","3411","3412","3413","3414","3415","3553","4352","4353","4354","5120","5121","5122","5123","5124","5125","5126","5386","5890","6401","6402","6406","6407","6408","6409","6410","7680","7681","7682","7683","7936","7937","7938","9728","9729","9984","9985","9986","9987","10240","10241","10242","10243","10497","10752","16384","32769","32770","32771","32772","32773","32774","32777","32778","32779","32819","32820","32823","32824","32854","32855","32873","32926","32928","32936","32937","32938","32939","32968","32969","32970","32971","33071","33170","33189","33306","33635","33648","33901","33902","33984","33985","33986","33987","33988","33989","33990","33991","33992","33993","33994","33995","33996","33997","33998","33999","34000","34001","34002","34003","34004","34005","34006","34007","34008","34009","34010","34011","34012","34013","34014","34015","34016","34024","34041","34055","34056","34067","34068","34069","34070","34071","34072","34073","34074","34076","34338","34339","34340","34341","34342","34373","34466","34467","34660","34661","34816","34817","34818","34819","34877","34921","34922","34930","34962","34963","34964","34965","34975","35040","35044","35048","35632","35633","35660","35661","35663","35664","35665","35666","35667","35668","35669","35670","35671","35672","35673","35674","35675","35676","35678","35680","35712","35713","35714","35715","35716","35717","35718","35719","35720","35721","35722","35724","35725","36003","36004","36005","36006","36007","36048","36049","36050","36051","36053","36054","36055","36057","36061","36064","36096","36128","36160","36161","36162","36163","36164","36168","36176","36177","36178","36179","36180","36181","36194","36336","36337","36338","36339","36340","36341","36346","36347","36348","36349","37440","37441","37442","37443","37444","thrower","ACCESSORS","argument0","argument1","TERNARY","ternaryIds","ternaryId","ternary","oldTernaryKeys","oldTernaryKey","oldTernary","EVENT_POINT","EVENT_END","EVENT_START","PartialHull","lowerIds","upperIds","compareEvent","testPoint","addPoint","hulls","findSplit","splitHulls","splitIdx","mergeHulls","mergeIdx","map1dArray","makepath","orientText","drawClipPath","clipsegments","bicubic","clipPathData","drawGridLines","lineClass","gridJoin","drawAxisLabels","labelClass","labelJoin","maxExtent","labelOrientation","labelEl","labelpadding","drawAxisTitles","labelOrientationA","labelOrientationB","aMin","aMax","bMin","bMax","ab2xy","dxyda_rough","dxydb_rough","drawAxisTitle","cdcarpet","carpetLayer","clipLayer","minorLayer","majorLayer","boundaryLayer","labelLayer","titleJoin","labelNorm","angleDiff","reverseTitle","vecNormalize","vecScale","generateContourExtractor","triangulateCube","zeroCrossings","buildSurfaceNets","cubeArgs","maskStr","extraFuncs","currentFunc","efName","denoms","crossingCount","totalCrossings","vertexStr","cStr","mesh1D","npos","ncel","dirLine","Error2D","drawErrors","errorBuffer","meshBuffer","positionFract","capOffset","drawGroup","errorCount","errorData","yPad","lightAmount","darkAmount","prevIndexToPoints","handleGeoDefaults","geoLayoutIn","geoLayoutOut","scopeParams","isAlbersUsa","_isAlbersUsa","isScoped","_isScoped","isConic","_isConic","isClipped","_isClipped","rangeDflt","dtickDflt","dfltSpans","hSpan","lonRange","latRange","lon0","lon1","projLon","centerLonDflt","centerLatDflt","centerLon","dfltProjRotate","dfltProjParallels","fitBounds","createVAONative","ExtensionShim","bindVertexArrayOES","bindVertexArray","createVertexArrayOES","createVertexArray","deleteVertexArrayOES","deleteVertexArray","SYMBOL_SIZE","SYMBOL_SDF_SIZE","SYMBOL_STROKE","gl10","containerArrayMatch","isAddVal","isRemoveVal","applyContainerArrayChanges","_nestedProperty","componentType","supplyComponentDefaults","replotLater","replot","recalc","fullVal","componentNum","objEdits","objKeys","objVal","adding","componentNums","componentArrayIn","componentArray","componentArrayFull","deletes","firstIndexChange","maxIndex","indicesToDraw","FRAGMENT","gridVert","gridFrag","tickVert","styleBox","boxSel","allBoxes","boxData","thisBox","waterfalls","waterfallsVert","waterfallsHorz","waterfallnorm","compare1st","compileConstructor","useGetters","procedure","CACHED_CONSTRUCTORS","index_str","shapeArg","strideArg","a_vars","c_vars","tShape","tStride","arrayDType","wrappedNDArrayCtor","ctor_list","setAutoType","getFirstNonEmptyTrace","calAttr","isBoxWithoutPositionCoords","getBoxPosLetter","boxPositions","isBox","isCandlestick","manageArrays","subroutines","numericNameWarningCount","numericNameWarningCountLimit","okToPlot","setPlotContext","graphWasEmpty","cleanData","cleanLayout","plotLegacyPolar","makePlotFramework","doCalcdata","clearResponsive","oldMargins","drawFrameworkCalls","cleanPlot","marginPushers","clearAutoMarginIds","marginPushersAgain","didMarginChange","positionAndAutorange","addLinks","rehover","redrag","plotDone","emitAfterPlot","opaqueSetBackground","plot3dPixelRatio","szIn","szOut","polarPlotSVG","placeholderText","setContenteditable","positivifyIndices","parentLength","positiveIndices","assertIndexArray","arrayName","checkMoveTracesArgs","currentIndices","newIndices","checkAddTracesArgs","assertExtendTracesArgs","maxPoints","maxPointsIsObject","getExtendProperties","maxp","updateProps","spliceTraces","updateArray","undoUpdate","undoPoints","concatTypedArray","arr0","arr1","newArray","remainder","both","numberOfItemsFromInsert","numberOfItemsFromTarget","targetBegin","undoArgs","undoFunc","redoFunc","redoArgs","startSequence","stopSequence","deletedTrace","sorterDes","movingTraceMap","_traces","clearPromiseQueue","coerceTraceIndices","_restyle","clearAxisTypes","fullReplot","markerSize","addAxRangeSequence","colorbars","undoit","redoit","undefinedToNull","makeNP","guiEditFlag","fullAttr","storeCurrent","arrayNew","objNew","objBoth","_guiEditing","layoutNP","cleanDeprecatedAttributeKeys","traceFlags","addToAxlist","axid","autorangeAttr","getFullTrace","doextra","hasParent","extraparam","allBins","arrayBins","vij","contFull","finalPart","prefixDot","innerContFull","impliedKey","labelsTo","valuesTo","topOrBottom","thicknorm","lennorm","swapXYData","dataArrayContainers","manageArrayContainers","oldAxisTitleRegex","colorbarRegex","oldAttrStr","newAttrStr","_relayout","axRangeSupplyDefaultsByPass","layoutstyle","axrange","rangesAltered","AX_RANGE_RE","AX_AUTORANGE_RE","AX_DOMAIN_RE","arrayEdits","axisAttr","newkey","layoutFlags","recordAlteredAxis","pleafPlus","plen","pend","pleaf","ptrunk","parentFull","vOld","oppositeAttr","_initialAutoSize","axFull","fullProp","updateValObject","finished","groupAxId","updateAutosize","oldWidth","oldHeight","plotAutoSize","traceUpdate","restyleSpecs","restyleFlags","relayoutSpecs","relayoutFlags","guiEdit","layoutUIControlPatterns","traceUIControlPatterns","findUIPattern","patternSpecs","getNewRev","revAttr","newRev","getFullTraceIndexFromUid","getTraceIndexFromUid","valsMatch","v1IsObj","v1IsArray","applyUIRevisions","oldRev","preGUIVal","newNP","layoutPreGUI","bothInheritAutorange","newRangeAccepted","axAttr","newAx","allTracePreGUI","fulli","newTracei","configChanged","oldConfig","diffConfig","skipUpdateCalc","immutable","diffLayout","newDataRevision","diffData","supplyDefaultsUpdateCalc","createTransitionData","transitionFromReact","_skipDefaults","sameTraceLength","nChanges","nChangesAnim","diffOpts","getValObject","seenUIDs","hasMakesDataTransform","getDiffFlags","oldContainer","outerparts","inArray","arrayIndex","valObjectCanBeDataArray","tickMode","canBeDataArray","wasArray","nowArray","inputKey","oldValIn","newValIn","arrayEditIndices","extraIndices","newConfig","frameOrGroupNameOrFrameList","animationOpts","_frameQueue","supplyAnimationDefaults","frameOpts","getTransitionOpts","getFrameOpts","callbackOnNthTime","_frameWaitingCnt","discardExistingFrames","onInterrupt","queueFrames","frameList","computedFrame","computeFrame","nextFrame","_lastFrameAt","_animationRaf","beginAnimationLoop","stopAnimationLoop","_currentFrame","newFrame","stringName","_timeToNext","_runningTransitions","configCounter","setTransitionConfig","allFrames","isFrameArray","isSingleFrame","frameOrName","_frameHash","currentFrame","filteredFrameList","bigIndex","insertions","_frameHashLocal","lookupName","collisionPresent","supplyFrameDefaults","revops","frameCount","_counter","modifyFrames","gd3","_toppaper","_hoverpaper","otherUids","layerBelow","_imageLowerLayer","layerAbove","_imageUpperLayer","_menulayer","attribution","tiles","tileSize","minzoom","maxzoom","styleValuesNonMapbox","layoutLayerPrefix","createWellKnownSymbol","withoutSetter","base64","ieee754","typedArraySupport","kMaxLength","TYPED_ARRAY_SUPPORT","encodingOrOffset","allocUnsafe","fromArrayBuffer","fromObject","assertSize","encoding","checked","isEncoding","actual","fromArrayLike","byteOffset","isnan","SlowBuffer","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","allocUnsafeSlow","swap16","swap32","swap64","thisStart","thisEnd","thisCopy","targetCopy","MAX_ARGUMENTS_LENGTH","codePoints","bytes","checkOffset","checkInt","objectWriteUInt16","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatBE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","leadSurrogate","byteArray","nativeKeys","FAILS_ON_PRIMITIVES","ptsIn","rectFirstEdgeTest","rectContains","xmini","ycross","isSegmentBent","partParallel","segmentSquared","segmentLen","unitPerp","ptsFiltered","doneRawIndex","doneFilteredIndex","prevFilterLen","iLast","readComponents","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","specificCreate","boundFunction","findIndex","lineColorFn","lineWidthFn","fc","opacitySetting","deprecationWarning","domainAttr","mergeAttrs","nonCommonAttrs","commonAttrs","tickorientation","endpadding","keepRest","toList","occupied","aliases","extractContour","ndsort","contourAlgorithm","getDimension","getSigns","vertexSigns","getEdges","maxEdges","ePtr","nedges","getCrossingWeights","signs","edata","getCascade","lastV","unpackEdges","vcascade","uedges","uweights","closestPointToTriangle","xformMatrix","projectVertex","barycentricCoord","closestPointToPickLocation","pixelCoord","simplex2D","closestIndex","closestDist","DIMENSION","AXIS","VISIT","FLIP","ELEM_SIZE","RED_START","RED_END","RED_BOXES","RED_INDEX","RED_PTR","BLUE_START","BLUE_END","BLUE_BOXES","BLUE_INDEX","BLUE_PTR","RETVAL","INNER_LABEL","ARGS","generateBruteForce","redMajor","redLoop","blueLoop","bruteForcePlanner","codeStr","vec","plotinfoproxy","boxCalc","silvermanRule","ssd","iqr","calcBandwidth","calcSpan","spanOut","spanIn","spanTight","spanLoose","calcSpanItem","spanMin","spanMax","violinScaleGroupStats","scaleGroup","PIXELS_PER_INCH","getSizeBrutal","getPropertyInPX","testDIV","defaultCanvas","defaultContext","shim","nullObject","polyProps","validTypes","invert2","invert3","invert4","createSurface","homography","SurfaceTrace","contourStart","contourEnd","contourSize","minValues","maxValues","dataScaleX","dataScaleY","refineData","isColormapCircular","getXat","getYat","getZat","_interpolatedZ","xRatio","yRatio","shortPrimes","getPow","getFactors","smallestDivisor","leastCommonMultiple","arrayLCM","calcXnums","nums","totalDist","calcYnums","highlyComposites","MIN_RESOLUTION","MAX_RESOLUTION","insertIfNewLevel","createSurfaceTrace","estimateScale","resSrc","resDst","refineCoords","scaleW","scaleH","padWidth","padHeight","padImg","scaledImg","setContourLevels","newLevels","useNewLevels","needsUpdate","allLevels","rawCoords","highlightEnable","contourParams","supportsTransparency","getFilterFunc","targetCalendar","isOperationIn","d2cValue","preservegaps","getTargetArray","_arrayAttrs","attrTargetCalendar","initFn","filterFunc","originalArrays","forAllAttrs","passed","lineLayerMaker","findExtreme","fixExtremes","dimensionExtent","toText","texts","domainScale","unitVal","domainToPaddedUnitScale","padFraction","ordinalScale","unitToColorScale","colorTuples","polylinearUnitScales","someFiltersActive","deselectedLineColor","labelangle","labelSide","labelside","rangeFont","rangefont","canvasPixelRatio","rowContentWidth","colCount","tickDistance","callbacks","unitPad","_unitToPaddedPx","domainToPaddedUnit","specifiedConstraint","filterRangeSpecified","filterRange","brushMove","focusLayer","filtersActive","contextShown","contextLayer","truncatedValues","makeTickItem","sortTickItem","tickItems","visibleIndex","linePickActive","pickLayer","invScale","styleExtentTexts","axisExtentText","parcoordsInteractionState","calcTilt","updatePanelLayout","yAxis","calcAllTicks","linearFormat","extremeText","isTop","glContainer","glLayers","lastHovered","lineLayer","pixel","controlOverlay","parcoordsControlView","wantedTickCount","sdom","axisHeading","axisTitle","tilt","axisTitleOffset","axisExtent","axisExtentTop","axisExtentOffset","axisExtentTopText","axisExtentBottom","axisExtentBottomText","convertTickWidth","_minDiff","_xcalc","wHover","hasTextArray","hasHovertextArray","cPrev","oi","li","ohlcTracesOnThisXaxis","xcalc","cartesianConstants","xclick","yclick","handleAnnotationCommonDefaults","handleAnnotationDefaults","clickToShow","arrowPosDflt","arrowPosAttr","aaxRef","aDflt","xClick","yClick","frameAttrs","commandModule","positionPlayWithData","pathname","search","redrawText","resolveLastResize","_redrawTimer","_resolveResize","oldchanged","autoplay","linkContainer","toolspan","spacespan","sourcespan","PLOTLYENV","BASE_URL","hiddenformDiv","hiddenform","hiddenformInput","graphJson","submit","d3FormatKeys","extraFormatKeys","getTraceUids","prevFullInput","oldFullInput","thisFullInput","oldLen","seenUids","setUid","tryUid","newUid","emptySubplotLists","getFormatObj","formatKeys","formatDone","formatObj","includeFormat","formatFinished","formatKey","formatj","en","getFormatter","fillMetaTextHelpers","meta4data","findMainSubplot","isX","mainSubplotID","nextBestMainSubplotID","anchorID","counterIDs","counterPart","makesData","applyTransforms","initMargins","_pushmargin","_pushmarginIds","newLayout","oldCalcdata","_traceWord","_mapboxAccessToken","_initialAutoSizeIsDone","sanitizeMargins","missingWidthOrHeight","initialAutoSize","_visibleModules","splomAxes","splomSubplots","_traceUids","_globalTransforms","supplyDataDefaults","splomXa","splomYa","_hasPlotType","supplyLayoutModuleDefaults","crossTraceDefaultsFuncs","funci","_hasCartesian","_hasGeo","_hasGL3D","_hasGL2D","_hasTernary","_hasPie","linkSubplots","uids","oldTrace","_hasCalcTransform","oldArrayVal","hasInfoLayer","oldLoop","oldUid","oldSubplots","newSubplots","newSubplotList","mainAx","subplotSort","locateColorAttrs","_colorAttrs","origprop","visibleModules","colorCnt","pushModule","_transformModules","carpetIndex","carpetDependents","supplyTraceDefaults","sdInvisible","expandedTraces","expandedTrace","fullExpandedTrace","_expandedInput","carpetAxis","optsOut","supplyAnimationFrameDefaults","supplyAnimationTransitionDefaults","frameIn","frameOut","traceInIndex","attri","supplyTransformDefaults","transformModules","transformList","isFirstStage","doLaterStages","_dataTemplate","uniformtextMode","modebarDefaultColor","maxHeight","widthHasChanged","heightHasChanged","transitionData","clearThrottle","fid","undoqueue","undonum","styleModules","correction","plotWidth","plotHeight","pushMargin","pushMarginIds","ml","mr","mt","k1","pushleft","pushbottom","pl","newL","newR","ft","newB","newT","maxNumberOfRedraws","marginKeys","_transition","aborted","executeCallbacks","flushCallbacks","executeTransitions","numCallbacks","numCompleted","makeCallback","completeTransition","runFn","interruptPreviousTransitions","prepareFn","transitionStarting","margin0","margin1","dataonly","useDefaults","stripObj","fit","operations","oldName","frameName","destIndex","frameLookup","framePtr","frameStack","frameNameStack","extendLayout","extendTrace","recomputeFrameHash","extendObjectWithContainers","containerPaths","containerProp","containerVal","srcProp","destProp","srcContainer","destContainer","expandedObj","expandObjectPaths","containerObj","srcObj","destTrace","srcTrace","destLayout","srcLayout","transitionedTraces","axEdits","dataLength","traceIdx","axisAttrRe","traceTransitionOpts","hasAxisTransition","axisTransitionOpts","allTraceIndices","transitionTraces","_numViolins","_piecolormap","_sunburstcolormap","_treemapcolormap","_funnelareacolormap","cauto","transformCalci","calci","isContainer","setupAxisCategories","doCrossTraceCalc","sortAxisCategoriesByValue","sortAxisCategoriesByValueRegex","zMapCategory","counterAxLetter","xCategorical","yCategorical","aggFn","aggregator","categoriesValue","cat","catIndex","currentDimensionIndex","associatedXAxisID","mapping","_categoriesValue","categoriesAggregatedValue","_categoriesAggregatedValue","spType","spInfo","traceHashOld","moduleNameOld","fakeCalcTrace","fakeTrace","had","handleHoverLabelDefaults","STATIC_CANVAS","STATIC_CONTEXT","glPlot3d","createPlot","passiveSupported","str2RGBAarray","showNoWebGlMsg","svgContainer","clientRect","oldEventData","lastPicked","pdata","hoverinfoParts","isHoverinfoAll","vectorTx","uLabel","vLabel","wLabel","normLabel","divergenceLabel","drawAnnotations","tryCreatePlot","glplotOptions","staticMode","initializeGLPlot","initializeGLCamera","isCameraChanged","getCamera","isAspectChanged","relayoutCallback","saveLayout","recoverContext","make4thDimension","sceneContainer","plotArgs","convertAnnotations","cameraData","tryRecover","axisProperties","computeTraceBounds","computeAnnotationBounds","getCameraArrays","getLayoutCamera","sceneData","axisType","glplotLayout","dataBounds","traceIds","traceIdLoop","sceneBounds","axisDataRange","axisTypeRatios","objBounds","_lowerLogErrorBound","axesScaleRatio","axisRatio","axisAutoScaleFactor","userRatio","containerStyle","newOrtho","oldOrtho","cameraNestedProp","cameraDataLastSave","same","aspectData","aspectNestedProp","aspectDataLastSave","cameraChanged","aspectChanged","cameraFullNP","aspectFullNP","fullCamera","zUp","dataURL","createImageData","putImageData","ascendingComparator","ascendingBisect","valueof","zmin0","zmax0","zRange","gridLightness","mat4","fromRotationTranslation","zoomstartStyle","zoomendStyle","createGeoZoom","zoomConstructor","zoomScoped","zoomClipped","zoomNonClipped","initZoom","sync","userOpts","fullNp","fitScale","handleZoomstart","handleZoom","midPt","syncCb","handleZoomend","mouse0","rotate0","lastRotate","zoomPoint","mouse1","rotate1","didZoom","INSIDETOLORANCEPXS","outside","d3eventDispatch","zoomOn","_rotate","quaternionFromEuler","between","rotateBetween","newEuler","eulerFromQuaternion","rotateAngles","unRoll","euler","phi","sinLambda","cosLambda","sinPhi","cosPhi","sinGamma","cosGamma","halfgamma","ptRotated","rotateCartesian","newYaw1","newYaw2","newPitch1","newPitch2","dist1","angleDistance","yaw0","pitch0","yaw1","pitch1","dYaw","angleMod","dPitch","angleRads","vectorOut","HebrewCalendar","_leapYear","yearType","adjYear","_delay1","_delay2","present","showaxeslabels","noRoomForHeader","allData","minVisibleDepth","maxVisibleDepth","_maxVisibleLayers","prevEntryId","getRefRect","probability","SPLITTER","abig","bbig","err1","err2","err3","PREFERRED_STRING","closestPoint2d","V0","V1","V2","sqrDistance","tmp0","invDet","createPolar","oldIds","mustCleanScene","plotGroups","quadrants","hasOutsideText","cxFinal","cyFinal","outerCircle","px0","outerArc","px1","rim","determineOutsideTextFont","transformOutsideText","transformInsideText","textPosAngle","textXY","getCoords","rCenter","computeTransform","yLabelMin","yLabelMid","yLabelMax","labelExtraX","labelExtraY","finish","positionTitleInside","scootLabels","plotTextLines","traceBbox","lineStartX","lineStartY","textLinePath","finalX","yFromX","yNet","fullLayout2","percentLabel","hoverLabel","customColor","dummyTitle","titleBox","textDiameter","halfAngle","halfangle","midAngle","midangle","isTangential","isRadial","startangle","stopangle","allTransforms","considerCrossing","isCrossing","dStart","dStop","closestEdge","calcTanTransform","calcRadTransform","calcMaxHalfSize","calcRCenter","calcRotate","getInscribedRadiusFraction","plotSize","maxPull","topMiddle","getMaxPull","applyAspectRatio","getTitleSpace","pieBoxHeight","xHalf","yHalf","equatorFirst","farthestX","farthestY","xDiffSign","yDiffSign","thisQuad","oppositeQuad","wholeSide","thisQuadOutside","firstOppositeOutsidePt","topFirst","bottomFirst","scootOneLabel","prevPt","xBuffer","otherPt","otherOuterY","otherOuterX","newExtraX","prevOuterY","thisInnerY","thisOuterY","thisSliceOuterY","newExtraY","scaleGroups","groupScale","currentCoords","angleFactor","firstPt","hasLabel","hasValue","hasPercent","makeTemplateVariables","ptTx","cosA","sinA","midX","midY","noCenter","NepaliCalendar","daysPerYear","NEPALI_CALENDAR_DATA","month_number","nepaliYear","nepaliMonth","nepaliDay","gregorianDayOfYear","nepaliMonthToCheck","nepaliYearToCheck","_createMissingCalendarData","gregorianYear","gregorianDate","dayOfFirstJanInPaush","daysSinceJanFirstToEndOfNepaliMonth","nepaliDayOfMonth","tmp_calendar_data","nepaliYearToCreate","1970","1971","1972","1973","1974","1975","1976","1977","1978","1979","1980","1981","1982","1983","1984","1985","1986","1987","1988","1989","1990","1991","1992","1993","1994","1995","1996","1997","1998","1999","2000","2001","2002","2003","2004","2005","2006","2007","2008","2009","2010","2011","2012","2013","2014","2015","2016","2017","2018","2019","2020","2021","2022","2023","2024","2025","2026","2027","2028","2029","2030","2031","2032","2033","2034","2035","2036","2037","2038","2039","2040","2041","2042","2043","2044","2045","2046","2047","2048","2049","2050","2051","2052","2053","2054","2055","2056","2057","2058","2059","2060","2061","2062","2063","2064","2065","2066","2067","2068","2069","2070","2071","2072","2073","2074","2075","2076","2077","2078","2079","2080","2081","2082","2083","2084","2085","2086","2087","2088","2089","2090","2091","2092","2093","2094","2095","2096","2097","2098","2099","2100","bgVert","bgFrag","VertexAttribute","VAONative","_attribs","_useElements","a2o","systems","stretches","variants","fams","verify","system","naiveFallback","__global__","absolutize","compress","NUM_EXPANDED","compileDeterminant","doBreak","broken","getIndices","sortedArray","getSortFunc","arrayOld","DensityMapbox","densityMapbox","topojsonUtils","topojsonFeature","getTopojsonName","getTopojsonPath","topojsonName","vendors","caf","frameDuration","_now","cp","cancelled","boxLine","meanLineStyle","m4FromQuat","AxisIds","cleanAxRef","cleanTitle","titleContainer","rewireAttr","oldAttrName","newAttrName","oldAttrSet","newAttrSet","cleanFinanceDir","dirContainer","dirName","commonPrefix","name1","name2","show1","show2","cleanTextPosition","emptyContainer","innerStr","xaxis1","yaxis1","scene1","axisAttrRegex","polarAttrRegex","ternaryAttrRegex","sceneAttrRegex","isdate","islog","autotick","cameraposition","annotationsLen","shapesLen","yeColor","reversescl","containerName","highlightWidth","increasingShowlegend","decreasingShowlegend","increasingName","decreasingName","filtersrc","prevStyles","styleKeys","copyYstyle","hoverInfoParts","traceIndicesOut","pLength","pLastIsNumber","contPath","ATTR_TAIL_RE","attrParent","sceneName","typeAttr","getSubplot","isTraceInSubplots","newDistance","passVal","getPointKey","pointVal","getPointData","keyVal","pointKeyMap","methodNames","PlotlyLocales","Snapshot","zref","INSERTION_SORT_THRESHOLD","getMallocFree","mallocUint16","freeUint16","mallocInt8","freeInt8","mallocInt16","freeInt16","freeInt32","freeDouble","createInsertionSort","allocator","scratch_shape","dataRead","dataWrite","createQuickSort","labelCounter","ele_size","toPointer","cacheLoop","ptrs","usePivot","lexicoLoop","cleanUp","compareSwap","a_id","b_id","lbl","moveElement","swapElements","tripleSwap","swapAndDecrement","storePivot","mem_dest","pivot_dest","doSort","walkPointer","compileSort","scratch_stride","nprod","sortArgs","edgeToAdjacency","createPointCloudRenderer","Pointcloud","pickXData","pickYData","pointcloudOptions","sizemax","pointcloud","createPointcloud","traceCoord","pickXYData","updateFast","userBounds","xbounds","ybounds","markerSizeMin","markerSizeMax","arearatio","copyArgArray","queueObj","queueIndex","undoQueue","sequence","inSequence","beginSequence","calls","plotDo","SHARED","perm","dfactorial","TIME_FORMAT_LINK","cheatertype","labelprefix","labelsuffix","titleoffset","attributeText","attributeTextPosition","getKeyFunc","dirSign","bartraces","isBar","shouldDisplayZeros","adjustPixel","pointGroup","bars","roundWithLine","expandToVisible","fixpx","styleFns","appendBarText","hasClipOnAxisFalse","appendTextNode","textSelection","getTextPosition","inStackOrRelativeMode","insideTextFont","outsideTextFont","barHeight","textHasSize","fitsInside","fitsInsideIfRotated","fitsInsideIfShrunk","toMoveOutsideBar","getRotateFromAngle","getRotatedTextSize","absSin","absCos","isEnd","toRight","toLeft","textpad","extrapad","calcTexttemplate","calcTextinfo","vLetter","formatLabel","percenTotalLabel","nPercent","hasMultiplePercents","svgSdf","convertStyle","convertTextStyle","convertTextSelection","convertMarkerStyle","convertMarkerSelection","overlay","convertErrorBarStyle","textfontIn","textpositionIn","textPos","tfc","tfs","tff","fonti","optsIn","multiSymbol","multiColor","multiLineColor","multiOpacity","multiSize","multiLineWidth","borderColors","getSymbolSdf","markerSizeFunc","borderSizes","sizeTotal","SYMBOL_SDF","SYMBOL_SVG_CIRCLE","symbolPath","symbolSdf","symbolFunc","isDot","convertLinePositions","midPtX","midPtY","hasNaN","convertErrorBarPositions","convertOneAxis","computeError","pOffset","eOffset","minShoe","maxHat","dl","lv","shoe","hat","convertTextPosition","markerOpts","fontOpts","hSign","vSign","xPad","markerStyle","markerSelection","RED","BLACK","RBNode","_color","repaint","recount","RedBlackTree","_compare","doVisitFull","doVisitHalf","doVisit","RedBlackTreeIterator","_stack","n_stack","d_stack","pp","ppp","at","last_ptr","iproto","swapNode","fixDoubleBlack","defaultCompare","cstack","getTilingMethod","treemapSquarify","treemapBinary","treemapDice","treemapSlice","treemapSliceDice","flipTree","swapXY","tile","paddingInner","paddingLeft","paddingRight","paddingTop","paddingBottom","defaultSeparation","meanX","meanXReduce","maxYReduce","leafLeft","leafRight","eachAfter","eachBefore","leastCommonAncestor","valued","defaultChildren","computeHeight","node_copy","copyData","circles","enclosesWeak","encloseBasis","extendBasis","enclosesWeakAll","enclosesNot","encloseBasis2","encloseBasis3","encloseBasis1","r21","r3","place","packEnclose","sj","sk","enclose","optional","required","constantZero","defaultRadius","radiusLeaf","packChildren","translateChild","positionNode","keyPrefix","preroot","ambiguous","defaultParentId","nodeKey","nodeByKey","nextLeft","nextRight","moveSubtree","executeShifts","nextAncestor","TreeNode","treeRoot","squarifyRatio","nodeValue","sumValue","minValue","maxValue","newRatio","minRatio","beta","dice","paddingStack","paddingOuter","valueOffset","valueTarget","valueLeft","valueRight","xk","yk","resquarify","_squarify","STASHATTR","NO_CURSOR","savedCursor","classes","edgeVal2","boundaryMax","boundaryMin","contoursValue","includeGL3D","renderableValuePresent","ownTrace","traceId","makeTranslucent","makeTextContrasty","relatedLinks","relatedNodes","nodeHoveredStyle","linkHoveredStyle","nodeNonHoveredStyle","linkNonHoveredStyle","visitNodes","tinyColorAlpha","labelOpts","linkSelect","linkHover","sourceLabel","targetLabel","concentrationLabel","incomingLabel","outgoingLabel","linkHoverFollow","anchorIndex","flow","hoverCenter","hoverCenterPosition","valueFormat","valueSuffix","labelConcentration","tooltips","tooltip","linkUnhover","nodeSelect","nodeHover","nodeHoverFollow","rootBBox","boundingBox","hoverCenterX0","hoverCenterX1","tinyColorHue","nodeUnhover","linkEvents","follow","nodeEvents","monotoneConvexHull2D","convexHullnD","ich","aff","front","npoints","invPermute","boxHoverPoints","closePtData","violinLineAttrs","hasHoveronViolins","hasHoveronKDE","closeData","closeBoxData","hoverOnBoxes","vVal","kdePointData","vValPx","kdeVal","pOnPath","paOffset","paLength","spikePosAttr","hoverOnPoints","violinLine","distRatio","IsosurfaceTrace","beginVertextLength","allXs","allYs","allZs","allVs","activeFill","surfaceFill","spaceframeFill","drawingSurface","drawingSpaceframe","numFaces","Xs","Ys","Zs","_gridFill","_minValues","_maxValues","vMin","_vMin","vMax","_vMax","findVertexId","beginGroup","emptyVertices","addVertex","addFace","setFill","createOpenTri","xyzv","styleIncludes","mapValue","drawTri","allXYZVs","allABCs","openTri","pnts","drawQuad","abcd","makeTri","drawTetra","calcIntersection","pointOut","pointIn","inRange","almostInFinalRange","vErr","getXYZV","indecies","MAX_PASS","tryCreateTri","nPass","tryDrawTri","interpolated","tryCreateTetra","p4","addCube","p000","p001","p010","p011","p100","p101","p110","p111","addRect","previousResult","begin2dCell","p00","p01","p10","p11","beginSection","distRatios","makeSection","rX","rZ","begin3dCell","cellStyle","draw2dX","draw2dY","draw2dZ","draw3d","drawSpaceframe","drawSurface","drawSectionX","drawSectionY","drawSectionZ","insertGridPoints","drawAll","activeStyle","surfacePattern","surfaceCount","setupMinMax","preRes","activeMin","activeMax","exactIndices","ceilIndices","cap","connectorVisible","defaultFillColor","connectorLineWidth","cBase","DOUBLEQUOTE_REGEX","DUMMY_SUB","DUMMY_REGEX","htmlEntityDecode","hiddenDiv","replaced","xmlEntityEncode","toppaper","topGroups","topGroup","queryParts","XMLSerializer","serializeToString","traceOpts","layoutOpts","traceEditTypeFlags","layoutEditTypeFlags","falseObj","overrideContainers","overrideOne","editTypeParts","scatterglAttrs","MIN","createWave","minOpacity","fmtColor","colorstring","robustDotProduct","EXISTS","annAutorange","apos","aref","padplus","padminus","headSize","headPlus","headMinus","startHeadSize","startHeadPlus","startHeadMinus","extremeArrowHead","ppadplus","ppadminus","annotationList","sArray","pArray","barPolarCd","rAxis","aAxis","newRange","minmin","maxmax","axReverse","minpt","maxpt","minbest","maxbest","toZero","nonNegative","axLen","minSpan","mbest","getMaxPad","maxPad","rangeEnd","extrappad","_concat","collapseMinArray","collapseMaxArray","axeRangeOpts","dmin","ppadiplus","ppadiminus","isLog","hasArrayOption","vpadLinearized","makePadAccessor","vpadplus","vpadminus","collapseOpts","addItem","goodNumber","iMax","newPad","collapseArray","lessOrEqual","greaterOrEqual","atLeastAsExtreme","includeThis","clipAtZero","trimLeaves","e2a","live","dead","npositions","__TYPEDARRAY_POOL","UINT8","UINT16","UINT32","BIGUINT64","INT8","INT16","INT32","BIGINT64","DOUBLE","DATA","UINT8C","BUFFER","hasUint8C","hasBigUint64","BigUint64Array","hasBigInt64","BigInt64Array","POOL","freeArrayBuffer","log_n","freeTypedArray","mallocArrayBuffer","mallocUint8Clamped","mallocBigUint64","mallocBigInt64","mallocDataView","mallocBuffer","freeBigUint64","freeBigInt64","freeFloat64","freeUint8Clamped","freeDataView","freeBuffer","mallocFloat64","clearCache","scatterStyle","styleTrace","AFG","ALA","ALB","DZA","ASM","AND","AGO","AIA","ATA","ATG","ARG","ARM","ABW","AUS","AUT","AZE","BHS","BHR","BGD","BRB","BLR","BEL","BLZ","BEN","BMU","BTN","BOL","BES","BIH","BWA","BVT","BRA","IOT","BRN","BGR","BFA","BDI","CPV","KHM","CMR","CAN","CYM","CAF","TCD","CHL","CHN","CXR","CCK","COL","COM","COG","COK","CRI","CIV","HRV","CUB","CUW","CYP","CSK","CZE","COD","DNK","DJI","DMA","DOM","ECU","EGY","SLV","GNQ","ERI","EST","ETH","FLK","FRO","FJI","FIN","FRA","GUF","PYF","ATF","GAB","GMB","DDR","DEU","GHA","GIB","GRC","GRL","GRD","GLP","GUM","GTM","GGY","GIN","GNB","GUY","HTI","HMD","VAT","HND","HKG","HUN","ISL","IND","IDN","IRN","IRQ","IRL","IMN","ISR","ITA","JAM","JPN","JEY","JOR","KAZ","KEN","KIR","PRK","KWT","KGZ","LAO","LVA","LBN","LSO","LBR","LBY","LIE","LTU","LUX","MAC","MDG","MWI","MYS","MDV","MLI","MLT","MHL","MTQ","MRT","MUS","MYT","MEX","FSM","MCO","MNG","MNE","MSR","MAR","MOZ","MMR","NAM","NRU","NPL","NLD","ANT","NCL","NZL","NIC","NER","NGA","NIU","NFK","MNP","NOR","OMN","PAK","PLW","PSE","PAN","PNG","PRY","PER","PHL","PCN","POL","PRT","PRI","QAT","KOR","MDA","REU","ROU","RUS","RWA","BLM","SHN","KNA","LCA","MAF","SPM","VCT","WSM","SMR","STP","SAU","SEN","SRB","SYC","SLE","SGP","SXM","SVK","SVN","SLB","SOM","ZAF","SGS","SSD","ESP","LKA","SDN","SUR","SJM","SWZ","SWE","CHE","SYR","TWN","TJK","THA","MKD","TLS","TGO","TKL","TON","TTO","TUN","TUR","TKM","TCA","TUV","UGA","UKR","ARE","GBR","TZA","USA","UMI","URY","UZB","VUT","VEN","VNM","VGB","VIR","WLF","ESH","YEM","YMD","YUG","ZMB","EAZ","ZWE","objPropertyIsEnumerable","defVal","compareFn","simplifyPolygon","errorWeight","perim","minArea","outv","computeWeight","heapSwap","heap","heapWeight","heapParent","heapDown","tw","heapCount","heapUp","heapPop","heapUpdate","hmin","tortoiseHare","nh","tin","tout","cin","cout","calcXPaddingOptions","calcPaddingOptions","calcYPaddingOptions","isYAxis","axisDirectionReverted","beforePad","afterPad","shapeBounds","paramsToUse","convertVal","drawnParam","drawn","shapeList","vx0","vy0","performPlot","viewModels","createParcatsViewModel","layerSelection","traceEnter","pathsSelection","pathSelection","pathSelectionEnter","stylePathsNoHover","svgD","compareRawColor","mouseoverPath","mouseoutPath","clickPath","dimensionsSelection","dimensionSelection","categorySelection","categoryGroupEnterSelection","styleCategoriesNoHover","bandSelection","catViewModel","bands","bandsSelectionEnter","bandModel","parcatsViewModel","styleBandsNoHover","paperColor","catInRightDim","catModel","categorylabelfont","mouseoverCategoryBand","mouseoutCategory","dragDimensionStart","dragDimension","dragDimensionEnd","numDims","leftDimInd","hoverinfoItems","stylePathsHover","buildPointsArrayForPath","buildConstraintsForPath","pathCenterX","pathCenterY","hoverX","graphDivBBox","leftXs","dimWidths","leftDim","rightDim","topYs","prob","countLabel","probabilityLabel","hovertextParts","getTraceIndex","styleCategoryHover","styleBandsHover","bandsSelection","selectPathsThroughCategoryBandColor","catBandViewModel","allPaths","categoryViewModel","pathViewModel","styleForCategoryHovermode","bandElement","bandSel","bvm","styleForColorHovermode","bandViewModel","catPaths","emitPointsEventCategoryHovermode","eventName","emitPointsEventColorHovermode","createHoverLabelForCategoryHovermode","hoverLabelIdealAlign","rectSelection","rectBoundingBox","dimensionModel","createHoverLabelForDimensionHovermode","allHoverlabels","bandNode","createHoverLabelForColorHovermode","bandBoundingBox","bandColorCount","catCount","pColorAndCat","pCatGivenColor","pColorGivenCat","categorycount","colorcount","bandcolorcount","dragDimensionDisplayInd","initialDragDimensionDisplayInds","dragHasMoved","dragCategoryDisplayInd","catMouseX","catMouseY","initialDragCategoryDisplayInds","potentialClickBand","dragDimInd","prevDimInd","nextDimInd","dragCategory","categoryY","catDisplayInd","dimCategoryViews","catAbove","catBelow","prevDimension","nextDimension","updateDimensionViewModels","updatePathViewModels","updateSvgCategories","updateSvgPaths","traceInd","finalDragDimensionDisplayInds","anyDimsReordered","initDimDisplay","finalDimDisplay","anyCatsReordered","finalDragCategoryDisplayInds","initCatDisplay","sortedCategoryModels","newCategoryArray","newCategoryLabels","allTraces","dimLabelSelection","catLabelSelection","newAnchor","wrappedParcatsModel","parcatsModel","figureWidth","figureHeight","traceWidth","traceHeight","traceX","traceY","pathShape","buildSvgPath","leftXPositions","pathYs","pathHeight","curvature","refInterpolator","xRefPoints1","xRefPoints2","dimensionViewModels","nextYPositions","catToDisplayIndPerDim","dimToDisplayInd","displayToDimInd","pathDisplayCategoryInds","dimensionInds","sortArray1","sortArray2","pathViewModels","pathNumber","dimDisplayInd","catViewModle","numBands","lastCatBand","bandY","currentBand","dimensionsIndInfo","dimModel","createDimensionViewModel","dimDx","dimX0","dimX","categoryLabelPad","dimWidth","numDimensions","nextCatHeight","nextCatModel","nextCat","numCats","catSpacing","nextCatY","categoryIndInfo","var1Name","var2Name","arrayVarNames","colLen","col1","col2","textCol","hasColumnText","hoverTextCol","hasColumnHoverText","col1dv","col1vals","col2dv","col2vals","newArrays","after2before","arrayVarName","arrayVar","_after2before","coallesceUniforms","makeVector","makeGetter","makePropSetter","vidx","enumerateIndices","tprefix","makeSetter","storeProperty","processObject","coallesced","variable","_zlength","vPos","hPos","xInc","yInc","anchorVals","MapboxLayer","idSource","idLayer","sourceType","layerType","convertOpts","iconsize","placement","convertSourceOpts","sourcetype","sourceOpts","sourceattribution","needsNewImage","updateImage","needsNewSource","updateSource","updateLayer","needsNewLayer","updateStyle","_below","convertedOpts","sourcelayer","getLayer","mapboxLayer","cleanOne","valTrim","rgbStr","cstr","bcflat","fcflat","el0","findCategories","cloneLayoutOverride","tileClass","override","keyIsAxis","graphObj","oldData","oldLayout","axesImageOverride","linetickenable","plotTile","td","defaultLayout","fastTwoSum","NASHORN_BUG","buttonAttrs","xAxisMatch","yAxisMatch","JITTERCOUNT","JITTERSPREAD","cdbox","boxLayer","wdPos","bdPos0","bdPos1","whiskerWidth","lcenter","posc","pos1","posw0","posw1","posm0","posm1","useExtremes","seedPseudoRandom","gPoints","newJitter","typicalSpread","minSpread","spreadLimit","jitterFactors","maxJitterFactor","pmin","pmax","jitterFactor","jitterOffset","pseudoRandom","sl","sh","thunkName","string_typesig","shapeLengthConditions","shapeConditions","thunk","dcubicHermite","dh00","dh10","dh01","dh11","ti2","h00","h10","h01","h11","Axes2DOptions","AXES","createAxes2D","axTitle","axMirror","hasAxisInDfltPos","hasAxisInAltrPos","hasSharedAxis","mirrorLines","mirrorTicks","getLabelPad","getTickPad","getTickMarkLength","axSide","DiscworldCalendar","dow","century","centuries","20","21","runtimeUniforms","runtimeAttributes","GL_TO_GLSL_TYPES","GL_TABLE","getType","typeNames","tn","numUniforms","ACTIVE_UNIFORMS","numAttributes","TO_STRING_TAG","TAG","parentOut","constraintRange","dimensionsIn","fontDflt","xctrl","yctrl","nea1","neb1","IS_RIGHT","memo","createTextSprites","VERTEX_SIZE","TextSprites","tryVectorizeText","pixelScale","alignDir","alignOpt","drawLabel","autoContour","missingEnd","aFrom","propertyNames","propertyName","ensure","arcToCurve","makeControlPoints","inferCubicControlPoint","p2e0","p2e1","xe","ye","je","xej","yej","zVal","v0In","dvIn","numbricks","isArrayOfTwoItemsOrMore","sizex","sizey","sizing","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","forceStringMethod","stringMethod","regexMethod","Camera2D","lastInputTime","lastPos","boxEnabled","boxInited","boxStart","boxEnd","dragStart","mouseContainer","unSetAutoRange","getSubplotConstraint","calcDataBox","updateRange","setRanges","smallDx","smallDy","dydx","panning","handleAnnotations","path2DSupported","parsePath","drawPath","bitmapSdf","pathSdf","viewbox","strokeStyle","isPath2DSupported","path2d","Path2D","setTransform","cutoff","idata","$map","tickmodeDefault","hoverSplit","getClosestPoint","hoverPseudoDistance","spikePseudoDistance","minAttr","maxAttr","centerShift","shiftPos","displayHalfWidth","hoverHalfWidth","pseudoDistance","xSpike","cdIndex","hoverParts","usedVals","valPx","getLabelLine","textParts","FaceIndex","constraint","classifyFaces","indexCells","locate","filterCells","isCat","dtickNum","getMarchingIndex","mi","startIndices","ystartIndices","twoWide","fadedColor","calcOneAxis","calcCoord","baseExtremes","Geo","hasChoropleth","basePaths","dataPaths","getProjection","projLayout","dummyFn","maxAngle","fitExtent","makeGraticule","oppRng","coordFn","makeRangeBox","lat0","lat1","dlon4","geoPromises","needsTopojson","topojsonNameNew","fetchTopojson","topojsonPath","hasInvalidBounds","updateProjection","saveViewInitial","updateBaseLayers","updateDims","choropleth","axLon","axLat","midLon","midLat","lonHalfSpan","latHalfSpan","rangeBox","attrToUnset","centerPx","isAxisLayer","isLineLayer","isFillLayer","allLayers","hFrameWidth","zoomReset","lonlatPx","hideShowPoints","createBackground","getCubeProperties","Ticks","copyVec3","tickAlign","labelAlign","_firstInit","_lines","_background","OffsetInfo","primalOffset","primalMinor","mirrorOffset","mirrorMinor","parseOption","cons","nextTicks","NUMBER","BOOLEAN","STRING","ticksUpdate","labelUpdate","LINE_OFFSET","computeLineOffset","dualOffset","dualMinor","CUBE_ENABLE","DEFAULT_PARAMS","ALIGN_OPTION_AUTO","PRIMAL_MINOR","MIRROR_MINOR","PRIMAL_OFFSET","cubeEnable","enableAlign","hv_ratio","alignTo","solveTickAlignments","major","roundingError","lessThan","greaterThan","linelow","binSize","valsIn","errDiff","dlow","dhigh","rounded","sortFn","notOrdered","notReversed","pairOrder","markerSymbols","menuDefaults","menuIn","menuOut","buttonDefaults","buttonIn","buttonOut","calcSDF","INF","intData","CanvasRenderingContext2D","gridOuter","gridInner","edt","edt1d","axisLineGridAttr","axisTickAttrs","radialAxisAttrs","angularAxisAttrs","mockAnnAxes","_xa","_pdata","_ya","anns","makeScaler","_sArray","ck","yrange","processPixels","cleanPSLG","toPolygonCrappy","TAG_bold","CHR_bold","TAG_italic","CHR_italic","TAG_super","CHR_super0","CHR_super","TAG_sub","CHR_sub0","CHR_sub","parseTag","TAG_CHR","opnTag","clsTag","nOPN","nCLS","isRecursive","remainingStr","transformPositions","getPixels","rawString","allStyles","xPos","zPos","allTexts","numberOfLines","nDone","writeBuffer","getTextFontSize","changeStyle","oldStyle","newStyle","ctxFont","oldIndex_Sub","newIndex_Sub","oldSub","newSub","oldIndex_Super","newIndex_Super","oldSuper","newSuper","wasBold","is_Bold","wasItalic","is_Italic","xCut","yCut","doSimplify","processPixelsImpl","polyline","nresult","nloops","nloop","fontVariant","unquote","globalKeywords","systemFontKeywords","fontWeightKeywords","fontStyleKeywords","fontStretchKeywords","splitBy","parseFont","parseLineHeight","normalizeArray","allowAboveRoot","basename","matchedSlash","resolvedPath","resolvedAbsolute","trailingSlash","fromParts","toParts","samePartsLength","outputParts","sep","dirname","hasRoot","extname","startDot","startPart","preDotState","computeControlPoints","createSplineEvaluator","createIDerivativeEvaluator","createJDerivativeEvaluator","amax","bmax","arange","brange","atol","btol","isOccluded","i2a","j2b","ij2ab","i2c","extrapolate","iex","jex","der","dadi","dbdj","dxyda","dxydb","plus","minus","createViewController","createTurntable","createOrbit","ViewController","controllers","_controllerNames","_controllerList","_mode","turntable","COMMON_METHODS","orbit","argNames","getDistance","topology","bboxPoint","bboxGeometry","transformPoint","stitchedArcs","fragmentByStart","fragmentByEnd","emptyIndex","fg","gf","meshArcs","extractArcs","geomsByArc","extract0","extract1","extract2","extract3","geoms","planarRingArea","mergeArcs","polygonsByArc","extract","indexesByArc","ik","quantizePoint","quantizeGeometry","hasInstance","unscopables","paren","separator","cleanParts","beginPath","TOTALS_COLOR","rMax","prevLookup","rpx0","y2rpx","rx2px","getTargetX","getTextXY","getTargetY","nextX1ofPrevEntry","parentChildren","interpX0X1FromParent","textPosAngleFn","rpx1Fn","x0Fn","x1Fn","scaleFn","rotateFn","_rCenterFn","rCenterFn","xmid","addPercent","percentParentLabel","percentEntryLabel","percentRootLabel","worker","workerBundleString","sharedChunk","workerUrl","p1x","p1y","sampleCurveX","sampleCurveY","sampleCurveDerivativeX","solveCurveX","_sub","multByPoint","_multByPoint","divByPoint","_divByPoint","_mult","_div","rotateAround","_rotateAround","matMult","_matMult","_unit","perp","_perp","_round","distSqr","angleTo","angleWith","angleWithSep","setItem","removeItem","msRequestAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","msCancelAnimationFrame","resolveURL","hardwareConcurrency","API_URL","FEEDBACK_URL","REQUIRE_ACCESS_TOKEN","ACCESS_TOKEN","MAX_PARALLEL_IMAGE_REQUESTS","testSupport","_transformRequestFn","_customAccessToken","_createSkuToken","tokenExpiresAt","_skuToken","_skuTokenExpiresAt","_isSkuTokenExpired","transformRequest","normalizeStyleURL","_makeAPIURL","normalizeGlyphsURL","normalizeSourceURL","authority","normalizeSpriteURL","normalizeTileURL","canonicalizeTileURL","canonicalizeTileset","decodeURIComponent","anonId","pendingRequest","getStorageKey","btoa","fetchEventData","localStorage","getItem","saveEventData","processRequests","postEvent","EVENTS_URL","sdkIdentifier","sdkVersion","skuId","userId","vt","queueRequest","skuToken","postMapLoadEvent","postTurnstileEvent","lastSuccess","tokenU","et","ot","caches","statusText","Headers","Response","ReadableStream","ut","Unknown","Style","Source","Tile","Glyphs","SpriteImage","SpriteJSON","WorkerGlobalScope","referrer","AbortController","Request","credentials","signal","arrayBuffer","xt","actor","withCredentials","getResponseHeader","bt","requestParameters","cacheControl","expires","_t","wt","At","kt","St","_oneTimeListeners","fire","listens","_eventedParent","_eventedParentData","setEventedParent","zt","$version","$root","light","sprite","glyphs","source_vector","scheme","xyz","tms","source_raster","raster","source_raster_dem","terrarium","source_geojson","maximum","minimum","clusterRadius","clusterMaxZoom","clusterProperties","lineMetrics","generateId","source_video","video","urls","source_image","hillshade","layout_background","layout_fill","expression","parameters","layout_circle","layout_heatmap","layout_line","butt","bevel","miter","requires","layout_symbol","uppercase","lowercase","layout_raster","layout_hillshade","filter_operator","in","geometry_type","categorical","function_stop","expression_name","let","var","case","coalesce","ln2","typeof","boolean","collator","accumulated","upcase","downcase","paint_fill","paint_line","paint_circle","paint_heatmap","paint_symbol","overridable","paint_raster","paint_hillshade","paint_background","It","__line__","Ct","Bt","Et","Mt","Pt","Tt","Vt","Ft","Ot","Lt","Dt","Ut","Rt","jt","qt","Nt","Kt","itemType","Zt","Xt","Gt","Jt","parseCSSColor","Ht","Yt","sensitivity","Intl","Collator","resolvedLocale","resolvedOptions","$t","fontStack","Wt","sections","Qt","te","ee","serialize","expectedType","evaluate","eachChild","possibleOutputs","ae","oe","ue","parseColor","pe","featureState","formattedSection","_parseColorCache","ce","_evaluate","definitions","overloads","ve","checkSubtype","he","caseSensitive","diacriticSensitive","fe","de","me","boundExpression","_parse","typeAnnotation","outputs","be","we","Ae","ke","Se","ze","Ie","Ce","Be","Ee","Me","Pe","Te","Ve","Fe","Oe","Le","De","Ue","Re","interpolation","qe","interpolationFactor","controlPoints","Ne","Ke","Ze","Xe","inputType","cases","otherwise","outputIndex$1","Ge","Je","He","Ye","lhs","rhs","hasUntypedArgument","$e","We","Qe","nr","minFractionDigits","maxFractionDigits","NumberFormat","minimumFractionDigits","maximumFractionDigits","ur","lr","vr","gr","heatmapDensity","lineProgress","isSupportedScript","Ar","_warningHistory","_evaluator","_defaultValue","_enumValues","kr","Sr","enum","formatted","evaluateWithoutErrorHandling","zr","_styleExpression","isStateDependent","Ir","zoomStops","interpolationType","Cr","Br","_parameters","_specification","Er","valueSpec","objectElementValidators","styleSpec","objectKey","Mr","arrayElementValidator","Pr","Tr","Vr","expressionContext","propertyType","Fr","Or","deserialize","Lr","Dr","Rr","Ur","jr","Kr","qr","Nr","Zr","Xr","Gr","Jr","Hr","Yr","$r","Wr","Qr","rn","nn","paintProperty","layoutProperty","sn","pn","hn","bboxes","_insertReadonly","_forEachCell","_insertCell","_queryCell","_convertToCellCoord","_convertFromCellCoord","toArrayBuffer","yn","mn","writeable","klass","omit","shallow","vn","_classRegistryKey","gn","$name","xn","bn","lastIntegerZoom","lastIntegerZoomTime","lastZoom","lastFloorZoom","Arabic","Khmer","Hiragana","Katakana","Bopomofo","Kanbun","An","Sn","zn","In","Cn","Bn","En","Mn","Pn","applyArabicShaping","processBidirectionalText","processStyledBidirectionalText","isLoaded","Tn","fadeDuration","zoomHistory","crossFadingFactor","getCrossfadeParameters","fromScale","toScale","Vn","specification","isDataDriven","possiblyEvaluate","Fn","transitioned","Ln","untransitioned","On","_properties","defaultTransitionablePropertyValues","setValue","getTransition","setTransition","Dn","prior","defaultTransitioningPropertyValues","jn","Un","defaultPropertyValues","Rn","isConstant","constantOr","defaultPossiblyEvaluatedValues","qn","Nn","overrides","Kn","_calculate","Gn","overridableProperties","Jn","_featureFilter","sourceLayer","_unevaluatedLayout","_transitionablePaint","setPaintProperty","setLayoutProperty","_transitioningPaint","_crossfadeParameters","getLayoutProperty","getPaintProperty","_handleSpecialPaintPropertyUpdate","_handleOverridablePaintPropertyUpdate","updateTransitions","recalculate","is3D","isTileClipped","hasOffscreenPass","Hn","Int8","Uint8","Int16","Uint16","Int32","Uint32","Float32","_structArray","_pos1","_pos2","_pos4","_pos8","$n","isTransferred","capacity","Wn","members","BYTES_PER_ELEMENT","Qn","_trim","bytesPerElement","_refreshViews","reserve","emplaceBack","emplace","ui","gi","anchorPointX","anchorPointY","sourceLayerIndex","bucketIndex","signedDistanceFromAnchor","anchorPoint","Ai","glyphStartIndex","numGlyphs","vertexStartIndex","lineStartIndex","lineLength","lowerSize","upperSize","lineOffsetX","lineOffsetY","writingMode","placedOrientation","crossTileID","Si","rightJustifiedTextSymbolIndex","centerJustifiedTextSymbolIndex","leftJustifiedTextSymbolIndex","verticalPlacedTextSymbolIndex","textBoxStartIndex","textBoxEndIndex","verticalTextBoxStartIndex","verticalTextBoxEndIndex","iconBoxStartIndex","iconBoxEndIndex","numHorizontalGlyphVertices","numVerticalGlyphVertices","numIconVertices","textBoxScale","radialTextOffset","Ii","Ci","getoffsetX","Bi","tileUnitDistanceFromAnchor","Ei","getx","gety","gettileUnitDistanceFromAnchor","Mi","Pi","Ti","Vi","Fi","prepareSegment","MAX_VERTEX_ARRAY_LENGTH","vertexLength","vertexOffset","primitiveOffset","primitiveLength","vaos","simpleSegment","Oi","Li","getPositions","Di","Ui","uniform1i","Ri","uniform1f","ji","uniform2f","qi","uniform3f","Ni","uniform4f","Ki","Zi","uniformMatrix4fv","Gi","Ji","uniformNames","defines","setConstantPatternPositions","populatePaintArray","updatePaintArray","upload","setUniforms","getBinding","Hi","patternPositions","patternTo","patternFrom","tlbr","Yi","paintVertexAttributes","paintVertexArray","paintVertexBuffer","createVertexBuffer","$i","useIntegerZoom","Wi","zoomInPaintVertexArray","zoomOutPaintVertexArray","patterns","tl","zoomInPaintVertexBuffer","zoomOutPaintVertexBuffer","Qi","binders","cacheKey","_buffers","_featureMap","_bufferOffset","createDynamic","populatePaintArrays","updatePaintArrays","getPaintVertexBuffers","getUniforms","updatePatternPaintBuffers","programConfigurations","needsUpload","composite","loadGeometry","overscaling","hasPattern","layoutVertexArray","indexArray","stateDependentLayerIds","populate","addFeature","stateDependentLayers","uploadPending","uploaded","layoutVertexBuffer","indexBuffer","createIndexBuffer","hypot","createBucket","queryRadius","queryIntersectsFeature","cameraToCenterDistance","_updateColorRamp","colorRamp","colorRampTexture","heatmapFbo","no","vo","fo","oo","co","ao","ho","eo","po","go","bo","_o","wo","Ao","patternDependencies","ko","So","patternFeatures","indexArray2","addFeatures","indexBuffer2","zo","Io","Co","Bo","Eo","Mo","_pbf","_geometry","_keys","readFields","Po","readVarint","To","readSVarint","toGeoJSON","Vo","Fo","_features","Oo","readString","readDouble","readVarint64","readBoolean","Lo","Do","VectorTile","VectorTileFeature","VectorTileLayer","Uo","Ro","jo","qo","No","Ko","Zo","Xo","Jo","Go","Ho","Yo","$o","Wo","Qo","addLine","scaledDistance","totalDistance","mapbox_clip_start","clipEnd","mapbox_clip_end","updateDistance","addCurrentVertex","addHalfVertex","es","_updateGradient","gradientTexture","os","ss","us","ps","toLocaleUpperCase","toLocaleLowerCase","horizontalOnly","sectionIndex","ds","fromFeature","verticalizePunctuation","positionedGlyphs","getMaxScale","getSection","getSectionIndex","getCharCode","advance","As","9","10","12","32","vs","badness","priorBreak","ks","Ss","layoutSize","minZoom","maxZoom","Is","uSize","uSizeT","Cs","Bs","getSizeData","evaluateSizeForFeature","evaluateSizeForZoom","SIZE_PACK_FACTOR","Es","Ms","Ps","Ts","Vs","dynamicLayoutVertexArray","opacityVertexArray","placedSymbolArray","dynamicLayoutVertexBuffer","opacityVertexBuffer","itemSize","Fs","collisionVertexArray","collisionVertexBuffer","Os","collisionBoxArray","hasPaintOverrides","textSizeData","iconSizeData","sortFeaturesByKey","sortFeaturesByY","writingModes","sourceID","createArrays","Rs","collisionBox","collisionCircle","glyphOffsetArray","lineVertexArray","symbolInstances","calculateGlyphDependencies","iconDependencies","glyphDependencies","getValueAndResolveTokens","allowVerticalPlacement","addToLineVertexArray","addSymbols","glyphOffset","_addCollisionDebugVertex","addCollisionDebugVertices","addDebugCollisionBoxes","generateCollisionDebugBuffers","_deserializeCollisionBoxesForSymbol","textBox","textFeatureIndex","textCircles","verticalTextBox","verticalTextFeatureIndex","iconBox","iconFeatureIndex","deserializeCollisionBoxes","collisionArrays","hasTextData","hasIconData","hasCollisionBoxData","hasCollisionCircleData","addIndicesForPlacedTextSymbol","getSortedSymbolIndexes","sortedAngle","symbolInstanceIndexes","sortFeatures","featureSortOrder","MAX_GLYPHS","addDynamicAttributes","Ls","Ds","runtimeType","getOverride","hasOverride","Us","_setPaintOverrides","hasPaintOverride","_interpolationType","js","qs","Ns","Ks","implementation","renderingMode","prerender","painter","Gs","Js","paddedRect","Hs","displaySize","haveRenderCallbacks","addImages","iconPositions","hasRenderCallback","patchUpdatedImages","dispatchRenderCallbacks","updatedImages","patchUpdatedImage","getImage","$s","Ws","Qs","tu","eu","useMipmap","pixelStoreUnpackFlipY","pixelStoreUnpack","pixelStoreUnpackPremultiplyAlpha","premultiply","isSizePowerOfTwo","nu","au","Bytes","su","realloc","lu","writeVarint","pu","writeSVarint","hu","writeBoolean","yu","writeFixed32","du","writeSFixed32","writeFixed64","vu","writeSFixed64","xu","bu","Varint","Fixed64","Fixed32","readMessage","readFixed32","readSFixed32","readFixed64","readSFixed64","readBytes","readPackedVarint","readPackedSVarint","readPackedBoolean","readPackedFloat","readPackedDouble","readPackedFixed32","readPackedSFixed32","readPackedFixed64","readPackedSFixed64","writeTag","writeString","writeBytes","writeRawMessage","writeMessage","writePackedVarint","writePackedSVarint","writePackedBoolean","writePackedFloat","writePackedDouble","writePackedFixed32","writePackedSFixed32","writePackedFixed64","writePackedSFixed64","writeBytesField","writeFixed32Field","writeSFixed32Field","writeFixed64Field","writeSFixed64Field","writeVarintField","writeSVarintField","writeStringField","writeFloatField","writeDoubleField","writeBooleanField","_u","wu","Au","ku","Su","zu","_triggered","_channel","Iu","mapId","tasks","taskQueue","cancelCallbacks","invoker","receive","Cu","targetMapId","sourceMapId","getWorkerSource","Bu","setSouthWest","setNorthEast","_ne","Eu","_sw","getSouthWest","getNorthEast","getNorthWest","getWest","getNorth","getSouthEast","getEast","getSouth","toBounds","Mu","Pu","Tu","Vu","Fu","Ou","Lu","fromLngLat","toLngLat","toAltitude","meterInMercatorCoordinateUnits","Du","ju","getTilePoint","Uu","canonical","Ru","overscaledZ","scaledTo","isChildOf","isLessThan","unwrapTo","overscaleFactor","toUnwrapped","qu","_unpackTerrarium","_unpackMapbox","_idx","backfillBorder","Nu","Ku","_stringToNumber","_numberToString","encode","decode","Zu","_vectorTileFeature","Xu","Gu","stateChanges","deletedStates","updateState","removeFeatureState","getState","initializeTileState","setFeatureState","coalesceChanges","Ju","tileID","grid3D","featureIndexArray","Hu","Yu","loadVTLayers","vtLayers","rawTileData","sourceLayerCoder","queryGeometry","queryPadding","cameraQueryGeometry","loadMatchingFeature","pixelPosMatrix","bucketLayerIDs","intersectionZ","lookupSymbolFeatures","hasLayer","$u","uses","buckets","expirationTime","hasSymbolBuckets","expiredRequestCount","Wu","Qu","registerFadeDuration","timeAdded","fadeEndTime","wasRequested","loadVectorData","hasData","unloadVectorData","latestFeatureIndex","latestRawTileData","justReloaded","imageAtlas","glyphAtlasImage","imageAtlasTexture","glyphAtlasTexture","unloadDEMData","dem","neighboringTiles","getBucket","queryRenderedFeatures","querySourceFeatures","_geojsonTileLayer","clearMask","maskedBoundsBuffer","maskedIndexBuffer","setMask","patternsLoaded","setExpiryData","getExpiryTimeout","holdingForFade","symbolFadeHoldUntil","symbolFadeFinished","clearFadeHold","setHoldDuration","boxStartIndex","_addLineCollisionCircles","boxEndIndex","ol","_down","ll","_up","peek","murmur3","murmur2","vl","compositeTextSizes","_l","compareText","Actor","AlphaImage","CanonicalTileID","CollisionBoxArray","DEMData","DataConstantProperty","DictionaryCoder","EXTENT","ErrorEvent","EvaluationParameters","Evented","FeatureIndex","FillBucket","FillExtrusionBucket","ImageAtlas","ImagePosition","LineBucket","LngLatBounds","MercatorCoordinate","ONE_EM","OverscaledTileID","Point$1","ProgramConfiguration","Protobuf","RGBAImage","RequestManager","ResourceType","SegmentVector","SourceFeatureState","StructArrayLayout1ui2","StructArrayLayout2i4","StructArrayLayout2ui4","StructArrayLayout3ui6","StructArrayLayout4i8","SymbolBucket","Texture","Transitionable","Uniform1f","Uniform1i","Uniform2f","Uniform3f","Uniform4f","UniformColor","UniformMatrix4f","UnwrappedTileID","ValidationError","WritingMode","ZoomHistory","asyncAll","bezier","bindAll","cacheEntryPossiblyAdded","getActor","clearTileCache","clone$1","create$1","create$2","createCommonjsModule","createExpression","createLayout","createStyleLayer","deepEqual","emitValidationErrors","endsWith","enforceCacheSizeLimit","evaluateRadialOffset","evented","featureFilter","filterObject","fromRotation","getAnchorAlignment","getAnchorJustification","getArrayBuffer","getJSON","getReferrer","getVideo","muted","onloadstart","crossOrigin","isChar","isMapboxURL","keysDifference","makeRequest","mapObject","mercatorXfromLng","mercatorYfromLat","mercatorZfromAltitude","mvt","parseGlyphPBF","pbf","performSymbolLayout","tilePixelRatio","iconsNeedLinear","compositeIconSizes","layoutTextSize","layoutIconSize","textMaxSize","sdfIcons","plugin","polygonIntersectsPolygon","potpack","rasterBoundsAttributes","refProperties","registerForPluginAvailability","pluginURL","completionCallback","setCacheLimits","setRTLTextPlugin","sphericalToCartesian","symbolSize","transformMat3","uniqueId","validateCustomStyleLayer","validateLight","validateStyle","vectorTile","warnOnce","webpSupported","keyCache","_layerConfigs","_layers","familiesBySource","showCollisionBoxes","collectResourceTiming","returnDependencies","stacks","icons","glyphMap","iconMap","glyphPositions","getEntriesByName","mark","clearMarks","clearMeasures","_marks","rawData","Performance","layerIndex","loading","loadTile","resourceTiming","reloadTile","reloadCallback","abortTile","removeTile","rawImageData","FLATTENING","POLAR_RADIUS","_feature","tags","rawGeometry","keycache","valuecache","fromVectorTileJs","fromGeojsonVt","GeoJSONWrapper","within","trees","cluster_id","point_count","point_count_abbreviated","promoteId","transformed","numSimplified","numFeatures","tileCoords","timeEnd","indexMaxZoom","indexMaxPoints","splitTile","_geoJSONIndex","getTile","_cluster","getClusters","_limitZoom","getChildren","getLeaves","_appendLeaves","_addTileFeatures","getClusterExpansionZoom","_map","loadGeoJSON","loadData","_pendingCallback","abandoned","_pendingLoadDataParams","_loadData","superclusterOptions","geojsonVtOptions","clusterId","getClusterChildren","getClusterLeaves","layerIndexes","workerSourceTypes","workerSources","demWorkerSources","registerWorkerSource","registerRTLTextPlugin","setReferrer","setLayers","getLayerIndex","removedIds","loadDEMTile","getDEMWorkerSource","removeDEMTile","loadWorkerSource","loadRTLTextPlugin","reduceRight","isSealed","isFrozen","Worker","terminate","webGLContextAttributes","failIfMajorPerformanceCaveat","probablySupportsContext","supportsContext","disableDrag","enableDrag","userImage","TouchEvent","touchPos","mouseButton","InstallTrigger","callbackDispatchedThisFrame","requestors","atlasImage","setLoaded","_notify","addImage","removeImage","listImages","getImages","getPixelSize","getPattern","_updatePatternAtlas","atlasTexture","beginFrame","requestManager","localIdeographFontFamily","setURL","getGlyphs","requests","_tinySDF","loadGlyphRange","_doesCharSupportLocalGlyph","tinySDF","TinySDF","_transitionable","setLight","getLight","getDash","addDash","workerPool","actors","currentActor","acquire","vector_layers","vectorLayers","vectorLayerIds","broadcast","release","validateBounds","dispatcher","reparseOverscaled","_loaded","_options","_collectResourceTiming","dataType","_tileJSONRequest","_requestManager","tileBounds","_getMapId","sourceDataType","hasTile","_refreshExpiredTiles","unloadTile","roundZoom","getTileTexture","extTextureFilterAnisotropic","extTextureFilterAnisotropicMax","saveTileTexture","needsHillshadePrepare","_getNeighboringTiles","backfilled","demTexture","_removed","_resourceTiming","workerOptions","_updateWorkerData","_finishLoading","setCoordinates","_boundsArray","boundsBuffer","boundsSegments","triggerRepaint","play","pause","seek","seekable","currentTime","paused","_hasInvalidDimensions","_playing","calculatePosMatrix","maxPitchScaleFactor","tilesIn","wrappedTileID","queryResults","getFeatureState","_getAndRemoveByKey","getAndRemove","setMaxSize","dynamicDraw","unbindVAO","bindElementBuffer","DYNAMIC_DRAW","STATIC_DRAW","bindVertexBuffer","enableAttributes","setVertexAttribPointers","setDefault","stencilMask","ALWAYS","stencilFunc","KEEP","stencilOp","STENCIL_TEST","depthRange","ZERO","blendColor","BACK","cullFace","CCW","frontFace","extVertexArrayObject","UNPACK_ALIGNMENT","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNPACK_FLIP_Y_WEBGL","colorAttachment","ReadOnly","ReadWrite","disabled","depthFail","blendFunction","Replace","unblended","alphaBlended","backCCW","stencilTest","depthTest","cullFaceSide","MAX_TEXTURE_MAX_ANISOTROPY_EXT","extTextureHalfFloat","setCullFace","setDepthMode","setStencilMode","setColorMode","_sourceLoaded","_paused","reload","_sourceErrored","_source","_tiles","_cache","_unloadTile","_timers","_cacheTimers","_maxTileCacheSize","_coveredTiles","_shouldReloadOnResume","_loadTile","_abortTile","imageManager","getIds","getRenderableIds","_isIdRenderable","hasRenderableParent","findLoadedParent","_reloadTile","_tileLoaded","refreshedUponExpiration","_setTileReloadTimer","_backfillDEM","getTileByID","_retainLoadedChildren","updateCacheSize","handleWrapJump","_prevLng","used","getVisibleUnwrappedCoordinates","coveringTiles","maxOverzooming","maxUnderzooming","_updateRetainedTiles","_addTile","_fadeDuration","_removeTile","releaseSymbolFadeTiles","clearTiles","getCameraQueryGeometry","pointCoordinate","getVisibleCoordinates","posMatrix","workers","workerCount","setFilter","setGeoJSONSourceData","setLayerZoomRange","setLayerProperty","setSprite","setGlyphs","boxCells","circleCells","xCellCount","yCellCount","circleKeys","boxKeys","boxUid","circleUid","labelPlaneMatrix","glCoordMatrix","signedDistanceFromCamera","useVertical","notEnoughRoom","needsFlipping","tileDistance","prevTileDistance","lastSegmentViewportDistance","keysLength","_insertBoxCell","insertCircle","_insertCircleCell","_query","hitTest","_queryCircle","_queryCellCircle","hitTestCircle","_circleAndRectCollide","_circlesCollide","_convertToXCellCoord","_convertToYCellCoord","ignoredGrid","pitchfactor","_pitch","screenRightBoundary","screenBottomBoundary","gridRightBoundary","gridBottomBoundary","placeCollisionBox","projectAndGetPerspectiveRatio","perspectiveRatio","isInsideGrid","offscreen","isOffscreen","approximateTileDistance","placeCollisionCircles","projectAnchor","cameraDistance","projectPoint","queryRenderedSymbols","bucketInstanceId","insertCollisionBox","collisionGroupID","insertCollisionCircles","placed","skipFade","crossSourceCollisions","maxGroupID","collisionGroups","ID","collisionIndex","placements","opacities","variableOffsets","stale","commitTime","retainedQueryData","prevPlacement","placedOrientations","placeLayerTile","placeLayerBucket","attemptAnchorPlacement","radialOffset","prevAnchor","markUsedJustification","markUsedOrientation","commit","lastPlacementChangeTime","updateLayerOpacities","updateBucketOpacities","symbolFadeChange","hasTransitions","stillRecent","setStale","_currentTileIndex","_seenCrossTileIDs","continuePlacement","_currentPlacementIndex","_forceFullPlacement","_showCollisionBoxes","_done","isDone","_inProgressLayer","indexedSymbolInstances","getScaledCoordinates","findMatches","maxCrossTileID","generate","usedCrossTileIDs","addBucket","removeBucketCrossTileIDs","removeStaleBuckets","crossTileIDs","maxBucketInstanceId","bucketsInCurrentPlacement","pruneUnusedLayers","glyphManager","lineAtlas","crossTileSymbolIndex","_order","sourceCaches","_resetUpdates","_rtlTextPluginCallback","_validateLayer","loadURL","_request","_load","loadJSON","stylesheet","_spriteRequest","_serializeLayers","_updatedSources","_checkLoaded","_changed","_updatedLayers","_removedLayers","_updateWorkerLayers","_reloadSource","_clearSource","_updatedPaintProps","setState","isSourceLoaded","_layerOrderChanged","_updateLayer","moveLayer","getFilter","_flattenAndSortRenderedFeatures","addSourceType","getSourceType","setSourceType","workerSourceURL","_remove","_updateSources","_generateCollisionBoxes","_updatePlacement","pauseablePlacement","_releaseSymbolFadeTiles","getResource","fragmentSource","vertexSource","prelude","backgroundPattern","clippingMask","heatmapTexture","fillOutline","fillOutlinePattern","fillPattern","fillExtrusion","fillExtrusionPattern","hillshadePrepare","lineGradient","linePattern","lineSDF","symbolIcon","symbolSDF","boundProgram","boundLayoutVertexBuffer","boundPaintVertexBuffers","boundIndexBuffer","boundVertexOffset","boundDynamicVertexBuffer","boundDynamicVertexBuffer2","freshBind","currentNumAttributes","fixedUniforms","binderUniforms","tileZoom","u_image","u_texsize","u_scale","u_fade","u_pixel_coord_upper","u_pixel_coord_lower","LINE_STRIP","u_matrix","u_lightpos","u_lightintensity","u_lightcolor","u_vertical_gradient","u_opacity","u_height_factor","u_world","pixelsToGLUnits","u_camera_to_center_distance","u_scale_with_map","translatePosMatrix","u_pitch_with_map","u_device_pixel_ratio","u_extrude_scale","u_pixels_to_tile_units","u_overscale_factor","u_color","u_intensity","u_color_ramp","moving","u_latrange","u_light","u_shadow","u_highlight","u_accent","u_dimension","u_zoom","u_maxzoom","u_ratio","u_units_to_pixels","u_patternscale_a","u_patternscale_b","u_sdfgamma","u_tex_y_a","u_tex_y_b","u_mix","u_tl_parent","u_scale_parent","u_buffer_scale","u_fade_t","u_image0","u_image1","u_brightness_low","u_brightness_high","u_saturation_factor","u_contrast_factor","u_spin_weights","u_is_size_zoom_constant","u_is_size_feature_constant","u_size_t","u_size","u_pitch","u_rotate_symbol","u_aspect_ratio","u_fade_change","u_label_plane_matrix","u_coord_matrix","u_is_text","u_texture","u_gamma_scale","u_is_halo","u_pattern_tl_a","u_pattern_br_a","u_pattern_tl_b","u_pattern_br_b","u_pattern_size_a","u_pattern_size_b","u_scale_a","u_scale_b","u_tile_units_to_pixels","colorModeForRenderPass","depthModeForSublayer","rotating","buffers","uniformValues","atlasInterpolation","isSDF","hasHalo","stencilModeForClipping","rasterBoundsBuffer","quadTriangleIndexBuffer","rasterBoundsSegments","TEXTURE1","coveringZoomLevel","debugBuffer","tileBorderIndexBuffer","debugSegments","renderPass","programConfiguration","HALF_FLOAT_OES","viewportBuffer","viewportSegments","opaquePassEnabledForLayer","depthRangeFor3D","stencilModeFor3D","isPatternMissing","tileExtentBuffer","tileExtentSegments","setCustomLayerDefaults","customLayerMatrix","setBaseState","_tileTextures","setup","numSublayers","depthEpsilon","depthRboNeedsClear","emptyProgramConfiguration","depthRbo","stencilClearMode","nextStencilID","currentStencilSource","_renderTileClippingMasks","_tileClippingMaskIDs","NOTEQUAL","EQUAL","_showOverdrawInspector","CONSTANT_COLOR","currentLayer","opaquePassCutoff","renderLayer","showOverdrawInspector","showTileBoundaries","setupOffscreenDepthRenderbuffer","maxValidLatitude","_renderWorldCopies","_minZoom","_maxZoom","setMaxBounds","_center","_fov","_unmodified","_posMatrixCache","_alignedPosMatrixCache","renderWorldCopies","worldSize","fov","unmodified","_calcMatrices","rotationMatrix","_zoom","zoomFraction","_constrain","setLocationAtPoint","locationCoordinate","coordinateLocation","locationPoint","coordinatePoint","pointLocation","pixelMatrixInverse","pixelMatrix","getMaxBounds","lngRange","alignedProjMatrix","projMatrix","mercatorMatrix","_constraining","getCameraPoint","_updateHash","_updateHashUnthrottled","addTo","_onHashChange","getHashString","jumpTo","history","replaceState","getCanvasContainer","_defaultPrevented","defaultPrevented","lngLats","_delta","_defaultZoomRate","_wheelZoomRate","setZoomRate","setWheelZoomRate","isEnabled","_enabled","isZooming","_zooming","_aroundCenter","around","onWheel","WheelEvent","DOM_DELTA_LINE","_lastWheelEventTime","_timeout","_onTimeout","_lastWheelEvent","_start","_frameId","_cancelRenderFrame","_finishTimeout","_around","_aroundPoint","_requestRenderFrame","_onScrollFrame","_targetZoom","_startZoom","_easing","_smoothOutEasing","_prevEase","getContainer","_clickTolerance","clickTolerance","onMouseDown","_onMouseMove","_onKeyDown","_onMouseUp","_startPos","_lastPos","_fireEvent","_finish","fitScreenCoordinates","_button","_bearingSnap","bearingSnap","_pitchWithRotate","pitchWithRotate","_unbind","_deactivate","_startTime","_eventButton","_onBlur","_inertia","_prevPos","_lastMoveEvent","_onDragFrame","_drainInertiaBuffer","_normalizeBearing","_inertialRotate","resetNorth","noMoveStart","rotateTo","_onMove","onTouchStart","_onTouchEnd","_mouseDownPos","_inertialPan","panBy","delayEndEvents","easeTo","_tapped","_tappedPoint","_resetTapped","onDblClick","_onZoomEnd","disableRotation","_rotationDisabled","enableRotation","_startVec","_startAround","_gestureIntent","_onEnd","_getTouchEventData","_lastTouchEvent","_onTouchFrame","_startScale","_startBearing","snapToNorth","dragRotate","keyboard","touchZoomRotate","_moving","panTo","zoomIn","zoomOut","resetNorthPitch","cameraForBounds","_cameraForBoxAndBearing","_fitInternal","flyTo","prefersReducedMotion","_normalizeCenter","_rotating","_pitching","_prepareEase","_easeEndTimeoutID","_ease","_fireMoveEvents","_afterEase","speed","screenSpeed","maxDuration","isEasing","_easeFrameId","_onEaseFrame","_onEaseEnd","_easeStart","_easeOptions","_renderFrameCallback","getDefaultPosition","_innerContainer","_updateAttributions","_updateEditLink","_updateData","_updateCompact","_editLink","styleOwner","styleId","_hash","rel","customAttribution","owner","_attribHTML","_updateLogo","_logoRequired","mapbox_logo","_queue","_cleared","_currentlyRunning","run","trackResize","refreshExpiredTiles","maxTileCacheSize","_interactive","_failIfMajorPerformanceCaveat","_preserveDrawingBuffer","_antialias","_trackResize","_crossSourceCollisions","_crossFadingFactor","_renderTaskQueue","_controls","_mapId","maxBounds","_setupContainer","_setupPainter","_onWindowOnline","_onWindowResize","fitBoundsOptions","_localIdeographFontFamily","logoPosition","_controlPositions","removeControl","_containerDimensions","_resizeCanvas","setMinZoom","getMinZoom","setMaxZoom","getRenderWorldCopies","setRenderWorldCopies","getMaxZoom","isMoving","isRotating","delegates","mouseout","_delegatedListeners","_diffStyle","_updateStyle","_updateDiff","isStyleLoaded","areTilesLoaded","hasImage","loadImage","_canvasContainer","_detectMissingCSS","_missingCSSCanary","_contextLost","_contextRestored","_controlContainer","_frame","_styleDirty","_sourcesDirty","_render","_placementDirty","_repaint","loseContext","_showTileBoundaries","_vertices","_setCacheLimits","showCompass","showZoom","visualizePitch","_zoomInButton","_createButton","_zoomOutButton","_compass","_compassArrow","_updateZoomButtons","_rotateCompassArrow","_handler","_anchor","_draggable","draggable","_element","_defaultMarker","_popup","setDraggable","_onMapClick","_addDragHandler","_onUp","getLngLat","_lngLat","setLngLat","getElement","setPopup","togglePopup","getPopup","getOffset","setOffset","_positionDelta","isDraggable","positionOptions","enableHighAccuracy","maximumAge","trackUserLocation","showUserLocation","_setupUI","permissions","geolocation","_geolocationWatchID","clearWatch","_userLocationDotMarker","_onSuccess","_lastKnownPosition","_watchState","_geolocateButton","_updateMarker","_updateCamera","_dotElement","longitude","latitude","accuracy","geolocateSource","_onError","_clearWatch","_timeoutId","_setup","watchPosition","getCurrentPosition","setUnit","_fullscreen","_fullscreenchange","_className","_checkFullscreenSupport","_changeIcon","fullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","webkitFullscreenEnabled","_fullscreenButton","_updateTitle","_onClickFullscreen","_isFullscreen","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","exitFullscreen","mozCancelFullScreen","msExitFullscreen","webkitCancelFullScreen","requestFullscreen","mozRequestFullScreen","msRequestFullscreen","webkitRequestFullscreen","closeButton","closeOnClick","_onClickClose","_trackPointer","_content","trackPointer","setText","setDOMContent","setHTML","createDocumentFragment","getMaxWidth","setMaxWidth","_createContent","_closeButton","_tip","NavigationControl","GeolocateControl","ScaleControl","FullscreenControl","Popup","Marker","clearStorage","objIsPrototypeOf","isPrototypeOf","nullDesc","isNullBase","nullPolyfill","tmpObj1","tmpObj2","not_string","not_bool","not_type","not_primitive","numeric_arg","not_json","modulo","key_access","index_access","sprintf_format","sprintf_parse","vsprintf","parse_tree","pad_character","pad_length","is_positive","tree_length","param_no","pad_char","sprintf_cache","_fmt","arg_names","SyntaxError","field_list","replacement_field","field_match","_v","_w","processGrid","startx","starty","startz","slen","_startsX","_startsY","_startsZ","normMax","normMin","zMax","zMin","_slen","_xbnds","_ybnds","_zbnds","filledX","filledY","filledZ","firstX","firstY","firstZ","lastZ","getArray","getVals","getDir","arrK","arrJ","arrI","nk","arbitrary","_j","_k","dirK","dirJ","dirI","q000","q001","q010","q100","createPlot2D","createOptions","updateRefs","stopped","lastButtonState","isMouseOver","aticks","bticks","liveCanvas","updateSize","pickCanvas","pixelWidth","pixelHeight","xaxisName","yaxisName","xaIn","yaIn","curTicks","updateTraces","mockGraphDiv","domainX","domainY","xr2l","yr2l","xl2r","yl2r","emitPointAction","nextSelection","eventType","lastPickResult","traceUid","screenCoord","hoverFormatter","concentrationscalesDefaults","Out","hoverlabelDefault","nodeIn","nodeOut","coerceNode","defaultNodePalette","linkIn","linkOut","coerceLink","dfltArrangement","defaultLinkColor","baseOpts","hasArrayBase","basej","calculateAxisErrors","_lowerErrorBound","calculateErrors","aggregations","funcmode","aggAttrs","aggregateOneArray","groupings","aggregation","targetNP","conversions","getAggregateFunction","sortCalc","maxCnt","counti","total2","arrayAttrArray","aggregationOut","aggregationsIn","aggregationsOut","coercei","enabledi","groupArray","newGrouping","locationmodeDflt","locationMode","parseValues","ldata","ccol","vcalendar","bnadd","eyex","eyey","eyez","upx","upy","upz","centerz","defaultColumnOrder","specifiedColumnOrder","truncated","oneStepped","parentObjIn","parentObjOut","previousContOut","omega","cosom","sinom","Heatmap","zData","convertColorscale","createHeatmap","rowLen","colorOptions","barHover","hovermplate","groupClassName","inputAreaClass","railRectClass","railTouchRectClass","gripRectClass","tickRectClass","inputProxyClass","labelsClass","labelGroupClass","currentValueClass","railHeight","railRadius","railWidth","railBorder","railInset","stepInset","gripRadius","gripWidth","gripHeight","gripBorder","gripBorderWidth","gripBorderColor","gripBgColor","labelPadding","minorTickOffset","currentValuePadding","currentValueInset","planarGraphToPolyline","makeArray","makeArrayOfArrays","t00","t10","t11","containment","loopVertices","pmc","fadj","edgeAdjacency","internalVertices","sharedBoundary","nnbhr","scatterMapboxHoverPoints","carpetFont","baseHues","isShort","isRGB","saturation","lightness","brightness","MAX_VALUE","overrideCursor","YA_RADIANS","YFACTOR","YSHIFTX","YSHIFTY","_hover","noHoverEvent","overlayedSubplots","xaArray","yaArray","supportsCompare","spId","xvalArray","yvalArray","itemnum","curvenum","subploti","closedataPreviousLength","searchData","spikePoints","hLinePoint","vLinePoint","hasOneHorizontalTrace","hasUserCalledHover","dbb","pointerX","pointerY","ySpike","newPoints","newPoint","newPointNum","cleanPoint","closestPoints","tmpPoint","closestVPoints","closestVPt","fillSpikePoint","closestHPoints","closestHPt","selectClosestPoint","pointsData","thisSpikeDistance","resultPoint","spikelineOpts","oldspikepoints","_spikepoints","newspikepoints","tmpHPointData","tmpHPoint","tmpVPointData","tmpVPoint","spikesChanged","createSpikelines","newhoverdata","rotateLabels","commonLabelOpts","hoverLabels","createHoverText","hoverAvoidOverlaps","alignHoverText","hoverChanged","xvals","yvals","multiHover","hoverItem","container3","outerContainer3","tooltipSpacing","lastBottomY","EXTRA_STRING_REGEX","commonAttr","outerContainerBB","outerTop","showCommonLabel","traceHoverinfo","allHaveZ","commonLabel","lpath","ltext","commonBgColor","commonStroke","contrastColor","commonLabelFont","tbb","topsign","leftsign","lty","ltx","dummy","dummyBB","textClip","numsColor","nameColor","hovertemplateString","tx2","tx2width","tx2height","t2bb","anchorStartOK","anchorEndOK","hty","txTotalWidth","ty0","txwidth","txHalfWidth","overflowR","overflowL","axKey","donepositioning","topOverlap","bottomOverlap","sumdp","nummoves","nLabels","pointgroups","constrainGroup","grp","minPt","maxPt","deleteCount","axIsX","posref","g0","g1","horzSign","alignShift","txx","tx2x","getVal","calcKey","traceKey","xeText","yeText","infomode","showY","showX","hLinePointX","hLinePointY","ySnap","xBase","xEndSpike","dfltHLineColor","yMode","yThickness","yColor","xAcross0","xAcross1","vLinePointX","vLinePointY","xSnap","yBase","yEndSpike","dfltVLineColor","xMode","xThickness","xColor","yAcross0","yAcross1","oldPt","newPt","legendTraceCount","legendReallyHasATrace","defaultOrder","defaultYAnchor","itemsizing","saveLink","canUseSaveLink","objectUrl","msSaveBlob","download","Line2D","createShaders","dashMult","maxPatternLength","precisionThreshold","maxLines","drawMiterLine","miterMode","miterLimit","dashSize","drawRectLine","lineTop","aCoord","bCoord","aCoordFract","bCoordFract","aColor","bColor","prevCoord","nextCoord","drawFill","dashLength","lastId","bounds$1","boundsW","boundsH","rangeW","rangeH","dashData","l$2","i$7","c$1","weightedSource","weightedTarget","maxPaddedSpace","relaxRightToLeft","relaxLeftToRight","maxNodePadding","horizontalSource","horizontalTarget","exprs","setPositionOffset","orientations","violinList","getPolygonizer","createMSTable","createCellPolygonizer","maxCellSize","tables","generateCase","alg","valueToString","makeReflectTypes","useIndex","handleTernaryDefaults","ternaryLayoutIn","ternaryLayoutOut","letterUpper","makePathFn","_a0","_a1","vaBar","cdbar","barLayer","rp0","rp1","thetag0","thetag1","rg1","thetagMid","colLength","transposeRagged","maxlen","zlen","yTranspose","translationMatrix","xys","createTurntableController","rotateM","normalize3","dot3","clamp1","findOrthoPair","TurntableController","computedRight","computedAngle","computedToward","maxDist","toward","ctheta","stheta","cphi","sphi","zAxis","dphi","droll","noSnap","ushift","vshift","ez","cf","tz","angleState","lastTheta","lastPhi","dataArrays","arraysToFill","dataArray","fillArray1","fillArray2","displaySum","normSum","hasBars","shouldBeGapless","gappedAnyway","usedSubplots","Grid","tickShader","compareTickNum","X_AXIS","Y_AXIS","SCR_OFFSET","TICK_SCALE","viewWidth","viewHeight","xTicksOffset","yTicksOffset","xEnd","xCount","yEnd","yCount","tickScale","OFFSET_X","OFFSET_Y","gridTicks","localTicks","m44","heatmapStyle","isConstraintType","colorLines","colorFills","firstFill","stylePie","pieCastOption","CST_MARKER_SIZE","CST_LINE_WIDTH","CST_MARKER_LINE_WIDTH","MAX_LINE_WIDTH","MAX_MARKER_LINE_WIDTH","getGradientDirection","constantItemSizing","boundLineWidth","cst","styleLines","dMod","tMod","showFill","showGradientLine","showGradientFill","fillGradient","markersOrText","anyFill","anyLine","pathStart","this3","minExtend","showMarkers","boundVal","attrIn","arrayToValFn","valToBound","pickFirst","dEdit","tEdit","ptgroup","styleWaterfalls","ptsData","styleBars","styleBarLike","styleFunnels","barpath","styleBoxes","styleCandles","styleOHLC","stylePies","stylePieLike","styleFunnelareas","d0Mod","styleSpatial","useGradient","traceGroup","markerOffsetY","clonePlot","cheaterBasis","arrayMinmax","calcGridlines","calcLabels","calcClipPath","smoothFill2dArray","avals","bvals","isBicubic","SUPPORTED_TYPES","GLBuffer","updateTypeArray","dataLen","makeScratchTypeArray","STREAM_DRAW","ndt","carpetAttrs","startLineColor","startLineWidth","showStartLine","endLineColor","endLineWidth","showEndLine","ouu2","autoMarginId","sliderOpts","makeSliderData","contOpts","sliderData","findDimensions","sliderLabels","maxLabelWidth","labelHeight","stepOpts","_dims","inputAreaWidth","outerLength","inputAreaStart","inputAreaLength","textableInputLength","availableSpacePerLabel","computedSpacePerLabel","labelStride","currentValueMaxWidth","currentValueHeight","currentValueTotalHeight","currentValueMaxLines","dummyGroup","curValPrefix","drawCurrentValue","curValSize","drawSlider","sliderGroup","drawRail","drawLabelGroup","drawTouchRect","drawGrip","setGripPosition","valueOverride","curVal","grip","attachGripEvents","labelItems","labelSteps","normalizedValueToPosition","handleInput","normalizedPosition","doTransition","quantizedPosition","quantizedIndex","setActive","doCallback","previousActive","slider","interaction","_nextMethod","_nextMethodRaf","$gd","getSliderOpts","positionToNormalizedValue","isMajor","computeLabelSteps","_invokingCommand","computedLength","sliders","clearSlider","sliderGroups","gSlider","createFills","traceJoin","fillJoin","cdscatterAll","selectMarkers","errorBarGroup","ownFillEl3","ownFillDir","thispath","thisrevpath","prevRevpath","prevPolygons","_prevRevpath","_nextFill","pathfn","revpathbase","revpathfn","thisPolygons","revpath","_ownFill","isEnter","lineJoin","clearFill","_prevPolygons","clipUrl","visFilter","visFilterWithGaps","gapFilter","hideFilter","hasNode","markerFilter","textFilter","showFilter","isInferZero","_needsCull","mnum","tnum","inboxFn","_cdi","segseg","ratCmp","ratToFloat","ratVec","boundRat","boundEdges","boundPoints","getCrossings","edgeBounds","getTJunctions","vertBounds","cutEdges","floatPoints","junctions","useColor","ratPoints","crossing","ef","junction","dedupPoints","floatBounds","noDupes","compareLex2","compareLex3","dedupEdges","preRound","snapRound","tjunctions","prevEdges","augEdges","modified","perspectiveMatrix","tmpVec4","pdum3","vec4multMat4","mat3from4","mat4x4","scale2","dragOne","splomGrid","makeGridData","fullView","lcolor","lwidth","gridBatches","zScale","lgroupToTraces","lgroups","hasOneNonBlankGroup","slicesShown","lgroupi","addOneItem","legendGroup","uniqueGroup","lgroup","labelj","ltraces","lgroupsLength","JUNK","invertPermutation","dfltAnchor","dfltDomain","dfltPosition","createTable","chull","constructVertex","constructCell","opts1","funnelareacolorway","extendfunnelareacolors","gl3dAxisAttrs","makeCameraVector","boxList","pointList","shownPts","boxdv","dPos0","numTotal","groupFraction","groupGapFraction","pushplus","pushminus","edgeplus","edgeminus","hasPts","pm","colorbarAttrs","palettes","noScale","onlyIfNumerical","colorscaleDflt","contextHead","autoImpliedEdits","minmaxImpliedEdits","isPlainFunction","normalizeOpts","dscr","equalPts","xtol","ytol","edgeflag","locStr","marchStep","getStartStep","getInterpPx","startLoc","startStep","atEdge","closedLoop","distgroup","cnt2","cnt3","newpt","ptcnt","ptavg","thisdist","edgepathi","edgepathj","closedpath","totaldist","distThresholdFactor","alldists","cropstart","distThreshold","getpt","doublemerged","locx","locy","zxy","handleLayerDefaults","layerIn","layerOut","typeDflt","mustBeRasterLayer","ovv2","d3Sankey","d3SankeyCircular","d3Force","sankeyModel","nodePad","nodeThickness","nodePointNumber","groupingNode","computeLinkConcentrations","flowKey","flows","flowLinks","totalPerLabel","concentration","totalOutflow","concentrationOut","totalInflow","concenrationIn","resolveCollisionsTopToBottom","snapToColumns","colX","orderedNodes","colNumber","guid","nodeLineColor","nodeLineWidth","linkLineColor","linkLineWidth","dragParallel","dragPerpendicular","forceLayouts","interactionState","dragInProgress","linkModel","basicKey","linkPath","createCircularClosedPathString","y0a","y0b","y1a","y1b","nodeModel","zoneThicknessPad","zoneLengthPad","visibleThickness","visibleWidth","visibleHeight","zoneX","zoneY","zoneWidth","zoneHeight","labelY","originalLayer","sizeAcross","darkBackground","uniqueNodeLabelPathId","updateNodePositions","updateNodeShapes","updateShapes","salientEnough","sankeyTransform","nodeCentering","textGuidePath","sankeyInverseTransform","textFlip","nodeTextColor","nodeTextOffset","attachPointerEvents","eventSet","attachDragHandler","dragBehavior","_dragCover","saveCurrentDragPosition","forceKey","attachForce","startForce","sameLayer","persistFinalNodePositions","switchToForceFormat","originalX","forceSimulation","forceCollide","snappingForce","faster","switchToSankeyFormat","maxVelocity","lastDraggedX","lastDraggedY","nodeX","nodeY","persistOriginalPlace","distinctLayerPositions","originalY","originalLayerIndex","firstRender","dragcover","styledData","dragboxClassName","objectAssign","hasOwn","pSlice","functionsHaveNames","pToString","arrbuf","truncate","something","rawname","getMessage","expected","stackStartFunction","AssertionError","_deepEqual","memos","actualIndex","objEquiv","actualVisitedObjects","aIsArgs","bIsArgs","notDeepStrictEqual","expectedException","_tryBlock","_throws","shouldThrow","userProvidedMessage","isUnwantedException","isUnexpectedException","generatedMessage","captureStackTrace","fn_name","next_line","notEqual","deepStrictEqual","notDeepEqual","strictEqual","notStrictEqual","throws","doesNotThrow","ifError","MAX_GROUP_ID","srcPoints","sublevels","levelItems","nextOffset","diam","levelGroups","sublevel","lolo","lohi","hilo","hihi","x$1","y$1","nminX","nminY","nmaxX","nmaxY","maxLevel","off0","off1","off2","off3","levelGroupStart","levelGroupEnd","startOffset","endOffset","contourPlot","axisAlignedLine","mapPathinfo","pedgepath","ppath","pathData","constrainToCarpet","levelData","pathABData","startVector","getUnitVector","endVector","minStart","maxEnd","abPt","pathVector","edgeVector","dAB","normalizeVector","vectorTan","ab2p","carpetcd","pathto","startpt","contourcarpetLayer","isAllBlank","mat4mult","getSimpleString","ScatterPlotPickResult","fixOpacity","PointCloud","orthoShader","projectShader","pointBuffer","glyphBuffer","pickPerspectiveShader","pickOrthoShader","pickProjectShader","lineVertexCount","projectHasAlpha","_selectResult","useOrtho","axesProject","highlightId","createPointCloud","pickBase","VIEW_SHAPE","U_VEC","V_VEC","MU_VEC","MV_VEC","SCRATCH_MATRIX","SCRATCH_VEC","CLIP_BOUNDS","augment","hg","af","setComponent","getClipBounds","drawProject","screenSize","pickGroup","pmodel","mdu","mdv","sv","fragClipBounds","NEG_INFINITY3","POS_INFINITY3","CLIP_GROUP","drawFull","pshader","forceDraw","get_glyphData","alignmentX","alignmentY","angles","lineColors","pickCounter","triVertexCount","count_loop","glyphData","glyphMesh","glyphLines","glyphBounds","positionArray","glyphArray","idArray","triOffset","isColorArray","isLineColorArray","glyphVisible","currentScript","scripts","getElementsByTagName","handleOpacity","handleOverlap","parcoordsLineLayers","parcoordsLineLayer","filterBarPattern","str2bn","makeRational","selectorOut","getPosDflt","anchoredList","selectorIn","posDflt","fontAttr","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","objectProto","nativeMax","nativeMin","lastArgs","lastThis","timerId","lastCallTime","lastInvokeTime","maxing","invokeFunc","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","debounced","isInvoking","isObjectLike","isBinary","Ax","Ay","Bx","By","d_py_ly","d_rx_lx","d_px_lx","d_ry_ly","sqlen","pointsSameX","pointsSameY","pt3","axb","searchString","sqrDist","sqrLen","boxDeltaPos","boxDeltaNeg","dVal","isViolin","boxDelta","posAcceptance","xPx","yPx","ijClosest","tangent","tanIsoIdx","tanIsoPar","refidx","toIdx","isoIdx","vstart","vend","dirfloor","dirceil","dirmin","dirmax","idx0","idx1","findInterp","pixArray","maxBin","pix0","pix1","bin0","bin1","findInterpFromCenters","centerPixArray","putColor","pxIndex","heatmapLayer","xrev","yrev","canvasW","canvasH","xbi","ybi","pixcount","gcount","bcount","yinterp","xForPx","yForPx","xPixArray","yPixArray","xinterpArray","findInterpX","findInterpY","interpColor","setColor","pxArray","dlen","xGap","yGap","xGapLeft","yGapTop","avgColor","pixsize","xinterp","z00","z01","z10","z11","_vm","_h","$createElement","_c","_self","directives","rawName","staticRenderFns","_defineProperty","eventsName","completeName","$emit","plotlyFunctions","functionName","hit","camelize","require","inheritAttrs","scheduled","innerLayout","mounted","watch","deep","old","computed","optionsFromAttrs","$attrs","beforeDestroy","onResize","$nextTick","allOptions","getPrintOptions","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$options","shadowRoot","_injectStyles","originalRender","beforeCreate","getOutsideTextFontKey","getInsideTextFontKey","getParentId","childId","keyStr","isOutsideText","tube2mesh","Streamtube","getDfltStartingPositions","getBoundPads","tubeOpts","meshx","meshy","meshz","xbnds","ybnds","zbnds","xpads","ypads","zpads","createStreamtubeTrace","streamtube","fromDataScale","uvx","lib","arrayModule","coerceModule","datesModule","searchModule","statsModule","matrixModule","anglesModule","anchorUtils","geom2dModule","extendModule","loggersModule","regexModule","throttleModule","throttleDone","domModule","makePtIndex2PtNumber","ptIndex2ptNumber","attrList","part1","part2","_recursion","rem","OptionControl","optname","optObj","optionList","smooth","FWHM","alen","alen2","wlen","finalStep","fni","continueAsync","promiseError","stripTrailingSlash","hasAny","hasAll","hasFn","traceVal","isCdIndexValid","ptIndex","transformOpts","obj1","obj2","arrayLen","titleCase","containsAny","IS_IE9_OR_BELOW_REGEX","IS_SAFARI_REGEX","enterFn","objectFromPath","tmpObj","dottedPropertyRegex","indexedPropertyRegex","trailingPath","thousandsRe","decimalSep","thouSep","TEMPLATE_STRING_REGEX","getterCache","hovertemplateWarnings","templateFormatString","texttemplateWarnings","TEMPLATE_STRING_FORMAT_SEPARATOR","char0","char9","numA","numB","charA","charB","isNumA","isNumB","randSeed","lastVal","baseFont","needsCull","privates","fallback","forwardFrag","pickFrag","EthiopianCalendar","LOG2E","menuOpts","isFolded","gButton","buttonOpts","gHeader","buttonIndex","isSilentUpdate","drawButtons","drawHeader","headerOpts","posOpts","positionOverrides","headerWidth","setItemPosition","styleOnMouseOver","styleOnMouseOut","buttonData","openHeight","openWidth","scrollBoxPosition","menu","styleButtons","drawScrollBox","hideScrollBox","heights","widths","hasHBar","hasVBar","itemOpts","drawItemRect","drawItemText","height1","totalWidth","fakeButtons","paddedWidth","paddedHeight","overrideOpts","spanOffset","newMenuIndexAttr","menuData","clearAutoMargin","menus","headerGroups","scrollBoxId","_gButton","getCanvasContext","CSSRuleList","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","convertToPx","convertToDate","extractedCoordinates","relevantParamIdx","dataToPixel","pixelToData","strokeWidthIsOdd","posValAsInt","barycentricCircumcenter","barycenetric","feat","multiPoint","multiLineString","multiPolygon","featureCollection","coordinates_1","lineStrings","geometryCollection","radiansToLength","factors","lengthToRadians","lengthToDegrees","radiansToDegrees","bearingToAzimuth","degreesToRadians","convertLength","originalUnit","finalUnit","convertArea","startFactor","areaFactors","finalFactor","validateBBox","validateId","radians2degrees","degrees2radians","distanceToDegrees","distanceToRadians","radiansToDistance","bearingToAngle","convertDistance","earthRadius","centimeters","centimetres","feet","inches","kilometers","kilometres","meters","metres","miles","millimeters","millimetres","nauticalmiles","yards","unitsFactors","acres","imageDataAbove","imageDataSubplot","imageDataBelow","setImage","thisImage","_imgSrc","imagePromise","errorHandler","imagesBelow","imagesAbove","imagesOnSubplot"],"mappings":"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,QACA,eACA,2BACA,sBACA,kBACA,wBACA,eACA,gBACA,WACA,gBACA,0BACA,eACA,eACA,eACA,eACA,SACA,cACA,kBACA,mBACA,eACA,eACA,cACA,eACA,kBACA,gBACA,iBACA,4BACA,uBACA,mBACA,yBACA,gBACA,0BACA,wBACA,mBACA,iBACA,2BACA,wBACA,mBACA,kCACA,oBACA,kCACA,eACA,sBACA,0BACA,qBACA,sBACA,sBACA,gCACA,gCACA,qBACA,4BACA,qCACA,8BACA,+BACA,sCACA,+CACA,wCACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,YACA,kBACA,iBACA,kBACA,kBACA,kBACA,kBACA,WACA,gBACA,qBACA,eACA,cACA,sBACA,6BACA,sCACA,+BACA,oBACA,cACA,qBACA,mBACA,0BACA,mCACA,4BACA,YACA,cACA,mBACA,cACA,SACA,WACA,gBACA,MACA,OACA,iBACA,MACA,MACA,MACA,MACA,YACA,MACA,WACA,MACA,UACA,UACA,UACA,OACA,MACA,aACA,OACA,OACA,MACA,YACA,eACA,gBACA,mBACA,cACA,iBACA,kBACA,sBACA,oBACA,mBACA,uBACA,uB,oCClJJ,IAAIk2H,EAAU,EAAQ,QAGlBgxJ,EAAgB,CAAE,QAAU,EAAM,UAAY,EAAM,WAAa,GAErEjnR,EAAOD,QAAU,SAAU0B,GAC1B,QAAKw0H,EAAQx0H,IACNY,eAAe1B,KAAKsmR,SAAsBxlR,K,oCCClD,IAAIylR,EAAS,EAAQ,QACjB/vQ,EAAM,EAAQ,QACdnL,EAAO,EAAQ,QAAiBA,KAEhCymE,EAAsBt7D,EAAIs7D,oBAC1B00M,EAAUhwQ,EAAIgwQ,QACdhpM,EAAa,EAAQ,QAEzB,SAASipM,EAAkBh4Q,GACvB,IASI5O,EATAowB,EAAWxhB,EAAMgZ,KACjBi/P,EAAWj4Q,EAAM67D,KAEjBE,EAAQ,GACRm8M,EAAoB70M,EAAoB40M,EAASx7Q,OACjD07Q,EAAc,GAEd79H,EAAa,GACb89H,EAAiBH,EAASI,YAAY9iR,OAE1C,IAAInE,EAAI,EAAGA,EAAIgnR,EAAgBhnR,IAAK,CAChC,IAAI89E,EAAS+oM,EAASI,YAAYjnR,GAC9BsvI,EAAQ3xD,EAAWwxD,aAAarxD,EAAQ,CAAC9uE,QAAS,MAClD22D,EAAQgY,EAAW0xD,mBAAmBC,GAC1C4Z,EAAWprE,EAAOsiB,OAASz6B,EAG/B,IAAIuhN,EAAY,EAChB,IAAIlnR,EAAI,EAAGA,EAAI6mR,EAAS5lR,MAAMkD,OAAQnE,IAC/B6mR,EAASz9M,OAAOppE,GAAKknR,IAAWA,EAAYL,EAASz9M,OAAOppE,IAC5D6mR,EAASt2P,OAAOvwB,GAAKknR,IAAWA,EAAYL,EAASt2P,OAAOvwB,IAEnE,IAII4E,EAJAuiR,EAAYD,EAAY,EAC5Bt4Q,EAAMgZ,KAAKqxL,OAASkuE,EAIpB,IAAIlgO,EAASr4C,EAAMgZ,KAAKq/B,OACpBmgO,EAAc,GAClB,IAAIpnR,EAAI,EAAGA,EAAIinD,EAAO9iD,OAAQnE,IAAK,CAC/B,IAAIoR,EAAQ61C,EAAOjnD,GAEnB,IAAI4E,EAAI,EAAGA,EAAIwM,EAAMjN,OAAQS,IAAK,CAC9B,IAAIyiR,EAAYj2Q,EAAMxM,GAClB0M,EAAa61Q,EAAYnnR,EAC1BonR,EAAYvlR,eAAewlR,GAC1B1wQ,EAAI24B,KAAK,QAAU+3O,EAAY,gCAE/BD,EAAYC,GAAa/1Q,GAMrC,IAAIg2Q,EAAe,CACfl+M,OAAQ,GACR74C,OAAQ,IAEZ,IAAIvwB,EAAI,EAAGA,EAAI6mR,EAAS5lR,MAAMkD,OAAQnE,IAAK,CACvC,IAAI2yB,EAAMk0P,EAAS5lR,MAAMjB,GAErBopE,EAASy9M,EAASz9M,OAAOppE,GACzBuwB,EAASs2P,EAASt2P,OAAOvwB,GAC7B,GAAK2yB,EAAM,GAAKg0P,EAAQv9M,EAAQ+9M,IAAcR,EAAQp2P,EAAQ42P,MAK3DC,EAAYvlR,eAAeunE,KAAWg+M,EAAYvlR,eAAe0uB,IAAW62P,EAAYh+M,KAAYg+M,EAAY72P,IAAnH,CAKG62P,EAAYvlR,eAAe0uB,KAC1BA,EAAS62P,EAAY72P,IAItB62P,EAAYvlR,eAAeunE,KAC1BA,EAASg+M,EAAYh+M,IAGzBA,GAAUA,EACV74C,GAAUA,EACVw2P,EAAY39M,GAAU29M,EAAYx2P,IAAU,EAE5C,IAAI6vE,EAAQ,GACTymL,EAASzmL,OAASymL,EAASzmL,MAAMpgG,KAAIogG,EAAQymL,EAASzmL,MAAMpgG,IAE/D,IAAIunR,EAAqB,KACtBnnL,GAAS8oD,EAAWrnJ,eAAeu+F,KAAQmnL,EAAqBr+H,EAAW9oD,IAE9Ez1B,EAAM1nE,KAAK,CACPod,YAAargB,EACbogG,MAAOA,EACP/0F,MAAOy7Q,EAAoBD,EAASx7Q,MAAMrL,GAAK6mR,EAASx7Q,MACxDk8Q,mBAAoBA,EACpBn+M,OAAQA,EACR74C,OAAQA,EACRtvB,OAAQ0xB,IAGZ20P,EAAal+M,OAAOnmE,KAAKmmE,GACzBk+M,EAAa/2P,OAAOttB,KAAKstB,IAI7B,IAAIi3P,EAAaL,EAAYlgO,EAAO9iD,OAChCsjR,EAAoBx1M,EAAoB7hD,EAAS/kB,OACjDo7D,EAAQ,GACZ,IAAIzmE,EAAI,EAAGA,EAAIwnR,EAAYxnR,IACvB,GAAI+mR,EAAY/mR,GAAhB,CACA,IAAIC,EAAImwB,EAASgwE,MAAMpgG,GAEvBymE,EAAMxjE,KAAK,CACPmO,MAAQpR,EAAImnR,EAAY,EACxBO,cAAe,GACfrnQ,YAAargB,EACbogG,MAAOngG,EACPoL,MAAOo8Q,EAAoBr3P,EAAS/kB,MAAMrL,GAAKowB,EAAS/kB,QAKhE,IAAI0rK,GAAW,EAKf,OAJG4wG,EAAmBH,EAAYF,EAAal+M,OAAQk+M,EAAa/2P,UAChEwmJ,GAAW,GAGR,CACHA,SAAUA,EACVpsG,MAAOA,EACPlE,MAAOA,EAGPxf,OAAQA,EACRmgO,YAAaA,GAIrB,SAASO,EAAmBC,EAASC,EAASC,GAG1C,IAFA,IAAIrhN,EAAQ9vD,EAAIoxQ,YAAYH,EAAS,GAE7B5nR,EAAI,EAAGA,EAAI+F,KAAKoC,IAAI0/Q,EAAQ1jR,OAAQ2jR,EAAQ3jR,QAASnE,IACzD,GAAG2W,EAAIgwQ,QAAQkB,EAAQ7nR,GAAI4nR,IAAYjxQ,EAAIgwQ,QAAQmB,EAAQ9nR,GAAI4nR,GAAU,CACrE,GAAGC,EAAQ7nR,KAAO8nR,EAAQ9nR,GACtB,OAAO,EAEXymE,EAAMohN,EAAQ7nR,IAAIiD,KAAK6kR,EAAQ9nR,IAIvC,IAAI4wP,EAAM81B,EAAOjgN,GAIjB,OAAOmqL,EAAI1nG,WAAW24E,MAAK,SAASxhO,GAChC,OAAOA,EAAE8D,OAAS,KAI1B3E,EAAOD,QAAU,SAAcoP,EAAIC,GAC/B,IAAInF,EAASm9Q,EAAkBh4Q,GAE/B,OAAOpD,EAAK,CACRurK,SAAUttK,EAAOstK,SACjBixG,OAAQv+Q,EAAOg9D,MACfwhN,OAAQx+Q,EAAOkhE,MAGfu9M,QAASz+Q,EAAOw9C,OAChBkhO,aAAc1+Q,EAAO29Q,gB,oCChL7B,SAASgB,EAAWt1Q,GAClBlT,KAAKkT,KAAOA,EACZlT,KAAKshC,OAAS,EAAC,GAAM,GAAM,GAAO,GAClCthC,KAAK2hB,MAAS,CAAC,EAAG,EAAG,EAAG,GACxB3hB,KAAKyL,MAAS,CAAC,CAAC,EAAE,EAAE,EAAE,GACP,CAAC,EAAE,EAAE,EAAE,GACP,CAAC,EAAE,EAAE,EAAE,GACP,CAAC,EAAE,EAAE,EAAE,IACtBzL,KAAKkhC,OAAS,CAACv2B,IAAUA,KAV3B/K,EAAOD,QAAU8oR,EAajB,IAAIrkR,EAAQokR,EAAWxmR,UAiEvB,SAASymR,EAAev1Q,EAAM9H,GAC5B,IAAIq2B,EAAS,IAAI+mP,EAAWt1Q,GAG5B,OAFAuuB,EAAO11B,OAAOX,GACd8H,EAAKiyQ,WAAW1jP,GACTA,EAnETr9B,EAAM2H,OAAS,SAASX,GACtBA,EAAUA,GAAW,GACrBpL,KAAKshC,QAAUl2B,EAAQk2B,QAAU,EAAC,GAAK,GAAK,GAAM,IAAQ58B,QAC1D1E,KAAK2hB,OAAUvW,EAAQuW,OAAS,CAAC,EAAE,EAAE,EAAE,IAAIjd,QAC3C1E,KAAKyL,OAAUL,EAAQK,OAAS,CAChB,CAAC,EAAE,EAAE,EAAE,GACP,CAAC,EAAE,EAAE,EAAE,GACP,CAAC,EAAE,EAAE,EAAE,GACP,CAAC,EAAE,EAAE,EAAE,KAAKuwC,KAAI,SAASptC,GAAK,OAAOA,EAAElK,WACvD1E,KAAKkhC,QAAU91B,EAAQ81B,QAAU,CAACv2B,IAASA,MAAWjG,QACtD1E,KAAKkT,KAAK+wQ,mBAGZ7/Q,EAAMkI,KAAO,WACX,IAAIo8Q,EAAc1oR,KAAKshC,OACnBqnP,EAAc3oR,KAAK2hB,MACnBinQ,EAAc5oR,KAAKyL,MACnBo9Q,EAAc7oR,KAAKkhC,OACnBhuB,EAAclT,KAAKkT,KACnB2lB,EAAc3lB,EAAK2lB,KAEnB09L,EAAcrjN,EAAKqjN,QACnB4tD,EAAcjxQ,EAAKmpB,QAIvB,GAFAxD,EAAKj3B,OAEF20N,EAAQ,IAAMsyD,EAAY,IAAMA,EAAY,IAAMtyD,EAAQ,IAC1DA,EAAQ,IAAMsyD,EAAY,IAAMA,EAAY,IAAMtyD,EAAQ,GAAI,CAE/D,IAAIuyD,EAAU3E,EAAW,IAAM0E,EAAY,GAAKtyD,EAAQ,KAAOA,EAAQ,GAAKA,EAAQ,KAAO4tD,EAAW,GAAKA,EAAW,IAClH4E,EAAU5E,EAAW,IAAM0E,EAAY,GAAKtyD,EAAQ,KAAOA,EAAQ,GAAKA,EAAQ,KAAO4tD,EAAW,GAAKA,EAAW,IAEnHuE,EAAY,IACd7vP,EAAKioI,SACHgoH,EAASC,EACT5E,EAAW,GAAI4E,EACfJ,EAAW,GAAIC,EAAW,IAE1BF,EAAY,IACd7vP,EAAKioI,SACHgoH,EAASC,EACTD,EAAS3E,EAAW,GACpBwE,EAAW,GAAIC,EAAW,IAE1BF,EAAY,IACb7vP,EAAKioI,SACHgoH,EAASC,EACT5E,EAAW,GAAI4E,EACfJ,EAAW,GAAIC,EAAW,IAE3BF,EAAY,IACb7vP,EAAKioI,SACHgoH,EAASC,EACTD,EAAS3E,EAAW,GACpBwE,EAAW,GAAIC,EAAW,MAKlCxkR,EAAMoK,QAAU,WACdxO,KAAKkT,KAAKkyQ,cAAcplR,Q,kCC3E1B,IAM4CgpR,EANxC3iN,EAAiB,EAAQ,QACzB3uC,EAAiB,EAAQ,QACzBh3B,EAAiB,EAAQ,QACzBS,EAAiB,EAAQ,QACzBm1D,EAAiB,EAAQ,QAEzBv1D,EAAiBD,OAAOC,eAE5BioR,EAAgBppR,EAAOD,QAAU,SAAUozE,EAAKk2M,GAC/C,KAAMjpR,gBAAgBgpR,GAAgB,MAAM,IAAItyN,UAAU,8BAC1DJ,EAAS/1D,KAAKP,KAAM+yE,GAEuBk2M,EADtCA,EACIvxP,EAASn3B,KAAK0oR,EAAM,aAAqB,YACzCvxP,EAASn3B,KAAK0oR,EAAM,OAAe,MAChC,QAHM,QAIlBloR,EAAef,KAAM,WAAYU,EAAE,GAAIuoR,KAEpC5iN,GAAgBA,EAAe2iN,EAAe1yN,UAG3C0yN,EAAchnR,UAAUq8B,YAE/B2qP,EAAchnR,UAAYlB,OAAOY,OAAO40D,EAASt0D,UAAW,CAC3Ds1D,SAAU52D,GAAE,SAAUN,GACrB,MAAsB,UAAlBJ,KAAKkpR,SAA6BlpR,KAAK22D,SAASv2D,GAC9B,cAAlBJ,KAAKkpR,SAAiC,CAAC9oR,EAAGJ,KAAK22D,SAASv2D,IACrDA,OAGTW,EAAeioR,EAAchnR,UAAWb,EAAOC,YAAaV,EAAE,IAAK,oB,oCC1BnE,SAASyoR,EAAYC,EAAShpR,GAC5B,IAAIipR,EAAUD,EAAU,GACpBzlR,EAAI0lR,EAAQjkR,QAAQ,KACpBkkR,EAAU,EACX3lR,GAAK,IACN2lR,EAAUD,EAAQ9kR,OAASZ,EAAI,GAEjC,IAAIotD,EAAQ5qD,KAAK85B,IAAI,GAAIqpP,GACrB16Q,EAAIzI,KAAK45B,MAAMqpP,EAAUhpR,EAAI2wD,GAC7Bw4N,EAAO36Q,EAAI,GACf,GAAG26Q,EAAKnkR,QAAQ,MAAQ,EACtB,OAAOmkR,EAET,IAAIhiO,EAAK34C,EAAImiD,EAAOkiD,EAAKrkG,EAAImiD,EAC1BniD,EAAI,GACL24C,EAAoB,GAAdphD,KAAK+5B,KAAKqnB,GAChB0rD,EAAW,GAAJA,IAEP1rD,EAAoB,EAAfphD,KAAK2N,MAAMyzC,GAChB0rD,GAAQ,GAEV,IAAIu2K,EAAM,GAAKjiO,EAIf,GAHG34C,EAAI,IACL46Q,EAAM,IAAMA,GAEXF,EAAS,CACV,IAAI/0K,EAAK,GAAKtB,EACd,MAAMsB,EAAGhwG,OAAS+kR,EAChB/0K,EAAK,IAAMA,EAEb,OAAOi1K,EAAM,IAAMj1K,EAEnB,OAAOi1K,EAIX,SAASC,EAAa7/Q,EAAQm9B,GAE5B,IADA,IAAIqC,EAAQ,GACJ1oC,EAAE,EAAGA,EAAE,IAAKA,EAAG,CAGrB,IAFA,IAAIyW,EAAQ,GAEJ7V,GADKsI,EAAO,GAAGlJ,GAAGkJ,EAAO,GAAGlJ,GAC1B,GAAGY,EAAEylC,EAAYrmC,IAAIkJ,EAAO,GAAGlJ,KAAMY,EAC7C6V,EAAM9T,KAAK,CAACuL,EAAGtN,EAAEylC,EAAYrmC,GAAI+O,KAAM05Q,EAAYpiP,EAAYrmC,GAAIY,KAErE,IAAQA,GAAG,EAAGA,EAAEylC,EAAYrmC,IAAIkJ,EAAO,GAAGlJ,KAAMY,EAC9C6V,EAAM9T,KAAK,CAACuL,EAAGtN,EAAEylC,EAAYrmC,GAAI+O,KAAM05Q,EAAYpiP,EAAYrmC,GAAIY,KAErE8nC,EAAM/lC,KAAK8T,GAEb,OAAOiyB,EAGT,SAASsgP,EAAWC,EAAQC,GAC1B,IAAI,IAAIxpR,EAAE,EAAGA,EAAE,IAAKA,EAAG,CACrB,GAAGupR,EAAOvpR,GAAGmE,SAAWqlR,EAAOxpR,GAAGmE,OAChC,OAAO,EAET,IAAI,IAAIS,EAAE,EAAGA,EAAE2kR,EAAOvpR,GAAGmE,SAAUS,EAAG,CACpC,IAAI/B,EAAI0mR,EAAOvpR,GAAG4E,GACd9B,EAAI0mR,EAAOxpR,GAAG4E,GAClB,GACE/B,EAAE2L,IAAM1L,EAAE0L,GACV3L,EAAEwM,OAASvM,EAAEuM,MACbxM,EAAEwe,OAASve,EAAEue,MACbxe,EAAEu5C,YAAct5C,EAAEs5C,WAClBv5C,EAAEue,WAAate,EAAEse,UACjBve,EAAEu2B,KAAOt2B,EAAEs2B,IACXv2B,EAAEunB,KAAOtnB,EAAEsnB,GAEX,OAAO,GAIb,OAAO,EA5ET7qB,EAAQ+B,OAAW+nR,EACnB9pR,EAAQkqR,MAAWH,G,oCCQnB,IAAIrmQ,EAAQ,EAAQ,QAEhB6nD,EAAO,aAUXtrE,EAAOD,QAAU,SAAwB0L,GACrC,IAAI,IAAIq4G,KAAQr4G,EACc,oBAAhBA,EAAMq4G,KAAsBr4G,EAAMq4G,GAAQx4C,GAGxD7/D,EAAMkrB,QAAU,WACZlrB,EAAM4mB,UAAUtJ,WAAWyoG,YAAY/lH,EAAM4mB,YAGjD,IAAIuC,EAAM3T,SAASC,cAAc,OACjC0T,EAAI+9F,UAAY,WAChB/9F,EAAIrkB,MAAM0/G,OAAS,UACnBr7F,EAAIrkB,MAAMqR,SAAW,OACrBgT,EAAIrkB,MAAM1E,MAAQ4X,EAAM+uE,SAAS,GACjC59D,EAAIrkB,MAAMnG,SAAW,WACrBwqB,EAAIrkB,MAAMiE,KAAOogB,EAAIrkB,MAAMyiB,IAAM,MACjC4B,EAAIrkB,MAAMwR,MAAQ6S,EAAIrkB,MAAM2Z,OAAS,OACrC0K,EAAIrkB,MAAM,oBAAsBkT,EAAMsxN,UACtCngN,EAAIrkB,MAAM,WAAa,GAEvB,IAAIjO,EAAI2e,SAASC,cAAc,KAiB/B,OAhBA5e,EAAEizB,YAAc,qFAChBjzB,EAAEiO,MAAMnG,SAAW,WACnB9H,EAAEiO,MAAMyiB,IAAM,MACd1wB,EAAEiO,MAAMiE,KAAO,MACflS,EAAEiO,MAAM2Z,OAAS,MACjB5nB,EAAEiO,MAAMwR,MAAQ,MAChBzf,EAAEiO,MAAM4kB,OAAS,gBAEjBP,EAAI9K,YAAYxnB,GAChBmJ,EAAM4mB,UAAUvI,YAAY8K,GAC5BnpB,EAAM4mB,UAAU9hB,MAAM0kB,WAAa,UACnCxpB,EAAM4mB,UAAUnB,QAAU,WACtBoD,OAAOs/L,KAAK,2BAIT,I,oCClDX,IAAIpxM,EAAQ,EAAQ,QAEpBxiB,EAAOD,QAAU,CACbiT,WAAY,QACZjS,KAAM,YACNkS,eAAgB,EAAQ,QACxBC,WAAY,CAAC,KAAM,OAAQ,YAAa,UAAW,cAAe,aAAc,gBAEhFxH,WAAY,EAAQ,QACpB0H,eAAgB,EAAQ,QACxB4jG,mBAAoB,EAAQ,QAC5Bx1C,SAAU,EAAQ,QAClBC,aAAc,EAAQ,QACtBpuD,KAAM,EAAQ,QACdC,KAAM,EAAQ,QACdC,YAAaiP,EAAMjP,YACnBC,aAAc,EAAQ,QAEtBL,KAAM,K,oCClBV,IAAIgE,EAAM,EAAQ,QAEdmvD,EAAW,EAAQ,QACnBy7M,EAAuB,EAAQ,QAA4BA,qBAC3D32L,EAAuB,EAAQ,QAC/BC,EAAqB,EAAQ,QAC7BE,EAAqB,EAAQ,QAC7BC,EAA0B,EAAQ,QAClCG,EAAgB,EAAQ,QAAwBA,cAEhDjgF,EAAa,EAAQ,QAEzB1L,EAAOD,QAAU,SAAwBk6D,EAASC,EAAU4D,EAAcvV,GACtE,SAAS3U,EAAOjrB,EAAMzE,GAClB,OAAO/M,EAAIy8B,OAAOqmB,EAASC,EAAUxuD,EAAYid,EAAMzE,GAG3D,IAAIoK,EAAMyzP,EAAqB9nN,EAASC,EAAU3R,EAAQ3U,GACtDtlB,GAKJslB,EAAO,aACPA,EAAO,OAAQtlB,EAAMq9D,EAAgB,gBAAkB,SACvD/3C,EAAO,QACPA,EAAO,aACiB,UAArBsmB,EAAS8xB,SAAqBp4C,EAAO,iBAErC0yB,EAAS70C,SAASyoC,KACjBmxB,EAAmBpxB,EAASC,EAAU4D,EAAcvV,EAAQ3U,GAC5DA,EAAO,gBAGR0yB,EAASC,WAAWrM,IACnBkxB,EAAqBnxB,EAASC,EAAU4D,EAAcvV,EAAQ3U,GAG/D0yB,EAAShvC,QAAQ4iC,KAChBtmB,EAAO,gBACP23C,EAAmBtxB,EAASC,EAAU3R,EAAQ3U,IAGlDA,EAAO,QACc,SAAlBsmB,EAAS7nD,MACRm5E,EAAwBvxB,EAASC,EAAU4D,EAAclqB,GAG7Dz8B,EAAIi1E,6BAA6BlyB,EAAUtmB,IA7BvCsmB,EAASvnD,SAAU,I,oCC5B3B,IAAI2lD,EAAc,EAAQ,QACtButB,EAAQ,EAAQ,QAChB62G,EAAa,EAAQ,QACrBknE,EAA8B,EAAQ,QACtCrrM,EAA6B,EAAQ,QACrC8yH,EAAW,EAAQ,QACnB6+F,EAAgB,EAAQ,QAExBC,EAAejpR,OAAOiY,OACtBhY,EAAiBD,OAAOC,eAI5BnB,EAAOD,SAAWoqR,GAAgBtkM,GAAM,WAEtC,GAAIvtB,GAQiB,IARF6xN,EAAa,CAAE7mR,EAAG,GAAK6mR,EAAahpR,EAAe,GAAI,IAAK,CAC7EC,YAAY,EACZC,IAAK,WACHF,EAAef,KAAM,IAAK,CACxBqB,MAAO,EACPL,YAAY,OAGd,CAAEkC,EAAG,KAAMA,EAAS,OAAO,EAE/B,IAAI0zL,EAAI,GACJ6V,EAAI,GAEJlgH,EAASprF,SACT6oR,EAAW,uBAGf,OAFApzF,EAAErqG,GAAU,EACZy9L,EAASp5Q,MAAM,IAAI4mD,SAAQ,SAAUyyN,GAAOx9E,EAAEw9E,GAAOA,KACf,GAA/BF,EAAa,GAAInzF,GAAGrqG,IAAgB+vG,EAAWytF,EAAa,GAAIt9E,IAAIjpM,KAAK,KAAOwmR,KACpF,SAAgBr5P,EAAQ64C,GAC3B,IAAIgC,EAAIy/G,EAASt6J,GACbu5P,EAAkB1uQ,UAAUjX,OAC5BxB,EAAQ,EACR+nL,EAAwB04E,EAA4B16N,EACpDkiJ,EAAuB7yH,EAA2BrvB,EACtD,MAAOohP,EAAkBnnR,EAAO,CAC9B,IAIIpB,EAJAo7C,EAAI+sO,EAActuQ,UAAUzY,MAC5BslD,EAAOyiI,EAAwBwR,EAAWv/I,GAAG50C,OAAO2iL,EAAsB/tI,IAAMu/I,EAAWv/I,GAC3Fx4C,EAAS8jD,EAAK9jD,OACdS,EAAI,EAER,MAAOT,EAASS,EACdrD,EAAM0mD,EAAKrjD,KACNkzD,IAAe8yH,EAAqBzqL,KAAKw8C,EAAGp7C,KAAM6pE,EAAE7pE,GAAOo7C,EAAEp7C,IAEpE,OAAO6pE,GACPu+M,G,oCCxCJnqR,EAAOD,QAAU,CACb63L,QAAS,CACL3zK,QAAS,aACT8V,OAAQ,CAAC,QAAS,WAClB7V,KAAM,UAENI,SAAU,QAGdwzK,OAAQ,CACJ7zK,QAAS,SACTtb,IAAK,EACLC,IAAK,EACLsb,KAAM,GAENI,SAAU,QAGd0zK,YAAa,CACT/zK,QAAS,SACTtb,IAAK,EACLC,IAAK,EACLsb,KAAM,GAENI,SAAU,U,oCCjClBtkB,EAAOD,QAAUwqR,EAEjB,IAAIphR,EAAe,EAAQ,QACvBO,EAAe,EAAQ,QACvB8gR,EAAe,EAAQ,QACvBjhR,EAAe,EAAQ,QACvBE,EAAe,EAAQ,QAE3B,SAASghR,EAAan3Q,EAAMwtJ,EAAKr2J,GAC/BrK,KAAKkT,KAAeA,EACpBlT,KAAK0gK,IAAeA,EACpB1gK,KAAKqK,OAAeA,EACpBrK,KAAK05O,WAAe,CAAC,GAAG,IACxB15O,KAAKsqR,MAAe,CAAC,GAAG,IACxBtqR,KAAKo2M,YAAe,CAAC,EAAE,GACvBp2M,KAAKuqR,WAAe,CAAC,EAAE,GAGzB,IAAInmR,EAAQimR,EAAaroR,UAyPzB,SAASmoR,EAAmBj3Q,GAC1B,IAAI9I,EAAK8I,EAAK9I,GACVs2J,EAAM33J,EAAaqB,GACnBC,EAASf,EAAac,EAAIf,EAAQmhR,SAAUnhR,EAAQohR,UACpDh7Q,EAAO,IAAI46Q,EAAan3Q,EAAMwtJ,EAAKr2J,GACvC,OAAOoF,EA5PTrL,EAAMwqD,UAAY,WAChB,IAAI87N,EAAY,CAAC,EAAE,GACfC,EAAgB,CAAC,EAAE,GACnBC,EAAS,CAAC,EAAE,GAEhB,OAAO,SAAS9+L,GACd,IAAI54E,EAAclT,KAAKkT,KACnB7I,EAAcrK,KAAKqK,OACnBigR,EAActqR,KAAKsqR,MAAMx+L,GACzB4tJ,EAAc15O,KAAK05O,WAAW5tJ,GAC9B1hF,EAAc8I,EAAK9I,GACnBiyB,EAAcnpB,EAAKmpB,QACnBk6L,EAAcrjN,EAAKqjN,QACnB11D,EAAc3tJ,EAAK2tJ,UACnB11J,EAAc+H,EAAK/H,WACnBs3Q,EAAcvvQ,EAAKuvQ,WACnBD,EAActvQ,EAAKsvQ,QACnB7kE,EAAczqM,EAAKotJ,UACnBuqH,EAAc33Q,EAAK8/C,UAInB4vN,EAAc1vQ,EAAK0vQ,YACnBF,EAAcxvQ,EAAKwvQ,SACnBG,EAAc3vQ,EAAK2vQ,WACnBF,EAAczvQ,EAAKyvQ,WACnBvsE,EAAcp2M,KAAKo2M,YAAYtqH,GAC/By+L,EAAcvqR,KAAKuqR,WAAWz+L,GAE9B7nE,EAAQ9a,EAAQ4lB,GAAGu7P,EAAO/zD,EAAQzqI,IAClC3nE,EAAQhb,EAAQmF,GAAGg8Q,EAAO/zD,EAAQzqI,EAAK,IAE3C4+L,EAAU,GAAQA,EAAU,GAAK,EACjCA,EAAU5+L,GAAQ,EAElB6+L,EAAc7+L,IAASzvD,EAAQ,EAAEyvD,GAAQzvD,EAAQyvD,KAAU+0E,EAAU,EAAE/0E,GAAQ+0E,EAAU/0E,IAAS,EAElG,IAAIg/L,EAAc,EAAMjqH,EAAU,GAAQ,EAAL/0E,IAAW+0E,EAAe,EAAL/0E,GAE1D6+L,EAAmB,EAAL7+L,GAAUg/L,EAAczuP,EAAa,EAALyvD,GAAU,EACrD22L,EAAW32L,KACZ6+L,EAAmB,EAAL7+L,IAAWg/L,EAAc3/Q,EAAaq3Q,EAAQ12L,GACzD7nE,EAAQE,GAAOu1N,EAAWv1N,GAAOu1N,EAAWz1N,KAC7C5Z,EAAOmC,SAASu+Q,SAAeL,EAC/BrgR,EAAOmC,SAASw+Q,aAAeL,EAC/BtgR,EAAOmC,SAASf,MAAekyM,EAAU7xH,GACzCzhF,EAAOmC,SAASykD,MAAe45N,EAAU/+L,GACzC1hF,EAAGi+H,WACDj+H,EAAGygL,UACH6uD,EAAWz1N,GACXy1N,EAAWv1N,GAAOu1N,EAAWz1N,MAGhC2+P,EAAY92L,IAASy+L,IACtBI,EAAmB,EAAL7+L,IAAWg/L,EAAc3/Q,EAAau3Q,EAAS52L,GAC7DzhF,EAAOmC,SAASu+Q,SAAeH,EAC/BvgR,EAAOmC,SAASw+Q,aAAeL,EAC/BtgR,EAAOmC,SAASf,MAAeo3Q,EAAW/2L,GAC1CzhF,EAAOmC,SAASykD,MAAe0xN,EAAW72L,GAC1C1hF,EAAGi+H,WACDj+H,EAAGygL,UACHurB,EACAm0E,IAGJI,EAAmB,EAAL7+L,GAAUg/L,EAAczuP,EAAQ,GAAQ,EAALyvD,IAAW,EACzD22L,EAAW32L,EAAK,KACjB6+L,EAAmB,EAAL7+L,IAAWg/L,EAAc3/Q,EAAaq3Q,EAAQ12L,EAAK,GAC9D7nE,EAAQE,GAAOu1N,EAAWv1N,GAAOu1N,EAAWz1N,KAC7C5Z,EAAOmC,SAASu+Q,SAAeL,EAC/BrgR,EAAOmC,SAASw+Q,aAAeL,EAC/BtgR,EAAOmC,SAASf,MAAekyM,EAAU7xH,EAAK,GAC9CzhF,EAAOmC,SAASykD,MAAe45N,EAAU/+L,EAAK,GAC9C1hF,EAAGi+H,WACDj+H,EAAGygL,UACH6uD,EAAWz1N,GACXy1N,EAAWv1N,GAAOu1N,EAAWz1N,MAGhC2+P,EAAY92L,EAAK,IAAMy+L,IACxBI,EAAmB,EAAL7+L,IAAWg/L,EAAc3/Q,EAAau3Q,EAAS52L,EAAK,GAClEzhF,EAAOmC,SAASu+Q,SAAeH,EAC/BvgR,EAAOmC,SAASw+Q,aAAeL,EAC/BtgR,EAAOmC,SAASf,MAAeo3Q,EAAW/2L,EAAK,GAC/CzhF,EAAOmC,SAASykD,MAAe0xN,EAAW72L,EAAK,GAC/C1hF,EAAGi+H,WACDj+H,EAAGygL,UACHurB,EACAm0E,KAxFU,GA8FlBnmR,EAAM6/C,UAAY,WAChB,IAAIymO,EAAY,CAAC,EAAE,GACfC,EAAgB,CAAC,EAAE,GAEvB,OAAO,WACL,IAAIz3Q,EAAclT,KAAKkT,KACnB7I,EAAcrK,KAAKqK,OACnBD,EAAc8I,EAAK9I,GACnBy2J,EAAc3tJ,EAAK2tJ,UACnBiiH,EAAc5vQ,EAAK4vQ,YACnBE,EAAc9vQ,EAAK8vQ,WACnBC,EAAc/vQ,EAAK+vQ,WACnB93Q,EAAc+H,EAAK/H,WAEvB,GAAInL,KAAKirR,WAAT,CAIA,IAAI,IAAI7qR,EAAE,EAAGA,EAAE,IAAKA,EAClBuqR,EAAcvqR,GAAK,GAAO0iR,EAAY1iR,GAAG+K,EAAa01J,EAAUzgK,KAC7DygK,EAAU,EAAEzgK,GAAKygK,EAAUzgK,IAAM,EAGtCiK,EAAOzI,OACPyI,EAAOmC,SAASu+Q,SAAgBL,EAChCrgR,EAAOmC,SAASw+Q,aAAgBL,EAChCtgR,EAAOmC,SAASykD,MAAgB+xN,EAChC34Q,EAAOmC,SAASf,MAAgBw3Q,EAEhC74Q,EAAGi+H,WAAWj+H,EAAGygL,UAAW7qL,KAAKkrR,YAAalrR,KAAKirR,cA7BrC,GAiClB7mR,EAAMxC,KAAO,WACX,IAAIupR,EAAa,CAAC,EAAE,GAChBC,EAAa,CAAC,EAAE,GAChBC,EAAa,CAAC,EAAE,GAEpB,OAAO,WACL,IAAIn4Q,EAAYlT,KAAKkT,KACjB7I,EAAYrK,KAAKqK,OACjBT,EAAYsJ,EAAKswQ,YACjBjtD,EAAYrjN,EAAKqjN,QACjB11D,EAAY3tJ,EAAK2tJ,UACjBxkI,EAAYnpB,EAAKmpB,QAErBhyB,EAAOzI,OAGP,IAAI,IAAIxB,EAAE,EAAGA,EAAE,IAAKA,EAAG,CAErB,IAAI2X,EAAKnO,EAAOxJ,GACZ0X,EAAKlO,EAAOxJ,EAAE,GACdkrR,EAAaxzQ,EAAKC,EAClBwzQ,EAAc,IAAOh1D,EAAQn2N,EAAE,GAAKm2N,EAAQn2N,IAC5CorR,EAAej1D,EAAQn2N,EAAE,GAAKm2N,EAAQn2N,GAEtCqrR,EAASpvP,EAAQj8B,GACjBsrR,EAASrvP,EAAQj8B,EAAE,GACnBurR,EAAYD,EAASD,EACrBG,EAAW/qH,EAAUzgK,GACrByrR,EAAWhrH,EAAUzgK,EAAE,GACvB0qR,EAAce,EAAWD,EAE7BR,EAAWhrR,GAAK,EAAMkrR,EAAaE,EAAYG,EAAYb,EAC3DK,EAAW/qR,GAAK,GAAO2X,EAAKwzQ,GAAcC,EAAYG,EAAYb,EAGpEO,EAAW,GAAK,EAAMn4Q,EAAK/H,YAAc01J,EAAU,GAAKA,EAAU,IAClEwqH,EAAW,GAAKA,EAAW,IAAMxqH,EAAU,GAAKA,EAAU,KAAOA,EAAU,GAAKA,EAAU,IAE1Fx2J,EAAOmC,SAASyL,UAAYmzQ,EAC5B/gR,EAAOmC,SAASs/Q,UAAYX,EAC5B9gR,EAAOmC,SAASu/Q,UAAYV,EAG5BrrR,KAAK0gK,IAAI9+J,OACTyI,EAAOiB,WAAW0gR,eAAeviP,WA5CxB,GAgDbrlC,EAAM2H,OAAS,SAASX,GACtB,IAGIhL,EAAG4E,EAAM2G,EAAMo6D,EAAOjiE,EAHtBrB,EAAY,GACZwpR,EAAY7gR,EAAQ+L,MACpBvN,EAAYwB,EAAQxB,OAGxB,IAAI9F,EAAU,EAAGA,EAAU,IAAKA,EAAW,CACzC,IAAI6vJ,EAAU,CAACxtJ,KAAK2N,MAAMrR,EAAS8B,OAAO,IAAK+lR,EAAQ,EAAE3/Q,KAGrDwM,EAAQ80Q,EAAUnoR,GACtB,IAAI1D,EAAE,EAAGA,EAAE+W,EAAM5S,SAAUnE,EAAG,CAC5B,IAAIsmC,EAAQvvB,EAAM/W,GACdwO,EAAQ83B,EAAK93B,EACba,EAAQi3B,EAAKj3B,KACbgS,EAAQilB,EAAKjlB,MAAQ,aACzBskD,EAASr/B,EAAKllB,UAAY,GAM1B,IAJA,IAAI0qQ,EAAa,GAAOtiR,EAAO9F,EAAU,GAAK8F,EAAO9F,IACjDqoR,EAAaviR,EAAO9F,GAEpBo3J,EAAOzrJ,EAAKmB,MAAM,MACd1P,EAAI,EAAGA,EAAIg6J,EAAK32J,OAAQrD,IAE9B,IADAyK,EAAOy+Q,EAAQ3oQ,EAAMy5I,EAAKh6J,IAAIyK,KACzB3G,EAAI,EAAGA,EAAI2G,EAAKpH,OAAQS,GAAK,EAChCvC,EAASY,KACLsI,EAAK3G,GAAK+gE,GACTp6D,EAAK3G,EAAI,GAAK+gE,EAAQ7kE,EAAI6kE,EAAQ,KAClCn3D,EAAIu9Q,GAAcD,GAI3Bv4H,EAAQtwJ,KAAK8C,KAAK2N,MAAMrR,EAAS8B,OAAO,IACxC+lR,EAAMjnR,KAAKuL,GAGb5O,KAAK05O,WAAW51O,GAAa6vJ,EAC7B3zJ,KAAKsqR,MAAMxmR,GAAawmR,EAI1B,IAAIxmR,EAAU,EAAGA,EAAU,IAAKA,EAAW,CAKzC,IAJA9D,KAAKo2M,YAAYtyM,GAAaqC,KAAK2N,MAAMrR,EAAS8B,OAAO,GAEzDoH,EAAQy+Q,EAAQh/Q,EAAQ65Q,UAAUnhR,GAAYsH,EAAQmb,OAAOziB,GAAY,CAAE0uK,UAAW,WAAY7mK,KAClGo6D,EAAQ36D,EAAQ45Q,UAAUlhR,GACtB1D,EAAE,EAAGA,EAAEuL,EAAKpH,OAAQnE,GAAG,EACzBqC,EAASY,KAAKsI,EAAKvL,GAAG2lE,GAAQp6D,EAAKvL,EAAE,GAAG2lE,EAAO,GAGjD/lE,KAAKuqR,WAAWzmR,GACdqC,KAAK2N,MAAMrR,EAAS8B,OAAO,GAAKvE,KAAKo2M,YAAYtyM,GAOrD,IAHA9D,KAAKkrR,YAAc/kR,KAAK2N,MAAMrR,EAAS8B,OAAO,GAC9CoH,EAAOy+Q,EAAQh/Q,EAAQ85Q,UAAW95Q,EAAQ24C,OAAOp4C,KACjDo6D,EAAQ36D,EAAQggO,UACZhrO,EAAE,EAAGA,EAAEuL,EAAKpH,OAAQnE,GAAG,EACzBqC,EAASY,KAAKsI,EAAKvL,GAAG2lE,GAAQp6D,EAAKvL,EAAE,GAAG2lE,EAAO,GAEjD/lE,KAAKirR,WAAa9kR,KAAK2N,MAAMrR,EAAS8B,OAAO,GAAKvE,KAAKkrR,YAGvDlrR,KAAK0gK,IAAI30J,OAAOtJ,IAGlB2B,EAAMoK,QAAU,WACdxO,KAAK0gK,IAAIlyJ,UACTxO,KAAKqK,OAAOmE,Y,qBChQd,SAAS49Q,EAAO9rQ,EAAKrd,EAAGC,GAIpB,OAHAod,EAAI,GAAKrd,EAAE,GAAKC,EAAE,GAClBod,EAAI,GAAKrd,EAAE,GAAKC,EAAE,GAClBod,EAAI,GAAKrd,EAAE,GAAKC,EAAE,GACXod,EAdX1gB,EAAOD,QAAUysR,G,kCCWjB,IAAI78Q,EAAY,EAAQ,QACpB2iL,EAAa,EAAQ,QAoBzBtyL,EAAOD,QAAU,SAAuBoP,EAAI0X,EAAI0rK,EAASC,GACrD3rK,EAAKA,GAAM,GAEX,IAAIwiG,EAAqB,QAAZkpE,GAAmC,WAAZ1rK,EAAG/S,KACnCq1G,EAAuB,WAAZopE,GAAsC,QAAZ1rK,EAAG/S,KAE5C,GAAKu1G,GAASF,EAOd,IALA,IAEI5sD,EACAk2H,EAHAg6F,EAASt9Q,EAAG+mB,YAAYu2P,OACxBzoQ,EAAW6C,EAAGyW,IAAIzN,OAAO,GAIrBrvB,EAAI,EAAGA,EAAIisR,EAAO9nR,OAAQnE,IAI9B,GAHA+7D,EAAQkwN,EAAOjsR,GACfiyL,EAAa,UAAYjyL,EAAI,KAE1B+7D,EAAMv4C,EAAW,SAAW6C,EAAGyW,IAAK,CACnC,IAAIovP,EAAanwN,EAAMv4C,GACnB2oQ,EAAcpwN,EAAM,OAASv4C,GAC7B4oQ,EAAS,KACTC,EAAU,KAEd,GAAGxjK,EAAO,CACNujK,EAASt6F,EAAWo6F,EAAY7lQ,EAAGrO,OAKnC,IAAIohB,EAAK+yP,EAAcpmR,KAAK85B,IAAI,GAAIusP,GAAU,EAC9CC,EAAU,EAAItmR,KAAKomB,IAAIiN,EAAKrzB,KAAKuD,KAAK,EAAI8vB,EAAKA,IAAOrzB,KAAKmzC,UAE3DkzO,EAASrmR,KAAK85B,IAAI,GAAIqsP,GACtBG,EAAUD,GAAUrmR,KAAK85B,IAAI,GAAIssP,EAAc,GAAKpmR,KAAK85B,IAAI,IAAKssP,EAAc,IAIhFh9Q,EAAUi9Q,GAGHj9Q,EAAUk9Q,KAAUA,EAAU,OAFrCD,EAAS,KACTC,EAAU,MAGdr6F,EAAQC,EAAazuK,EAAU4oQ,GAC/Bp6F,EAAQC,EAAa,OAASzuK,EAAU6oQ,M,oCCzEpD7sR,EAAOD,QAAU+sR,EAEjB,IAAIC,EAAgB,EAAQ,QACxB3yD,EAAgB,EAAQ,QACxB4yD,EAAgB,EAAQ,QACxBhzD,EAAgB,EAAQ,QACxBizD,EAAgB,EAAQ,QAE5B,SAASC,EAAKl+Q,EAAE2F,EAAElF,GAChB,OAAOlJ,KAAKuD,KAAKvD,KAAK85B,IAAIrxB,EAAE,GAAKzI,KAAK85B,IAAI1rB,EAAE,GAAKpO,KAAK85B,IAAI5wB,EAAE,IAG9D,SAAS09Q,EAAK7uQ,EAAEtP,EAAE2F,EAAElF,GAClB,OAAOlJ,KAAKuD,KAAKvD,KAAK85B,IAAI/hB,EAAE,GAAK/X,KAAK85B,IAAIrxB,EAAE,GAAKzI,KAAK85B,IAAI1rB,EAAE,GAAKpO,KAAK85B,IAAI5wB,EAAE,IAG9E,SAAS29Q,EAAW1sQ,EAAKrd,GACvB,IAAIwjB,EAAKxjB,EAAE,GACP+nG,EAAK/nG,EAAE,GACP8sH,EAAK9sH,EAAE,GACP64O,EAAK74O,EAAE,GACPgqR,EAAKF,EAAKtmQ,EAAIukF,EAAI+kB,EAAI+rH,GACvBmxC,EAAK,MACN3sQ,EAAI,GAAKmG,EAAGwmQ,EACZ3sQ,EAAI,GAAK0qF,EAAGiiL,EACZ3sQ,EAAI,GAAKyvG,EAAGk9J,EACZ3sQ,EAAI,GAAKw7N,EAAGmxC,IAEZ3sQ,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAK,EAC3BA,EAAI,GAAK,GAIb,SAAS4sQ,EAAsBC,EAAUC,EAAYC,GACnDrtR,KAAKwoE,OAAYmkN,EAAa,CAACU,IAC/BrtR,KAAKkhC,OAAYyrP,EAAaS,GAC9BptR,KAAK60O,SAAY83C,EAAaQ,GAE9BntR,KAAK66N,eAAmB76N,KAAKwoE,OAAO6N,MAAM,GAC1Cr2E,KAAK46N,eAAmB56N,KAAKkhC,OAAOm1C,MAAM,GAC1Cr2E,KAAKstR,iBAAmBttR,KAAK60O,SAASx+J,MAAM,GAC5Cr2E,KAAK26N,WAAmB,CAAC,GAAI,EAAE,GAC/B36N,KAAK06N,YAAmB,CAAC,GAAI,EAAE,GAC/B16N,KAAKw6N,eAAmB,CAAC,GAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAEzDx6N,KAAKg7N,aAAa,GAGpB,IAAI52N,EAAQ8oR,EAAsBlrR,UAgUlC,SAAS0qR,EAAsBthR,GAC7BA,EAAUA,GAAW,GACrB,IAAI81B,EAAW91B,EAAQ81B,QAAY,CAAC,EAAE,EAAE,GACpC2zM,EAAWzpO,EAAQypO,UAAY,CAAC,EAAE,EAAE,EAAE,GACtCrsK,EAAWp9D,EAAQo9D,QAAY,EAEnCtnC,EAAS,GAAGx8B,MAAMnE,KAAK2gC,EAAQ,EAAG,GAClC2zM,EAAW,GAAGnwO,MAAMnE,KAAKs0O,EAAU,EAAG,GACtCm4C,EAAWn4C,EAAUA,GAErB,IAAIhrO,EAAS,IAAIqjR,EACfr4C,EACA3zM,EACA/6B,KAAKomB,IAAIi8C,IAQX,OANA3+D,EAAOiyN,kBAAkB1wN,EAAQg2B,QAASh2B,EAAQi2B,UAE/C,QAASj2B,GAAW,OAAQA,IAC7BvB,EAAOmwN,OAAO,EAAG5uN,EAAQ61B,IAAK71B,EAAQ81B,OAAQ91B,EAAQ+1B,IAGjDt3B,EAnVTzF,EAAMm3N,MAAQ,WACZ,OAAOp1N,KAAKqC,IACVxI,KAAKwoE,OAAO+yJ,QACZv7N,KAAKkhC,OAAOq6L,QACZv7N,KAAK60O,SAAStZ,UAGlBn3N,EAAM42N,aAAe,SAAS15N,GAC5BtB,KAAKwoE,OAAO6N,MAAM/0E,GAClBtB,KAAKkhC,OAAOm1C,MAAM/0E,GAClBtB,KAAK60O,SAASx+J,MAAM/0E,GAEpB,IAAIisR,EAAOvtR,KAAKstR,iBAChBN,EAAWO,EAAMA,GAEjB,IAAIryD,EAAMl7N,KAAKw6N,eACfoyD,EAAa1xD,EAAKqyD,GAElB,IAAIrsP,EAASlhC,KAAK46N,eACd35L,EAASjhC,KAAK06N,YACdv5L,EAASnhC,KAAK26N,WACdnyJ,EAASriE,KAAK6uD,IAAIh1D,KAAK66N,eAAe,IAE1C55L,EAAI,GAAKC,EAAO,GAAKsnC,EAAS0yJ,EAAI,GAClCj6L,EAAI,GAAKC,EAAO,GAAKsnC,EAAS0yJ,EAAI,GAClCj6L,EAAI,GAAKC,EAAO,GAAKsnC,EAAS0yJ,EAAI,IAClC/5L,EAAG,GAAK+5L,EAAI,GACZ/5L,EAAG,GAAK+5L,EAAI,GACZ/5L,EAAG,GAAK+5L,EAAI,GAEZ,IAAI,IAAI96N,EAAE,EAAGA,EAAE,IAAKA,EAAG,CAErB,IADA,IAAIotR,EAAK,EACDxoR,EAAE,EAAGA,EAAE,IAAKA,EAClBwoR,GAAMtyD,EAAI96N,EAAE,EAAE4E,GAAKi8B,EAAIj8B,GAEzBk2N,EAAI,GAAG96N,IAAMotR,IAIjBppR,EAAMqpR,UAAY,SAASnsR,EAAGuI,GAC5B7J,KAAKg7N,aAAa15N,GAClB,IAAId,EAAIR,KAAKw6N,eACb,GAAG3wN,EAAQ,CACT,IAAI,IAAIzJ,EAAE,EAAGA,EAAE,KAAMA,EACnByJ,EAAOzJ,GAAKI,EAAEJ,GAEhB,OAAOyJ,EAET,OAAOrJ,GAGT4D,EAAMk3N,KAAO,SAASh6N,GACpBtB,KAAKkhC,OAAOo6L,KAAKh6N,GACjBtB,KAAKwoE,OAAO8yJ,KAAKh6N,GACjBtB,KAAK60O,SAASvZ,KAAKh6N,IAGrB8C,EAAMi0F,MAAQ,SAAS/2F,GACrBtB,KAAKkhC,OAAOm3D,MAAM/2F,GAClBtB,KAAKwoE,OAAO6vB,MAAM/2F,GAClBtB,KAAK60O,SAASx8I,MAAM/2F,IAGtB8C,EAAMwhG,IAAM,SAAStkG,EAAGk4B,EAAIhP,EAAIoxM,GAC9BpiM,EAAKA,GAAM,EACXhP,EAAKA,GAAM,EACXoxM,EAAKA,GAAM,EAEX57N,KAAKg7N,aAAa15N,GAClB,IAAI45N,EAAMl7N,KAAKw6N,eAEXpmJ,EAAK8mJ,EAAI,GACT7mJ,EAAK6mJ,EAAI,GACTwyD,EAAKxyD,EAAI,GACTyyD,EAAKb,EAAK14M,EAAIC,EAAIq5M,GACtBt5M,GAAMu5M,EACNt5M,GAAMs5M,EACND,GAAMC,EAEN,IAAIl6M,EAAKynJ,EAAI,GACTxnJ,EAAKwnJ,EAAI,GACT0yD,EAAK1yD,EAAI,GACT2yD,EAAKp6M,EAAKW,EAAKV,EAAKW,EAAKu5M,EAAKF,EAClCj6M,GAAMW,EAAKy5M,EACXn6M,GAAMW,EAAKw5M,EACXD,GAAMF,EAAKG,EACX,IAAIvc,EAAKwb,EAAKr5M,EAAIC,EAAIk6M,GACtBn6M,GAAM69L,EACN59L,GAAM49L,EACNsc,GAAMtc,EAEN,IAAI3jM,EAAKutJ,EAAI,GACTttJ,EAAKstJ,EAAI,GACT4yD,EAAK5yD,EAAI,IACT6yD,EAAKpgN,EAAKyG,EAAKxG,EAAKyG,EAAKy5M,EAAKJ,EAC9BM,EAAKrgN,EAAK8F,EAAK7F,EAAK8F,EAAKo6M,EAAKF,EAClCjgN,GAAMogN,EAAK35M,EAAK45M,EAAKv6M,EACrB7F,GAAMmgN,EAAK15M,EAAK25M,EAAKt6M,EACrBo6M,GAAMC,EAAKL,EAAKM,EAAKJ,EACrB,IAAIK,EAAKnB,EAAKn/M,EAAIC,EAAIkgN,GACtBngN,GAAMsgN,EACNrgN,GAAMqgN,EACNH,GAAMG,EAEN,IAAI3kN,EAAKmK,EAAKj6C,EAAK46C,EAAK5pD,EACpB++C,EAAKmK,EAAKl6C,EAAK66C,EAAK7pD,EACpBgrF,EAAKo4K,EAAKp0P,EAAKk0P,EAAKljQ,EAExBxqB,KAAKkhC,OAAOzsB,KAAKnT,EAAGgoE,EAAIC,EAAIisC,GAG5B,IAAIhtC,EAASriE,KAAK6uD,IAAIh1D,KAAK66N,eAAe,IAC1CryJ,EAASriE,KAAKqC,IAAI,KAAMggE,EAASozJ,GACjC57N,KAAKwoE,OAAOn6D,IAAI/M,EAAG6E,KAAKomB,IAAIi8C,KAG9BpkE,EAAMsQ,OAAS,SAASpT,EAAGk4B,EAAIhP,EAAIoxM,GACjC57N,KAAKg7N,aAAa15N,GAElBk4B,EAAKA,GAAI,EACThP,EAAKA,GAAI,EAET,IAAI0wM,EAAMl7N,KAAKw6N,eAEX/mJ,EAAKynJ,EAAI,GACTxnJ,EAAKwnJ,EAAI,GACT0yD,EAAK1yD,EAAI,GAET9mJ,EAAK8mJ,EAAI,GACT7mJ,EAAK6mJ,EAAI,GACTwyD,EAAKxyD,EAAI,GAETvtJ,EAAKutJ,EAAI,GACTttJ,EAAKstJ,EAAI,GACT4yD,EAAK5yD,EAAI,IAET/mE,EAAK36H,EAAKi6C,EAAKjpD,EAAK4pD,EACpBggF,EAAK56H,EAAKk6C,EAAKlpD,EAAK6pD,EACpBggF,EAAK76H,EAAKo0P,EAAKpjQ,EAAKkjQ,EAEpBztH,IAAOryF,EAAKymF,EAAKy5H,EAAK15H,GACtB8L,IAAO4tH,EAAK35H,EAAKxmF,EAAK0mF,GACtB8L,IAAOxyF,EAAKymF,EAAKxmF,EAAKumF,GACtB61E,EAAK7jO,KAAKuD,KAAKvD,KAAKqC,IAAI,EAAK,EAAMrC,KAAK85B,IAAIggI,EAAG,GAAK95J,KAAK85B,IAAIigI,EAAG,GAAK/5J,KAAK85B,IAAIkgI,EAAG,KACjFha,EAAK4mI,EAAK9sH,EAAIC,EAAIC,EAAI6pE,GACvB7jF,EAAK,MACN8Z,GAAM9Z,EACN+Z,GAAM/Z,EACNga,GAAMha,EACN6jF,GAAM7jF,IAEN8Z,EAAKC,EAAKC,EAAK,EACf6pE,EAAK,GAGP,IAAI6K,EAAW70O,KAAKstR,iBAChB7mQ,EAAKouN,EAAS,GACd7pI,EAAK6pI,EAAS,GACd9kH,EAAK8kH,EAAS,GACdiH,EAAKjH,EAAS,GAEdrgK,EAAK/tD,EAAGujN,EAAK8R,EAAG77E,EAAKj1D,EAAGm1D,EAAKpwC,EAAGmwC,EAChCzrF,EAAKu2B,EAAGg/H,EAAK8R,EAAG57E,EAAKnwC,EAAGkwC,EAAKx5I,EAAG05I,EAChC9M,EAAKtjC,EAAGi6G,EAAK8R,EAAG37E,EAAK15I,EAAGy5I,EAAKl1D,EAAGi1D,EAChC7xC,EAAK0tH,EAAG9R,EAAKvjN,EAAGw5I,EAAKj1D,EAAGk1D,EAAKnwC,EAAGowC,EAGpC,GAAGy7D,EAAI,CACL37D,EAAKtyF,EACLuyF,EAAKtyF,EACLuyF,EAAK2tH,EACL,IAAI3rR,EAAIgE,KAAKorD,IAAIqqK,GAAMkxD,EAAK7sH,EAAIC,EAAIC,GACpCF,GAAM99J,EACN+9J,GAAM/9J,EACNg+J,GAAMh+J,EACN6nO,EAAK7jO,KAAKmrD,IAAI93B,GACdg7C,EAAKA,EAAGw1J,EAAK57G,EAAG6xC,EAAKxrF,EAAG0rF,EAAK9M,EAAG6M,EAChCzrF,EAAKA,EAAGu1J,EAAK57G,EAAG8xC,EAAK7M,EAAG4M,EAAKzrF,EAAG2rF,EAChC9M,EAAKA,EAAG22E,EAAK57G,EAAG+xC,EAAK3rF,EAAG0rF,EAAKzrF,EAAGwrF,EAChC7xC,EAAKA,EAAG47G,EAAKx1J,EAAGyrF,EAAKxrF,EAAGyrF,EAAK7M,EAAG8M,EAGlC,IAAIvX,EAAKmkI,EAAKv4M,EAAIC,EAAI4+E,EAAIjlC,GACvBw6B,EAAK,MACNp0E,GAAMo0E,EACNn0E,GAAMm0E,EACNyK,GAAMzK,EACNx6B,GAAMw6B,IAENp0E,EAAKC,EAAK4+E,EAAK,EACfjlC,EAAK,GAGPpuH,KAAK60O,SAASxmO,IAAI/M,EAAGkzE,EAAIC,EAAI4+E,EAAIjlC,IAGnChqH,EAAM41N,OAAS,SAAS14N,EAAG2/B,EAAKC,EAAQC,GACtCnhC,KAAKg7N,aAAa15N,GAElB4/B,EAASA,GAAUlhC,KAAK46N,eACxB35L,EAASA,GAAUjhC,KAAK06N,YACxBv5L,EAASA,GAAUnhC,KAAK26N,WAExB,IAAIO,EAAMl7N,KAAKw6N,eACfR,EAAOkB,EAAKj6L,EAAKC,EAAQC,GAEzB,IAAI0zM,EAAW70O,KAAKstR,iBACpBT,EAAch4C,EACZ3Z,EAAI,GAAIA,EAAI,GAAIA,EAAI,GACpBA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GACpBA,EAAI,GAAIA,EAAI,GAAIA,EAAI,KACtB8xD,EAAWn4C,EAAUA,GACrB70O,KAAK60O,SAASxmO,IAAI/M,EAAGuzO,EAAS,GAAIA,EAAS,GAAIA,EAAS,GAAIA,EAAS,IAGrE,IADA,IAAIo5C,EAAK,EACD7tR,EAAE,EAAGA,EAAE,IAAKA,EAClB6tR,GAAM9nR,KAAK85B,IAAIiB,EAAO9gC,GAAK6gC,EAAI7gC,GAAI,GAErCJ,KAAKwoE,OAAOn6D,IAAI/M,EAAG,GAAM6E,KAAKomB,IAAIpmB,KAAKqC,IAAIylR,EAAI,QAE/CjuR,KAAKkhC,OAAO7yB,IAAI/M,EAAG4/B,EAAO,GAAIA,EAAO,GAAIA,EAAO,KAGlD98B,EAAM61N,UAAY,SAAS34N,EAAGk4B,EAAIhP,EAAIoxM,GACpC57N,KAAKkhC,OAAOzsB,KAAKnT,EACfk4B,GAAI,EACJhP,GAAI,EACJoxM,GAAI,IAGRx3N,EAAMo3N,UAAY,SAASl6N,EAAG80B,GAE5B,IAAIy+M,EAAW70O,KAAKstR,iBACpBT,EAAch4C,EACZz+M,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAC7BA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAC7BA,EAAO,GAAIA,EAAO,GAAIA,EAAO,KAC/B42P,EAAWn4C,EAAUA,GACrB70O,KAAK60O,SAASxmO,IAAI/M,EAAGuzO,EAAS,GAAIA,EAAS,GAAIA,EAAS,GAAIA,EAAS,IAErE,IAAI3Z,EAAMl7N,KAAKw6N,eACfZ,EAASsB,EAAK9kM,GACd,IAAIlY,EAAIg9M,EAAI,IACZ,GAAG/0N,KAAK+R,IAAIgG,GAAK,KAAM,CACrB,IAAIs2D,EAAK0mJ,EAAI,IAAIh9M,EACbu2D,EAAKymJ,EAAI,IAAIh9M,EACbm1I,EAAK6nE,EAAI,IAAIh9M,EAEjBle,KAAKg7N,aAAa15N,GAClB,IAAIJ,EAAIiF,KAAK6uD,IAAIh1D,KAAK66N,eAAe,IACrC76N,KAAKkhC,OAAO7yB,IAAI/M,EAAGkzE,EAAG0mJ,EAAI,GAAGh6N,EAAGuzE,EAAGymJ,EAAI,GAAGh6N,EAAGmyJ,EAAG6nE,EAAI,IAAIh6N,GACxDlB,KAAKwoE,OAAO8yJ,KAAKh6N,QAEjBtB,KAAKkhC,OAAOo6L,KAAKh6N,GACjBtB,KAAKwoE,OAAO8yJ,KAAKh6N,IAIrB8C,EAAMy3N,YAAc,SAASv6N,EAAGZ,GAC3BA,EAAI,GACLV,KAAKwoE,OAAOn6D,IAAI/M,EAAG6E,KAAKomB,IAAI7rB,KAIhC0D,EAAM03N,kBAAoB,SAAS/jN,EAAID,GAEnCC,EADCA,EAAK,EACD5R,KAAKomB,IAAIxU,IAERpN,IAGNmN,EADCA,EAAK,EACD3R,KAAKomB,IAAIzU,GAETnN,IAEPmN,EAAK3R,KAAKqC,IAAIsP,EAAIC,GAClB/X,KAAKwoE,OAAO5+D,OAAO,GAAG,GAAKmO,EAC3B/X,KAAKwoE,OAAO5+D,OAAO,GAAG,GAAKkO,GAG7B1T,EAAM43N,kBAAoB,SAAS17M,GACjC,IAAI1W,EAAS5J,KAAKwoE,OAAO5+D,OACzB,OAAG0W,GACDA,EAAI,GAAKna,KAAK6uD,IAAIprD,EAAO,GAAG,IAC5B0W,EAAI,GAAKna,KAAK6uD,IAAIprD,EAAO,GAAG,IACrB0W,GAEF,CAAEna,KAAK6uD,IAAIprD,EAAO,GAAG,IAAKzD,KAAK6uD,IAAIprD,EAAO,GAAG,MAGtDxF,EAAMi9L,OAAS,WAEb,OADArhM,KAAKg7N,aAAah7N,KAAKu7N,SAChB,CACLr6L,OAAUlhC,KAAK46N,eAAel2N,QAC9BmwO,SAAU70O,KAAKstR,iBAAiB5oR,QAChC+E,SAAUtD,KAAKomB,IAAIvsB,KAAK66N,eAAe,IACvCz5L,QAAUphC,KAAKwoE,OAAO5+D,OAAO,GAAG,GAChCy3B,QAAUrhC,KAAKwoE,OAAO5+D,OAAO,GAAG,KAIpCxF,EAAM8pR,SAAW,SAAS9iR,GACxB,IAAI9J,EAAItB,KAAKu7N,QACT96N,EAAI2K,EAAQ81B,OACbzgC,GACDT,KAAKkhC,OAAO7yB,IAAI/M,EAAGb,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAEnC,IAAIS,EAAIkK,EAAQypO,SACb3zO,GACDlB,KAAK60O,SAASxmO,IAAI/M,EAAGJ,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAE3C,IAAIR,EAAI0K,EAAQ3B,SACb/I,GAAKA,EAAI,GACVV,KAAKwoE,OAAOn6D,IAAI/M,EAAG6E,KAAKomB,IAAI7rB,IAE9BV,KAAK87N,kBAAkB1wN,EAAQg2B,QAASh2B,EAAQi2B,W,mBCrWlD,SAAS8sP,EAAe7tQ,EAAKrd,EAAGzC,GAC9B,IAAIoO,EAAI3L,EAAE,GAAIsR,EAAItR,EAAE,GAAIoM,EAAIpM,EAAE,GAAIib,EAAIjb,EAAE,GAKxC,OAJAqd,EAAI,GAAK9f,EAAE,GAAKoO,EAAIpO,EAAE,GAAK+T,EAAI/T,EAAE,GAAK6O,EAAI7O,EAAE,IAAM0d,EAClDoC,EAAI,GAAK9f,EAAE,GAAKoO,EAAIpO,EAAE,GAAK+T,EAAI/T,EAAE,GAAK6O,EAAI7O,EAAE,IAAM0d,EAClDoC,EAAI,GAAK9f,EAAE,GAAKoO,EAAIpO,EAAE,GAAK+T,EAAI/T,EAAE,IAAM6O,EAAI7O,EAAE,IAAM0d,EACnDoC,EAAI,GAAK9f,EAAE,GAAKoO,EAAIpO,EAAE,GAAK+T,EAAI/T,EAAE,IAAM6O,EAAI7O,EAAE,IAAM0d,EAC5CoC,EAhBT1gB,EAAOD,QAAUwuR,G,qBCAjB,IAAI7kR,EAAe,EAAQ,QACvBozL,EAAU,EAAQ,QAElBuzD,EAAUvzD,EAAQ,CAAC,8mCACnBwzD,EAAUxzD,EAAQ,CAAC,oxEACnBU,EAAiBV,EAAQ,CAAC,6+BAC1B0xF,EAAU1xF,EAAQ,CAAC,urCAEvB/8L,EAAQ2J,aAAe,SAAUc,GAC/B,IAAIC,EAASf,EAAac,EAAI6lP,EAASC,EAAS,KAAM,CACpD,CAACvvP,KAAM,KAAM+S,KAAM,QACnB,CAAC/S,KAAM,IAAK+S,KAAM,QAClB,CAAC/S,KAAM,SAAU+S,KAAM,UAKzB,OAHArJ,EAAOiB,WAAW2uP,GAAG1uP,SAAW,EAChClB,EAAOiB,WAAWw9B,EAAEv9B,SAAW,EAC/BlB,EAAOiB,WAAWm/K,OAAOl/K,SAAW,EAC7BlB,GAET1K,EAAQ4J,iBAAmB,SAAUa,GACnC,IAAIC,EAASf,EAAac,EAAI6lP,EAASm+B,EAAS,KAAM,CACpD,CAACztR,KAAM,KAAM+S,KAAM,QACnB,CAAC/S,KAAM,IAAK+S,KAAM,QAClB,CAAC/S,KAAM,SAAU+S,KAAM,UAKzB,OAHArJ,EAAOiB,WAAW2uP,GAAG1uP,SAAW,EAChClB,EAAOiB,WAAWw9B,EAAEv9B,SAAW,EAC/BlB,EAAOiB,WAAWm/K,OAAOl/K,SAAW,EAC7BlB,GAET1K,EAAQ06P,oBAAsB,SAAUjwP,GACtC,IAAIC,EAASf,EAAac,EAAIgzL,EAAgB8yD,EAAS,KAAM,CAC3D,CAACvvP,KAAM,KAAM+S,KAAM,QACnB,CAAC/S,KAAM,IAAK+S,KAAM,WAIpB,OAFArJ,EAAOiB,WAAW2uP,GAAG1uP,SAAW,EAChClB,EAAOiB,WAAWw9B,EAAEv9B,SAAW,EACxBlB,GAET1K,EAAQ0uR,wBAA0B,SAAUjkR,GAC1C,IAAIC,EAASf,EAAac,EAAIgzL,EAAgBgxF,EAAS,KAAM,CAC3D,CAACztR,KAAM,KAAM+S,KAAM,QACnB,CAAC/S,KAAM,IAAK+S,KAAM,WAIpB,OAFArJ,EAAOiB,WAAW2uP,GAAG1uP,SAAW,EAChClB,EAAOiB,WAAWw9B,EAAEv9B,SAAW,EACxBlB,I,oCC5CT,IAAIikR,EAAa,EAAQ,OAAR,GAEjB1uR,EAAOD,QAAU,SAAUozB,GAAO,OAAOA,IAAQu7P,GAAsB,OAARv7P,I,oCCF/D,IAAIsmG,EAAU,EAAQ,QAElB2R,EAAY,CACd3qG,KAAM,GACN8K,KAAM,GACN8/F,SAAU,GACVC,UAAW,IAGb,SAASqjJ,EAAM3/Q,GACb,IAAIA,EACF,OAAOo8H,EAET,IAAI,IAAI5qI,EAAE,EAAGA,EAAEwO,EAAEu8B,KAAK5mC,SAAUnE,EAAG,CACjC,IAAI6C,EAAI2L,EAAEu8B,KAAK/qC,GAEbwO,EAAEu8B,KAAK/qC,GADA,IAANA,EACW,CAACO,KAAMsC,EAAGqoI,QAAO,EAAMC,SAAU38H,EAAE28H,OAAQ7gE,MAAM97D,EAAE87D,OAAO,GAE1D,CAAC/pE,KAAMsC,EAAGqoI,QAAO,EAAOC,QAAO,EAAM7gE,MAAO,GAS5D,OANI97D,EAAEq8H,WACJr8H,EAAEq8H,SAAW,IAEXr8H,EAAEs8H,YACJt8H,EAAEs8H,UAAY,IAETt8H,EAGT,SAAS4/Q,EAASn1D,GAChB,OAAOhgG,EAAQ,CACbluF,KAAUkuL,EAAUluL,KACpBigG,IAAUmjJ,EAAMl1D,EAAUjuF,KAC1B/qG,KAAUkuP,EAAMl1D,EAAUh5L,MAC1BgrG,KAAUkjJ,EAAMl1D,EAAU/1N,MAC1B2nC,SAAUouL,EAAUpuL,WAIxB,SAASwjP,EAAOp1D,GAEd,IADA,IAAIluL,EAAO,GACH/qC,EAAE,EAAGA,EAAEi5N,EAAUluL,KAAK5mC,SAAUnE,EACtC+qC,EAAK9nC,KAAK,IAAIjD,GAEhB,IAAI2T,EAAU,IAAIxQ,SAAS,IAAK,CAC9B,mBAAoB81N,EAAUpuL,SAAU,eAAgBE,EAAK3nC,KAAK,KAAM,QAAS2nC,EAAK3nC,KAAK,KAAM,gBACjGA,KAAK,KACP,OAAOuQ,EAAQy6Q,EAASn1D,IAG1B,IAAIq1D,EAAa,CACfryQ,IAAM,IACNsQ,IAAM,IACN84C,IAAM,IACNjxC,IAAM,IACNkpB,IAAM,IACNixO,KAAM,IACNC,IAAM,IACNC,KAAM,IACNC,OAAQ,KACRC,OAAQ,KACRC,QAAS,QAEV,WACC,IAAI,IAAI5iR,KAAMsiR,EAAY,CACxB,IAAIv4K,EAAKu4K,EAAWtiR,GACpBzM,EAAQyM,GAAMqiR,EAAO,CACnBtjP,KAAM,CAAC,QAAQ,QAAQ,SACvB9K,KAAM,CAAC8K,KAAK,CAAC,IAAI,IAAI,KACd9K,KAAM,MAAM81E,EAAG,KACtBlrE,SAAU7+B,IAEZzM,EAAQyM,EAAG,MAAQqiR,EAAO,CACxBtjP,KAAM,CAAC,QAAQ,SACf9K,KAAM,CAAC8K,KAAK,CAAC,IAAI,KACV9K,KAAK,IAAI81E,EAAG,MACnBo1B,QAAQ,EACRtgG,SAAU7+B,EAAG,OAEfzM,EAAQyM,EAAG,KAAOqiR,EAAO,CACvBtjP,KAAM,CAAC,QAAS,QAAS,UACzB9K,KAAM,CAAC8K,KAAK,CAAC,IAAI,IAAI,KACd9K,KAAK,MAAM81E,EAAG,KACrBlrE,SAAU7+B,EAAG,MAEfzM,EAAQyM,EAAG,OAASqiR,EAAO,CACzBtjP,KAAM,CAAC,QAAQ,UACf9K,KAAM,CAAC8K,KAAK,CAAC,IAAI,KACV9K,KAAK,IAAI81E,EAAG,MACnBo1B,QAAQ,EACRtgG,SAAU7+B,EAAG,UA3BlB,GAgCD,IAAI6iR,EAAY,CACdC,IAAK,IACLC,KAAM,IACNr+M,IAAK,IACLs+M,MAAO,SAER,WACC,IAAI,IAAIhjR,KAAM6iR,EAAW,CACvB,IAAI94K,EAAK84K,EAAU7iR,GACnBzM,EAAQyM,GAAMqiR,EAAO,CACnBtjP,KAAM,CAAC,QAAS,SAChB9K,KAAM,CAAC8K,KAAK,CAAC,IAAI,KACV9K,KAAK,KAAK81E,EAAG,KACpBlrE,SAAU7+B,IAEZzM,EAAQyM,EAAG,MAAQqiR,EAAO,CACxBtjP,KAAM,CAAC,SACP9K,KAAM,CAAC8K,KAAK,CAAC,KACN9K,KAAK,KAAK81E,EAAG,KACpBo1B,QAAQ,EACR7gE,MAAO,EACPz/B,SAAU7+B,EAAG,SAflB,GAoBD,IAAIijR,EAAa,CACfvsF,IAAK,KACLJ,GAAI,KACJ7iB,GAAI,MACJyvG,IAAK,MACLvgQ,GAAI,IACJC,GAAI,IACJugQ,IAAK,KACLC,IAAK,OAEN,WACC,IAAI,IAAIpjR,KAAMijR,EAAY,CACxB,IAAIl5K,EAAKk5K,EAAWjjR,GACpBzM,EAAQyM,GAAMqiR,EAAO,CACnBtjP,KAAM,CAAC,QAAQ,QAAQ,SACvB9K,KAAM,CAAC8K,KAAK,CAAC,IAAK,IAAK,KAChB9K,KAAK,MAAM81E,EAAG,KACrBlrE,SAAU7+B,IAEZzM,EAAQyM,EAAG,KAAOqiR,EAAO,CACvBtjP,KAAM,CAAC,QAAQ,QAAQ,UACvB9K,KAAM,CAAC8K,KAAK,CAAC,IAAK,IAAK,KAChB9K,KAAK,MAAM81E,EAAG,KACrBlrE,SAAU7+B,EAAG,MAEfzM,EAAQyM,EAAG,MAAQqiR,EAAO,CACxBtjP,KAAM,CAAC,QAAS,SAChB9K,KAAM,CAAC8K,KAAK,CAAC,IAAK,KACX9K,KAAK,MAAM81E,EAAG,KACrBo1B,QAAO,EACP7gE,MAAM,EACNz/B,SAAU7+B,EAAG,OAEfzM,EAAQyM,EAAG,OAASqiR,EAAO,CACzBtjP,KAAM,CAAC,QAAS,UAChB9K,KAAM,CAAC8K,KAAK,CAAC,IAAI,KACV9K,KAAK,MAAM81E,EAAG,KACrBo1B,QAAO,EACP7gE,MAAM,EACNz/B,SAAU7+B,EAAG,UA7BlB,GAkCD,IAAIqjR,EAAa,CACf,MACA,OACA,OACA,OACA,OACA,MACA,MACA,QACA,MACA,QACA,MACA,OACA,QAED,WACC,IAAI,IAAIrvR,EAAE,EAAGA,EAAEqvR,EAAWlrR,SAAUnE,EAAG,CACrC,IAAI0oC,EAAI2mP,EAAWrvR,GACnBT,EAAQmpC,GAAK2lP,EAAO,CACJtjP,KAAM,CAAC,QAAS,SAChBigG,IAAK,CAACjgG,KAAK,GAAI9K,KAAK,eAAeyI,EAAGmiG,SAAS,CAAC,WAChD5qG,KAAM,CAAC8K,KAAK,CAAC,IAAI,KAAM9K,KAAK,cAAe4qG,SAAS,CAAC,WACrDhgG,SAAUnC,IAE1BnpC,EAAQmpC,EAAE,MAAQ2lP,EAAO,CACPtjP,KAAM,CAAC,SACPigG,IAAK,CAACjgG,KAAK,GAAI9K,KAAK,eAAeyI,EAAGmiG,SAAS,CAAC,WAChD5qG,KAAM,CAAC8K,KAAM,CAAC,KAAM9K,KAAK,cAAe4qG,SAAS,CAAC,WAClDM,QAAQ,EACR7gE,MAAO,EACPz/B,SAAUnC,EAAE,SAfjC,GAoBD,IAAI4mP,EAAY,CACd,MACA,MACA,QACA,QAED,WACC,IAAI,IAAItvR,EAAE,EAAGA,EAAEsvR,EAAUnrR,SAAUnE,EAAG,CACpC,IAAI0oC,EAAG4mP,EAAUtvR,GACjBT,EAAQmpC,GAAK2lP,EAAO,CACNtjP,KAAK,CAAC,QAAS,QAAS,SACxBigG,IAAK,CAACjgG,KAAK,GAAI9K,KAAK,eAAeyI,EAAGmiG,SAAS,CAAC,WAChD5qG,KAAM,CAAC8K,KAAK,CAAC,IAAI,IAAI,KAAM9K,KAAK,gBAAiB4qG,SAAS,CAAC,WAC3DhgG,SAAUnC,IAExBnpC,EAAQmpC,EAAE,KAAO2lP,EAAO,CACVtjP,KAAK,CAAC,QAAS,QAAS,UACxBigG,IAAK,CAACjgG,KAAK,GAAI9K,KAAK,eAAeyI,EAAGmiG,SAAS,CAAC,WAChD5qG,KAAM,CAAC8K,KAAK,CAAC,IAAI,IAAI,KAAM9K,KAAK,gBAAiB4qG,SAAS,CAAC,WAC3DhgG,SAAUnC,EAAE,MAE1BnpC,EAAQmpC,EAAE,MAAQ2lP,EAAO,CAAEtjP,KAAK,CAAC,QAAS,SAC5BigG,IAAK,CAACjgG,KAAK,GAAI9K,KAAK,eAAeyI,EAAGmiG,SAAS,CAAC,WAChD5qG,KAAM,CAAC8K,KAAK,CAAC,IAAI,KAAM9K,KAAK,gBAAiB4qG,SAAS,CAAC,WACvDM,QAAQ,EACR7gE,MAAO,EACPz/B,SAAUnC,EAAE,OAE1BnpC,EAAQmpC,EAAE,OAAS2lP,EAAO,CAAEtjP,KAAK,CAAC,QAAS,UAC7BigG,IAAK,CAACjgG,KAAK,GAAI9K,KAAK,eAAeyI,EAAGmiG,SAAS,CAAC,WAChD5qG,KAAM,CAAC8K,KAAK,CAAC,IAAI,KAAM9K,KAAK,gBAAiB4qG,SAAS,CAAC,WACvDM,QAAO,EACP7gE,MAAM,EACNz/B,SAAUnC,EAAE,UA3B7B,GAgCD,IAAI6mP,EAAe,CACjB,QACA,QAED,WACC,IAAI,IAAIvvR,EAAE,EAAGA,EAAEuvR,EAAaprR,SAAUnE,EAAG,CACvC,IAAI0oC,EAAG6mP,EAAavvR,GACpBT,EAAQmpC,EAAE,MAAQ2lP,EAAO,CACXtjP,KAAK,CAAC,QAAS,QAAS,SACxBigG,IAAK,CAACjgG,KAAK,GAAI9K,KAAK,eAAeyI,EAAGmiG,SAAS,CAAC,WAChD5qG,KAAM,CAAC8K,KAAK,CAAC,IAAI,IAAI,KAAM9K,KAAK,gBAAiB4qG,SAAS,CAAC,WAC3DhgG,SAAUnC,EAAE,OAE1BnpC,EAAQmpC,EAAE,OAAS2lP,EAAO,CACZtjP,KAAK,CAAC,QAAS,QAAS,UACxBigG,IAAK,CAACjgG,KAAK,GAAI9K,KAAK,eAAeyI,EAAGmiG,SAAS,CAAC,WAChD5qG,KAAM,CAAC8K,KAAK,CAAC,IAAI,IAAI,KAAM9K,KAAK,gBAAiB4qG,SAAS,CAAC,WAC3DhgG,SAAUnC,EAAE,QAE1BnpC,EAAQmpC,EAAE,QAAU2lP,EAAO,CAAEtjP,KAAK,CAAC,QAAS,SAC9BigG,IAAK,CAACjgG,KAAK,GAAI9K,KAAK,eAAeyI,EAAGmiG,SAAS,CAAC,WAChD5qG,KAAM,CAAC8K,KAAK,CAAC,IAAI,KAAM9K,KAAK,gBAAiB4qG,SAAS,CAAC,WACvDM,QAAQ,EACR7gE,MAAO,EACPz/B,SAAUnC,EAAE,SAE1BnpC,EAAQmpC,EAAE,SAAW2lP,EAAO,CAAEtjP,KAAK,CAAC,QAAS,UAC/BigG,IAAK,CAACjgG,KAAK,GAAI9K,KAAK,eAAeyI,EAAGmiG,SAAS,CAAC,WAChD5qG,KAAM,CAAC8K,KAAK,CAAC,IAAI,KAAM9K,KAAK,gBAAiB4qG,SAAS,CAAC,WACvDM,QAAO,EACP7gE,MAAM,EACNz/B,SAAUnC,EAAE,YA3B7B,GAgCDnpC,EAAQiwR,IAAMv2J,EAAQ,CACpBluF,KAAK,CAAC,SACNigG,IAAKJ,EACL3qG,KAAM,CAAC8K,KAAK,CAAC,CAACxqC,KAAK,IAAK2qI,QAAO,EAAOC,QAAO,EAAM7gE,MAAM,IAAKrqC,KAAM,qBAAsB6qG,UAAW,GAAID,SAAU,IACnHI,KAAM,CAAClgG,KAAK,GAAI+/F,UAAU,GAAID,SAAS,GAAI5qG,KAAK,gBAChD4K,SAAU,QAGZtrC,EAAQ+zD,IAAM2lE,EAAQ,CACpBluF,KAAK,CAAC,SACNigG,IAAKJ,EACL3qG,KAAM,CAAC8K,KAAK,CAAC,CAACxqC,KAAK,IAAK2qI,QAAO,EAAOC,QAAO,EAAM7gE,MAAM,IAAKrqC,KAAM,uBAAwB6qG,UAAW,GAAID,SAAU,IACrHI,KAAM,CAAClgG,KAAK,GAAI+/F,UAAU,GAAID,SAAS,GAAI5qG,KAAK,eAChD4K,SAAU,QAGZtrC,EAAQ21D,IAAM+jE,EAAQ,CACpBluF,KAAK,CAAC,SACNigG,IAAK,CAACjgG,KAAK,GAAI+/F,UAAU,GAAID,SAAS,CAAC,UAAW5qG,KAAK,YACvDA,KAAM,CAAC8K,KAAK,CAAC,CAACxqC,KAAK,IAAK2qI,QAAO,EAAOC,QAAO,EAAM7gE,MAAM,IAAKrqC,KAAM,YAAa6qG,UAAW,GAAID,SAAU,CAAC,WAC3GI,KAAM,CAAClgG,KAAK,GAAI+/F,UAAU,GAAID,SAAS,CAAC,UAAW5qG,KAAK,iBACxD4K,SAAU,QAGZtrC,EAAQkwR,KAAOx2J,EAAQ,CACrBluF,KAAK,CAAC,SACNigG,IAAK,CAACjgG,KAAK,GAAI+/F,UAAU,GAAID,SAAS,CAAC,UAAW5qG,KAAK,YACvDA,KAAM,CAAC8K,KAAK,CAAC,CAACxqC,KAAK,IAAK2qI,QAAO,EAAOC,QAAO,EAAM7gE,MAAM,IAAKrqC,KAAM,YAAa6qG,UAAW,GAAID,SAAU,CAAC,WAC3GI,KAAM,CAAClgG,KAAK,GAAI+/F,UAAU,GAAID,SAAS,CAAC,UAAW5qG,KAAK,iBACxD4K,SAAU,SAGZtrC,EAAQmwR,aAAez2J,EAAQ,CAC7BluF,KAAK,CAAC,SACNigG,IAAK,CAACjgG,KAAK,GAAI+/F,UAAU,GAAID,SAAS,CAAC,UAAW5qG,KAAK,YACvDA,KAAM,CAAC8K,KAAK,CAAC,CAACxqC,KAAK,IAAK2qI,QAAO,EAAOC,QAAO,EAAM7gE,MAAM,IAAKrqC,KAAM,cAAe6qG,UAAW,GAAID,SAAU,CAAC,WAC7GI,KAAM,CAAClgG,KAAK,GAAI+/F,UAAU,GAAID,SAAS,CAAC,UAAW5qG,KAAK,iBACxD4K,SAAU,iBAGZtrC,EAAQowR,MAAQ12J,EAAQ,CACtBluF,KAAK,CAAC,SACNigG,IAAK,CAACjgG,KAAK,GAAI+/F,UAAU,GAAID,SAAS,CAAC,UAAW5qG,KAAK,YACvDA,KAAM,CAAC8K,KAAK,CAAC,CAACxqC,KAAK,IAAK2qI,QAAO,EAAOC,QAAO,EAAM7gE,MAAM,IAAKrqC,KAAM,cAAe6qG,UAAW,GAAID,SAAU,CAAC,WAC7GI,KAAM,CAAClgG,KAAK,GAAI+/F,UAAU,GAAID,SAAS,CAAC,UAAW5qG,KAAK,4BACxD4K,SAAU,UAIZtrC,EAAQqwR,QAAU32J,EAAQ,CACxBluF,KAAK,CAAC,SACNigG,IAAK,CAACjgG,KAAK,GAAI+/F,UAAU,GAAID,SAAS,CAAC,UAAW5qG,KAAK,YACvDA,KAAM,CAAC8K,KAAK,CAAC,CAACxqC,KAAK,IAAK2qI,QAAO,EAAOC,QAAO,EAAM7gE,MAAM,IAAKrqC,KAAK,sDAAuD6qG,UAAW,GAAID,SAAU,CAAC,WACpJI,KAAM,CAAClgG,KAAK,GAAI+/F,UAAU,GAAID,SAAS,CAAC,UAAW5qG,KAAK,iBACxD4K,SAAU,YAGZtrC,EAAQswR,MAAQ52J,EAAQ,CACtBluF,KAAK,CAAC,SACNigG,IAAK,CAACjgG,KAAK,GAAI+/F,UAAU,GAAID,SAAS,CAAC,UAAW5qG,KAAK,YACvDA,KAAM,CAAC8K,KAAK,CAAC,CAACxqC,KAAK,IAAK2qI,QAAO,EAAOC,QAAO,EAAM7gE,MAAM,IAAKrqC,KAAM,mBAAoB6qG,UAAW,GAAID,SAAU,CAAC,WAClHI,KAAM,CAAClgG,KAAK,GAAI+/F,UAAU,GAAID,SAAS,CAAC,UAAW5qG,KAAK,iBACxD4K,SAAU,UAGZtrC,EAAQ+sB,IAAM2sG,EAAQ,CACpBluF,KAAM,CAAE,SACRigG,IACC,CAAE/qG,KAAM,mBACN8K,KAAM,GACN8/F,SAAU,CAAE,UACZC,UAAW,IACd7qG,KACC,CAAEA,KAAM,mDACN8K,KAAM,CAAC,CAAC,KAAO,kBAAkB,QAAS,EAAM,QAAS,EAAK,MAAQ,IACtE8/F,SAAU,CAAE,UACZC,UAAW,IACdG,KACC,CAAEhrG,KAAM,gBACN8K,KAAM,GACN8/F,SAAU,CAAE,UACZC,UAAW,MAGhBvrI,EAAQuwR,IAAM72J,EAAQ,CACpBluF,KAAM,CAAE,SACRigG,IACC,CAAE/qG,KAAM,kBACN8K,KAAM,GACN8/F,SAAU,CAAE,UACZC,UAAW,IACd7qG,KACC,CAAEA,KAAM,mDACN8K,KAAM,CAAC,CAAC,KAAO,kBAAkB,QAAS,EAAM,QAAS,EAAK,MAAQ,IACtE8/F,SAAU,CAAE,UACZC,UAAW,IACdG,KACC,CAAEhrG,KAAM,gBACN8K,KAAM,GACN8/F,SAAU,CAAE,UACZC,UAAW,MAGhBvrI,EAAQwwR,OAAS92J,EAAQ,CACvBluF,KAAK,CAAC,QAAQ,QAAQ,SACtBigG,IAAI,CACF/qG,KAAK,oDACL8K,KAAK,CACH,CAACxqC,KAAK,kBAAkB2qI,QAAO,EAAMC,QAAO,EAAM7gE,MAAM,GACxD,CAAC/pE,KAAK,kBAAkB2qI,QAAO,EAAMC,QAAO,EAAM7gE,MAAM,GACxD,CAAC/pE,KAAK,kBAAkB2qI,QAAO,EAAMC,QAAO,EAAK7gE,MAAM,IAEzDugE,SAAS,CAAC,SAAS,UACnBC,UAAU,IACZ7qG,KAAK,CACHA,KAAK,iLACL8K,KAAK,CACH,CAACxqC,KAAK,kBAAkB2qI,QAAO,EAAMC,QAAO,EAAK7gE,MAAM,GACvD,CAAC/pE,KAAK,kBAAkB2qI,QAAO,EAAMC,QAAO,EAAK7gE,MAAM,IACzDugE,SAAS,CAAC,SAAS,UACnBC,UAAU,CAAC,gBACbG,KAAK,CACHhrG,KAAK,kBACL8K,KAAK,GACL8/F,SAAS,CAAC,UACVC,UAAU,MAGdvrI,EAAQywR,OAAS/2J,EAAQ,CACvBluF,KAAK,CAAC,QAAQ,QAAQ,SACtBigG,IAAI,CACF/qG,KAAK,qDACL8K,KAAK,CACH,CAACxqC,KAAK,kBAAkB2qI,QAAO,EAAMC,QAAO,EAAM7gE,MAAM,GACxD,CAAC/pE,KAAK,kBAAkB2qI,QAAO,EAAMC,QAAO,EAAM7gE,MAAM,GACxD,CAAC/pE,KAAK,kBAAkB2qI,QAAO,EAAMC,QAAO,EAAK7gE,MAAM,IAEzDugE,SAAS,CAAC,SAAS,UACnBC,UAAU,IACZ7qG,KAAK,CACHA,KAAK,iLACL8K,KAAK,CACH,CAACxqC,KAAK,kBAAkB2qI,QAAO,EAAMC,QAAO,EAAK7gE,MAAM,GACvD,CAAC/pE,KAAK,kBAAkB2qI,QAAO,EAAMC,QAAO,EAAK7gE,MAAM,IACzDugE,SAAS,CAAC,SAAS,UACnBC,UAAU,CAAC,gBACbG,KAAK,CACHhrG,KAAK,kBACL8K,KAAK,GACL8/F,SAAS,CAAC,UACVC,UAAU,MAGdvrI,EAAQsG,OAASwoR,EAAO,CACtBtjP,KAAM,CAAC,SACPigG,IAAK,CAACjgG,KAAK,GAAI9K,KAAK,qBAAsB4qG,SAAS,CAAC,WACpD5qG,KAAM,CAAC8K,KAAM,CAAC,KAAM9K,KAAK,aAAc4qG,SAAS,CAAC,WACjDhgG,SAAU,WAGZtrC,EAAQoZ,OAAS01Q,EAAO,CACtBtjP,KAAK,CAAC,QAAS,SACf9K,KAAM,CAAC8K,KAAK,CAAC,IAAK,KAAM9K,KAAK,OAC7B4K,SAAU,WAEZtrC,EAAQ0wR,QAAU5B,EAAO,CACvBtjP,KAAK,CAAC,QAAS,UACf9K,KAAM,CAAC8K,KAAK,CAAC,IAAK,KAAM9K,KAAK,OAC7B4K,SAAU,YAGZtrC,EAAQi/P,OAASvlI,EAAQ,CACvBluF,KAAK,CAAC,QAAS,SACfigG,IAAKJ,EACL3qG,KAAM,CAAC8K,KAAK,CAAC,CAACxqC,KAAK,IAAK2qI,QAAO,EAAOC,QAAO,EAAM7gE,MAAM,GAC5C,CAAC/pE,KAAK,IAAK2qI,QAAO,EAAOC,QAAO,EAAM7gE,MAAM,IACnDrqC,KAAM,0BACN6qG,UAAW,GACXD,SAAU,IAChBI,KAAM,CAAClgG,KAAK,GAAI+/F,UAAU,GAAID,SAAS,GAAI5qG,KAAK,eAChD4K,SAAU,Y,qBCzcZrrC,EAAOD,QAAU,SAASC,GAoBzB,OAnBKA,EAAO0wR,kBACX1wR,EAAOukL,UAAY,aACnBvkL,EAAO+/G,MAAQ,GAEV//G,EAAO8/F,WAAU9/F,EAAO8/F,SAAW,IACxC5+F,OAAOC,eAAenB,EAAQ,SAAU,CACvCoB,YAAY,EACZC,IAAK,WACJ,OAAOrB,EAAOS,KAGhBS,OAAOC,eAAenB,EAAQ,KAAM,CACnCoB,YAAY,EACZC,IAAK,WACJ,OAAOrB,EAAOQ,KAGhBR,EAAO0wR,gBAAkB,GAEnB1wR,I,kCClBR,IAAI2wR,EAAc,EAAQ,QAE1B3wR,EAAOD,QAAU,SAAU0B,GAC1B,GAAqB,oBAAVA,EAAsB,OAAO,EAExC,IAAKY,eAAe1B,KAAKc,EAAO,UAAW,OAAO,EAElD,IACC,GAA4B,kBAAjBA,EAAMkD,OAAqB,OAAO,EAC7C,GAA0B,oBAAflD,EAAMd,KAAqB,OAAO,EAC7C,GAA2B,oBAAhBc,EAAMsD,MAAsB,OAAO,EAC7C,MAAO0Z,GACR,OAAO,EAGR,OAAQkyQ,EAAYlvR,K,kCCPrBzB,EAAOD,QAAU,CACbiT,WAAY,QACZjS,KAAM,eACNkS,eAAgB,EAAQ,QACxBC,WAAY,CAAC,QAAS,UAAW,aAAc,gBAE/CxH,WAAY,EAAQ,QACpB0H,eAAgB,EAAQ,QAAcA,eACtCouD,SAAU,EAAQ,QAClBC,aAAc,EAAQ,SACtBpuD,KAAM,EAAQ,QACdC,KAAM,EAAQ,QACd/C,MAAO,EAAQ,QAAoBA,MACnCmxD,cAAe,EAAQ,QAAoBA,cAC3CnuD,YAAa,EAAQ,QAAWA,YAChCC,aAAc,EAAQ,QAEtBL,KAAM,K,oCChBVnT,EAAOD,QAAU,CAGb6wR,QAAS,CACLp8Q,KAAM,EACN8sB,OAAQ,GACR7sB,MAAO,EACPse,OAAQ,EACRrI,OAAQ,GACRsI,IAAK,GAGT80M,QAAS,CACLtzN,KAAM,EACN8sB,OAAQ,GACR7sB,MAAO,EACPse,OAAQ,EACRrI,OAAQ,GACRsI,IAAK,GAGT+0M,QAAS,CACLvzN,KAAM,EACN8sB,OAAQ,GACR7sB,MAAO,EACPse,OAAQ,EACRrI,OAAQ,GACRsI,IAAK,GAGThL,aAAc,IASdwqB,UAAW,GAIXD,UAAW,IAEXE,cAAe,CACXj+B,KAAM,QACNC,MAAO,OACPue,IAAK,SACLD,OAAQ,S,oCClDhB,IAAI89P,EAAQ,EAAQ,QAEpB9wR,EAAQgB,KAAO,YAEfhB,EAAQuT,KAAO,SAASnE,EAAIq4C,EAAQjtB,EAAgBC,GAChDq2P,EAAMC,aAAa/wR,EAAQgB,KAAMoO,EAAIq4C,EAAQjtB,EAAgBC,IAGjEz6B,EAAQ47D,MAAQ,SAASC,EAAaC,EAAeC,EAAaC,GAC9D80N,EAAME,cAAchxR,EAAQgB,KAAM66D,EAAaC,EAAeC,EAAaC,K,qBCX/E,SAAS46C,EAAetzG,GACtB,IAAI2L,EAAI3L,EAAE,GACRsR,EAAItR,EAAE,GACNoM,EAAIpM,EAAE,GACNib,EAAIjb,EAAE,GACR,OAAO2L,EAAIA,EAAI2F,EAAIA,EAAIlF,EAAIA,EAAI6O,EAAIA,EAbrCte,EAAOD,QAAU42G,G,oCCWjB,IAAI9yF,EAAa,EAAQ,QAAaA,WAClCmtQ,EAAY,EAAQ,QACpBC,EAAW,EAAQ,QAEvB,SAAS1nM,EAAe2nM,GACpB,MAAO,CACHj4P,KAAM,CACFptB,MAAOgY,EAAW,GAAIotQ,EAASh4P,KAAKptB,MAAO,CAACqY,KAAMgtQ,IAClDnvQ,MAAOkvQ,EAASh4P,KAAKlX,MACrBuC,SAAU,SAGd8oE,UAAW6jM,EAAS7jM,UACpB9oE,SAAU,SAIlBtkB,EAAOD,QAAU,CACbiP,EAAGgiR,EAAUhiR,EACb4kN,KAAMo9D,EAAUp9D,KAChBC,KAAMm9D,EAAUn9D,KAChBC,IAAKk9D,EAAUl9D,IACfC,MAAOi9D,EAAUj9D,MAEjB96L,KAAM,CACFlX,MAAO8B,EAAW,GAAIotQ,EAASh4P,KAAKlX,MAAO,IAG3CuC,SAAU,SAGdgmE,WAAYf,EAAeynM,EAAU1mM,WAAWrxD,KAAKptB,MAAMqY,MAE3DqmE,WAAYhB,EAAeynM,EAAUzmM,WAAWtxD,KAAKptB,MAAMqY,MAE3DrU,KAAMmhR,EAAUnhR,KAChBoV,UAAW+rQ,EAAU/rQ,UACrB8lH,aAAclnH,EAAW,GAAIotQ,EAASlmJ,aAAc,CAAE7mH,KAAM,IAE5D+2C,WAAY+1N,EAAU/1N,a,kCCvC1B,IAAI9jD,EAAM,EAAQ,QAElBnX,EAAOD,QAAU,SAA6B6zC,EAAQ2U,EAAQ81B,EAAWhwD,GACjEA,IAAMA,EAAO,IACjB,IAAI8iQ,EAAav9O,EAAO,uBACxB,GAAGu9O,EAAY,CACX,IAAIC,EAAa7oO,EAAO1mC,KACxB1K,EAAI4+E,WAAWniD,EAAQ,qBAAsB,CACzCryB,OAAQ6vQ,EAAW7vQ,OACnBiD,KAAM4sQ,EAAW5sQ,KACjB3Y,MAAOwyE,IAEXzqC,EAAO,yBAGU,IAAlBvlB,EAAK49I,UAAoBr4H,EAAO,kB,qBC1BvC,IAAIwwG,EAAY,EAAQ,QACpBmqG,EAAyB,EAAQ,QAGjCnG,EAAe,SAAUipC,GAC3B,OAAO,SAAU/oC,EAAOt0M,GACtB,IAGIzd,EAAO+6P,EAHPn0O,EAAI/6B,OAAOmsO,EAAuBjG,IAClCl+O,EAAWg6I,EAAUpwG,GACrBxvB,EAAO24B,EAAEx4C,OAEb,OAAIyF,EAAW,GAAKA,GAAYoa,EAAa6sQ,EAAoB,QAAKjuQ,GACtEmT,EAAQ4mB,EAAEypB,WAAWx8D,GACdmsB,EAAQ,OAAUA,EAAQ,OAAUnsB,EAAW,IAAMoa,IACtD8sQ,EAASn0O,EAAEypB,WAAWx8D,EAAW,IAAM,OAAUknR,EAAS,MAC1DD,EAAoBl0O,EAAEttB,OAAOzlB,GAAYmsB,EACzC86P,EAAoBl0O,EAAEr4C,MAAMsF,EAAUA,EAAW,GAA+BknR,EAAS,OAAlC/6P,EAAQ,OAAU,IAA0B,SAI7Gv2B,EAAOD,QAAU,CAGfwxR,OAAQnpC,GAAa,GAGrBv4N,OAAQu4N,GAAa,K,oCCfvB,IAAIjxO,EAAM,EAAQ,QACd0mD,EAAqB,EAAQ,QAC7BnyD,EAAa,EAAQ,QAEzB1L,EAAOD,QAAU,SAAwBk6D,EAASC,EAAU4D,EAAcvV,GACtE,SAAS3U,EAAOjrB,EAAMzE,GAClB,OAAO/M,EAAIy8B,OAAOqmB,EAASC,EAAUxuD,EAAYid,EAAMzE,GAG3D,IAAI+qE,EAAMr7C,EAAO,QAAU,GACvBw7C,EAAMx7C,EAAO,QAAU,GAEvBtlB,EAAM/nB,KAAKoC,IAAIsmF,EAAItqF,OAAQyqF,EAAIzqF,QAC/B2pB,GAKJ4rC,EAASjiD,QAAUqW,EAEnBslB,EAAO,KACPA,EAAO,UACPA,EAAO,SAEPA,EAAO,QACPA,EAAO,aACPA,EAAO,iBAEPiqB,EAAmB5D,EAASC,EAAU3R,EAAQ3U,EAAQ,CAAC8qB,OAAQ,GAAIlvD,QAAS,OAdxE0qD,EAASvnD,SAAU,I,kCCd3B3S,EAAOD,QAAU,EAAQ,S,kCCRzB,IAAIyxR,EAAYtwR,OAAOY,OAAO,MAAOuE,EAASE,KAAKF,OAEnDrG,EAAOD,QAAU,WAChB,IAAIoI,EACJ,GACCA,EAAM9B,IAAS8W,SAAS,IAAIrY,MAAM,SAC1B0sR,EAAUrpR,IACnB,OAAOA,I,uBCTR,IAAIm8K,EAAW,EAAQ,QACnBn2K,EAAU,EAAQ,QAClBu6H,EAAkB,EAAQ,QAE1BE,EAAUF,EAAgB,WAI9B1oI,EAAOD,QAAU,SAAU0xR,EAAe9sR,GACxC,IAAImoM,EASF,OARE3+L,EAAQsjR,KACV3kF,EAAI2kF,EAAchzP,YAEF,mBAALquK,GAAoBA,IAAMvoM,QAAS4J,EAAQ2+L,EAAE1qM,WAC/CkiL,EAASwoB,KAChBA,EAAIA,EAAElkE,GACI,OAANkkE,IAAYA,OAAI1pL,IAH+C0pL,OAAI1pL,GAKlE,SAAWA,IAAN0pL,EAAkBvoM,MAAQuoM,GAAc,IAAXnoM,EAAe,EAAIA,K,oCCPhE,IAmEI+mH,EAAQC,EAnERj8G,EAAK,EAAQ,QACbC,EAAY,EAAQ,QAEpBsoL,EAAU,EAAQ,QAClBn6I,EAAM,EAAQ,QAASA,IAEvBjM,EAAY,EAAQ,QACpBQ,EAASR,EAAUQ,OACnBL,EAASH,EAAUG,OACnBC,EAAUJ,EAAUI,QACpBC,EAASL,EAAUK,OACnBC,EAASN,EAAUM,OACnBu/O,EAAU7/O,EAAU6/O,QAEpBr3P,EAAW,EAAQ,QAEnBs3P,EAAYjiR,EAAGm9D,KAAKq4B,OAAO0nB,IAE3BglK,EAAkB,mIAElBC,EAAqB,qIAGrBC,GAAS,IAAIx0Q,MAAOoC,cAAgB,GAExC,SAASqyQ,EAAgBh4Q,GACrB,OACIA,GACAsgB,EAAS0+J,mBAAmBn/K,WACR,kBAAbG,GAAsC,cAAbA,EA6LxC,SAASi4Q,EAAK7+P,EAAK9X,GACf,OAAO+G,OAAO+Q,EAAM5sB,KAAK85B,IAAI,GAAIhlB,IAAStI,OAAO,GArLrDhT,EAAQy/C,UAAY,SAASzlC,EAAUk4Q,GACnC,OAAGF,EAAgBh4Q,GACRk4Q,EACH53P,EAASsa,mBAAmB,YAAa,oBAAoB56B,GAC7DsgB,EAASsa,mBAAmB,YAAa,kBAAkB56B,GAExDk4Q,EAAS,aAAe,cAOvClyR,EAAQ+1F,UAAY,SAAS/7E,GACzB,OAAGg4Q,EAAgBh4Q,GACRsgB,EAASsa,mBAAmB,YAAa,aAAa56B,GAEtD,CAAC,aAAc,eAK9Bha,EAAQmyR,SAAW,SAAS5sR,GACxB,MAAoB,kBAANA,GAAwB,OAANA,GAAmC,oBAAdA,EAAE0kO,SA6D3DjqO,EAAQgpH,YAAc,SAASxmH,EAAGwX,GAE9B,GAAGha,EAAQmyR,SAAS3vR,GAAI,CAGpB,IAAI4vR,EAAW5vR,EAAE6vR,oBAAsBlgP,EACnCmgP,GAAe9vR,EAAE+vR,gBAAkB/vR,EAAEilL,cAAgBt1I,GACpD3vC,EAAEgwR,gBAAkBhwR,EAAEklL,cAAgBt1I,GACtC5vC,EAAEiwR,qBAAuBjwR,EAAEkwR,mBAEhC,GAAGJ,EAAa,CACZ,IAAIhsI,EAAO,EAAIn0G,EACfigP,EAAWA,EAAW9rI,EAAO,EAAIvoG,EAAIu0O,EAAcF,EAAW9rI,EAAO,EAAGA,GAG5E,OADA9jJ,EAAI+zC,OAAO/zC,GAAK4vR,EACb5vR,GAAKmpH,GAAUnpH,GAAKopH,EAAeppH,EAC/B8vC,EAGX,GAAgB,kBAAN9vC,GAA+B,kBAANA,EAAgB,OAAO8vC,EAE1D9vC,EAAI6f,OAAO7f,GAEX,IAAImwR,EAAUX,EAAgBh4Q,GAI1B4rE,EAAKpjF,EAAEstB,OAAO,IACf6iQ,GAAmB,MAAP/sM,GAAqB,MAAPA,IACzBpjF,EAAIA,EAAEwQ,OAAO,GACbgH,EAAW,IAGf,IAAI44Q,EAAYD,GAAqC,YAA1B34Q,EAAShH,OAAO,EAAG,GAE1C8V,EAAQtmB,EAAEsmB,MAAM8pQ,EAAYd,EAAqBD,GACrD,IAAI/oQ,EAAO,OAAOwpB,EAClB,IAAI19B,EAAIkU,EAAM,GACVjoB,EAAIioB,EAAM,IAAM,IAChB/nB,EAAIw1C,OAAOztB,EAAM,IAAM,GACvB+pQ,EAAIt8O,OAAOztB,EAAM,IAAM,GACvBq0B,EAAI5G,OAAOztB,EAAM,IAAM,GACvBs0B,EAAI7G,OAAOztB,EAAM,KAAO,GAE5B,GAAG6pQ,EAAS,CAER,GAAgB,IAAb/9Q,EAAEhQ,OAAc,OAAO0tC,EAG1B,IAAIwgP,EAFJl+Q,EAAI2hC,OAAO3hC,GAGX,IACI,IAAIm+Q,EAAcz4P,EAASsa,mBAAmB,YAAa,SAAzCta,CAAmDtgB,GACrE,GAAG44Q,EAAW,CACV,IAAII,EAA2C,MAA3BnyR,EAAEivB,OAAOjvB,EAAE+D,OAAS,GACxC/D,EAAIyoB,SAASzoB,EAAG,IAChBiyR,EAAQC,EAAY33Q,QAAQxG,EAAGm+Q,EAAYE,aAAar+Q,EAAG/T,EAAGmyR,GAAgBjyR,QAE9E+xR,EAAQC,EAAY33Q,QAAQxG,EAAG2hC,OAAO11C,GAAIE,GAEhD,MAAMsd,GAAK,OAAOi0B,EAEpB,OAAIwgP,GAEKA,EAAMh2Q,OAAS60Q,GAAW1/O,EAC9B4gP,EAAI3gP,EAAYiL,EAAIhL,EAAWiL,EAAIhL,EAHtBE,EAOlB19B,EADY,IAAbA,EAAEhQ,QACI2xC,OAAO3hC,GAAK,IAAOm9Q,GAAU,IAAMA,EACjCx7O,OAAO3hC,GAIlB/T,GAAK,EAKL,IAAIib,EAAO,IAAIyB,KAAKA,KAAK21Q,IAAI,IAAMryR,EAAGE,EAAG8xR,EAAG11O,IAG5C,OAFArhC,EAAKq3Q,eAAev+Q,GAEjBkH,EAAKs3Q,gBAAkBvyR,EAAUyxC,EACjCx2B,EAAKu3Q,eAAiBtyR,EAAUuxC,EAE5Bx2B,EAAKmuN,UAAY7sL,EAAIhL,GAGhCu5E,EAAS3rH,EAAQ2rH,OAAS3rH,EAAQgpH,YAAY,SAC9C4C,EAAS5rH,EAAQ4rH,OAAS5rH,EAAQgpH,YAAY,4BAG9ChpH,EAAQqyE,WAAa,SAAS7vE,EAAGwX,GAC7B,OAAQha,EAAQgpH,YAAYxmH,EAAGwX,KAAcs4B,GAgBjD,IAAIghP,EAAa,GAAKrhP,EAClBshP,EAAa,EAAIrhP,EACjBshP,EAAU,EAAIrhP,EAyElB,SAASshP,EAAYn2O,EAAS6U,EAAGtxD,EAAG2B,EAAGkxR,GAEnC,IAAGvhO,GAAKtxD,GAAK2B,GAAKkxR,KACdp2O,GAAW,IAAM20O,EAAK9/N,EAAG,GAAK,IAAM8/N,EAAKpxR,EAAG,IACzC2B,GAAKkxR,KACJp2O,GAAW,IAAM20O,EAAKzvR,EAAG,GACtBkxR,IAAQ,CACP,IAAIp4Q,EAAS,EACb,MAAMo4Q,EAAS,KAAO,EAClBp4Q,GAAU,EACVo4Q,GAAU,GAEdp2O,GAAW,IAAM20O,EAAKyB,EAAQp4Q,GAI1C,OAAOgiC,EAxFXt9C,EAAQ+oH,YAAc,SAASh4B,EAAIxvF,EAAGyY,GAClC,GAAiB,kBAAP+2E,KAAqBA,GAAM46B,GAAU56B,GAAM66B,GAAS,OAAOt5E,EAEjE/wC,IAAGA,EAAI,GAEX,IAEI+7C,EAAS6U,EAAGtxD,EAAG2B,EAAGkxR,EAAQ3yR,EAF1B0oH,EAAajjH,KAAK2N,MAA0B,GAApB4pC,EAAIgzC,EAAK,IAAM,IACvC24B,EAAYljH,KAAK45B,MAAM2wD,EAAK04B,EAAa,IAG7C,GAAGuoK,EAAgBh4Q,GAAW,CAC1B,IAAI25Q,EAASntR,KAAK2N,MAAMu1G,EAAYz3E,GAAU0/O,EAC1CiC,EAASptR,KAAK2N,MAAM4pC,EAAIgzC,EAAI9+C,IAChC,IACIqL,EAAUhjB,EAASsa,mBAAmB,YAAa,SAAzCta,CAAmDtgB,GACxD+C,OAAO42Q,GAAQ72O,WAAW,cACjC,MAAMz+B,GAEJi/B,EAAUs0O,EAAU,YAAVA,CAAuB,IAAIr0Q,KAAKmsG,IAM9C,GAAyB,MAAtBpsE,EAAQxtB,OAAO,GACd,MAAMwtB,EAAQ14C,OAAS,GAAI04C,EAAU,KAAOA,EAAQtqC,OAAO,QAE3D,MAAMsqC,EAAQ14C,OAAS,GAAI04C,EAAU,IAAMA,EAK/C6U,EAAK5wD,EAAI+xR,EAAc9sR,KAAK2N,MAAMy/Q,EAAS1hP,GAAW,EACtDrxC,EAAKU,EAAI+xR,EAAc9sR,KAAK2N,MAAOy/Q,EAAS1hP,EAAWC,GAAU,EACjE3vC,EAAKjB,EAAIgyR,EAAc/sR,KAAK2N,MAAOy/Q,EAASzhP,EAAUC,GAAU,EAChEshP,EAAUnyR,EAAIiyR,EAAYI,EAASxhP,EAAU,GAAKq3E,EAAa,OAE/D1oH,EAAI,IAAIwc,KAAKmsG,GAEbpsE,EAAUs0O,EAAU,WAAVA,CAAsB7wR,GAGhCoxD,EAAK5wD,EAAI+xR,EAAcvyR,EAAE8yR,cAAgB,EACzChzR,EAAKU,EAAI+xR,EAAcvyR,EAAEwxR,gBAAkB,EAE3C/vR,EAAKjB,EAAIgyR,EAAcxyR,EAAEyxR,gBAAkB,EAE3CkB,EAAUnyR,EAAIiyR,EAAoC,GAAzBzyR,EAAE0xR,qBAA4BhpK,EAAa,EAGxE,OAAOgqK,EAAYn2O,EAAS6U,EAAGtxD,EAAG2B,EAAGkxR,IASzC1zR,EAAQ8zR,iBAAmB,SAAS/iM,GAChC,KAAKA,GAAM46B,EAAS15E,GAAU8+C,GAAM66B,EAAS35E,GAAS,OAAOK,EAE7D,IAAIm3E,EAAajjH,KAAK2N,MAA0B,GAApB4pC,EAAIgzC,EAAK,IAAM,IACvChwF,EAAI,IAAIwc,KAAK/W,KAAK45B,MAAM2wD,EAAK04B,EAAa,KAC1CnsE,EAAU3tC,EAAGm9D,KAAKq4B,OAAO,WAAfx1F,CAA2B5O,GACrCoxD,EAAIpxD,EAAE2e,WACN7e,EAAIE,EAAE0mL,aACNjlL,EAAIzB,EAAE2mL,aACNgsG,EAAkC,GAAzB3yR,EAAE0xR,qBAA4BhpK,EAE3C,OAAOgqK,EAAYn2O,EAAS6U,EAAGtxD,EAAG2B,EAAGkxR,IAyBzC1zR,EAAQ06E,UAAY,SAASn1E,EAAG4e,EAAMnK,GAElC,GAAGzU,IAAM+sC,EAAQ,OAAOnuB,EACxB,GAAGnkB,EAAQmyR,SAAS5sR,IAAoB,kBAANA,GAAkB4I,SAAS5I,GAAK,CAG9D,GAAGysR,EAAgBh4Q,GAEf,OADAk+K,EAAQx5K,MAAM,kEAAmEnZ,GAC1E4e,EAOX,GADA5e,EAAIvF,EAAQ8zR,kBAAkBvuR,IAC1BA,QAAc8d,IAATc,EAAoB,OAAOA,OACjC,IAAInkB,EAAQqyE,WAAW9sE,EAAGyU,GAE7B,OADAk+K,EAAQx5K,MAAM,oBAAqBnZ,GAC5B4e,EAEX,OAAO5e,GAYX,IAAIwuR,EAAY,SAChB,SAASC,EAAclrR,EAAKmG,EAAGglR,EAAWj6Q,GACtClR,EAAMA,EAAIoQ,QAAQ66Q,GAAW,SAASjrQ,GAClC,IAAIxN,EAAS9U,KAAKoC,KAAMkgB,EAAMgH,OAAO,IAAO,EAAG,GAC3CokQ,GAAajlR,EAAI,IAAO,EAAK,GAC5BklR,QAAQ74Q,GACRtI,OAAO,GAAGkG,QAAQ,MAAO,KAAO,IACrC,OAAOg7Q,KAGX,IAAInzR,EAAI,IAAIwc,KAAK/W,KAAK2N,MAAMlF,EAAI,MAEhC,GAAG+iR,EAAgBh4Q,GACf,IACIlR,EAAMwxB,EAASsa,mBAAmB,YAAa,cAAzCta,CAAwDxxB,EAAKmG,EAAG+K,GACxE,MAAMqE,GACJ,MAAO,UAGf,OAAO41Q,EAAUnrR,EAAVmrR,CAAelzR,GAS1B,IAAIqzR,EAAa,CAAC,GAAI,KAAM,MAAO,OAAQ,SAC3C,SAASC,EAAWplR,EAAG+tC,GACnB,IAAIs3O,EAAWv2O,EAAI9uC,EAAI,IAAMgjC,GAEzBsiP,EAAUtC,EAAKzrR,KAAK2N,MAAMmgR,EAAWpiP,GAAU,GAAK,IACpD+/O,EAAKl0O,EAAIv3C,KAAK2N,MAAMmgR,EAAWniP,GAAS,IAAK,GAEjD,GAAU,MAAP6K,EAAY,CACPptC,EAAUotC,KAAKA,EAAK,GAiBxB,IAAIw3O,EAAMhuR,KAAKoC,IAAIm1C,EAAI9uC,EAAImjC,EAAQ,IAAKgiP,EAAWp3O,IAE/Cy3O,GAAU,IAAMD,GAAKL,QAAQn3O,GAAIhqC,OAAO,GACzCgqC,EAAK,IACJy3O,EAASA,EAAOv7Q,QAAQ,MAAO,IAAIA,QAAQ,QAAS,KAGxDq7Q,GAAW,IAAME,EAErB,OAAOF,EAoBXv0R,EAAQ88C,WAAa,SAAS7tC,EAAGnG,EAAKk0C,EAAIi3O,EAAWj6Q,EAAU06Q,GAG3D,GAFA16Q,EAAWg4Q,EAAgBh4Q,IAAaA,GAEpClR,EACA,GAAU,MAAPk0C,EAAYl0C,EAAM4rR,EAAYz6Q,UAC5B,GAAU,MAAP+iC,EAAYl0C,EAAM4rR,EAAYx6Q,UACjC,IAAU,MAAP8iC,EAGJ,OAAOq3O,EAAWplR,EAAG+tC,GAAM,KAAOg3O,EAAcU,EAAY9qJ,aAAc36H,EAAGglR,EAAWj6Q,GAFxFlR,EAAM4rR,EAAY/qJ,SAAW,KAAO+qJ,EAAYz6Q,KAMxD,OAAO+5Q,EAAclrR,EAAKmG,EAAGglR,EAAWj6Q,IA6B5C,IAAI26Q,EAAY,EAAI1iP,EACpBjyC,EAAQ+/C,eAAiB,SAASgxC,EAAI6jM,EAAQ56Q,GAC1CA,EAAWg4Q,EAAgBh4Q,IAAaA,EAKxC,IAAI45Q,EAAS71O,EAAIgzC,EAAI9+C,GAGrB,GAFA8+C,EAAKvqF,KAAK45B,MAAM2wD,EAAK6iM,GAElB55Q,EACC,IACI,IAAI25Q,EAASntR,KAAK45B,MAAM2wD,EAAK9+C,GAAU0/O,EACnCoB,EAAcz4P,EAASsa,mBAAmB,YAAa,SAAzCta,CAAmDtgB,GACjE84Q,EAAQC,EAAYh2Q,OAAO42Q,GAK/B,OAHGiB,EAAS,GAAI7B,EAAYr2Q,IAAIo2Q,EAAO8B,EAAQ,KAC1C7B,EAAYr2Q,IAAIo2Q,EAAO8B,EAAS,GAAI,MAEjC9B,EAAMh2Q,OAAS60Q,GAAW1/O,EAAS2hP,EAC7C,MAAMv1Q,GACJ65K,EAAQx5K,MAAM,cAAgBqyE,EAAK,gBAAkB/2E,GAK7D,IAAIpF,EAAI,IAAI2I,KAAKwzE,EAAK4jM,GACtB,OAAO//Q,EAAEigR,YAAYjgR,EAAEw+Q,cAAgBwB,GAAUhB,EAASe,GAS9D30R,EAAQo2C,eAAiB,SAASpqC,EAAMgO,GAapC,IAZA,IAIIjZ,EACA+3B,EALA0d,EAAa,EACbE,EAAc,EACdL,EAAY,EACZR,EAAa,EAIbk9O,EACAf,EAAgBh4Q,IAChBsgB,EAASsa,mBAAmB,YAAa,SAAzCta,CAAmDtgB,GAG/CvZ,EAAI,EAAGA,EAAIuL,EAAKpH,OAAQnE,IAI5B,GAHAq4B,EAAK9sB,EAAKvL,GAGNmP,EAAUkpB,IAMd,KAAGA,EAAKmZ,GAER,GAAG8gP,EACC,IACIhyR,EAAIgyR,EAAYh2Q,OAAO+b,EAAKmZ,EAAS0/O,GACtB,IAAZ5wR,EAAEoZ,MACgB,IAAdpZ,EAAEmZ,QAAes8B,IACfE,IACFL,IACT,MAAMh4B,SAIRtd,EAAI,IAAIwc,KAAKub,GACS,IAAnB/3B,EAAEsyR,aACsB,IAApBtyR,EAAEqyR,cAAqB58O,IACrBE,IACFL,SAtBPR,IAyBRa,GAAeF,EACfH,GAAaK,EAEb,IAAIV,EAAYhqC,EAAKpH,OAASixC,EAE9B,MAAO,CACHW,WAAYA,EAAaR,EACzBU,YAAaA,EAAcV,EAC3BK,UAAWA,EAAYL,K,kCC3jB/B/1C,EAAOD,QAAU,EAAQ,S,qBCVzB,IAAI80R,EAAc,EAAQ,QAI1B,SAASC,IACL,IAAI/yR,EAAM,GAEV,OAAO,SAAUy8B,GACb,IAAoB,kBAARA,GAA4B,OAARA,IACb,oBAARA,EAEP,MAAM,IAAI55B,MAAM,oCAGpB,IAAI6+P,EAAQjlO,EAAI0iM,QAAQn/N,GACxB,OAAO0hQ,GAASA,EAAM75P,WAAa7H,EAC/B0hQ,EAAQoxB,EAAYr2P,EAAKz8B,IAdrC/B,EAAOD,QAAU+0R,G,oCCQjB90R,EAAOD,QAAU,EAAQ,S,kCCCzB,IAAI8jB,EAAa,EAAQ,QAAaA,WAClC2V,EAAe,EAAQ,QACvBL,EAAO,EAAQ,QAAuCA,KACtDqhC,EAAU,EAAQ,QAClB1wB,EAAQ,EAAQ,QAEhBirP,EAAmBjrP,EAAMkvF,WAAWE,MACpC87J,EAAmBlrP,EAAMqvF,WAAWD,MAEpC7vC,EAAY7vD,EAAaP,KAE7B,SAASswD,EAAe2nM,GACpB,MAAO,CACHj4P,KAAM,CACFptB,MAAOgY,EAAW,GAAIwlE,EAAUx9E,MAAO,CAACqY,KAAMgtQ,IAC9CnvQ,MAAOsnE,EAAUtnE,MACjBoX,KAAMA,EACN7U,SAAU,SAEdA,SAAU,SAIlBtkB,EAAOD,QAAU,CAEbiP,EAAG,CACCiV,QAAS,aACTK,SAAU,uBAIdsvM,KAAM,CACF3vM,QAAS,aACTK,SAAU,QAIduvM,KAAM,CACF5vM,QAAS,aACTK,SAAU,QAIdwvM,IAAK,CACD7vM,QAAS,aACTK,SAAU,QAIdyvM,MAAO,CACH9vM,QAAS,aACTK,SAAU,QAId2U,KAAM,CACFlX,MAAO8B,EAAW,GAAIwlE,EAAUtnE,MAAO,IAGvCoX,KAAMtV,EAAW,GAAIsV,EAAM,IAG3B7U,SAAU,SAGdgmE,WAAYf,EAAewrM,GAE3BxqM,WAAYhB,EAAeyrM,GAE3BnlR,KAAM,CACFoU,QAAS,SAETC,KAAM,GACNc,SAAS,EACTV,SAAU,QAGdW,UAAW,CACPhB,QAAS,SAETC,KAAM,GACNc,SAAS,EACTV,SAAU,QAIdguC,UAAW,CACPruC,QAAS,SACTtb,IAAK,EACLC,IAAK,GACLsb,KAAM,GAENI,SAAU,QAId22C,WAAYp3C,EAAW,GAAI22C,EAAQS,WAAY,CAC3CjqD,MAAO,CACHiT,QAAS,UAETC,MAAM,EACNI,SAAU,a,kCCtGtB,IAAI3U,EAAY,EAAQ,QACpBm/H,EAAY,EAAQ,QAEpBmmJ,EAAiB,EAAQ,QACzBxN,EAAc,EAAQ,QACtBjvP,EAAc,EAAQ,QAA6BA,YAEnDoxB,EAAiB,EAAQ,QACzB6tC,EAAe,EAAQ,QAAWjvD,QAClCgtF,EAAU,EAAQ,QAASA,QAC3B/iD,EAAsB,EAAQ,QAAWA,oBAua7C,SAAS85I,EAAS9qN,EAAO4sB,GACrB,IAAI6mQ,EAAen1R,EAAQo1R,cAAc9mQ,EAAKpK,SAE9C,GAAGoK,EAAKrJ,SAAWytD,EAAoBhxE,GAAQ,OAAO,EAEtD,GAAGyzR,EAAaE,iBACZ,OAAOF,EAAaE,iBAAiB3zR,EAAO4sB,GAGhD,IAAImvE,EAAS,GACT98E,EAAM88E,EACN63L,EAAW,CAAE5mR,IAAK,SAASnJ,GAAKob,EAAMpb,IAK1C,OADA4vR,EAAaI,eAAe7zR,EAAO4zR,EAAU73L,EAAQnvE,GAC9C3N,IAAQ88E,EArbnBz9F,EAAQo1R,cAAgB,CACpBI,WAAY,CAKRD,eAAgB,SAAShwR,EAAGkwR,EAAStxQ,GAE9BuuD,EAAoBntE,GAAIkwR,EAAQ/mR,IAAInJ,QACtB8d,IAATc,GAAoBsxQ,EAAQ/mR,IAAIyV,KAGhDuxQ,WAAY,CAIRH,eAAgB,SAAShwR,EAAGkwR,EAAStxQ,EAAMmK,GACpCA,EAAK0mJ,eAAczvK,GAAKA,IACI,IAA5B+oB,EAAK0L,OAAOv0B,QAAQF,GAAWkwR,EAAQ/mR,IAAIyV,GACzCsxQ,EAAQ/mR,IAAInJ,IAErB8vR,iBAAkB,SAAS9vR,EAAG+oB,GACvBA,EAAK0mJ,eAAczvK,GAAKA,GAG3B,IADA,IAAIy0B,EAAS1L,EAAK0L,OACVv5B,EAAI,EAAGA,EAAIu5B,EAAOp1B,OAAQnE,IAAK,CACnC,IAAI+E,EAAI6c,OAAO2X,EAAOv5B,IAEtB,GAAoB,MAAhB+E,EAAEsqB,OAAO,IAAyC,MAA3BtqB,EAAEsqB,OAAOtqB,EAAEZ,OAAS,GAAa,CACxD,IAAI49D,EAAQ,IAAIx5B,OAAOxjC,EAAEwN,OAAO,EAAGxN,EAAEZ,OAAS,IAC9C,GAAG49D,EAAM1+D,KAAKyB,GAAI,OAAO,OACtB,GAAGA,IAAMy0B,EAAOv5B,GAAI,OAAO,EAEtC,OAAO,IAGf,QAAW,CAIP80R,eAAgB,SAAShwR,EAAGkwR,EAAStxQ,IACxB,IAAN5e,IAAoB,IAANA,EAAakwR,EAAQ/mR,IAAInJ,GACrCkwR,EAAQ/mR,IAAIyV,KAGzBm7B,OAAQ,CAIJi2O,eAAgB,SAAShwR,EAAGkwR,EAAStxQ,EAAMmK,IACnC1e,EAAUrK,SACQ8d,IAAbiL,EAAK1lB,KAAqBrD,EAAI+oB,EAAK1lB,UACtBya,IAAbiL,EAAKzlB,KAAqBtD,EAAI+oB,EAAKzlB,IACxC4sR,EAAQ/mR,IAAIyV,GACTsxQ,EAAQ/mR,KAAKnJ,KAG5B++I,QAAS,CAILixI,eAAgB,SAAShwR,EAAGkwR,EAAStxQ,EAAMmK,GACpC/oB,EAAI,IAAMqK,EAAUrK,SACD8d,IAAbiL,EAAK1lB,KAAqBrD,EAAI+oB,EAAK1lB,UACtBya,IAAbiL,EAAKzlB,KAAqBtD,EAAI+oB,EAAKzlB,IACxC4sR,EAAQ/mR,IAAIyV,GACTsxQ,EAAQ/mR,KAAKnJ,KAG5BowR,OAAQ,CAKJJ,eAAgB,SAAShwR,EAAGkwR,EAAStxQ,EAAMmK,GACvC,GAAgB,kBAAN/oB,EAAgB,CACtB,IAAIqwR,EAA2B,kBAANrwR,GAEN,IAAhB+oB,EAAKunQ,QAAoBD,EACvBH,EAAQ/mR,IAAI2T,OAAO9c,IADgBkwR,EAAQ/mR,IAAIyV,QAE9CmK,EAAK8mM,UAAY7vN,EAAGkwR,EAAQ/mR,IAAIyV,GACrCsxQ,EAAQ/mR,IAAInJ,KAGzBuG,MAAO,CAIHypR,eAAgB,SAAShwR,EAAGkwR,EAAStxQ,GAC9B4qH,EAAUxpI,GAAGkV,UAAWg7Q,EAAQ/mR,IAAInJ,GAClCkwR,EAAQ/mR,IAAIyV,KAGzB2xQ,UAAW,CAIPP,eAAgB,SAAShwR,EAAGkwR,EAAStxQ,GACjC,SAAS4xQ,EAAQjqR,GACb,OAAOijI,EAAUjjI,GAAO2O,UAExBjW,MAAM4J,QAAQ7I,IAAOA,EAAEX,QACnBW,EAAE8nP,MAAM0oC,GAAUN,EAAQ/mR,IAAInJ,GADHkwR,EAAQ/mR,IAAIyV,KAKvDs6D,WAAY,CAIR82M,eAAgB,SAAShwR,EAAGkwR,EAAStxQ,GACjCsxQ,EAAQ/mR,IAAIg5Q,EAAYpmR,IAAIiE,EAAG4e,MAGvCmtC,MAAO,CAIHikO,eAAgB,SAAShwR,EAAGkwR,EAAStxQ,GACxB,SAAN5e,EAAckwR,EAAQ/mR,IAAI,QACpBkB,EAAUrK,GACdkwR,EAAQ/mR,IAAI+mH,GAASlwH,EAAG,MADNkwR,EAAQ/mR,IAAIyV,KAI3C6xQ,UAAW,CAIPT,eAAgB,SAAShwR,EAAGkwR,EAAStxQ,EAAMmK,GACvC,IAAIk0C,EAAQl0C,EAAKk0C,OAASk1B,EAAavzE,GACvB,kBAAN5e,GAAkBi9D,EAAM1+D,KAAKyB,GACnCkwR,EAAQ/mR,IAAInJ,GAGhBkwR,EAAQ/mR,IAAIyV,IAEhBkxQ,iBAAkB,SAAS9vR,EAAG+oB,GAC1B,IAAInK,EAAOmK,EAAKnK,KAEhB,OAAG5e,IAAM4e,GACO,kBAAN5e,KACPmyF,EAAavzE,GAAMrgB,KAAKyB,KAKnC0wR,SAAU,CAINV,eAAgB,SAAShwR,EAAGkwR,EAAStxQ,EAAMmK,GACvC,GAAgB,kBAAN/oB,EAIV,IAAuC,KAAnC+oB,EAAKu7D,QAAU,IAAIpkF,QAAQF,GAA/B,CAIA,IAAI2wR,EAAS3wR,EAAE0L,MAAM,KACjBxQ,EAAI,EACR,MAAMA,EAAIy1R,EAAOtxR,OAAQ,CACrB,IAAIo4E,EAAKk5M,EAAOz1R,IACe,IAA5B6tB,EAAK6I,MAAM1xB,QAAQu3E,IAAck5M,EAAOzwR,QAAQu3E,GAAMv8E,EACrDy1R,EAAO7kR,OAAO5Q,EAAG,GACdA,IAEPy1R,EAAOtxR,OACN6wR,EAAQ/mR,IAAIwnR,EAAOryR,KAAK,MADV4xR,EAAQ/mR,IAAIyV,QAX3BsxQ,EAAQ/mR,IAAInJ,QAJZkwR,EAAQ/mR,IAAIyV,KAmBxB8rQ,IAAK,CAIDsF,eAAgB,SAAShwR,EAAGkwR,EAAStxQ,QACxBd,IAAN9d,EAAiBkwR,EAAQ/mR,IAAIyV,GAC3BsxQ,EAAQ/mR,IAAInJ,KAGzB4wR,WAAY,CASRZ,eAAgB,SAAShwR,EAAGkwR,EAAStxQ,EAAMmK,GAEvC,SAAS8nQ,EAAW7wR,EAAG+oB,EAAMnK,GACzB,IAAIxD,EACA01Q,EAAW,CAAC3nR,IAAK,SAASnJ,GAAKob,EAAMpb,IAMzC,YAJY8d,IAATc,IAAoBA,EAAOmK,EAAKnK,MAEnCnkB,EAAQo1R,cAAc9mQ,EAAKpK,SAASqxQ,eAAehwR,EAAG8wR,EAAUlyQ,EAAMmK,GAE/D3N,EAGX,IAAI21Q,EAA2B,IAApBhoQ,EAAKmmH,YAAyC,QAApBnmH,EAAKmmH,YAAwBjwI,MAAM4J,QAAQ7I,IAAMf,MAAM4J,QAAQ7I,EAAE,IAEtG,GAAIf,MAAM4J,QAAQ7I,GAAlB,CAKA,IAOI9E,EAAG4E,EAAGw4E,EAAKixF,EAAMxgC,EAAMioJ,EAPvB19J,EAAQvqG,EAAKuqG,MACb29J,EAAO,GACPjqE,EAAa/nN,MAAM4J,QAAQyqH,GAC3B49J,EAAelqE,GAAc+pE,GAAQ9xR,MAAM4J,QAAQyqH,EAAM,IACzD69J,EAAiBJ,GAAQ/pE,IAAekqE,EACxCloQ,EAAOg+L,IAAemqE,EAAkB79J,EAAMj0H,OAASW,EAAEX,OAM7D,GAFAuf,EAAO3f,MAAM4J,QAAQ+V,GAAQA,EAAO,GAEjCmyQ,EACC,IAAI71R,EAAI,EAAGA,EAAI8tB,EAAK9tB,IAOhB,IANA+1R,EAAK/1R,GAAK,GACVo9E,EAAMr5E,MAAM4J,QAAQ7I,EAAE9E,IAAM8E,EAAE9E,GAAK,GAChB6tI,EAAhBooJ,EAAuB79J,EAAMj0H,OACxB2nN,EAAmB1zF,EAAMp4H,GAAGmE,OACxBi5E,EAAIj5E,OAEZS,EAAI,EAAGA,EAAIipI,EAAMjpI,IACEypK,EAAhB4nH,EAAuB79J,EAAMxzH,GACxBknN,EAAmB1zF,EAAMp4H,GAAG4E,GACxBwzH,EAEZ09J,EAAOH,EAAWv4M,EAAIx4E,GAAIypK,GAAO3qJ,EAAK1jB,IAAM,IAAI4E,SACpCge,IAATkzQ,IAAoBC,EAAK/1R,GAAG4E,GAAKkxR,QAI5C,IAAI91R,EAAI,EAAGA,EAAI8tB,EAAK9tB,IAChB81R,EAAOH,EAAW7wR,EAAE9E,GAAI8rN,EAAa1zF,EAAMp4H,GAAKo4H,EAAO10G,EAAK1jB,SAChD4iB,IAATkzQ,IAAoBC,EAAK/1R,GAAK81R,GAIzCd,EAAQ/mR,IAAI8nR,QAvCRf,EAAQ/mR,IAAIyV,IAyCpBkxQ,iBAAkB,SAAS9vR,EAAG+oB,GAC1B,IAAI9pB,MAAM4J,QAAQ7I,GAAI,OAAO,EAE7B,IAAIszH,EAAQvqG,EAAKuqG,MACb0zF,EAAa/nN,MAAM4J,QAAQyqH,GAC3By9J,EAA2B,IAApBhoQ,EAAKmmH,WAGhB,IAAInmH,EAAK8xI,YAAc76J,EAAEX,SAAWi0H,EAAMj0H,OAAQ,OAAO,EAGzD,IAAI,IAAInE,EAAI,EAAGA,EAAI8E,EAAEX,OAAQnE,IACzB,GAAG61R,EAAM,CACL,IAAI9xR,MAAM4J,QAAQ7I,EAAE9E,MAAS6tB,EAAK8xI,YAAc76J,EAAE9E,GAAGmE,SAAWi0H,EAAMp4H,GAAGmE,OACrE,OAAO,EAEX,IAAI,IAAIS,EAAI,EAAGA,EAAIE,EAAE9E,GAAGmE,OAAQS,IAC5B,IAAImnN,EAASjnN,EAAE9E,GAAG4E,GAAIknN,EAAa1zF,EAAMp4H,GAAG4E,GAAKwzH,GAC7C,OAAO,OAGZ,IAAI2zF,EAASjnN,EAAE9E,GAAI8rN,EAAa1zF,EAAMp4H,GAAKo4H,GAAQ,OAAO,EAGrE,OAAO,KAiBnB74H,EAAQ6zC,OAAS,SAASP,EAAaC,EAAc5nC,EAAYgrR,EAAWxyQ,GACxE,IAAImK,EAAOu7B,EAAel+C,EAAYgrR,GAAWr1R,MAC7Cs1R,EAAS/sO,EAAevW,EAAaqjP,GACrClB,EAAU5rO,EAAetW,EAAcojP,GACvCpxR,EAAIqxR,EAAOt1R,MAEX+vK,EAAW99H,EAAas7H,UAe5B,QAdSxrJ,IAAN9d,GAAmB8rK,IAClB9rK,EAAIskD,EAAewnH,EAAUslH,GAAWr1R,MAExC+vK,EAAW,QAGHhuJ,IAATc,IAAoBA,EAAOmK,EAAKnK,MAQhCmK,EAAKrJ,SAAWytD,EAAoBntE,GAEnC,OADAkwR,EAAQ/mR,IAAInJ,GACLA,EAGX,IAAIgwR,EAAiBv1R,EAAQo1R,cAAc9mQ,EAAKpK,SAASqxQ,eACzDA,EAAehwR,EAAGkwR,EAAStxQ,EAAMmK,GAEjC,IAAI3N,EAAM80Q,EAAQn0R,MAQlB,OALG+vK,GAAY1wJ,IAAQwD,IAASqoM,EAASjnN,EAAG+oB,KACxC/oB,EAAIskD,EAAewnH,EAAUslH,GAAWr1R,MACxCi0R,EAAehwR,EAAGkwR,EAAStxQ,EAAMmK,GACjC3N,EAAM80Q,EAAQn0R,OAEXqf,GAUX3gB,EAAQm+E,QAAU,SAAS7qC,EAAaC,EAAc5nC,EAAYgrR,EAAWxyQ,GACzE,IAAIyyQ,EAAS/sO,EAAevW,EAAaqjP,GACrClB,EAAUz1R,EAAQ6zC,OAAOP,EAAaC,EAAc5nC,EAAYgrR,EAAWxyQ,GAC3E2nM,EAAQ8qE,EAAOt1R,MAEnB,YAAkB+hB,IAAVyoM,GAAiC,OAAVA,GAAkB2pE,GAQrDz1R,EAAQg2F,WAAa,SAASniD,EAAQjrB,EAAMiuQ,GACxC,IAAIl2Q,EAAM,GAQV,OANAk2Q,EAAUA,GAAW,GAErBl2Q,EAAIa,OAASqyB,EAAOjrB,EAAO,UAAWiuQ,EAAQr1Q,QAC9Cb,EAAI8D,KAAOovB,EAAOjrB,EAAO,QAASiuQ,EAAQpyQ,MAC1C9D,EAAI7U,MAAQ+nC,EAAOjrB,EAAO,SAAUiuQ,EAAQ/qR,OAErC6U,GAWX3gB,EAAQ82R,gBAAkB,SAAS58N,EAASC,EAAUjC,GAClD,IAII/zC,EAJA4yQ,EAAc58N,EAASq3B,QAAQ7lF,WAC/BqZ,EAAQ+xQ,EAAYzwQ,UAAYywQ,EAAc7B,EAE9C8B,EAAShyQ,EAAMsB,UAGnB,GAA6B,IAA1B4xC,EAAU++N,YAAmB,CAC5B,IAAI9/P,EAAwB,QAAhB6/P,EAAO7yQ,KACf6yQ,EAAO7/P,MAAMpyB,QACbiyR,EAAO7yQ,KAAKlT,MAAM,KAEtBkmB,EAAM9lB,OAAO8lB,EAAM1xB,QAAQ,QAAS,GACpC0e,EAAOgT,EAAMtzB,KAAK,KAGtB,OAAO7D,EAAQ6zC,OAAOqmB,EAASC,EAAUn1C,EAAO,YAAab,IAcjEnkB,EAAQqsF,6BAA+B,SAASlyB,EAAUtmB,GACtD,GAAIsmB,EAASlhC,OAAb,CAEA,IAIIi+P,EACAC,EALA5mM,EAAKp2B,EAASlhC,OAAO5tB,QAEzB,QAAUgY,IAAPktE,EAUC7d,EAAoB6d,IAAQp2B,EAAS7gC,UAAa6gC,EAASwzB,aAC3DupM,EAAU3mM,EACV4mM,EAAW1+P,EAAc83D,GAG7B18C,EAAO,0BAA2BqjP,GAClCrjP,EAAO,4BAA6BsjP,KAqBxCn3R,EAAQwsN,SAAWA,G,oCC3cnB,IAAI4qE,EAAQ,EAAQ,QAIpB,SAASpqQ,EAAI1pB,EAAGC,GAGZ,IAFF,IAAIrB,EAAIoB,EAAEsB,OACNrD,EAAI,IAAIiD,MAAMtC,GACRzB,EAAE,EAAGA,EAAEyB,IAAKzB,EACpBc,EAAEd,GAAK22R,EAAM9zR,EAAE7C,GAAI8C,EAAE9C,IAEvB,OAAOc,EARTtB,EAAOD,QAAUgtB,G,uBCJjB,OAIA,SAAUxmB,GAEV,IAAI6wR,EAAW,OACXC,EAAY,OACZC,EAAc,EACdC,EAAYhxR,EAAK45B,MACjBq3P,EAAUjxR,EAAKoC,IACf8uR,EAAUlxR,EAAKqC,IACf8uR,EAAanxR,EAAKF,OAEtB,SAASyoI,EAAWjjI,EAAOwiB,GAMvB,GAJAxiB,EAAQ,GAAkB,GAC1BwiB,EAAOA,GAAQ,GAGXxiB,aAAiBijI,EAClB,OAAOjjI,EAGV,KAAMzL,gBAAgB0uI,GAClB,OAAO,IAAIA,EAAUjjI,EAAOwiB,GAGhC,IAAI3lB,EAAMivR,EAAW9rR,GACrBzL,KAAKw3R,eAAiB/rR,EACtBzL,KAAK0sD,GAAKpkD,EAAIpH,EACdlB,KAAKy3R,GAAKnvR,EAAI2hB,EACdjqB,KAAKovE,GAAK9mE,EAAIpF,EACdlD,KAAKmvE,GAAK7mE,EAAIrF,EACdjD,KAAK03R,QAAUP,EAAU,IAAIn3R,KAAKmvE,IAAM,IACxCnvE,KAAK23R,QAAU1pQ,EAAK62E,QAAUx8F,EAAIw8F,OAClC9kG,KAAK43R,cAAgB3pQ,EAAKs/N,aAMtBvtP,KAAK0sD,GAAK,IAAK1sD,KAAK0sD,GAAKyqO,EAAUn3R,KAAK0sD,KACxC1sD,KAAKy3R,GAAK,IAAKz3R,KAAKy3R,GAAKN,EAAUn3R,KAAKy3R,KACxCz3R,KAAKovE,GAAK,IAAKpvE,KAAKovE,GAAK+nN,EAAUn3R,KAAKovE,KAE5CpvE,KAAK63R,IAAMvvR,EAAI23K,GACfjgL,KAAK83R,OAASZ,IAiQlB,SAASK,EAAW9rR,GAEhB,IAAInD,EAAM,CAAEpH,EAAG,EAAG+oB,EAAG,EAAG/mB,EAAG,GACvBD,EAAI,EACJd,EAAI,KACJ+C,EAAI,KACJ7E,EAAI,KACJ4/K,GAAK,EACLn7E,GAAS,EAkCb,MAhCoB,iBAATr5F,IACPA,EAAQssR,EAAoBtsR,IAGZ,iBAATA,IACHusR,EAAevsR,EAAMvK,IAAM82R,EAAevsR,EAAMwe,IAAM+tQ,EAAevsR,EAAMvI,IAC3EoF,EAAM2vR,EAASxsR,EAAMvK,EAAGuK,EAAMwe,EAAGxe,EAAMvI,GACvC+8K,GAAK,EACLn7E,EAAwC,MAA/B9iF,OAAOvW,EAAMvK,GAAGyR,QAAQ,GAAa,OAAS,OAElDqlR,EAAevsR,EAAMqmD,IAAMkmO,EAAevsR,EAAMtJ,IAAM61R,EAAevsR,EAAMvG,IAChF/C,EAAI+1R,EAAoBzsR,EAAMtJ,GAC9B+C,EAAIgzR,EAAoBzsR,EAAMvG,GAC9BoD,EAAM6vR,EAAS1sR,EAAMqmD,EAAG3vD,EAAG+C,GAC3B+6K,GAAK,EACLn7E,EAAS,OAEJkzL,EAAevsR,EAAMqmD,IAAMkmO,EAAevsR,EAAMtJ,IAAM61R,EAAevsR,EAAMpL,KAChF8B,EAAI+1R,EAAoBzsR,EAAMtJ,GAC9B9B,EAAI63R,EAAoBzsR,EAAMpL,GAC9BiI,EAAM8vR,EAAS3sR,EAAMqmD,EAAG3vD,EAAG9B,GAC3B4/K,GAAK,EACLn7E,EAAS,OAGTr5F,EAAMxJ,eAAe,OACrBgB,EAAIwI,EAAMxI,IAIlBA,EAAIo1R,EAAWp1R,GAER,CACHg9K,GAAIA,EACJn7E,OAAQr5F,EAAMq5F,QAAUA,EACxB5jG,EAAGk2R,EAAQ,IAAKC,EAAQ/uR,EAAIpH,EAAG,IAC/B+oB,EAAGmtQ,EAAQ,IAAKC,EAAQ/uR,EAAI2hB,EAAG,IAC/B/mB,EAAGk0R,EAAQ,IAAKC,EAAQ/uR,EAAIpF,EAAG,IAC/BD,EAAGA,GAgBX,SAASg1R,EAAS/2R,EAAG+oB,EAAG/mB,GACpB,MAAO,CACHhC,EAAqB,IAAlBo3R,EAAQp3R,EAAG,KACd+oB,EAAqB,IAAlBquQ,EAAQruQ,EAAG,KACd/mB,EAAqB,IAAlBo1R,EAAQp1R,EAAG,MAQtB,SAASq1R,EAASr3R,EAAG+oB,EAAG/mB,GAEpBhC,EAAIo3R,EAAQp3R,EAAG,KACf+oB,EAAIquQ,EAAQruQ,EAAG,KACf/mB,EAAIo1R,EAAQp1R,EAAG,KAEf,IACI4uD,EAAG3vD,EADHqG,EAAM6uR,EAAQn2R,EAAG+oB,EAAG/mB,GAAIqF,EAAM6uR,EAAQl2R,EAAG+oB,EAAG/mB,GACtC7C,GAAKmI,EAAMD,GAAO,EAE5B,GAAGC,GAAOD,EACNupD,EAAI3vD,EAAI,MAEP,CACD,IAAIzB,EAAI8H,EAAMD,EAEd,OADApG,EAAI9B,EAAI,GAAMK,GAAK,EAAI8H,EAAMD,GAAO7H,GAAK8H,EAAMD,GACxCC,GACH,KAAKtH,EAAG4wD,GAAK7nC,EAAI/mB,GAAKxC,GAAKupB,EAAI/mB,EAAI,EAAI,GAAI,MAC3C,KAAK+mB,EAAG6nC,GAAK5uD,EAAIhC,GAAKR,EAAI,EAAG,MAC7B,KAAKwC,EAAG4uD,GAAK5wD,EAAI+oB,GAAKvpB,EAAI,EAAG,MAGjCoxD,GAAK,EAGT,MAAO,CAAEA,EAAGA,EAAG3vD,EAAGA,EAAG9B,EAAGA,GAO5B,SAAS+3R,EAAStmO,EAAG3vD,EAAG9B,GACpB,IAAIa,EAAG+oB,EAAG/mB,EAMV,SAASs1R,EAAQt2R,EAAGkmE,EAAG9mE,GAGnB,OAFGA,EAAI,IAAGA,GAAK,GACZA,EAAI,IAAGA,GAAK,GACZA,EAAI,EAAE,EAAUY,EAAc,GAATkmE,EAAIlmE,GAASZ,EAClCA,EAAI,GAAY8mE,EAChB9mE,EAAI,EAAE,EAAUY,GAAKkmE,EAAIlmE,IAAM,EAAE,EAAIZ,GAAK,EACtCY,EAGX,GAbA4vD,EAAIwmO,EAAQxmO,EAAG,KACf3vD,EAAIm2R,EAAQn2R,EAAG,KACf9B,EAAIi4R,EAAQj4R,EAAG,KAWN,IAAN8B,EACCjB,EAAI+oB,EAAI/mB,EAAI7C,MAEX,CACD,IAAI+nE,EAAI/nE,EAAI,GAAMA,GAAK,EAAI8B,GAAK9B,EAAI8B,EAAI9B,EAAI8B,EACxCD,EAAI,EAAI7B,EAAI+nE,EAChBlnE,EAAIs3R,EAAQt2R,EAAGkmE,EAAGtW,EAAI,EAAE,GACxB7nC,EAAIuuQ,EAAQt2R,EAAGkmE,EAAGtW,GAClB5uD,EAAIs1R,EAAQt2R,EAAGkmE,EAAGtW,EAAI,EAAE,GAG5B,MAAO,CAAE5wD,EAAO,IAAJA,EAAS+oB,EAAO,IAAJA,EAAS/mB,EAAO,IAAJA,GAOxC,SAASu1R,EAASv3R,EAAG+oB,EAAG/mB,GAEpBhC,EAAIo3R,EAAQp3R,EAAG,KACf+oB,EAAIquQ,EAAQruQ,EAAG,KACf/mB,EAAIo1R,EAAQp1R,EAAG,KAEf,IACI4uD,EAAG3vD,EADHqG,EAAM6uR,EAAQn2R,EAAG+oB,EAAG/mB,GAAIqF,EAAM6uR,EAAQl2R,EAAG+oB,EAAG/mB,GACtCgC,EAAIsD,EAEV9H,EAAI8H,EAAMD,EAGd,GAFApG,EAAY,IAARqG,EAAY,EAAI9H,EAAI8H,EAErBA,GAAOD,EACNupD,EAAI,MAEH,CACD,OAAOtpD,GACH,KAAKtH,EAAG4wD,GAAK7nC,EAAI/mB,GAAKxC,GAAKupB,EAAI/mB,EAAI,EAAI,GAAI,MAC3C,KAAK+mB,EAAG6nC,GAAK5uD,EAAIhC,GAAKR,EAAI,EAAG,MAC7B,KAAKwC,EAAG4uD,GAAK5wD,EAAI+oB,GAAKvpB,EAAI,EAAG,MAEjCoxD,GAAK,EAET,MAAO,CAAEA,EAAGA,EAAG3vD,EAAGA,EAAG+C,EAAGA,GAO3B,SAASizR,EAASrmO,EAAG3vD,EAAG+C,GAErB4sD,EAAsB,EAAlBwmO,EAAQxmO,EAAG,KACf3vD,EAAIm2R,EAAQn2R,EAAG,KACf+C,EAAIozR,EAAQpzR,EAAG,KAEf,IAAI9E,EAAI+F,EAAK2N,MAAMg+C,GACfhpB,EAAIgpB,EAAI1xD,EACR8B,EAAIgD,GAAK,EAAI/C,GACbimE,EAAIljE,GAAK,EAAI4jC,EAAI3mC,GACjBb,EAAI4D,GAAK,GAAK,EAAI4jC,GAAK3mC,GACvBu7C,EAAMt9C,EAAI,EACVc,EAAI,CAACgE,EAAGkjE,EAAGlmE,EAAGA,EAAGZ,EAAG4D,GAAGw4C,GACvBzzB,EAAI,CAAC3oB,EAAG4D,EAAGA,EAAGkjE,EAAGlmE,EAAGA,GAAGw7C,GACvBx6C,EAAI,CAAChB,EAAGA,EAAGZ,EAAG4D,EAAGA,EAAGkjE,GAAG1qB,GAE3B,MAAO,CAAEx8C,EAAO,IAAJA,EAAS+oB,EAAO,IAAJA,EAAS/mB,EAAO,IAAJA,GAOxC,SAASw1R,EAASx3R,EAAG+oB,EAAG/mB,EAAGy1R,GAEvB,IAAIzrB,EAAM,CACNhsD,EAAKi2E,EAAUj2R,GAAG6b,SAAS,KAC3BmkM,EAAKi2E,EAAUltQ,GAAGlN,SAAS,KAC3BmkM,EAAKi2E,EAAUj0R,GAAG6Z,SAAS,MAI/B,OAAI47Q,GAAczrB,EAAI,GAAGz9O,OAAO,IAAMy9O,EAAI,GAAGz9O,OAAO,IAAMy9O,EAAI,GAAGz9O,OAAO,IAAMy9O,EAAI,GAAGz9O,OAAO,IAAMy9O,EAAI,GAAGz9O,OAAO,IAAMy9O,EAAI,GAAGz9O,OAAO,GACzHy9O,EAAI,GAAGz9O,OAAO,GAAKy9O,EAAI,GAAGz9O,OAAO,GAAKy9O,EAAI,GAAGz9O,OAAO,GAGxDy9O,EAAI1pQ,KAAK,IAOpB,SAASo1R,EAAU13R,EAAG+oB,EAAG/mB,EAAGD,EAAG41R,GAE3B,IAAI3rB,EAAM,CACNhsD,EAAKi2E,EAAUj2R,GAAG6b,SAAS,KAC3BmkM,EAAKi2E,EAAUltQ,GAAGlN,SAAS,KAC3BmkM,EAAKi2E,EAAUj0R,GAAG6Z,SAAS,KAC3BmkM,EAAK43E,EAAoB71R,KAI7B,OAAI41R,GAAc3rB,EAAI,GAAGz9O,OAAO,IAAMy9O,EAAI,GAAGz9O,OAAO,IAAMy9O,EAAI,GAAGz9O,OAAO,IAAMy9O,EAAI,GAAGz9O,OAAO,IAAMy9O,EAAI,GAAGz9O,OAAO,IAAMy9O,EAAI,GAAGz9O,OAAO,IAAMy9O,EAAI,GAAGz9O,OAAO,IAAMy9O,EAAI,GAAGz9O,OAAO,GACjKy9O,EAAI,GAAGz9O,OAAO,GAAKy9O,EAAI,GAAGz9O,OAAO,GAAKy9O,EAAI,GAAGz9O,OAAO,GAAKy9O,EAAI,GAAGz9O,OAAO,GAG3Ey9O,EAAI1pQ,KAAK,IAMpB,SAASu1R,EAAc73R,EAAG+oB,EAAG/mB,EAAGD,GAE5B,IAAIiqQ,EAAM,CACNhsD,EAAK43E,EAAoB71R,IACzBi+M,EAAKi2E,EAAUj2R,GAAG6b,SAAS,KAC3BmkM,EAAKi2E,EAAUltQ,GAAGlN,SAAS,KAC3BmkM,EAAKi2E,EAAUj0R,GAAG6Z,SAAS,MAG/B,OAAOmwP,EAAI1pQ,KAAK,IAwBpB,SAASw1R,EAAWvtR,EAAOwtR,GACvBA,EAAqB,IAAXA,EAAgB,EAAKA,GAAU,GACzC,IAAIrwR,EAAM8lI,EAAUjjI,GAAOytR,QAG3B,OAFAtwR,EAAIzG,GAAK82R,EAAS,IAClBrwR,EAAIzG,EAAIg3R,EAAQvwR,EAAIzG,GACbusI,EAAU9lI,GAGrB,SAASwwR,EAAS3tR,EAAOwtR,GACrBA,EAAqB,IAAXA,EAAgB,EAAKA,GAAU,GACzC,IAAIrwR,EAAM8lI,EAAUjjI,GAAOytR,QAG3B,OAFAtwR,EAAIzG,GAAK82R,EAAS,IAClBrwR,EAAIzG,EAAIg3R,EAAQvwR,EAAIzG,GACbusI,EAAU9lI,GAGrB,SAASywR,EAAU5tR,GACf,OAAOijI,EAAUjjI,GAAOutR,WAAW,KAGvC,SAASM,EAAS7tR,EAAOwtR,GACrBA,EAAqB,IAAXA,EAAgB,EAAKA,GAAU,GACzC,IAAIrwR,EAAM8lI,EAAUjjI,GAAOytR,QAG3B,OAFAtwR,EAAIvI,GAAK44R,EAAS,IAClBrwR,EAAIvI,EAAI84R,EAAQvwR,EAAIvI,GACbquI,EAAU9lI,GAGrB,SAAS2wR,EAAS9tR,EAAOwtR,GACrBA,EAAqB,IAAXA,EAAgB,EAAKA,GAAU,GACzC,IAAI3wR,EAAMomI,EAAUjjI,GAAOkkI,QAI3B,OAHArnI,EAAIpH,EAAIm2R,EAAQ,EAAGD,EAAQ,IAAK9uR,EAAIpH,EAAIi2R,GAAmB8B,EAAS,IAAlB,OAClD3wR,EAAI2hB,EAAIotQ,EAAQ,EAAGD,EAAQ,IAAK9uR,EAAI2hB,EAAIktQ,GAAmB8B,EAAS,IAAlB,OAClD3wR,EAAIpF,EAAIm0R,EAAQ,EAAGD,EAAQ,IAAK9uR,EAAIpF,EAAIi0R,GAAmB8B,EAAS,IAAlB,OAC3CvqJ,EAAUpmI,GAGrB,SAASkxR,EAAQ/tR,EAAOwtR,GACpBA,EAAqB,IAAXA,EAAgB,EAAKA,GAAU,GACzC,IAAIrwR,EAAM8lI,EAAUjjI,GAAOytR,QAG3B,OAFAtwR,EAAIvI,GAAK44R,EAAS,IAClBrwR,EAAIvI,EAAI84R,EAAQvwR,EAAIvI,GACbquI,EAAU9lI,GAKrB,SAAS6wR,EAAKhuR,EAAOwtR,GACjB,IAAIrwR,EAAM8lI,EAAUjjI,GAAOytR,QACvBQ,GAAO9wR,EAAIkpD,EAAImnO,GAAU,IAE7B,OADArwR,EAAIkpD,EAAI4nO,EAAM,EAAI,IAAMA,EAAMA,EACvBhrJ,EAAU9lI,GAQrB,SAAS+wR,EAAWluR,GAChB,IAAI7C,EAAM8lI,EAAUjjI,GAAOytR,QAE3B,OADAtwR,EAAIkpD,GAAKlpD,EAAIkpD,EAAI,KAAO,IACjB48E,EAAU9lI,GAGrB,SAASgxR,EAAMnuR,GACX,IAAI7C,EAAM8lI,EAAUjjI,GAAOytR,QACvBpnO,EAAIlpD,EAAIkpD,EACZ,MAAO,CACH48E,EAAUjjI,GACVijI,EAAU,CAAE58E,GAAIA,EAAI,KAAO,IAAK3vD,EAAGyG,EAAIzG,EAAG9B,EAAGuI,EAAIvI,IACjDquI,EAAU,CAAE58E,GAAIA,EAAI,KAAO,IAAK3vD,EAAGyG,EAAIzG,EAAG9B,EAAGuI,EAAIvI,KAIzD,SAASw5R,EAAOpuR,GACZ,IAAI7C,EAAM8lI,EAAUjjI,GAAOytR,QACvBpnO,EAAIlpD,EAAIkpD,EACZ,MAAO,CACH48E,EAAUjjI,GACVijI,EAAU,CAAE58E,GAAIA,EAAI,IAAM,IAAK3vD,EAAGyG,EAAIzG,EAAG9B,EAAGuI,EAAIvI,IAChDquI,EAAU,CAAE58E,GAAIA,EAAI,KAAO,IAAK3vD,EAAGyG,EAAIzG,EAAG9B,EAAGuI,EAAIvI,IACjDquI,EAAU,CAAE58E,GAAIA,EAAI,KAAO,IAAK3vD,EAAGyG,EAAIzG,EAAG9B,EAAGuI,EAAIvI,KAIzD,SAASy5R,EAAgBruR,GACrB,IAAI7C,EAAM8lI,EAAUjjI,GAAOytR,QACvBpnO,EAAIlpD,EAAIkpD,EACZ,MAAO,CACH48E,EAAUjjI,GACVijI,EAAU,CAAE58E,GAAIA,EAAI,IAAM,IAAK3vD,EAAGyG,EAAIzG,EAAG9B,EAAGuI,EAAIvI,IAChDquI,EAAU,CAAE58E,GAAIA,EAAI,KAAO,IAAK3vD,EAAGyG,EAAIzG,EAAG9B,EAAGuI,EAAIvI,KAIzD,SAAS05R,EAAUtuR,EAAO6jP,EAASr+G,GAC/Bq+G,EAAUA,GAAW,EACrBr+G,EAASA,GAAU,GAEnB,IAAIroI,EAAM8lI,EAAUjjI,GAAOytR,QACvBc,EAAO,IAAM/oJ,EACbw0C,EAAM,CAAC/2C,EAAUjjI,IAErB,IAAK7C,EAAIkpD,GAAMlpD,EAAIkpD,GAAKkoO,EAAO1qC,GAAW,GAAM,KAAO,MAAOA,GAC1D1mP,EAAIkpD,GAAKlpD,EAAIkpD,EAAIkoO,GAAQ,IACzBv0G,EAAIpiL,KAAKqrI,EAAU9lI,IAEvB,OAAO68K,EAGX,SAASw0G,EAAcxuR,EAAO6jP,GAC1BA,EAAUA,GAAW,EACrB,IAAI4qC,EAAMxrJ,EAAUjjI,GAAO0uR,QACvBroO,EAAIooO,EAAIpoO,EAAG3vD,EAAI+3R,EAAI/3R,EAAG+C,EAAIg1R,EAAIh1R,EAC9BugL,EAAM,GACN20G,EAAe,EAAI9qC,EAEvB,MAAOA,IACH7pE,EAAIpiL,KAAKqrI,EAAU,CAAE58E,EAAGA,EAAG3vD,EAAGA,EAAG+C,EAAGA,KACpCA,GAAKA,EAAIk1R,GAAgB,EAG7B,OAAO30G,EApoBX/2C,EAAU1sI,UAAY,CAClBq4R,OAAQ,WACJ,OAAOr6R,KAAKs6R,gBAAkB,KAElCC,QAAS,WACL,OAAQv6R,KAAKq6R,UAEjBjgR,QAAS,WACL,OAAOpa,KAAK63R,KAEhB2C,iBAAkB,WAChB,OAAOx6R,KAAKw3R,gBAEdiD,UAAW,WACP,OAAOz6R,KAAK23R,SAEhB+C,SAAU,WACN,OAAO16R,KAAKmvE,IAEhBmrN,cAAe,WAEX,IAAIhyR,EAAMtI,KAAK2vI,QACf,OAAgB,IAARrnI,EAAIpH,EAAkB,IAARoH,EAAI2hB,EAAkB,IAAR3hB,EAAIpF,GAAW,KAEvD+xQ,aAAc,WAEV,IACI0lB,EAAOC,EAAOC,EAAOxuL,EAAGq0H,EAAGj0B,EAD3BnkM,EAAMtI,KAAK2vI,QASf,OAPAgrJ,EAAQryR,EAAIpH,EAAE,IACd05R,EAAQtyR,EAAI2hB,EAAE,IACd4wQ,EAAQvyR,EAAIpF,EAAE,IAESmpG,EAAnBsuL,GAAS,OAAcA,EAAQ,MAAkBx0R,EAAK85B,KAAM06P,EAAQ,MAAS,MAAQ,KAClEj6D,EAAnBk6D,GAAS,OAAcA,EAAQ,MAAkBz0R,EAAK85B,KAAM26P,EAAQ,MAAS,MAAQ,KAClEnuF,EAAnBouF,GAAS,OAAcA,EAAQ,MAAkB10R,EAAK85B,KAAM46P,EAAQ,MAAS,MAAQ,KACjF,MAASxuL,EAAM,MAASq0H,EAAM,MAASj0B,GAEnDquF,SAAU,SAASz5R,GAGf,OAFArB,KAAKmvE,GAAKkpN,EAAWh3R,GACrBrB,KAAK03R,QAAUP,EAAU,IAAIn3R,KAAKmvE,IAAM,IACjCnvE,MAEXm6R,MAAO,WACH,IAAID,EAAMzB,EAASz4R,KAAK0sD,GAAI1sD,KAAKy3R,GAAIz3R,KAAKovE,IAC1C,MAAO,CAAEtd,EAAW,IAARooO,EAAIpoO,EAAS3vD,EAAG+3R,EAAI/3R,EAAG+C,EAAGg1R,EAAIh1R,EAAGjC,EAAGjD,KAAKmvE,KAEzD4rN,YAAa,WACT,IAAIb,EAAMzB,EAASz4R,KAAK0sD,GAAI1sD,KAAKy3R,GAAIz3R,KAAKovE,IACtCtd,EAAIqlO,EAAkB,IAAR+C,EAAIpoO,GAAU3vD,EAAIg1R,EAAkB,IAAR+C,EAAI/3R,GAAU+C,EAAIiyR,EAAkB,IAAR+C,EAAIh1R,GAC9E,OAAmB,GAAXlF,KAAKmvE,GACX,OAAUrd,EAAI,KAAO3vD,EAAI,MAAQ+C,EAAI,KACrC,QAAU4sD,EAAI,KAAO3vD,EAAI,MAAQ+C,EAAI,MAAOlF,KAAK03R,QAAU,KAEjEwB,MAAO,WACH,IAAItwR,EAAM2vR,EAASv4R,KAAK0sD,GAAI1sD,KAAKy3R,GAAIz3R,KAAKovE,IAC1C,MAAO,CAAEtd,EAAW,IAARlpD,EAAIkpD,EAAS3vD,EAAGyG,EAAIzG,EAAG9B,EAAGuI,EAAIvI,EAAG4C,EAAGjD,KAAKmvE,KAEzD6rN,YAAa,WACT,IAAIpyR,EAAM2vR,EAASv4R,KAAK0sD,GAAI1sD,KAAKy3R,GAAIz3R,KAAKovE,IACtCtd,EAAIqlO,EAAkB,IAARvuR,EAAIkpD,GAAU3vD,EAAIg1R,EAAkB,IAARvuR,EAAIzG,GAAU9B,EAAI82R,EAAkB,IAARvuR,EAAIvI,GAC9E,OAAmB,GAAXL,KAAKmvE,GACX,OAAUrd,EAAI,KAAO3vD,EAAI,MAAQ9B,EAAI,KACrC,QAAUyxD,EAAI,KAAO3vD,EAAI,MAAQ9B,EAAI,MAAOL,KAAK03R,QAAU,KAEjEuD,MAAO,SAAStC,GACZ,OAAOD,EAAS14R,KAAK0sD,GAAI1sD,KAAKy3R,GAAIz3R,KAAKovE,GAAIupN,IAE/CuC,YAAa,SAASvC,GAClB,MAAO,IAAM34R,KAAKi7R,MAAMtC,IAE5BwC,OAAQ,SAAStC,GACb,OAAOD,EAAU54R,KAAK0sD,GAAI1sD,KAAKy3R,GAAIz3R,KAAKovE,GAAIpvE,KAAKmvE,GAAI0pN,IAEzDuC,aAAc,SAASvC,GACnB,MAAO,IAAM74R,KAAKm7R,OAAOtC,IAE7BlpJ,MAAO,WACH,MAAO,CAAEzuI,EAAGi2R,EAAUn3R,KAAK0sD,IAAKziC,EAAGktQ,EAAUn3R,KAAKy3R,IAAKv0R,EAAGi0R,EAAUn3R,KAAKovE,IAAKnsE,EAAGjD,KAAKmvE,KAE1FihE,YAAa,WACT,OAAmB,GAAXpwI,KAAKmvE,GACX,OAAUgoN,EAAUn3R,KAAK0sD,IAAM,KAAOyqO,EAAUn3R,KAAKy3R,IAAM,KAAON,EAAUn3R,KAAKovE,IAAM,IACvF,QAAU+nN,EAAUn3R,KAAK0sD,IAAM,KAAOyqO,EAAUn3R,KAAKy3R,IAAM,KAAON,EAAUn3R,KAAKovE,IAAM,KAAOpvE,KAAK03R,QAAU,KAEnH2D,gBAAiB,WACb,MAAO,CAAEn6R,EAAGi2R,EAAkC,IAAxBmB,EAAQt4R,KAAK0sD,GAAI,MAAc,IAAKziC,EAAGktQ,EAAkC,IAAxBmB,EAAQt4R,KAAKy3R,GAAI,MAAc,IAAKv0R,EAAGi0R,EAAkC,IAAxBmB,EAAQt4R,KAAKovE,GAAI,MAAc,IAAKnsE,EAAGjD,KAAKmvE,KAExKmsN,sBAAuB,WACnB,OAAmB,GAAXt7R,KAAKmvE,GACX,OAAUgoN,EAAkC,IAAxBmB,EAAQt4R,KAAK0sD,GAAI,MAAc,MAAQyqO,EAAkC,IAAxBmB,EAAQt4R,KAAKy3R,GAAI,MAAc,MAAQN,EAAkC,IAAxBmB,EAAQt4R,KAAKovE,GAAI,MAAc,KACrJ,QAAU+nN,EAAkC,IAAxBmB,EAAQt4R,KAAK0sD,GAAI,MAAc,MAAQyqO,EAAkC,IAAxBmB,EAAQt4R,KAAKy3R,GAAI,MAAc,MAAQN,EAAkC,IAAxBmB,EAAQt4R,KAAKovE,GAAI,MAAc,MAAQpvE,KAAK03R,QAAU,KAElL6D,OAAQ,WACJ,OAAgB,IAAZv7R,KAAKmvE,GACE,gBAGPnvE,KAAKmvE,GAAK,KAIPqsN,EAAS9C,EAAS14R,KAAK0sD,GAAI1sD,KAAKy3R,GAAIz3R,KAAKovE,IAAI,MAAU,IAElEqsN,SAAU,SAASC,GACf,IAAIC,EAAa,IAAM5C,EAAc/4R,KAAK0sD,GAAI1sD,KAAKy3R,GAAIz3R,KAAKovE,GAAIpvE,KAAKmvE,IACjEysN,EAAmBD,EACnBpuC,EAAevtP,KAAK43R,cAAgB,qBAAuB,GAE/D,GAAI8D,EAAa,CACb,IAAIv5R,EAAIusI,EAAUgtJ,GAClBE,EAAmB,IAAM7C,EAAc52R,EAAEuqD,GAAIvqD,EAAEs1R,GAAIt1R,EAAEitE,GAAIjtE,EAAEgtE,IAG/D,MAAO,8CAA8Co+K,EAAa,iBAAiBouC,EAAW,gBAAgBC,EAAiB,KAEnI7+Q,SAAU,SAAS+nF,GACf,IAAI+2L,IAAc/2L,EAClBA,EAASA,GAAU9kG,KAAK23R,QAExB,IAAImE,GAAkB,EAClB7wR,EAAWjL,KAAKmvE,GAAK,GAAKnvE,KAAKmvE,IAAM,EACrC4sN,GAAoBF,GAAa5wR,IAAwB,QAAX65F,GAA+B,SAAXA,GAAgC,SAAXA,GAAgC,SAAXA,GAAgC,SAAXA,GAAgC,SAAXA,GAE1J,OAAIi3L,EAGe,SAAXj3L,GAAiC,IAAZ9kG,KAAKmvE,GACnBnvE,KAAKu7R,SAETv7R,KAAKowI,eAED,QAAXtrC,IACAg3L,EAAkB97R,KAAKowI,eAEZ,SAAXtrC,IACAg3L,EAAkB97R,KAAKs7R,yBAEZ,QAAXx2L,GAA+B,SAAXA,IACpBg3L,EAAkB97R,KAAKk7R,eAEZ,SAAXp2L,IACAg3L,EAAkB97R,KAAKk7R,aAAY,IAExB,SAAXp2L,IACAg3L,EAAkB97R,KAAKo7R,cAAa,IAEzB,SAAXt2L,IACAg3L,EAAkB97R,KAAKo7R,gBAEZ,SAAXt2L,IACAg3L,EAAkB97R,KAAKu7R,UAEZ,QAAXz2L,IACAg3L,EAAkB97R,KAAKg7R,eAEZ,QAAXl2L,IACAg3L,EAAkB97R,KAAK+6R,eAGpBe,GAAmB97R,KAAKk7R,gBAEnC5zQ,MAAO,WACH,OAAOonH,EAAU1uI,KAAK+c,aAG1Bi/Q,mBAAoB,SAASv0Q,EAAI0jB,GAC7B,IAAI1/B,EAAQgc,EAAG9iB,MAAM,KAAM,CAAC3E,MAAMmI,OAAO,GAAGzD,MAAMnE,KAAK4qC,KAKvD,OAJAnrC,KAAK0sD,GAAKjhD,EAAMihD,GAChB1sD,KAAKy3R,GAAKhsR,EAAMgsR,GAChBz3R,KAAKovE,GAAK3jE,EAAM2jE,GAChBpvE,KAAK86R,SAASrvR,EAAM0jE,IACbnvE,MAEXs5R,QAAS,WACL,OAAOt5R,KAAKg8R,mBAAmB1C,EAAS99Q,YAE5C+9Q,SAAU,WACN,OAAOv5R,KAAKg8R,mBAAmBzC,EAAU/9Q,YAE7Cg+Q,OAAQ,WACJ,OAAOx5R,KAAKg8R,mBAAmBxC,EAAQh+Q,YAE3Cw9Q,WAAY,WACR,OAAOh5R,KAAKg8R,mBAAmBhD,EAAYx9Q,YAE/C49Q,SAAU,WACN,OAAOp5R,KAAKg8R,mBAAmB5C,EAAU59Q,YAE7C69Q,UAAW,WACP,OAAOr5R,KAAKg8R,mBAAmB3C,EAAW79Q,YAE9Ci+Q,KAAM,WACF,OAAOz5R,KAAKg8R,mBAAmBvC,EAAMj+Q,YAGzCygR,kBAAmB,SAASx0Q,EAAI0jB,GAC5B,OAAO1jB,EAAG9iB,MAAM,KAAM,CAAC3E,MAAMmI,OAAO,GAAGzD,MAAMnE,KAAK4qC,MAEtD4uP,UAAW,WACP,OAAO/5R,KAAKi8R,kBAAkBlC,EAAWv+Q,YAE7Cm+Q,WAAY,WACR,OAAO35R,KAAKi8R,kBAAkBtC,EAAYn+Q,YAE9Cy+Q,cAAe,WACX,OAAOj6R,KAAKi8R,kBAAkBhC,EAAez+Q,YAEjDs+Q,gBAAiB,WACb,OAAO95R,KAAKi8R,kBAAkBnC,EAAiBt+Q,YAEnDo+Q,MAAO,WACH,OAAO55R,KAAKi8R,kBAAkBrC,EAAOp+Q,YAEzCq+Q,OAAQ,WACJ,OAAO75R,KAAKi8R,kBAAkBpC,EAAQr+Q,aAM9CkzH,EAAUwtJ,UAAY,SAASzwR,EAAOwiB,GAClC,GAAoB,iBAATxiB,EAAmB,CAC1B,IAAIysM,EAAW,GACf,IAAK,IAAI93M,KAAKqL,EACNA,EAAMxJ,eAAe7B,KAEjB83M,EAAS93M,GADH,MAANA,EACcqL,EAAMrL,GAGN83R,EAAoBzsR,EAAMrL,KAIpDqL,EAAQysM,EAGZ,OAAOxpE,EAAUjjI,EAAOwiB,IA0Q5BygH,EAAUkwH,OAAS,SAAUu9B,EAAQC,GACjC,SAAKD,IAAWC,IACT1tJ,EAAUytJ,GAAQ/rJ,eAAiB1B,EAAU0tJ,GAAQhsJ,eAGhE1B,EAAUzoI,OAAS,WACf,OAAOyoI,EAAUwtJ,UAAU,CACvBh7R,EAAGo2R,IACHrtQ,EAAGqtQ,IACHp0R,EAAGo0R,OA2IX5oJ,EAAU2tJ,IAAM,SAASF,EAAQC,EAAQnD,GACrCA,EAAqB,IAAXA,EAAgB,EAAKA,GAAU,GAEzC,IAAIqD,EAAO5tJ,EAAUytJ,GAAQxsJ,QACzB4sJ,EAAO7tJ,EAAU0tJ,GAAQzsJ,QAEzBztI,EAAI+2R,EAAS,IAEbtwR,EAAO,CACPzH,GAAKq7R,EAAKr7R,EAAIo7R,EAAKp7R,GAAKgB,EAAKo6R,EAAKp7R,EAClC+oB,GAAKsyQ,EAAKtyQ,EAAIqyQ,EAAKryQ,GAAK/nB,EAAKo6R,EAAKryQ,EAClC/mB,GAAKq5R,EAAKr5R,EAAIo5R,EAAKp5R,GAAKhB,EAAKo6R,EAAKp5R,EAClCD,GAAKs5R,EAAKt5R,EAAIq5R,EAAKr5R,GAAKf,EAAKo6R,EAAKr5R,GAGtC,OAAOyrI,EAAU/lI,IAUrB+lI,EAAU8tJ,YAAc,SAASL,EAAQC,GACrC,IAAI/nL,EAAKq6B,EAAUytJ,GACfj3B,EAAKx2H,EAAU0tJ,GACnB,OAAQj2R,EAAKqC,IAAI6rG,EAAG4gK,eAAe/P,EAAG+P,gBAAgB,MAAS9uQ,EAAKoC,IAAI8rG,EAAG4gK,eAAe/P,EAAG+P,gBAAgB,MAajHvmI,EAAU+tJ,WAAa,SAASN,EAAQC,EAAQM,GAC5C,IACIC,EAAYr8Q,EADZk8Q,EAAc9tJ,EAAU8tJ,YAAYL,EAAQC,GAMhD,OAHA97Q,GAAM,EAENq8Q,EAAaC,EAAmBF,GACxBC,EAAWtqJ,MAAQsqJ,EAAWv4Q,MAClC,IAAK,UACL,IAAK,WACD9D,EAAMk8Q,GAAe,IACrB,MACJ,IAAK,UACDl8Q,EAAMk8Q,GAAe,EACrB,MACJ,IAAK,WACDl8Q,EAAMk8Q,GAAe,EACrB,MAER,OAAOl8Q,GAaXouH,EAAUmuJ,aAAe,SAASC,EAAWC,EAAW5xP,GACpD,IAEIqxP,EACAQ,EAAuB3qJ,EAAOjuH,EAH9B64Q,EAAY,KACZC,EAAY,EAGhB/xP,EAAOA,GAAQ,GACf6xP,EAAwB7xP,EAAK6xP,sBAC7B3qJ,EAAQlnG,EAAKknG,MACbjuH,EAAO+mB,EAAK/mB,KAEZ,IAAK,IAAIhkB,EAAG,EAAGA,EAAI28R,EAAUx4R,OAASnE,IAClCo8R,EAAc9tJ,EAAU8tJ,YAAYM,EAAWC,EAAU38R,IACrDo8R,EAAcU,IACdA,EAAYV,EACZS,EAAYvuJ,EAAUquJ,EAAU38R,KAIxC,OAAIsuI,EAAU+tJ,WAAWK,EAAWG,EAAW,CAAC,MAAQ5qJ,EAAM,KAAOjuH,MAAW44Q,EACrEC,GAGP9xP,EAAK6xP,uBAAsB,EACpBtuJ,EAAUmuJ,aAAaC,EAAU,CAAC,OAAQ,QAAQ3xP,KAQjE,IAAIugG,EAAQgD,EAAUhD,MAAQ,CAC1ByxJ,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,SACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,MACPC,eAAgB,SAChB7oG,KAAM,MACN8oG,WAAY,SACZC,MAAO,SACPC,UAAW,SACXC,YAAa,SACbC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,SAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,SACVC,SAAU,SACVC,cAAe,SACfC,SAAU,SACVC,UAAW,SACXC,SAAU,SACVC,UAAW,SACXC,YAAa,SACbC,eAAgB,SAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,SACTC,WAAY,SACZC,aAAc,SACdC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,SAAU,SACVC,YAAa,SACbC,QAAS,SACTC,QAAS,SACTC,WAAY,SACZC,UAAW,SACXC,YAAa,SACbC,YAAa,SACbC,QAAS,MACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,SACNC,MAAO,SACPC,YAAa,SACbC,KAAM,SACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,SACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,SACfC,aAAc,SACdC,eAAgB,MAChBC,eAAgB,MAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,SACXC,MAAO,SACPC,QAAS,MACTC,OAAQ,SACRC,iBAAkB,SAClBC,WAAY,SACZC,aAAc,SACdC,aAAc,SACdC,eAAgB,SAChBC,gBAAiB,SACjBC,kBAAmB,SACnBC,gBAAiB,SACjBC,gBAAiB,SACjBC,aAAc,SACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,UAAW,SACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,SACRC,cAAe,SACf/vG,IAAK,MACLgwG,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,SACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,SACTC,UAAW,SACXC,UAAW,SACXC,UAAW,SACXC,KAAM,SACNC,YAAa,SACbC,UAAW,SACXxxN,IAAK,SACLyxN,KAAM,SACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,MACPC,WAAY,SACZC,OAAQ,MACRC,YAAa,UAIb5K,EAAW9sJ,EAAU8sJ,SAAW93R,EAAKgoI,GAOzC,SAAShoI,EAAK7C,GACV,IAAIwlS,EAAU,GACd,IAAK,IAAIjmS,KAAKS,EACNA,EAAEoB,eAAe7B,KACjBimS,EAAQxlS,EAAET,IAAMA,GAGxB,OAAOimS,EAIX,SAAShO,EAAWp1R,GAOhB,OANAA,EAAIyxB,WAAWzxB,IAEX4K,MAAM5K,IAAMA,EAAI,GAAKA,EAAI,KACzBA,EAAI,GAGDA,EAIX,SAASq1R,EAAQz2R,EAAG2G,GACZ89R,EAAezkS,KAAMA,EAAI,QAE7B,IAAI0kS,EAAiBC,EAAa3kS,GASlC,OARAA,EAAIu1R,EAAQ5uR,EAAK6uR,EAAQ,EAAG3iQ,WAAW7yB,KAGnC0kS,IACA1kS,EAAIonB,SAASpnB,EAAI2G,EAAK,IAAM,KAI3BrC,EAAK+R,IAAIrW,EAAI2G,GAAO,KACd,EAIH3G,EAAI2G,EAAOksB,WAAWlsB,GAIlC,SAAS2wR,EAAQpmQ,GACb,OAAOqkQ,EAAQ,EAAGC,EAAQ,EAAGtkQ,IAIjC,SAAS0zQ,EAAgB1zQ,GACrB,OAAO9J,SAAS8J,EAAK,IAKzB,SAASuzQ,EAAezkS,GACpB,MAAmB,iBAALA,IAAoC,GAAnBA,EAAEuD,QAAQ,MAAgC,IAAlBsvB,WAAW7yB,GAItE,SAAS2kS,EAAa3kS,GAClB,MAAoB,kBAANA,IAAqC,GAAnBA,EAAEuD,QAAQ,KAI9C,SAAS87M,EAAKzgN,GACV,OAAmB,GAAZA,EAAE8D,OAAc,IAAM9D,EAAI,GAAKA,EAI1C,SAASy3R,EAAoBr2R,GAKzB,OAJIA,GAAK,IACLA,EAAS,IAAJA,EAAW,KAGbA,EAIX,SAASi3R,EAAoBp4R,GACzB,OAAOyF,EAAK45B,MAAsB,IAAhBrL,WAAWh0B,IAAUqc,SAAS,IAGpD,SAAS2pR,EAAoB50O,GACzB,OAAQ20O,EAAgB30O,GAAK,IAGjC,IAAI60O,EAAW,WAGX,IAAIC,EAAc,gBAGdC,EAAa,uBAGbC,EAAW,MAAQD,EAAa,QAAUD,EAAc,IAKxDG,EAAoB,cAAgBD,EAAW,aAAeA,EAAW,aAAeA,EAAW,YACnGE,EAAoB,cAAgBF,EAAW,aAAeA,EAAW,aAAeA,EAAW,aAAeA,EAAW,YAEjI,MAAO,CACHA,SAAU,IAAIn+P,OAAOm+P,GACrBx+R,IAAK,IAAIqgC,OAAO,MAAQo+P,GACxBp+R,KAAM,IAAIggC,OAAO,OAASq+P,GAC1Bp+R,IAAK,IAAI+/B,OAAO,MAAQo+P,GACxBl+R,KAAM,IAAI8/B,OAAO,OAASq+P,GAC1B9M,IAAK,IAAIvxP,OAAO,MAAQo+P,GACxBE,KAAM,IAAIt+P,OAAO,OAASq+P,GAC1BE,KAAM,uDACNC,KAAM,uDACNC,KAAM,uEACNC,KAAM,wEA5BC,GAmCf,SAASrP,EAAevsR,GACpB,QAASk7R,EAASG,SAASx6L,KAAK7gG,GAMpC,SAASssR,EAAoBtsR,GAEzBA,EAAQA,EAAMoN,QAAQm+Q,EAAS,IAAIn+Q,QAAQo+Q,EAAW,IAAIp8Q,cAC1D,IAaI4N,EAbA6+Q,GAAQ,EACZ,GAAI57J,EAAMjgI,GACNA,EAAQigI,EAAMjgI,GACd67R,GAAQ,OAEP,GAAa,eAAT77R,EACL,MAAO,CAAEvK,EAAG,EAAG+oB,EAAG,EAAG/mB,EAAG,EAAGD,EAAG,EAAG6hG,OAAQ,QAQ7C,OAAKr8E,EAAQk+Q,EAASr+R,IAAIgkG,KAAK7gG,IACpB,CAAEvK,EAAGunB,EAAM,GAAIwB,EAAGxB,EAAM,GAAIvlB,EAAGulB,EAAM,KAE3CA,EAAQk+Q,EAASh+R,KAAK2jG,KAAK7gG,IACrB,CAAEvK,EAAGunB,EAAM,GAAIwB,EAAGxB,EAAM,GAAIvlB,EAAGulB,EAAM,GAAIxlB,EAAGwlB,EAAM,KAExDA,EAAQk+Q,EAAS/9R,IAAI0jG,KAAK7gG,IACpB,CAAEqmD,EAAGrpC,EAAM,GAAItmB,EAAGsmB,EAAM,GAAIpoB,EAAGooB,EAAM,KAE3CA,EAAQk+Q,EAAS99R,KAAKyjG,KAAK7gG,IACrB,CAAEqmD,EAAGrpC,EAAM,GAAItmB,EAAGsmB,EAAM,GAAIpoB,EAAGooB,EAAM,GAAIxlB,EAAGwlB,EAAM,KAExDA,EAAQk+Q,EAASzM,IAAI5tL,KAAK7gG,IACpB,CAAEqmD,EAAGrpC,EAAM,GAAItmB,EAAGsmB,EAAM,GAAIvjB,EAAGujB,EAAM,KAE3CA,EAAQk+Q,EAASM,KAAK36L,KAAK7gG,IACrB,CAAEqmD,EAAGrpC,EAAM,GAAItmB,EAAGsmB,EAAM,GAAIvjB,EAAGujB,EAAM,GAAIxlB,EAAGwlB,EAAM,KAExDA,EAAQk+Q,EAASU,KAAK/6L,KAAK7gG,IACrB,CACHvK,EAAGulS,EAAgBh+Q,EAAM,IACzBwB,EAAGw8Q,EAAgBh+Q,EAAM,IACzBvlB,EAAGujS,EAAgBh+Q,EAAM,IACzBxlB,EAAGyjS,EAAoBj+Q,EAAM,IAC7Bq8E,OAAQwiM,EAAQ,OAAS,SAG5B7+Q,EAAQk+Q,EAASQ,KAAK76L,KAAK7gG,IACrB,CACHvK,EAAGulS,EAAgBh+Q,EAAM,IACzBwB,EAAGw8Q,EAAgBh+Q,EAAM,IACzBvlB,EAAGujS,EAAgBh+Q,EAAM,IACzBq8E,OAAQwiM,EAAQ,OAAS,QAG5B7+Q,EAAQk+Q,EAASS,KAAK96L,KAAK7gG,IACrB,CACHvK,EAAGulS,EAAgBh+Q,EAAM,GAAK,GAAKA,EAAM,IACzCwB,EAAGw8Q,EAAgBh+Q,EAAM,GAAK,GAAKA,EAAM,IACzCvlB,EAAGujS,EAAgBh+Q,EAAM,GAAK,GAAKA,EAAM,IACzCxlB,EAAGyjS,EAAoBj+Q,EAAM,GAAK,GAAKA,EAAM,IAC7Cq8E,OAAQwiM,EAAQ,OAAS,WAG5B7+Q,EAAQk+Q,EAASO,KAAK56L,KAAK7gG,KACrB,CACHvK,EAAGulS,EAAgBh+Q,EAAM,GAAK,GAAKA,EAAM,IACzCwB,EAAGw8Q,EAAgBh+Q,EAAM,GAAK,GAAKA,EAAM,IACzCvlB,EAAGujS,EAAgBh+Q,EAAM,GAAK,GAAKA,EAAM,IACzCq8E,OAAQwiM,EAAQ,OAAS,OAOrC,SAAS1K,EAAmB2K,GAGxB,IAAIl1J,EAAOjuH,EAUX,OATAmjR,EAAQA,GAAS,CAAC,MAAQ,KAAM,KAAO,SACvCl1J,GAASk1J,EAAMl1J,OAAS,MAAM60C,cAC9B9iK,GAAQmjR,EAAMnjR,MAAQ,SAASvJ,cACjB,OAAVw3H,GAA4B,QAAVA,IAClBA,EAAQ,MAEC,UAATjuH,GAA6B,UAATA,IACpBA,EAAO,SAEJ,CAAC,MAAQiuH,EAAO,KAAOjuH,GAIGxkB,EAAOD,QACxCC,EAAOD,QAAU+uI,GAIjB,aAAoB,OAAOA,GAAW,0CA/pC1C,CAsqCGvoI,O,oCChqCH,IAAI4Q,EAAM,EAAQ,QAEdmvD,EAAW,EAAQ,QACnB8kB,EAAuB,EAAQ,QAC/BC,EAAqB,EAAQ,QAC7BC,EAA0B,EAAQ,QAClCC,EAAqB,EAAQ,QAC7BC,EAA0B,EAAQ,QAClCG,EAAgB,EAAQ,QAAwBA,cAEhDjgF,EAAa,EAAQ,QAEzB,SAAS0H,EAAe6mD,EAASC,EAAU4D,EAAcvV,GACrD,SAAS3U,EAAOjrB,EAAMzE,GAClB,OAAO/M,EAAIy8B,OAAOqmB,EAASC,EAAUxuD,EAAYid,EAAMzE,GAG3D,IAAIoK,EAAMyzP,EAAqB9nN,EAASC,EAAU3R,EAAQ3U,GAC1D,GAAItlB,EAAJ,CAKAslB,EAAO,aACPA,EAAO,OAAQtlB,EAAMq9D,EAAgB,gBAAkB,SACvD/3C,EAAO,QACPA,EAAO,aACiB,UAArBsmB,EAAS8xB,SAAqBp4C,EAAO,iBAErC0yB,EAAS70C,SAASyoC,KACjBmxB,EAAmBpxB,EAASC,EAAU4D,EAAcvV,EAAQ3U,GAC5D03C,EAAwBrxB,EAASC,EAAUtmB,GAC3CA,EAAO,gBAGR0yB,EAASC,WAAWrM,IACnBkxB,EAAqBnxB,EAASC,EAAU4D,EAAcvV,EAAQ3U,EAAQ,CAACg4C,UAAU,IAGlFtlB,EAAShvC,QAAQ4iC,KAChBtmB,EAAO,gBACP23C,EAAmBtxB,EAASC,EAAU3R,EAAQ3U,IAGlD,IAAIi4C,EAAc,IAEfvlB,EAASC,WAAWrM,IAAaoM,EAAShvC,QAAQ4iC,MACjDtmB,EAAO,cACPA,EAAO,uBACPi4C,EAAYpoF,KAAK,WAGrBmwC,EAAO,QAEc,SAAlBsmB,EAAS7nD,OACRm5E,EAAwBvxB,EAASC,EAAU4D,EAAclqB,GACrD0yB,EAAS70C,SAASyoC,IAAWoxB,EAAwBrxB,EAASC,EAAUtmB,IAG3D,WAAlBsmB,EAAS7nD,MAAuC,WAAlB6nD,EAAS7nD,MACtCw5E,EAAYpoF,KAAK,SAErBmwC,EAAO,UAAWi4C,EAAYjoF,KAAK,MAAQ,UAE3CuT,EAAIi1E,6BAA6BlyB,EAAUtmB,QA7CvCsmB,EAASvnD,SAAU,EAgD3B,SAASovQ,EAAqB9nN,EAASC,EAAU3R,EAAQ3U,GACrD,IAEItlB,EAFAhtB,EAAIsyC,EAAO,KACX3wB,EAAQ2wB,EAAO,SAGnB,GAAGtyC,EACI2hB,EACCqL,EAAM/nB,KAAKoC,IAAIrH,EAAEqD,OAAQse,EAAMte,SAE/B2pB,EAAMhtB,EAAEqD,OACRivC,EAAO,UACPA,EAAO,eAER,CACH,IAAI3wB,EAAO,OAAO,EAClBqL,EAAM4rC,EAASj3C,MAAMte,OACrBivC,EAAO,MACPA,EAAO,MAIX,OADAsmB,EAASjiD,QAAUqW,EACZA,EAGXtuB,EAAOD,QAAU,CACbgiR,qBAAsBA,EACtB3uQ,eAAgBA,I,kCCjGpB,SAASymM,EAAO1xM,EAAKkmB,GAEpB,GAAmB,kBAARlmB,EAAkB,MAAO,CAACA,GAErC,IAAIg5G,EAAM,CAACh5G,GAES,kBAATkmB,GAAqB9pB,MAAM4J,QAAQkgB,GAC7CA,EAAO,CAACu5Q,SAAUv5Q,GAETA,IAAMA,EAAO,IAEvB,IAAIu5Q,EAAWv5Q,EAAKu5Q,SAAYrjS,MAAM4J,QAAQkgB,EAAKu5Q,UAAYv5Q,EAAKu5Q,SAAW,CAACv5Q,EAAKu5Q,UAAa,CAAC,KAAM,KAAM,MAE3GC,EAASx5Q,EAAKw5Q,QAAU,MAExBC,IAASz5Q,EAAKy5Q,KAElBF,EAAShwO,SAAQ,SAAUmwO,GAE1B,IAAIC,EAAM,IAAIj/P,OAAO,CAAC,KAAMg/P,EAAQ,GAAI,OAAQA,EAAQ,GAAI,KAAMA,EAAQ,GAAI,OAAQA,EAAQ,IAAInkS,KAAK,KAEnGkvF,EAAM,GAEV,SAASm1M,EAAah8J,EAAOlmG,EAAK59B,GAEjC,IAAI+/R,EAAQ/mL,EAAI19G,KAAKwoI,EAAMnnI,MAAMijS,EAAQ,GAAGpjS,QAASojS,EAAQ,GAAGpjS,SAAW,EAI3E,OAFAmuF,EAAIrvF,KAAKykS,GAEFL,EAASK,EAAQL,EAGzB1mL,EAAIvpD,SAAQ,SAAUzvD,EAAK3H,GAC1B,IAAI2nS,EAGA9kS,EAAI,EACR,MAAO8E,GAAOggS,EAGb,GAFAA,EAAUhgS,EACVA,EAAMA,EAAI8Q,QAAQ+uR,EAAKC,GACnB5kS,IAAM,IAAM,MAAMuB,MAAM,4DAG7Bu8G,EAAI3gH,GAAK2H,KAIV2qF,EAAMA,EAAI3iC,UACVgxD,EAAMA,EAAI/kE,KAAI,SAAUj0C,GAIvB,OAHA2qF,EAAIl7B,SAAQ,SAAUprD,GACrBrE,EAAMA,EAAI8Q,QAAQ,IAAI8vB,OAAO,MAAQ8+P,EAASr7R,EAAK,KAAOq7R,EAAS,IAAK,KAAME,EAAQ,GAAK,KAAOA,EAAQ,OAEpG5/R,QAIT,IAAI8lB,EAAK,IAAI8a,OAAO,KAAO8+P,EAAS,aAAoBA,GAGxD,SAASn1F,EAAMvqM,EAAKo4F,EAAMsnM,GACzB,IAAch/Q,EAAVs4F,EAAM,GAEN99G,EAAI,EACR,MAAOwlB,EAAQoF,EAAGy+E,KAAKvkG,GAAM,CAC5B,GAAI9E,IAAM,IAAM,MAAMuB,MAAM,sCAE5Bu8G,EAAI19G,KAAK0E,EAAIrD,MAAM,EAAG+jB,EAAM1lB,QAE5Bg+G,EAAI19G,KAAKivM,EAAKnyG,EAAK13E,EAAM,IAAK03E,IAE9Bp4F,EAAMA,EAAIrD,MAAM+jB,EAAM1lB,MAAQ0lB,EAAM,GAAGlkB,QAKxC,OAFAw8G,EAAI19G,KAAK0E,GAEFg5G,EAGR,OAAO2mL,EAAO3mL,EAAMuxF,EAAKvxF,EAAI,GAAIA,GAGlC,SAASijE,EAAW/3H,EAAKh+B,GACxB,GAAIA,GAAQA,EAAKy5Q,KAAM,CACtB,IAEkBK,EAFdN,EAASx5Q,GAAQA,EAAKw5Q,QAAU,MAEhC1/R,EAAMkkD,EAAI,GAGd,IAAKlkD,EAAK,MAAO,GAGjB,IAAI8lB,EAAK,IAAI8a,OAAO,KAAO8+P,EAAS,aAAoBA,GAEpDxkS,EAAI,EACR,MAAO8E,GAAOggS,EAAS,CACtB,GAAI9kS,IAAM,IAAM,MAAMuB,MAAM,0BAA4BynD,GACxD87O,EAAUhgS,EACVA,EAAMA,EAAI8Q,QAAQgV,EAAIm6Q,GAGvB,OAAOjgS,EAGR,OAAOkkD,EAAIk1C,QAAO,SAASr4D,EAAGxiC,EAAM2hS,GAInC,OAHI9jS,MAAM4J,QAAQk6R,KACjBA,EAAOA,EAAK9mM,OAAOr4D,EAAG,KAEhBxiC,EAAO2hS,IACZ,IAEH,SAASD,EAAWv/Q,EAAOkd,GAC1B,GAAgB,MAAZsmB,EAAItmB,GAAc,MAAMnhC,MAAM,aAAemhC,EAAM,gBACvD,OAAOsmB,EAAItmB,IAIb,SAASuiQ,EAAaj8O,EAAKh+B,GAC1B,OAAI9pB,MAAM4J,QAAQk+C,GACV+3H,EAAU/3H,EAAKh+B,GAGfwrL,EAAMxtJ,EAAKh+B,GAIpBi6Q,EAAYzuF,MAAQA,EACpByuF,EAAYlkH,UAAYA,EAExBpkL,EAAOD,QAAUuoS,G,oCC5HjB,IAAI9vK,EAAY,EAAQ,QACpB1rC,EAAY,EAAQ,QACpBjpE,EAAa,EAAQ,QAAoBA,WACzCC,EAAc,EAAQ,QAA6BA,YAGvD9jB,EAAOD,QAAU+jB,EAAY,CASzBykR,cAAe,CACXtkR,QAAS,aACT8V,OAAQ,CAAC,WAAY,UAErB7V,KAAM,UAGVy0G,UAAW,CACP10G,QAAS,SAETtb,IAAK,EACLub,KAAM,IAGVskR,QAAS,CACLvkR,QAAS,aACT8V,OAAQ,CAAC,WAAY,UAErB7V,KAAM,YAGVoK,IAAK,CACDrK,QAAS,SACTtb,IAAK,EACLub,KAAM,GAIVlV,EAAG,CACCiV,QAAS,SACTC,KAAM,KACNvb,KAAM,EACNC,IAAK,GAITu5F,QAAS,CACLl+E,QAAS,aACT8V,OAAQ,CAAC,OAAQ,SAAU,SAC3B7V,KAAM,QAIVukR,KAAM,CACFxkR,QAAS,SAETtb,IAAK,EACLub,KAAM,IAGVvP,EAAG,CACCsP,QAAS,SAETC,KAAM,GACNvb,KAAM,EACNC,IAAK,GAGTw5F,QAAS,CACLn+E,QAAS,aACT8V,OAAQ,CAAC,MAAO,SAAU,UAE1B7V,KAAM,UAGVwkR,KAAM,CACFzkR,QAAS,SAETtb,IAAK,EACLub,KAAM,IAIVykR,aAAcnwK,EAAUm8G,UACxBi0D,aAAcpwK,EAAU7zE,UAGxB+mD,YAAa8sB,EAAUm8G,UACvB/oI,YAAa,CACT3nF,QAAS,SAETtb,IAAK,EACLub,KAAM,GAGVunF,QAAS,CACLxnF,QAAS,QAETC,KAAM,iBAIVvL,SAAU6/G,EAAU7/G,SACpBC,OAAQ4/G,EAAU5/G,OAClBwgC,MAAOo/E,EAAUp/E,MACjBtD,MAAO0iF,EAAU1iF,MACjBc,SAAU4hF,EAAU5hF,SACpBC,SAAU2hF,EAAU3hF,SACpBt/B,MAAOsM,EAAW,GAAI20G,EAAUjhH,MAAO,CAAC2M,KAAM,KAC9C8rC,QAASwoE,EAAUxoE,QACnBsC,UAAWkmE,EAAUlmE,UACrBD,UAAWmmE,EAAUnmE,UACrBxN,eAAgB2zE,EAAU3zE,eAC1BxK,SAAUyyC,EAAU,IAGpB36B,UAAWqmE,EAAUrmE,UACrBxU,WAAY66E,EAAU76E,WACtBmN,gBAAiB0tE,EAAU1tE,gBAC3B/J,WAAYy3E,EAAUz3E,WACtBC,eAAgBw3E,EAAUx3E,eAC1BC,WAAYu3E,EAAUv3E,WACtBC,eAAgBs3E,EAAUt3E,eAC1Bc,kBAAmBw2E,EAAUx2E,kBAC7BvF,eAAgB+7E,EAAU/7E,eAC1BgC,aAAc+5E,EAAU/5E,aACxB0F,MAAO,CACHt0C,KAAM,CACFoU,QAAS,UAIbpC,KAAMirE,EAAU,IAGhBloC,KAAM,CACF3gC,QAAS,aACT8V,OAAQ,CAAC,QAAS,MAAO,UAEzB7V,KAAM,QAKd+B,YAAa,CACTk+B,MAAO,CACHlgC,QAAS,UAIb2wN,UAAW9nJ,EAAU,IAGrB+7M,UAAW,CACP5kR,QAAS,aACT8V,OAAQ,CAAC,QAAS,MAAO,UAEzB7V,KAAM,SAIf,YAAa,c,oCCtKhB,IAAI/M,EAAM,EAAQ,QAEdmvD,EAAW,EAAQ,QACnB8kB,EAAuB,EAAQ,QAC/BC,EAAqB,EAAQ,QAC7BE,EAAqB,EAAQ,QAC7BC,EAA0B,EAAQ,QAClC9/E,EAAa,EAAQ,QAgDzB,SAASo9R,EAAqB7uO,EAASC,EAAUtmB,GAC7C,IAAIq7C,EAAMr7C,EAAO,QAAU,GACvBw7C,EAAMx7C,EAAO,QAAU,GACvBtlB,EAAM/nB,KAAKoC,IAAIsmF,EAAItqF,OAAQyqF,EAAIzqF,QAGnC,OAFAu1D,EAASjiD,QAAUqW,EAEZA,EApDXtuB,EAAOD,QAAU,SAAwBk6D,EAASC,EAAU4D,EAAcvV,GACtE,SAAS3U,EAAOjrB,EAAMzE,GAClB,OAAO/M,EAAIy8B,OAAOqmB,EAASC,EAAUxuD,EAAYid,EAAMzE,GAG3D,IAAIoK,EAAMw6Q,EAAqB7uO,EAASC,EAAUtmB,GAClD,GAAItlB,EAAJ,CAiBA,GAZAslB,EAAO,QACPA,EAAO,gBACPA,EAAO,aACPA,EAAO,iBACPA,EAAO,QACPA,EAAO,SAEJ0yB,EAAS70C,SAASyoC,KACjBmxB,EAAmBpxB,EAASC,EAAU4D,EAAcvV,EAAQ3U,EAAQ,CAAC45N,QAAQ,IAC7E55N,EAAO,gBAGR0yB,EAASC,WAAWrM,GAAW,CAC9BkxB,EAAqBnxB,EAASC,EAAU4D,EAAcvV,EAAQ3U,EAAQ,CAAC85M,QAAQ,IAG/E,IAAI10N,EAASkhC,EAASlhC,OACD,WAAlBA,EAAO2zD,SACHx1E,EAAIs7D,oBAAoBz5C,EAAOxU,QAAOwU,EAAOxU,KAAOwU,EAAOxU,KAAK,IAChErN,EAAIs7D,oBAAoBz5C,EAAOntB,SAAQmtB,EAAOntB,MAAQmtB,EAAOntB,MAAM,KAI3Ey6D,EAAShvC,QAAQ4iC,IAChBqxB,EAAmBtxB,EAASC,EAAU3R,EAAQ3U,EAAQ,CAAC65M,UAAU,IAGrE75M,EAAO,QACc,SAAlBsmB,EAAS7nD,MACRm5E,EAAwBvxB,EAASC,EAAU4D,EAAclqB,GAG7Dz8B,EAAIi1E,6BAA6BlyB,EAAUtmB,QApCvCsmB,EAASvnD,SAAU,I,kCChB3B,IAAIhD,EAAY,EAAQ,QACpBm/H,EAAY,EAAQ,QACpBr8D,EAAsB,EAAQ,QAAaA,oBAE/C1yE,EAAQ+0K,aAAe,SAASN,EAAqB/yK,EAAO2yK,GACxD,GAAoB,kBAAV3yK,GACN,GAAGA,IAAU+yK,EAAoB2gD,QAAS,OAAO1zN,OAC9C,IAAoB,kBAAVA,IAAgC,IAAVA,KAC/B+yK,EAAoBohH,OAAQ,OAAOxzQ,OAAO3gB,GAGlD,YAAyB2hB,IAAjBgxJ,EACNA,EACAI,EAAoBtwJ,MAG1BnkB,EAAQg1K,aAAe,SAASP,EAAqB/yK,EAAO2yK,GACxD,GAAGzkK,EAAUlO,GAAQ,CACjBA,GAASA,EAET,IAAIkH,EAAM6rK,EAAoB7rK,IAC1BC,EAAM4rK,EAAoB5rK,IAC1BmgS,OAAyB3lR,IAARza,GAAqBlH,EAAQkH,QACnCya,IAARxa,GAAqBnH,EAAQmH,EAEpC,IAAImgS,EAAe,OAAOtnS,EAG9B,YAAyB2hB,IAAjBgxJ,EACNA,EACAI,EAAoBtwJ,MAG1BnkB,EAAQi1K,YAAc,SAASR,EAAqB/yK,EAAO2yK,GACvD,OAAGtlC,EAAUrtI,GAAO+Y,UAAkB/Y,OAEb2hB,IAAjBgxJ,EACNA,EACAI,EAAoBtwJ,MAG1BnkB,EAAQipS,iBAAmB,SAASx0H,EAAqB/yK,EAAO2yK,GAG5D,OAFGI,EAAoBO,eAActzK,GAASA,IAEI,IAA/C+yK,EAAoBz6I,OAAOv0B,QAAQ/D,GAAsBA,OAEnC2hB,IAAjBgxJ,EACNA,EACAI,EAAoBtwJ,MAG1BnkB,EAAQ40K,SAAW,SAASs0H,EAAe9lS,GACvC,IAAI1B,EAGJ,OAFI8C,MAAM4J,QAAQ86R,GACV9lS,EAAQ8lS,EAActkS,SAAQlD,EAAQwnS,EAAc9lS,IAD1B1B,EAAQwnS,EAEnCxnS,GAGX1B,EAAQmpS,aAAe,SAAS95R,EAAOypB,GACnC,IAAIva,EACC,EAAIua,EAAGswQ,IAAOtwQ,EAAGswQ,IACjB12N,EAAoBrjE,EAAM4pB,OAAOC,KAAKlX,OACvC,EADgD3S,EAAM4pB,OAAOC,KAAKlX,MAGtE,OAAOzD,I,kCCxEXte,EAAOD,QAAU,EAAQ,OAAR,CAAsB,Y,oCCAvC,IAAIukL,EAAW,EAAQ,QAEvBtkL,EAAOD,QAAU,SAAU0B,GAC1B,IAAK6iL,EAAS7iL,GAAQ,MAAM,IAAIq1D,UAAUr1D,EAAQ,qBAClD,OAAOA,I,kCCIR,IAAI44B,EAAW,EAAQ,QACnBljB,EAAM,EAAQ,QAEdiyR,EAAiB,EAAQ,QACzB/wG,EAAuB,EAAQ,QAC/BgxG,EAAkB,EAAQ,QAC1BC,EAAsB,EAAQ,QAC9Bt1E,EAAmB,EAAQ,QAAiBA,iBAG5Cu1E,EAAiB,EAAQ,QACzBC,EAAiB,EAAQ,QAEzBC,EAAY,EAAQ,QAEpB5lR,EAAa1M,EAAI0M,WACjB+H,EAAgBzU,EAAIyU,cACpBo2C,EAAgB7qD,EAAI6qD,cACpByQ,EAAsBt7D,EAAIs7D,oBAC1B7oB,EAAiBzyC,EAAIyyC,eACrBurO,EAAgBh+Q,EAAIg+Q,cAEpBuU,EAAiB,gBACjBC,EAAqB,mBACrBC,EAAqB,oBACrBC,EAAa,cACbC,EAAmB,CAACJ,EAAgBC,EAAoBC,EAAoBC,GAuRhF,SAASE,EAAerjR,EAAY+hB,GAChC,IAAIjoC,EAAGuB,EAAKwvF,EAAS7lF,EAGjBs+R,EAAkBtjR,EAAWwqJ,iBACjC,GAAG84H,EAAiB,CAChB,IAAItpR,EACJ,IAAIlgB,EAAI,EAAGA,EAAIwpS,EAAgBrlS,OAAQnE,IAAK,CAExC,GADA+wF,EAAUy4M,EAAgBxpS,GACvB+wF,EAAQ32B,WAAa22B,EAAQ32B,UAAU/2D,KAAK4kC,GAAO,CAGlD,GAAG8oD,EAAQz2B,oBAAqB,OAAOy2B,EAAQz2B,qBAG3Cp6C,GAAO6wE,EAAQjpD,mBAAkB5nB,EAAM6wE,EAAQjpD,kBAKvD,IAAI2hQ,EAAgB14M,EAAQx2B,wBAC5B,GAAGkvO,GAAiBxhQ,KAAQwhQ,EAAe,OAAOA,EAAcxhQ,GAEpE,GAAG/nB,EAAK,OAAOA,EAInB,IAAIhgB,EAAUgmB,EAAWyqJ,SACzB,GAAGzwK,EACC,IAAIF,EAAI,EAAGA,EAAIE,EAAQiE,OAAQnE,IAE3B,GADAkL,EAAahL,EAAQF,GAAG8nC,iBACrB58B,GAAc+8B,KAAQ/8B,EACrB,OAAOA,EAAW+8B,GAa9B,IAAI1mC,KAAOs4B,EAAS0+J,mBAAoB,CAEpC,GADAxnG,EAAUl3D,EAAS0+J,mBAAmBh3L,GAClB,eAAjBwvF,EAAQxwF,MAAuD,IAA9B0nC,EAAKjjC,QAAQ,aAC7C,OAAO+rF,EAAQjpD,iBAAiBG,GAC7B,IAAI8oD,EAAQppD,QAAWM,IAAS8oD,EAAQxwF,KAC3C,OAAOwwF,EAAQjpD,iBAIvB,OAAGG,KAAQ4vJ,EAA6BA,EAAqB5vJ,GAIjD,eAATA,GAAkC,gBAATA,EACjB+gQ,EAAe/gQ,GAEnB+gQ,EAAejhP,OAAO9f,KAAS,EAG1C,SAASyhQ,EAAqBC,EAAWz4Q,EAAOlxB,GAC5C,IAAI2pS,EAAW,OAAO,EAEtB,GAAGA,EAAUp6H,iBAET,GAAGo3G,EAAQz1P,EAAMlxB,IAAKA,SACjB,GAAGA,EAAIkxB,EAAM/sB,OAAQ,OAAO,EAMrC,KAAMnE,EAAIkxB,EAAM/sB,OAAQnE,IAAK,CACzB,IAAI4pS,EAAeD,EAAUz4Q,EAAMlxB,IACnC,IAAGwhE,EAAcooO,GACZ,MAEL,GAHgCD,EAAYC,EAGzC5pS,IAAMkxB,EAAM/sB,OAAS,EAAG,MAE3B,GAAGwlS,EAAUp6H,kBAET,GADAvvK,KACI2mR,EAAQz1P,EAAMlxB,IAAK,OAAO,OAC3B,GAAyB,eAAtB2pS,EAAUlmR,QAA0B,CAC1CzjB,IACA,IAAI2C,EAAQuuB,EAAMlxB,GAClB,IAAI2mR,EAAQhkR,GAAQ,OAAO,EAE3B,IAAIy1H,EAAQuxK,EAAUvxK,MACtB,GAAGr0H,MAAM4J,QAAQyqH,GAAQ,CACrB,GAAGz1H,GAASy1H,EAAMj0H,OAAQ,OAAO,EACjC,GAA4B,IAAzBwlS,EAAU31J,WAAkB,CAE3B,GADAh0I,IACGkxB,EAAM/sB,SAAWnE,EAAG,OAAO2pS,EAC9B,IAAI30R,EAASkc,EAAMlxB,GACnB,IAAI2mR,EAAQ3xQ,GAAS,OAAO,EAC5B20R,EAAYvxK,EAAMz1H,GAAOqS,QACtB20R,EAAYvxK,EAAMz1H,QAEzBgnS,EAAYvxK,GAKxB,OAAOuxK,EAKX,SAAShjB,EAAQh0P,GACb,OAAOA,IAAQ5sB,KAAK45B,MAAMhN,IAAQA,GAAO,EAG7C,SAASk3Q,EAAmBv2R,GACxB,IAAIy9E,EAASt+E,EAED,SAATa,GACCy9E,EAAU,CAAE7lF,WAAY69R,GACxBt2R,EAAiB,KAEjBs+E,EAAUl3D,EAAS35B,QAAQoT,GAAMy9E,QACjCt+E,EAAiBs+E,EAAQt+E,gBAG7B,IAAIvH,EAAa,CAGjB,KAAkB,MAEd4+R,EAAqB1+Q,EAAc,GAAIw9Q,GACvCmB,EAAuB3+Q,EAAc,GAAI2lE,EAAQ7lF,YAGrD3L,EAAQ2rN,MAAM6+E,GAAsB,SAAS5hR,EAAMouN,EAAUhyN,EAAO0tH,EAAO+3J,GACvE5gP,EAAe0gP,EAAoBE,GAAgB/7R,SAAI2U,QAE3CA,IAATuF,GAAoBihC,EAAe2gP,EAAsBC,GAAgB/7R,SAAI2U,MAIpFwI,EAAclgB,EAAY4+R,GAGvBjwQ,EAAS4U,QAAQn7B,EAAM,qBACfpI,EAAWN,QAElBivB,EAAS4U,QAAQn7B,EAAM,uBAChBpI,EAAW4a,kBACX5a,EAAW++R,aAEnBpwQ,EAAS4U,QAAQn7B,EAAM,oBACfpI,EAAW2a,iBACX3a,EAAWuvD,YAElBs2B,EAAQ/9E,qBACD9H,EAAW0tB,eAItBxN,EAAclgB,EAAY6+R,GAGvBt3R,EAAevH,YACdkgB,EAAclgB,EAAYuH,EAAevH,YAI7CA,EAAWoI,KAAOA,EAElB,IAAI4M,EAAM,CACNvN,KAAMo+E,EAAQp+E,MAAQ,GACtBD,WAAYq+E,EAAQr+E,YAAc,GAClC4jB,WAAY81E,QAAQrb,EAAQz6D,YAC5BhjB,KAAMA,EACNpI,WAAYg/R,EAAiBh/R,IAIjC,GAAG6lF,EAAQjpD,iBAAkB,CACzB,IAAIA,EAAmB,GAEvB1c,EAAc0c,EAAkBipD,EAAQjpD,kBACxC5nB,EAAI4nB,iBAAmBoiQ,EAAiBpiQ,GAY5C,OARIipD,EAAQz6D,YACR/2B,EAAQ2rN,MAAMhrM,GAAK,SAASiI,GACrB5oB,EAAQ4qS,YAAYhiR,IAAS,SAAUA,UAC/BA,EAAKokE,QAKjBrsE,EAGX,SAASkqR,IACL,IACI7oS,EAAKwvF,EADLjpD,EAAmB,GAOvB,IAAIvmC,KAHJ6pB,EAAc0c,EAAkB+vJ,GAGrBh+J,EAASo+J,iBAGhB,GAFAlnG,EAAUl3D,EAASo+J,iBAAiB12L,GAEhCwvF,EAAQjpD,iBAEZ,GAAG/jC,MAAM4J,QAAQojF,EAAQ5oE,MACrB,IAAI,IAAInoB,EAAI,EAAGA,EAAI+wF,EAAQ5oE,KAAKhkB,OAAQnE,IACpCqqS,EAAqBviQ,EAAkBipD,EAASA,EAAQ5oE,KAAKnoB,QAE9D,CACH,IAAIqiG,EAAwB,YAAjBtR,EAAQ5oE,KAAqB4oE,EAAQxwF,KAAOwwF,EAAQ5oE,KAC/DkiR,EAAqBviQ,EAAkBipD,EAASsR,GAQxD,IAAI9gG,KAHJumC,EAAmBwiQ,EAAuBxiQ,GAG/BjO,EAAS0+J,mBAAoB,CACpCxnG,EAAUl3D,EAAS0+J,mBAAmBh3L,GACtC,IAAIomC,EAASopD,EAAQppD,OAErB,GAAGA,IAAWA,EAAOC,UAAYD,EAAOogB,QAAS,CAW7C,IAAIngB,EAAWD,EAAOC,SACtB,GAAGA,GAAYA,EAAS5gB,QAAU4gB,EAAS3gB,MACvC,IAAI,IAAIsjR,KAAQ3iQ,EAAS5gB,aACd8gB,EAAiB7gB,MAAMsjR,OAGf,eAAjBx5M,EAAQxwF,KACd6qB,EAAc0c,EAAkBipD,EAAQjpD,kBAClCipD,EAAQjpD,kBAEd0iQ,EAAY1iQ,EAAkBipD,EAAQjpD,iBAAkBipD,EAAQxwF,MAIxE,MAAO,CACHunC,iBAAkBoiQ,EAAiBpiQ,IAI3C,SAAS2iQ,EAAuBn3R,GAC5B,IAAIy9E,EAAUl3D,EAASs/J,mBAAmB7lL,GACtCpI,EAAakgB,EAAc,GAAI2lE,EAAQ7lF,YAa3C,OAVAxK,OAAOunD,KAAKpuB,EAAS0+J,oBAAoBnhI,SAAQ,SAASryD,GACtD,IAAIgsF,EAAUl3D,EAAS0+J,mBAAmBxzL,GAEvCgsF,EAAQppD,QAAUopD,EAAQppD,OAAO5hB,YAAcgrE,EAAQppD,OAAO5hB,WAAWzS,IACxE5S,OAAOunD,KAAK8oC,EAAQppD,OAAO5hB,WAAWzS,IAAO8jD,SAAQ,SAAStyD,GAC1D0lS,EAAYt/R,EAAY6lF,EAAQppD,OAAO5hB,WAAWzS,GAAMxO,GAAIA,SAKjE,CACHoG,WAAYg/R,EAAiBh/R,IAIrC,SAASw/R,IACL,IAAInmR,EAAQ,CACRujN,OAAQ18M,EAAc,GAAIy9Q,IAK9B,OAFAqB,EAAiB3lR,GAEVA,EAAMujN,OAGjB,SAASoiE,EAAiB3lR,GAKtB,OAJAomR,EAAoBpmR,GACpBqmR,EAAsBrmR,GACtBq/J,EAAUr/J,GAEHA,EAGX,SAASomR,EAAoBpmR,GACzB,SAASsmR,EAAYt0D,GACjB,MAAO,CACH9yN,QAAS,SAGTK,SAAU,QAIlB,SAAS4kD,EAASvgD,EAAMouN,EAAUhyN,GAC3BhlB,EAAQ4qS,YAAYhiR,GACC,eAAjBA,EAAK1E,SAEJ0E,EAAK2iR,KAAO,OAEZvmR,EAAMgyN,EAAW,OAASs0D,EAAYt0D,KACf,IAAjBpuN,EAAK3D,UAEXD,EAAMgyN,EAAW,OAASs0D,EAAYt0D,IAEpC/0K,EAAcr5C,KAEpBA,EAAK2iR,KAAO,UAIpBvrS,EAAQ2rN,MAAM3mM,EAAOmkD,GAGzB,SAASkiO,EAAsBrmR,GAC3B,SAASmkD,EAASvgD,EAAMouN,EAAUhyN,GAC9B,GAAI4D,EAAJ,CAEA,IAAI4iR,EAAW5iR,EAAKghR,GAEhB4B,WAEG5iR,EAAKghR,GAEZ5kR,EAAMgyN,GAAY,CAAEn+G,MAAO,IAC3B7zG,EAAMgyN,GAAUn+G,MAAM2yK,GAAY5iR,EAClC5D,EAAMgyN,GAAUu0D,KAAO,WAG3BvrS,EAAQ2rN,MAAM3mM,EAAOmkD,GAKzB,SAASk7G,EAAUr/J,GACf,SAAS3e,EAAKuiB,GACV,IAAI,IAAIpjB,KAAKojB,EACT,GAAGq5C,EAAcr5C,EAAKpjB,IAClBa,EAAKuiB,EAAKpjB,SACP,GAAGhB,MAAM4J,QAAQwa,EAAKpjB,IACzB,IAAI,IAAI/E,EAAI,EAAGA,EAAImoB,EAAKpjB,GAAGZ,OAAQnE,IAC/B4F,EAAKuiB,EAAKpjB,GAAG/E,SAIdmoB,EAAKpjB,aAAcwjC,SAClBpgB,EAAKpjB,GAAKojB,EAAKpjB,GAAG4X,YAMlC/W,EAAK2e,GAGT,SAAS+lR,EAAuBxiQ,GAQ5B,OAPAzkB,EAAWykB,EAAkB,CACzBynC,WAAYy5N,EAAez5N,WAC3BE,YAAau5N,EAAev5N,cAGhCpsD,EAAWykB,EAAkBkhQ,EAAejhP,QAErCjgB,EAGX,SAASuiQ,EAAqBviQ,EAAkBipD,EAASsR,GACrD,IAAIl5C,EAAKC,EAAethB,EAAkBu6D,GACtC99E,EAAQ6G,EAAc,GAAI2lE,EAAQjpD,kBAEtCvjB,EAAM2kR,IAAkB,EACxB//O,EAAGl7C,IAAIsW,GAGX,SAASimR,EAAYpnR,EAAW4nR,EAAU3oM,GACtC,IAAIl5C,EAAKC,EAAehmC,EAAWi/E,GAEnCl5C,EAAGl7C,IAAImd,EAAc+9B,EAAGtoD,OAAS,GAAImqS,IA7pBzCzrS,EAAQ2pS,eAAiBA,EACzB3pS,EAAQ4pS,mBAAqBA,EAC7B5pS,EAAQ8pS,WAAaA,EACrB9pS,EAAQ+pS,iBAAmBA,EAa3B/pS,EAAQsB,IAAM,WACV,IAAImmD,EAAS,GAEbntB,EAASy+J,SAASvwL,OAAO,QAAQqvD,SAAQ,SAAS9jD,GAC9C0zC,EAAO1zC,GAAQu2R,EAAmBv2R,MAGtC,IAAIyS,EAAa,GAMjB,OAJArlB,OAAOunD,KAAKpuB,EAASs/J,oBAAoB/hI,SAAQ,SAAS9jD,GACtDyS,EAAWzS,GAAQm3R,EAAuBn3R,MAGvC,CACHkpQ,KAAM,CACFyuB,WAAYtW,EACZuW,SAAU5B,EAAiBvhS,OAAO,CAAC,cAAe,OAAQ,WAAY,iBACtE+b,SAAU,CACNkjC,OAAQiiP,EAAUjiP,OAClBe,OAAQkhP,EAAUlhP,QAEtB7uB,aAAc,IAKlB8tB,OAAQA,EACRe,OAAQqiP,IAERrkR,WAAYA,EAEZ+hN,OAAQ4iE,IACRS,UAAWjB,EAAiBpB,GAE5BhgR,OAAQohR,EAAiB12E,KAgCjCj0N,EAAQ2rN,MAAQ,SAAS3mM,EAAOmkD,EAAU0iO,EAAgBC,GACtD,IAAIp5J,EAAQm5J,GAAkB,EAC9BC,EAAaA,GAAc,GAE3B3qS,OAAOunD,KAAK1jC,GAAO6yC,SAAQ,SAASm/K,GAChC,IAAIpuN,EAAO5D,EAAMgyN,GAEjB,IAA2C,IAAxC+yD,EAAiBtkS,QAAQuxO,GAA5B,CAEA,IAAIyzD,GAAkBqB,EAAaA,EAAa,IAAM,IAAM90D,EAC5D7tK,EAASvgD,EAAMouN,EAAUhyN,EAAO0tH,EAAO+3J,GAEpCzqS,EAAQ4qS,YAAYhiR,IAEpBq5C,EAAcr5C,IAAsB,iBAAbouN,GACtBh3O,EAAQ2rN,MAAM/iM,EAAMugD,EAAUupE,EAAQ,EAAG+3J,QAYrDzqS,EAAQ4qS,YAAc,SAASnsQ,GAC3B,OAAOA,QAAuBpb,IAAhBob,EAAIva,SAatBlkB,EAAQ+rS,oBAAsB,SAAS18R,GACnC,IAGI28R,EAAeC,EAHfC,EAAkB,GAClB1zD,EAAQ,GACR2zD,EAAe,GAGnB,SAAShjO,EAASvgD,EAAMouN,EAAUhyN,EAAO0tH,GACrC8lG,EAAQA,EAAMzzO,MAAM,EAAG2tI,GAAOlqI,OAAO,CAACwuO,IACtCm1D,EAAeA,EAAapnS,MAAM,EAAG2tI,GAAOlqI,OAAO,CAACogB,GAAQA,EAAKonJ,mBAEjE,IAAIo8H,EACAxjR,IACkB,eAAjBA,EAAK1E,UAA6C,IAAjB0E,EAAK3D,YAChB,aAArBuzN,EAAM9lG,EAAQ,KAAmC,aAAbskG,GAAwC,aAAbA,IAUjEo1D,GAEJC,EAAeL,EAAe,EAAG,IAGrC,SAASK,EAAe/5Q,EAAW7xB,EAAG6rS,GAClC,IAAIx9H,EAAOx8I,EAAUkmN,EAAM/3O,IACvB8rS,EAAiBD,EAAc9zD,EAAM/3O,GACzC,GAAGA,IAAM+3O,EAAM5zO,OAAS,EACjB8tE,EAAoBo8F,IACnBo9H,EAAgBxoS,KAAKuoS,EAAeM,QAGxC,GAAGJ,EAAa1rS,IACZ,GAAG+D,MAAM4J,QAAQ0gK,GACb,IAAI,IAAIzpK,EAAI,EAAGA,EAAIypK,EAAKlqK,OAAQS,IACzB48D,EAAc6sG,EAAKzpK,KAClBgnS,EAAev9H,EAAKzpK,GAAI5E,EAAI,EAAG8rS,EAAiB,IAAMlnS,EAAI,WAIhE48D,EAAc6sG,IACpBu9H,EAAev9H,EAAMruK,EAAI,EAAG8rS,EAAiB,KAKzDP,EAAgB38R,EAChB48R,EAAe,GACfjsS,EAAQ2rN,MAAM09E,EAAgBlgO,GAC3B95D,EAAMmiF,SAAWniF,EAAMmiF,QAAQ7lF,YAC9B3L,EAAQ2rN,MAAMt8M,EAAMmiF,QAAQ7lF,WAAYw9D,GAG5C,IAAI3iD,EAAanX,EAAMmX,WACvB,GAAGA,EACC,IAAI,IAAI/lB,EAAI,EAAGA,EAAI+lB,EAAW5hB,OAAQnE,IAAK,CACvC,IAAIqqB,EAAYtE,EAAW/lB,GACvBR,EAAS6qB,EAAU0mE,QAEpBvxF,IACCgsS,EAAe,cAAgBxrS,EAAI,KACnCurS,EAAgBlhR,EAEhB9qB,EAAQ2rN,MAAM1rN,EAAO0L,WAAYw9D,IAK7C,OAAO+iO,GAkBXlsS,EAAQ8wK,kBAAoB,SAASzhK,EAAOsiB,GACxC,IAEIolQ,EAAaqT,EAFb1hQ,EAAO/W,EAAM,GACblxB,EAAI,EAGR,GAAY,eAATioC,EAAuB,CACtB,GAAoB,IAAjB/W,EAAM/sB,OACL,OAAOykS,EAAe7iR,WAE1B,IAAIA,EAAanX,EAAMmX,WACvB,IAAIhiB,MAAM4J,QAAQoY,KAAgBA,EAAW5hB,OAAQ,OAAO,EAC5D,IAAI4nS,EAAO76Q,EAAM,GACjB,IAAIy1P,EAAQolB,IAASA,GAAQhmR,EAAW5hB,OACpC,OAAO,EAEXmyR,GAAez8P,EAASs/J,mBAAmBpzK,EAAWgmR,GAAMz4R,OAAS,IAAIpI,WACzEy+R,EAAYrT,GAAeA,EAAYplQ,EAAM,IAC7ClxB,EAAI,OACD,GAAkB,SAAf4O,EAAM0E,KACZq2R,EAAYZ,EAAe9gQ,OACxB,CAGH,IAAI8oD,EAAUniF,EAAMmiF,QAEpB,GADIA,IAASA,GAAWl3D,EAAS35B,QAAQ0O,EAAM0E,MAAQs1R,EAAet1R,KAAKoQ,OAAS,IAAIqtE,UACpFA,EAAS,OAAO,EAMpB,GAJAulM,EAAcvlM,EAAQ7lF,WACtBy+R,EAAYrT,GAAeA,EAAYruP,IAGnC0hQ,EAAW,CACX,IAAIlvG,EAAgB1pG,EAAQt+E,eACzBgoL,GAAiBA,EAAcvvL,aAC9By+R,EAAYlvG,EAAcvvL,WAAW+8B,IAKzC0hQ,IAAWA,EAAYf,EAAe3gQ,IAG9C,OAAOyhQ,EAAqBC,EAAWz4Q,EAAOlxB,IAgBlDT,EAAQ4wK,mBAAqB,SAASjqJ,EAAYgL,GAC9C,IAAIy4Q,EAAYJ,EAAerjR,EAAYgL,EAAM,IAEjD,OAAOw4Q,EAAqBC,EAAWz4Q,EAAO,K,oCCtTlD,IAAI86Q,EAActrS,OAAOkB,UAAU+a,SAAU3Q,EAAKggS,EAAY7rS,KAAK,IAEnEX,EAAOD,QAAU,SAAU0B,GAC1B,MACkB,kBAAVA,GACNA,GACiB,kBAAVA,IACNA,aAAiB2gB,QAAUoqR,EAAY7rS,KAAKc,KAAW+K,KACzD,I,kCCCF,IAAIkD,EAAK,EAAQ,QAEbyH,EAAM,EAAQ,QACdohB,EAAU,EAAQ,QAClB4lD,EAAa,EAAQ,QACrB1sC,EAAe,EAAQ,QACvBv6B,EAAO,EAAQ,QACfw7B,EAAa,EAAQ,QAErB+5P,EAAc,EAAQ,QACtBC,EAAgB,EAAQ,QACxBC,EAAe,EAAQ,QACvBC,EAAgB,EAAQ,QACxBC,EAAuB,EAAQ,QAC/BC,EAAkB,EAAQ,QAC1Bj7P,EAAY,EAAQ,QACpBk7P,EAAgBl7P,EAAUm7P,eAmD9B,SAASC,EAAeC,EAAWC,EAAW3nR,GAC1C,IAAI4nR,EAAUj2R,EAAImtG,aAAa4oL,EAAW,IAAK,aAE3CG,EAASD,EAAQl9R,UAAU,QAC1BnE,KAA2B,SAAtByZ,EAAS0rB,SAAsB,CAAC,GAAK,IAC/Cm8P,EAAOl9R,QAAQC,OAAO,QACtBi9R,EAAOzpP,OAAOvyC,SACdg8R,EACK1kR,KAAK,IAAK,IAAMwkR,EAAUvpS,KAAK,KAAO,KACtC2M,MAAM,SAAU,QAGzB,SAAS+8R,EAAUJ,EAAWl7G,EAAUm7G,EAAW3nR,GAC/C,IAAI+nR,EAAiC,SAAtB/nR,EAAS0rB,UAA0C,eAAlB1rB,EAAS1R,MAAiD,MAAxB0R,EAASssK,WACvF07G,EAAe,IAAML,EAAUvpS,KAAK,KAAO,IAG5C2pS,GACCT,EAAgB96G,EAAUxsK,GAG9B,IAAIioR,EAAYt2R,EAAImtG,aAAa4oL,EAAW,IAAK,eAE7CQ,EAAYD,EAAUv9R,UAAU,QAAQnE,KAAKwhS,EAAWv7G,EAAW,IACvE07G,EAAUv9R,QAAQC,OAAO,QACzBs9R,EAAU9pP,OAAOvyC,SACjBq8R,EAAUl9R,MAAK,SAASw8G,GAMpB,IAAI2gL,GAAY3gL,EAAG4gL,eAAiBJ,EAAe,IAC/CK,EAAa7gL,EAAImgL,GAEjBQ,EAGAj+R,EAAGO,OAAO7P,MACLuoB,KAAK,IAAKglR,GACVp9R,MAAM,SAAU,QAJrBb,EAAGO,OAAO7P,MAAMiR,YAS5B,SAASw8R,EAAa7gL,EAAImgL,GACtB,IAIIW,EACAC,EACAxtP,EACAytP,EACAC,EACAC,EATAP,EAAW,GACXntS,EAAI,EACJ2tS,EAAanhL,EAAGqlE,UAAUj2I,KAAI,SAAS92C,EAAG9E,GAAK,OAAOA,KACtD4tS,GAAU,EAQd,SAASC,EAAM1tR,GAAM,OAAOpa,KAAK+R,IAAIqI,EAAG,GAAKwsR,EAAU,GAAG,IAAM,IAChE,SAASmB,EAAS3tR,GAAM,OAAOpa,KAAK+R,IAAIqI,EAAG,GAAKwsR,EAAU,GAAG,IAAM,IACnE,SAASoB,EAAO5tR,GAAM,OAAOpa,KAAK+R,IAAIqI,EAAG,GAAKwsR,EAAU,GAAG,IAAM,IACjE,SAASqB,EAAQ7tR,GAAM,OAAOpa,KAAK+R,IAAIqI,EAAG,GAAKwsR,EAAU,GAAG,IAAM,IAElE,MAAMgB,EAAWxpS,OAAQ,CAQrB,IAPAupS,EAAU31Q,EAAQk2Q,WAAWzhL,EAAGqlE,UAAU7xL,GAAIwsH,EAAG9/B,WACjDygN,GAAYS,EAAUF,EAAUA,EAAQj1R,QAAQ,KAAM,KACtDk1R,EAAW/8R,OAAO+8R,EAAW3oS,QAAQhF,GAAI,GACzCstS,EAAQ9gL,EAAGqlE,UAAU7xL,GAAGwsH,EAAGqlE,UAAU7xL,GAAGmE,OAAS,GACjDqpS,GAAS,EAGLztP,EAAM,EAAGA,EAAM,EAAGA,IAAO,CACzB,IAAIutP,EAAO,CACP32R,EAAIwV,IAAI,eAAgBnsB,EAAGwsH,GAC3B,MAQJ,IALGqhL,EAAMP,KAAWU,EAAQV,GAAQC,EAAWZ,EAAU,GACjDoB,EAAOT,GAAQC,EAAWZ,EAAU,GACpCmB,EAASR,GAAQC,EAAWZ,EAAU,GACtCqB,EAAQV,KAAQC,EAAWZ,EAAU,IAEzCc,EAAY,EAAGA,EAAYjhL,EAAGqlE,UAAU1tL,OAAQspS,IAAa,CAC7D,IAAIS,EAAQ1hL,EAAGqlE,UAAU47G,GAAW,GAEjC1nS,KAAK+R,IAAIw1R,EAAM,GAAKC,EAAS,IAAM,IAC/BxnS,KAAK+R,IAAIw1R,EAAM,GAAKY,EAAM,IAAM,MAC1BA,EAAM,GAAKZ,EAAM,KAAOC,EAAS,GAAKW,EAAM,KAAO,IACxDX,EAAWW,EACXV,EAAQC,GAEN1nS,KAAK+R,IAAIw1R,EAAM,GAAKC,EAAS,IAAM,IACtCxnS,KAAK+R,IAAIw1R,EAAM,GAAKY,EAAM,IAAM,MAC1BA,EAAM,GAAKZ,EAAM,KAAOC,EAAS,GAAKW,EAAM,KAAO,IACxDX,EAAWW,EACXV,EAAQC,GAGZ92R,EAAIwV,IAAI,0CACJmhR,EAAOC,EAAUW,GAM7B,GAFAZ,EAAQC,EAELC,GAAS,EAAG,MACfL,GAAY,IAAMI,EAGtB,GAAGC,IAAUhhL,EAAGqlE,UAAU1tL,OAAQ,CAC9BwS,EAAIwV,IAAI,2BACR,MAGJnsB,EAAIwtS,EAIJI,GAAsC,IAA3BD,EAAW3oS,QAAQhF,GAC3B4tS,IACC5tS,EAAI2tS,EAAW,GACfR,GAAY,KAKpB,IAAIntS,EAAI,EAAGA,EAAIwsH,EAAGjN,MAAMp7G,OAAQnE,IAC5BmtS,GAAYp1Q,EAAQo2Q,aAAa3hL,EAAGjN,MAAMv/G,GAAIwsH,EAAG9/B,WAGrD,OAAOygN,EAGX,SAASiB,EAAmB1B,EAAWl7G,EAAU7iL,EAAIuhC,EAAKlrB,GACtD,IAAIqpR,EAAgB13R,EAAImtG,aAAa4oL,EAAW,IAAK,gBACjD9uE,GAAmC,IAAvB54M,EAASkkK,UACrBynG,EAAa3rQ,EAASmkK,WACtBmlH,EAAqB1wE,GAAa+yD,EAMlC4d,EAAYhvS,EAAQ6gK,YAAYiuI,EAAezwE,GAAa+yD,EAAYn/F,GAExEg9G,EAAWjvS,EAAQkvS,eAAeJ,EAAeC,EAAoB3/R,EAAIuhC,EAAIthC,MAAM+mB,KAEnF+4Q,EAAahC,EAAUh9R,UAAU,mBAChCnE,KAAKolR,EAAa,CAAC,GAAK,IAO7B,GALA+d,EAAWtrP,OAAOvyC,SAElB69R,EAAW/+R,QAAQC,OAAO,KACrBC,QAAQ,iBAAiB,GAE3B8gR,EAAY,CACX,IAAIge,EAAoB,GACpBC,EAAY,GAGhBj4R,EAAIywG,qBAEJ,IAAIynL,EAAgBtvS,EAAQuvS,eAAengS,EAAIuhC,GAE3C6+P,EAAYh3Q,EAAQirC,OAAOpzD,OAAO,QACjCuY,KAAK,aAAc,GACnBhoB,KAAK43B,EAAQ1W,KAAM2D,EAASokK,WAE7B3xJ,EAAK+5J,EAAS,GAAGxqK,MACjB8Q,EAAK05J,EAAS,GAAGvqK,MACjB+nR,EAAOv3Q,EAAGhgB,QACVw3R,EAAOn3Q,EAAGrgB,QACVy3R,EAAOz3Q,EAAGzf,MACVm3R,EAAOr3Q,EAAG9f,MACVo3R,EAAOz4R,EAAI8hC,QAAQ1yC,KAAKoC,IAAK,KAAM+nC,EAAI1hC,GACvC6gS,EAAO14R,EAAI8hC,QAAQ1yC,KAAKqC,IAAK,KAAM8nC,EAAI1hC,GACvC8gS,EAAO34R,EAAI8hC,QAAQ1yC,KAAKoC,IAAK,KAAM+nC,EAAI/7B,GACvCo7R,EAAO54R,EAAI8hC,QAAQ1yC,KAAKqC,IAAK,KAAM8nC,EAAI/7B,GACvCojB,EAAKxxB,KAAKqC,IAAIqvB,EAAGC,IAAI03Q,GAAM,GAAO,GAClC53Q,EAAKzxB,KAAKoC,IAAIsvB,EAAGC,IAAI23Q,GAAM,GAAOL,GAClCp3Q,EAAK7xB,KAAKqC,IAAI0vB,EAAGJ,IAAI63Q,GAAM,GAAO,GAClC13Q,EAAK9xB,KAAKoC,IAAI2vB,EAAGJ,IAAI43Q,GAAM,GAAOL,GAIlCzlS,EAAS,GAEV0lS,EAAK,GAAKA,EAAK,IACd1lS,EAAOwK,KAAOujB,EACd/tB,EAAOyK,MAAQujB,IAEfhuB,EAAOwK,KAAOwjB,EACdhuB,EAAOyK,MAAQsjB,GAGhB43Q,EAAK,GAAKA,EAAK,IACd3lS,EAAOgpB,IAAMoF,EACbpuB,EAAO+oB,OAASsF,IAEhBruB,EAAOgpB,IAAMqF,EACbruB,EAAO+oB,OAASqF,GAGpBpuB,EAAO0gB,QAAU1gB,EAAOgpB,IAAMhpB,EAAO+oB,QAAU,EAC/C/oB,EAAOs3B,QAAUt3B,EAAOwK,KAAOxK,EAAOyK,OAAS,EAE/C06R,EAAkB1rS,KAAK,CACnB,CAACuG,EAAOwK,KAAMxK,EAAOgpB,KACrB,CAAChpB,EAAOyK,MAAOzK,EAAOgpB,KACtB,CAAChpB,EAAOyK,MAAOzK,EAAO+oB,QACtB,CAAC/oB,EAAOwK,KAAMxK,EAAO+oB,UAGzB,IAAIi9Q,EAAezpS,KAAKuD,KAAK0lS,EAAOA,EAAOC,EAAOA,GAG9CQ,EAAap+P,EAAUq+P,cAAgBF,EACvCzpS,KAAKqC,IAAI,EAAGopL,EAASrtL,OAASktC,EAAUs+P,eAE5CpB,EAAUv+R,MAAK,SAAS1P,GACpB,IAAIqxF,EAAWpyF,EAAQqwS,aAAatvS,EAAE2xI,MAAO48J,EAAeE,EAAWpgS,GAEvEO,EAAGO,OAAO7P,MAAM8P,UAAU,QAAQM,MAAK,WACnC,IAAIyzC,EAAO7jD,KACPi9O,EAAalmO,EAAI0wG,kBAAkB5jE,EAAMj6C,EAAQmoF,EAASjoE,OAAS,GACvE,GAAImzN,KAEDA,EAAW/uN,KAAO6jE,EAASpwE,MAAQowE,EAASjoE,QAAU2nB,EAAUw+P,UAKnE,IAHA,IAAIC,EAAY/pS,KAAKoC,IAAIpC,KAAK+5B,KAAK+8M,EAAW/uN,IAAM2hR,GAChDp+P,EAAU0+P,UAEN/vS,EAAI,EAAGA,EAAI8vS,EAAW9vS,IAAK,CAC/B,IAAIy2B,EAAMl3B,EAAQywS,qBAAqBvsP,EAAMo5L,EAAYlrJ,EACrDi9M,EAAWplS,GAEf,IAAIitB,EAAK,MAETl3B,EAAQ0wS,aAAax5Q,EAAKk7D,EAAUi9M,EAAWD,UAK3DI,EAAUl+R,SAEVtR,EAAQqvD,WAAW8/O,EAAYE,EAAWjgS,EAAI6/R,EAC1CF,EAAqBK,EAAoB,MAG9Che,IAAe/yD,GAAW2wE,EAAU19R,SAyK3C,SAASq/R,EAAaz5Q,EAAKk7D,EAAUi9M,EAAWplS,GAC5C,IAAI2mS,EAAYx+M,EAASpwE,MAAQ,EAC7B6uR,EAAaz+M,EAASjoE,OAAS,EAC/Blb,EAAIioB,EAAIjoB,EACR2F,EAAIsiB,EAAItiB,EACRsO,EAAQgU,EAAIhU,MACZ2W,EAAKrzB,KAAKmrD,IAAIzuC,GAAS0tR,EACvB/lR,EAAKrkB,KAAKorD,IAAI1uC,GAAS0tR,EAGvBE,GAAU7hS,EAAIhF,EAAOs3B,OAAWt3B,EAAOyK,MAAQzF,EAAMA,EAAIhF,EAAOwK,OAC/DolB,EAAKrzB,KAAK+R,IAAI/R,KAAKorD,IAAI1uC,GAAS2tR,IACjCE,GAAUn8R,EAAI3K,EAAO0gB,OAAW1gB,EAAO+oB,OAASpe,EAAMA,EAAI3K,EAAOgpB,MAChEzsB,KAAK+R,IAAIsS,GAAMrkB,KAAKmrD,IAAIzuC,GAAS2tR,GACtC,GAAGC,EAAQ,GAAKC,EAAQ,EAAG,OAAO/lS,IAClC,IAAIgmS,EAAOhE,EAAciE,UAAY,GAAKH,EAAQ,GAAK,GAAKC,EAAQ,IAGpEC,GAAQhE,EAAckE,UAAYhuR,EAAQA,EAO1C,IAJA,IAAI+U,EAAKhpB,EAAI4qB,EACTvB,EAAK1jB,EAAIiW,EACTo1B,EAAKhxC,EAAI4qB,EACT2uC,EAAK5zD,EAAIiW,EACLpqB,EAAI,EAAGA,EAAI4uS,EAAUzqS,OAAQnE,IAAK,CACtC,IAAI0wS,EAAS9B,EAAU5uS,GACnB2wS,EAAM5qS,KAAKmrD,IAAIw/O,EAAOjuR,OAASiuR,EAAOnvR,MAAQ,EAC9CqvR,EAAM7qS,KAAKorD,IAAIu/O,EAAOjuR,OAASiuR,EAAOnvR,MAAQ,EAC9C42M,EAKA,EALOxhN,EAAI0vG,gBACX7uF,EAAIK,EACJ2nB,EAAIuoB,EACJ2oO,EAAOliS,EAAImiS,EAAKD,EAAOv8R,EAAIy8R,EAC3BF,EAAOliS,EAAImiS,EAAKD,EAAOv8R,EAAIy8R,IACtBj/M,EAASjoE,OAASgnR,EAAOhnR,QAE9BmnR,EAAYH,EAAOz+J,QAAUtgD,EAASsgD,MACtC6+J,EAAaD,EAAYtE,EAAcwE,kBAAoB,EAE/D,GAAG54E,GAAQ24E,EAAY,OAAOvmS,IAE9B,IAAIymS,EAAazE,EAAc0E,cAC1BJ,EAAYtE,EAAc2E,gBAAkB,GAEjDX,GAAQS,GAAc74E,EAAO24E,GAGjC,OAAOP,EA2EX,SAASY,EAAS9yN,EAAWntE,EAAUvC,EAAIuhC,EAAKy8P,GAC5C,IAAI/9R,EAAQshC,EAAIthC,MACZwiS,EAAQziS,EAAG+mB,YAAYi2B,OACvB1wB,EAAS,OAASrsB,EAAM+mB,IAExBo3M,EAAWqkE,EAAM1hS,UAAU,IAAMurB,GAChC1vB,KAAKqD,EAAM+V,YAAc,GAAK,CAAC,IAMpC,GALAooN,EAASp9N,QAAQC,OAAO,YACnBC,QAAQ,eAAe,GACvBsY,KAAK,KAAM8S,GAChB8xM,EAAS3pL,OAAOvyC,UAES,IAAtBjC,EAAM+V,YAAuB,CAC5B,IAAI0sR,EAAe,CAKfp/J,MAAO,GACP0/C,UAAW,GACXC,OAAQ,GACRC,UAAW,GACXtyE,MAAO,GACPv4F,MAAO9V,EAAS8V,MAChBC,MAAO/V,EAAS+V,MAChBzY,EAAG0hC,EAAI1hC,EACP2F,EAAG+7B,EAAI/7B,EAEPlF,EAAGqiS,EAAaphQ,GAChBw8C,UAAW,GAGfw/M,EAAc,CAACmF,IACflF,EAAa,CAACkF,IACd/E,EAAgB,CAAC+E,GAAe,CAAC/9R,KAAM,WAEvC,IAAImwC,EAAO9sC,EAAImtG,aAAaipH,EAAU,OAAQ,IAC9CtpL,EAAKt7B,KAAK,KACLkpR,EAAajE,eAAiB,IAAMT,EAAUvpS,KAAK,KAAO,IAAM,IACjEiqS,EAAagE,EAAc1E,SAE5B1xQ,EAAS,KAEhBlD,EAAQ8jH,WAAWx9D,EAAWpjD,EAAQtsB,GAG1C,SAAS2iS,EAAaphQ,GAClB,IAIIlwC,EAEAuxS,EANAv0N,EAAU9sC,EAAIthC,MAAMugC,aACpBlgC,EAAI,GACJ7O,EAAI8vC,EAAIjhC,EAAE9K,OACV1C,EAAIyuC,EAAIjhC,EAAE,GAAG9K,OAEbi5E,EAAM,GAGV,IAAIp9E,EAAI,EAAGA,EAAIyB,EAAGzB,IAAKo9E,EAAIn6E,KAAK,GAChC,IAAIjD,EAAI,EAAGA,EAAII,EAAGJ,IAAKiP,EAAEhM,KAAKm6E,EAAI94E,SAClC,IAAItE,EAAI,EAAGA,EAAIg9E,EAAQ74E,OAAQnE,IAC3BuxS,EAAav0N,EAAQh9E,GACrBiP,EAAEsiS,EAAW,IAAIA,EAAW,IAAM,EAItC,OADArhQ,EAAIshQ,MAAQviS,EACLA,EA3oBX1P,EAAQuT,KAAO,SAAcnE,EAAIuC,EAAUugS,EAAYC,GACnD,IAAIj6Q,EAAKvmB,EAAS8V,MACd8Q,EAAK5mB,EAAS+V,MAElBtQ,EAAIwnE,gBAAgBuzN,EAAcD,EAAY,WAAWzhS,MAAK,SAASoQ,GACnE,IAAIi+D,EAAYnvE,EAAGO,OAAO7P,MACtBswC,EAAM9vB,EAAG,GACTxR,EAAQshC,EAAIthC,MACZJ,EAAI0hC,EAAI1hC,EACR2F,EAAI+7B,EAAI/7B,EACR6Q,EAAWpW,EAAMoW,SACjBwsK,EAAW46G,EAAcpnR,EAAU9T,EAAUg/B,GAG7CyhQ,EAAuBh7R,EAAImtG,aAAazlC,EAAW,IAAK,mBACxDuzN,EAAa,GACQ,YAAtB5sR,EAAS0rB,WACRkhQ,EAAa,CAACxxR,IAElB6rR,EAAYt9R,EAAIuC,EAAU0gS,EAAYD,GAEtCzF,EAAc16G,GACd26G,EAAa36G,GAEb,IAAIqgH,EAAWp6Q,EAAGC,IAAIlpB,EAAE,IAAI,GACxBsjS,EAAYr6Q,EAAGC,IAAIlpB,EAAEA,EAAErK,OAAS,IAAI,GACpC4tS,EAAaj6Q,EAAGJ,IAAIvjB,EAAE,IAAI,GAC1B69R,EAAUl6Q,EAAGJ,IAAIvjB,EAAEA,EAAEhQ,OAAS,IAAI,GAClCwoS,EAAY,CACZ,CAACkF,EAAUG,GACX,CAACF,EAAWE,GACZ,CAACF,EAAWC,GACZ,CAACF,EAAUE,IAGXE,EAAezgH,EACE,eAAlBxsK,EAAS1R,OAER2+R,EAAe5F,EAAqB76G,EAAUxsK,EAASssK,aAI3Dm7G,EAAepuN,EAAWsuN,EAAW3nR,GACrC8nR,EAAUzuN,EAAW4zN,EAActF,EAAW3nR,GAC9CopR,EAAmB/vN,EAAWmzG,EAAU7iL,EAAIuhC,EAAKlrB,GACjDmsR,EAAS9yN,EAAWntE,EAAUvC,EAAIuhC,EAAKy8P,OA+P/CptS,EAAQ6gK,YAAc,SAASiuI,EAAe6D,EAAW1gH,GACrD,IAAI9kG,EAAY8kG,EAAS,GAAG9kG,UAExB6hN,EAAYF,EAAc3+R,UAAU,kBACnCnE,KAAK2mS,EAAY1gH,EAAW,IAMjC,GAJA+8G,EAAUnrP,OAAOvyC,SACjB09R,EAAU5+R,QAAQC,OAAO,KACpBC,QAAQ,gBAAgB,GAE1BqiS,EAAW,CAGV,IAAIC,EAAmB5D,EAAU7+R,UAAU,iBACtCnE,MAAK,SAASjL,GAAK,OAAOA,EAAE8xS,YAAc9xS,EAAEuxL,aAEjDsgH,EAAiB/uP,OAAOvyC,SACxBshS,EAAiBxiS,QAAQC,OAAO,QAC3BC,QAAQ,YAAY,GAEzBsiS,EACKhqR,KAAK,KAAK,SAAS7nB,GAChB,OAAOy3B,EAAQk2Q,WAAW3tS,EAAGosF,MAEhC38E,MAAM,oBAAqB,GAC3BA,MAAM,gBAAiB,sBAE5B,IAAIsiS,EAAqB9D,EAAU7+R,UAAU,mBACxCnE,MAAK,SAASjL,GAAK,OAAOA,EAAEgyS,QAAUhyS,EAAEi/G,SAE7C8yL,EAAmBjvP,OAAOvyC,SAC1BwhS,EAAmB1iS,QAAQC,OAAO,QAC7BC,QAAQ,cAAc,GAE3BwiS,EACKlqR,KAAK,KAAK,SAAS7nB,GAChB,OAAOy3B,EAAQo2Q,aAAa7tS,EAAGosF,MAElC38E,MAAM,oBAAqB,GAC3BA,MAAM,gBAAiB,sBAGhC,OAAOw+R,GAGXhvS,EAAQkvS,eAAiB,SAASJ,EAAeC,EAAoB3/R,EAAIgnB,GACrE,IAAIy7Q,EAAQziS,EAAG+mB,YAAYi2B,OACvB1wB,EAASqzQ,EAAsB,WAAa34Q,EAAO,KAEnD64Q,EAAW4C,EAAM1hS,UAAU,IAAMurB,GAChC1vB,KAAK+iS,EAAqB,CAAC,GAAK,IASrC,OARAE,EAASprP,OAAOvyC,SAEhB29R,EAAS7+R,QAAQC,OAAO,YACnBC,QAAQ,mBAAmB,GAC3BsY,KAAK,KAAM8S,GAEhBlD,EAAQ8jH,WAAWwyJ,EAAepzQ,EAAQtsB,GAEnC6/R,GAGXjvS,EAAQuvS,eAAiB,SAASngS,EAAIuhC,GAClC,IAAIhqB,EAAavX,EAAG+mB,YAChB9mB,EAAQshC,EAAIthC,MACZoW,EAAWpW,EAAMoW,SAErB,GAAGA,EAASqkK,YACR,OAAOnjK,EAAWirE,UAAUm7B,aAAatnG,EAASqkK,aAElD,IAAIkpH,EACA9yK,EAAQ9hD,EAAWI,YAAYnvE,GACnC,GAAG6wH,GAASA,EAAMz+D,UAAYy+D,EAAMz+D,SAASwxO,MACzCD,EAAa9yK,EAAMz+D,SAASwxO,UACzB,CAQH,GAPAD,EAAa,CACTj/R,KAAM,SACNwpB,IAAK,WACLmhB,aAAc,MACdhC,eAAgB,KAGC,eAAlBj3B,EAAS1R,KAAuB,CAC/B,IAAIrS,EAAQ+jB,EAAS/jB,MAClB8C,MAAM4J,QAAQ1M,GACbsxS,EAAWv6R,MAAQ,CAAC/W,EAAM,GAAIA,EAAMA,EAAMkD,OAAS,IAChDouS,EAAWv6R,MAAQ,CAAC/W,EAAOA,QAElCsxS,EAAWv6R,MAAQ,CAACgN,EAASnB,MAAOmB,EAASjB,KAC7CwuR,EAAWn6R,QAAU4M,EAASjB,IAAMiB,EAASnB,OAASmB,EAAShB,KAGhEuuR,EAAWv6R,MAAM,KAAOu6R,EAAWv6R,MAAM,KACxCu6R,EAAWv6R,MAAM,IAAMu6R,EAAWv6R,MAAM,IAAM,GAE9Cu6R,EAAWn6R,SAAQm6R,EAAWn6R,OAAS,KAE3C85B,EAAWqgQ,EAAYrsR,GACvBxP,EAAKgjC,UAAU64P,GACfA,EAAWx4P,MAAQ,KACnBw4P,EAAW93P,MAAQ,KAEvB,OAAO,SAAS31C,GACZ,OAAO4R,EAAK+P,SAAS8rR,EAAYztS,GAAGuK,OAKhD9P,EAAQqwS,aAAe,SAAS39J,EAAO48J,EAAeE,EAAWpgS,GAC7D,IAAIU,EAAOw/R,EAAc58J,GACzB88J,EAAU1/R,KAAKA,GACVlP,KAAK8wC,EAAalpB,gBAAiBpZ,GACxC,IAAIm0C,EAAO/qB,EAAQ+qB,KAAKisP,EAAUnnR,QAAQ,GAE1C,MAAO,CACHvY,KAAMA,EACNkS,MAAOuhC,EAAKvhC,MACZmI,OAAQo5B,EAAKp5B,OACbuoH,MAAOA,EACP7nH,IAAK04B,EAAKtwB,IAAMswB,EAAKvwB,QAAU,IAIvChzB,EAAQywS,qBAAuB,SAASvsP,EAAMo5L,EAAYlrJ,EAAUi9M,EAAW6D,GAC3E,IAEIztN,EAAIpjC,EAAIkjC,EAAMD,EAAMpuD,EAFpBuwF,EAAYr1B,EAASpwE,MAGtBs7N,EAAWj1H,UACVhmE,EAAKi7L,EAAW/uN,IAAMy+Q,EAAcmG,oBACpC1tN,EAAK63J,EAAW10O,IAAMy5C,EAAK,EAC3BkjC,EAAO+3J,EAAWz0O,MAElBw5C,GAAMi7L,EAAW/uN,IAAMk5F,IAAculL,EAAcmG,oBAAsB,GACzE1tN,EAAK63J,EAAW10O,IAAMy5C,EAAKolE,EAAY,EACvCliC,EAAO+3J,EAAWz0O,KAAOw5C,EAAKolE,GAAa,GAI/C,IADA,IAAIupL,EAAOhmS,IACH3F,EAAI,EAAGA,EAAI2nS,EAAcoG,WAAY/tS,IAAK,CAC9C,IAAI,IAAI9C,EAAIkjF,EAAIljF,EAAIgjF,EAAMhjF,GAAK8/C,EAAI,CAC/B,IAAIgxP,EAAcj8R,EAAIkwG,gBAAgBpjE,EAAMo5L,EAAWplK,MAAO31E,EAAGklH,GAC7D6rL,EAAU3C,EAAa0C,EAAajhN,EAAUi9M,EAAW6D,GAC1DI,EAAUtC,IACTA,EAAOsC,EACPp8Q,EAAMm8Q,EACN/tN,EAAO/iF,GAGf,GAAGyuS,EAA+B,EAAxBhE,EAAcuG,QAAa,MAIlCluS,IAAGg9C,GAAM,GACZojC,EAAKH,EAAOjjC,EAAK,EACjBkjC,EAAOE,EAAU,IAALpjC,EAEhB,GAAG2uP,GAAQhE,EAAcuG,QAAS,OAAOr8Q,GA4D7Cl3B,EAAQ0wS,aAAe,SAASx5Q,EAAKk7D,EAAUi9M,EAAWD,GACtD,IAAIwB,EAAYx+M,EAASpwE,MAAQ,EAC7B6uR,EAAaz+M,EAASjoE,OAAS,EAE/Blb,EAAIioB,EAAIjoB,EACR2F,EAAIsiB,EAAItiB,EACRsO,EAAQgU,EAAIhU,MAEZ0uC,EAAMprD,KAAKorD,IAAI1uC,GACfyuC,EAAMnrD,KAAKmrD,IAAIzuC,GACfswR,EAAM5C,EAAYj/O,EAClB8hP,EAAM5C,EAAaj/O,EACnB8hP,EAAM9C,EAAYh/O,EAClB+hP,GAAO9C,EAAal/O,EACpBiiP,EAAU,CACV,CAAC3kS,EAAIukS,EAAMC,EAAK7+R,EAAI8+R,EAAMC,GAC1B,CAAC1kS,EAAIukS,EAAMC,EAAK7+R,EAAI8+R,EAAMC,GAC1B,CAAC1kS,EAAIukS,EAAMC,EAAK7+R,EAAI8+R,EAAMC,GAC1B,CAAC1kS,EAAIukS,EAAMC,EAAK7+R,EAAI8+R,EAAMC,IAG9BtE,EAAU3rS,KAAK,CACXoM,KAAMsiF,EAAStiF,KACfb,EAAGA,EACH2F,EAAGA,EACHiW,GAAIunE,EAASvnE,GACb3H,MAAOA,EACPwvH,MAAOtgD,EAASsgD,MAChB1wH,MAAOowE,EAASpwE,MAChBmI,OAAQioE,EAASjoE,SAGrBilR,EAAkB1rS,KAAKkwS,IAG3B5zS,EAAQqvD,WAAa,SAAS8/O,EAAYE,EAAWjgS,EAAI6/R,EAAUG,GAC/D,IAAIxoR,EAASuoR,EAAWh/R,UAAU,QAC7BnE,KAAKqjS,GAAW,SAAStuS,GACtB,OAAOA,EAAE+O,KAAO,IAAM/O,EAAEkO,EAAI,IAAMlO,EAAE6T,EAAI,IAAM7T,EAAEmiB,SAuBxD,GApBA0D,EAAOi9B,OAAOvyC,SAEdsV,EAAOxW,QAAQC,OAAO,QACjBuY,KAAK,CACF,aAAc,EACd,cAAe,WAElBnY,MAAK,SAAS1P,GACX,IAAIkO,EAAIlO,EAAEkO,EAAIzI,KAAKorD,IAAI7wD,EAAEmiB,OAASniB,EAAE8pB,GAChCjW,EAAI7T,EAAE6T,EAAIpO,KAAKmrD,IAAI5wD,EAAEmiB,OAASniB,EAAE8pB,GACpClb,EAAGO,OAAO7P,MACLyP,KAAK/O,EAAE+O,MACP8Y,KAAK,CACF3Z,EAAGA,EACH2F,EAAGA,EACHkW,UAAW,UAAa,IAAM/pB,EAAEmiB,MAAQ1c,KAAKs8B,GAAM,IAAM7zB,EAAI,IAAM2F,EAAI,MAE1EhU,KAAK8wC,EAAalpB,gBAAiBpZ,MAG7CggS,EAAmB,CAElB,IADA,IAAI5hE,EAAW,GACP/sO,EAAI,EAAGA,EAAI2uS,EAAkBxqS,OAAQnE,IACzC+sO,GAAY,IAAM4hE,EAAkB3uS,GAAGoD,KAAK,KAAO,IAGvD,IAAIgwS,EAAez8R,EAAImtG,aAAa0qL,EAAU,OAAQ,IACtD4E,EAAajrR,KAAK,IAAK4kN,M,kCC3lB/B,IAAI79N,EAAK,EAAQ,QACb2qB,EAAW,EAAQ,QACnBm1D,EAAwB,EAAQ,QAA+BA,sBAC/DupB,EAAK,EAAQ,QACb5hG,EAAM,EAAQ,QACd0wN,EAAS,EAAQ,QAEjBlyG,EAAU,EAAQ,QAClBk+K,EAAa,EAAQ,QAErBtuH,EAAcsuH,EAAWp6B,eA0Q7B,SAASxgK,EAAct4F,EAAIvR,EAAOq5C,GAY9B,IAXA,IAAI3nC,EAAMH,EAAG5U,KAAKA,KAEd2U,EAAM,CACN0nN,YAAah5N,EAAMjM,MACnB0d,YAAaC,EAAItgB,EACjBuL,KAAMqD,EAAMygC,OACZzoB,SAAUhY,GAKN5O,EAAI,EAAGA,EAAIioD,EAAK9jD,OAAQnE,IAAK,CACjC,IAAIuB,EAAM0mD,EAAKjoD,GACZuB,KAAO4e,IAAID,EAAI3e,GAAO4e,EAAG5e,IAOhC,MAJG,iBAAkB4e,IAAOg1G,EAAQmwI,gBAAgBnlP,KAAKD,EAAIoI,OAASnI,EAAGmzR,cAEzEtkN,EAAsB9uE,EAAKtR,EAAO0R,EAAItgB,GAE/BkgB,EA7RX1gB,EAAOD,QAAU,SAA0B6yI,EAAUn0C,EAAOtvF,EAAIyR,EAAIyN,GAChE,IAAIqiB,EAAM9vB,EAAG,GACTxR,EAAQshC,EAAIthC,MACZgyF,EAAY1wD,EAAI0wD,UAEhB2yM,EAA4B,aAAf3kS,EAAM0E,KACnBkgS,EAA2B,YAAf5kS,EAAM0E,KAIjB,mBAAoB1E,IAAQA,EAAM6kS,gBAAiB,GAKnD,mBAAoB7kS,IAAQA,EAAM8kS,gBAAiB,GAExD,IAAIC,EAAc,SAASxzR,GACvB,IAAIsxM,EAAgB9iN,EAAG+mB,YAEvB,IAAG/mB,EAAGwgH,YAAyC,IAA5BsiG,EAAcpvM,UAAjC,CAEA,IAAIuxR,EAAWjlS,EAAG83C,UAAU73C,EAAMjM,OAC9B2d,EAAMH,EAAG5U,KAAKA,KACdsoS,EAAWvzR,EAAItgB,EACf2lQ,EAASxwI,EAAQmwI,gBAAgBnlP,GACjCmI,EAAS6sG,EAAQ2+K,UAAUlzM,EAAWzgF,GAEtCwS,EAAMwiG,EAAQg/C,SAASh0J,GAEvB4zR,EAAQ,SAAS1xM,GACjB,OAAO1rF,EAAIwiQ,WAAWy6B,EAAUC,EAAUxxM,IAG1C39E,EAAgBqvR,EAAM,iBACtBluR,EAAY0yF,EAAGy7L,cAAcJ,EAAUniF,EAAeoiF,GACtDxnL,EAAaolG,EAAcplG,WAE/B,GAAG3nG,GAAkBmB,GAA2B,SAAdA,GAAsC,SAAdA,EAAuB,CAC7E,IAAIouR,EACAC,EACDX,IACCU,EAAe/jQ,EAAIkkC,GAAKj0D,EAAGg0R,MAAM,IAAM,EAAIh0R,EAAGi0R,YAC9CF,EAAehkQ,EAAImkC,GAAKl0D,EAAGg0R,MAAM,IAAM,EAAIh0R,EAAGi0R,aAE/CZ,IACCS,EAAe9zR,EAAGsyH,QAClByhK,EAAe/zR,EAAGuyH,SAGtB,IAyBIvxF,EAzBAssM,EAAU,GACVv8N,EAAQ,GACRjhB,EAAW,GACXy4P,EAAU,SAAS2rC,GAAQ,OAAgC,IAAzBnjR,EAAMlsB,QAAQqvS,IAEjDxuR,IACCqL,EAAsB,QAAdrL,EACJ+tR,EAAS7iN,QAAQ7lF,WAAW2a,UAAU6Q,MACtC7Q,EAAUrV,MAAM,MAGxBi9O,EAAQrtJ,MAAQ9/E,EAAI8/E,MACjBsoK,EAAQ,UAAYjb,EAAQrtJ,OAAOnwF,EAAShN,KAAKwqP,EAAQrtJ,OAEzD9/E,EAAIze,eAAe,OAClB4rP,EAAQxsP,MAAQqf,EAAIxb,EACpB2oP,EAAQ6mD,WAAavvH,EAAY0oE,EAAQxsP,MAAOorH,GAC7Cq8I,EAAQ,UAAUz4P,EAAShN,KAAKwqP,EAAQ6mD,aAG/C7mD,EAAQ8mD,YAAcp0R,EAAGo0R,YAAcp/K,EAAQq/K,QAAQr0R,EAAG5U,MACvDm9P,EAAQ,kBAAoB/C,GAC3B11P,EAAShN,KAAKwqP,EAAQ8mD,aAI1B,IAAIE,EAAc,GACdC,EAAgB,YACgB,IAA7BD,EAAYzvS,QAAQm8C,KACnBlxC,EAAShN,KAAKk+C,GACdszP,EAAYxxS,KAAKk+C,KAIzBssM,EAAQknD,cAAgBx0R,EAAGw0R,cAAgBhiR,EAAMwiG,EAAQg/C,SAAS7rJ,GAClEmlO,EAAQnlO,OAASnI,EAAGmzR,aAAen+K,EAAQie,WAAW9qH,GACnDogP,EAAQ,oBACPvnN,EAAKg0E,EAAQy/K,cAAcnnD,EAAQknD,cAAetoL,GAAc,OAASohI,EAAQnlO,OACjFosR,KAGJjnD,EAAQonD,aAAe10R,EAAG00R,aAAeliR,EAAMwiG,EAAQg/C,SAASl2E,GAChEwvJ,EAAQxvJ,MAAQ99E,EAAG89E,MAAQk3B,EAAQie,WAAWn1C,IAC3CyqK,EAAQ,kBAAqB/C,GAAWxlP,EAAGywH,YAC1CzvF,EAAKg0E,EAAQy/K,cAAcnnD,EAAQonD,aAAcxoL,GAAc,OAASohI,EAAQxvJ,MAChFy2M,KAGJjnD,EAAQqnD,YAAc30R,EAAG20R,YAAcniR,EAAMwiG,EAAQg/C,SAASvzE,GAC9D6sJ,EAAQpuP,KAAO8gB,EAAG9gB,KAAO81H,EAAQie,WAAWxyC,GACzC8nK,EAAQ,kBAAoB/C,IAC3BxkN,EAAKg0E,EAAQy/K,cAAcnnD,EAAQqnD,YAAazoL,GAAc,OAASohI,EAAQpuP,KAC/Eq1S,KAGJjnD,EAAQp+O,KAAO0kS,EAAM,cAAgBA,EAAM,QACxCrrC,EAAQ,UACPvnN,EAAKssM,EAAQp+O,KACVsH,EAAIo+R,iBAAiB5zP,IAAKlxC,EAAShN,KAAKk+C,IAG/C,IAAI6zP,EAAa,CACbpmS,MAAOglS,EACPz/R,EAAG+/R,EACH7kS,KAAMY,EAAS7M,KAAK,QACpB7C,KAAOmkB,GAAiBgkP,EAAQ,QAAWkrC,EAASrzS,UAAOqiB,EAC3DvX,MAAO0oS,EAAM,uBAAyBzzR,EAAIjV,MAC1CsrG,YAAao9L,EAAM,0BACnBv/Q,WAAYu/Q,EAAM,0BAClB3yR,SAAU2yR,EAAM,wBAChB33P,UAAW23P,EAAM,yBACjBkB,WAAYlB,EAAM,yBAClB3hI,UAAW2hI,EAAM,oBACjBrvR,cAAeA,EACfwwR,oBAAqBznD,EACrBp3N,UAAW,CAACoiF,EAAct4F,EAAIyzR,EAAU/lR,EAAKq7D,iBAG9CqqN,IACCyB,EAAWz9Q,GAAK08Q,EAAe9zR,EAAGi0R,WAAaj0R,EAAGg1R,KAClDH,EAAWx9Q,GAAKy8Q,EAAe9zR,EAAGi0R,WAAaj0R,EAAGg1R,KAClDH,EAAWI,WAAaj1R,EAAGg0R,MAAM,GAAK,EAAI,OAAS,SAEpDX,IACCwB,EAAWxmS,EAAIylS,EACfe,EAAWI,WAAanB,EAAe,EAAI,OAAS,SAGxD17L,EAAG2yC,UAAU8pJ,EAAY,CACrBnjR,UAAW4/L,EAAcliG,YAAY3nG,OACrCujI,eAAgBsmE,EAAc3lK,OAAOlkC,OACrCjZ,GAAIA,IAGRC,EAAM6kS,gBAAiB,EAG3B,GAAGD,EAAW,CACV,IAAIlvS,EAAQ8tI,EAAS3iI,OAAO,gBAC5Boe,EAAK6iH,SAASpsI,EAAO6b,EAAIyzR,EAAU,CAC/BzgK,SAAS,IAIjBvkI,EAAM8kS,gBAAiB,EACvB/kS,EAAG0tG,KAAK,eAAgB,CACpBp4G,OAAQ,CAACw0G,EAAct4F,EAAIyzR,EAAU/lR,EAAKq7D,gBAC1Ch0D,MAAOhmB,EAAGgmB,UAIdmgR,EAAa,SAAS74L,GACtB,IAAIi1G,EAAgB9iN,EAAG+mB,YACnBk+Q,EAAWjlS,EAAG83C,UAAU73C,EAAMjM,OAC9Bwd,EAAKjR,EAAGO,OAAO7P,MAAM0xM,QAgBzB,GAdG1iM,EAAM8kS,iBACLl3L,EAAIk1G,cAAgBxiN,EAAGgmB,MACvBvmB,EAAG0tG,KAAK,iBAAkB,CACtBp4G,OAAQ,CAACw0G,EAAct4F,EAAIyzR,EAAU/lR,EAAKq7D,gBAC1Ch0D,MAAOhmB,EAAGgmB,QAEdtmB,EAAM8kS,gBAAiB,GAGxB9kS,EAAM6kS,iBACLl7L,EAAG6yC,YAAYqmE,EAAcliG,YAAY3nG,QACzChZ,EAAM6kS,gBAAiB,GAGxBD,EAAW,CACV,IAAIlvS,EAAQ8tI,EAAS3iI,OAAO,gBAC5Boe,EAAK6iH,SAASpsI,EAAO6b,EAAIyzR,EAAU,CAC/BzgK,SAAS,MAKjBi9C,EAAU,SAASjwK,GAMnB,IAAIsxM,EAAgB9iN,EAAG+mB,YACnBk+Q,EAAWjlS,EAAG83C,UAAU73C,EAAMjM,OAE9B2yS,EAAe/B,IAAep+K,EAAQmwI,gBAAgBnlP,IAAOg1G,EAAQogL,OAAOp1R,IAE5EnU,EAAKmpH,EAAQ+c,QAAQ/xH,GACrBq1R,EAAYrgL,EAAQw0I,QAAQxpP,GAC5Bg1G,EAAQsgL,mBAAmB70M,EAAW50F,GACtCmpH,EAAQqwI,mBAAmB5kK,EAAW50F,GACtC0pS,EAAYvgL,EAAQ+c,QAAQsjK,GAE5BG,EAAmB,CACnB1xS,OAAQ,CAACw0G,EAAct4F,EAAIyzR,EAAU/lR,EAAKq7D,gBAC1Ch0D,MAAOhmB,EAAGgmB,OAEVogR,IAAcK,EAAiBD,UAAYA,GAE/C,IAAIztE,EAAWZ,EAAOa,eAAev5N,EAAI,UAAYC,EAAM0E,KAAO,QAASqiS,GAQ3E,IANgB,IAAb1tE,GAAsBxW,EAAcpvM,YACnC1T,EAAG0uG,WAAa,CAAC5E,EAAct4F,EAAIyzR,EAAU/lR,EAAKq7D,gBAClDqvB,EAAG3T,MAAMj2F,EAAIO,EAAGgmB,SAIjBogR,IAGa,IAAbrtE,IAGAt5N,EAAGwgH,YAIHxgH,EAAGukI,eAAN,CAIAr5G,EAAS15B,KAAK,sBAAuByzS,EAAUniF,EAAcpxG,aAAauzL,EAASj+Q,KAAM,CACrFs8G,MAAO2hK,EAAS3hK,QAGpB,IAAIjyE,EAAQ,CACRz0D,KAAM,CAAC,CAAC0mI,MAAOyjK,IACf1uP,OAAQ,CAACp4C,EAAMjM,QAGfizS,EAAW,CACX51O,MAAO,CACH55B,QAAQ,EACR31B,SAAUod,EAAKilH,gBAEnBziI,WAAY,CACRI,SAAUod,EAAKilH,eACfv4G,OAAQ1M,EAAKmlH,kBAEjB7xI,KAAM,YACNy6Q,aAAa,GAGjBrjK,EAAG6yC,YAAYqmE,EAAcliG,YAAY3nG,QACzCiS,EAAS15B,KAAK,UAAWwO,EAAIqxD,EAAO41O,KAGxCxjK,EAAShiI,GAAG,YAAaujS,GACzBvhK,EAAShiI,GAAG,WAAYilS,GACxBjjK,EAAShiI,GAAG,QAASggL,K,qBCxRzB,IAAIvmK,EAAI,EACJ/nB,EAAI,CACJ,kBACA,mBACC,mBACD,mBACC,kBACD,oBACC,mBACD,qBACA,uBAGA+zS,EAAO,IAAI,IACXC,EAAO,CACP,kBACA,mBACC,kBACD,oBACC,kBACD,qBACA,sBACC,qBACD,sBACC,sBACD,uBACC,qBACD,sBACC,sBACD,uBAIJ,SAASC,EAAQ9mS,GAEb,GAAGA,EAAI,EAAG,OAAO6mC,OAAO,OAExB,IADA,IAAItnC,EAAIsnS,EAAK,GACL91S,EAAI81S,EAAK3xS,OAAS,EAAGnE,EAAI,IAAKA,EAAGwO,GAAKsnS,EAAK91S,IAAMiP,EAAIjP,GAC7D,IAAIkB,EAAI+N,EAAI4mS,EAAO,GACnB,MAAO,GAAG9vS,KAAKomB,IAAI,EAAEpmB,KAAKs8B,KAAKpzB,EAAE,IAAIlJ,KAAKomB,IAAIjrB,GAAGA,EAAE6E,KAAKomB,IAAI3d,GAAGzI,KAAKomB,IAAIld,GAG5EzP,EAAOD,QAAU,SAASy2S,EAAO/mS,GAC7B,GAAIA,EAAI,GACJ,OAAOlJ,KAAKs8B,IAAMt8B,KAAKorD,IAAIprD,KAAKs8B,GAAKpzB,GAAK+mS,EAAM,EAAI/mS,IAEnD,GAAGA,EAAI,IAAK,OAAOlJ,KAAK6uD,IAAImhP,EAAQ9mS,IAErCA,GAAK,EAEL,IADA,IAAIT,EAAI1M,EAAE,GACD9B,EAAI,EAAGA,EAAI6pB,EAAI,EAAG7pB,IACvBwO,GAAK1M,EAAE9B,IAAMiP,EAAIjP,GAErB,IAAIkB,EAAI+N,EAAI4a,EAAI,GAEhB,OAAO9jB,KAAKuD,KAAK,EAAIvD,KAAKs8B,IACpBt8B,KAAK85B,IAAI3+B,EAAG+N,EAAI,IAChBlJ,KAAK6uD,KAAK1zD,GACVsN,GAKdhP,EAAOD,QAAQ4sB,IAAM4pR,G,uBClErB,IASI9nS,EAAKpN,EAAKq3D,EATV+9O,EAAkB,EAAQ,QAC1Bx+M,EAAS,EAAQ,QACjBqsF,EAAW,EAAQ,QACnB31E,EAA8B,EAAQ,QACtC+nM,EAAY,EAAQ,QACpBC,EAAY,EAAQ,QACpBpxJ,EAAa,EAAQ,QAErB7uB,EAAUz+B,EAAOy+B,QAGjBkgL,EAAU,SAAUttQ,GACtB,OAAOovB,EAAIpvB,GAAMjoC,EAAIioC,GAAM76B,EAAI66B,EAAI,KAGjCutQ,EAAY,SAAUC,GACxB,OAAO,SAAUxtQ,GACf,IAAIw1D,EACJ,IAAKwlF,EAASh7I,KAAQw1D,EAAQz9F,EAAIioC,IAAKx1B,OAASgjS,EAC9C,MAAMhgP,UAAU,0BAA4BggP,EAAO,aACnD,OAAOh4M,IAIb,GAAI23M,EAAiB,CACnB,IAAIhzC,EAAQ,IAAI/sI,EACZqgL,EAAQtzC,EAAMpiQ,IACd21S,EAAQvzC,EAAM/qM,IACdu+O,EAAQxzC,EAAMh1P,IAClBA,EAAM,SAAU66B,EAAI4tQ,GAElB,OADAD,EAAMt2S,KAAK8iQ,EAAOn6N,EAAI4tQ,GACfA,GAET71S,EAAM,SAAUioC,GACd,OAAOytQ,EAAMp2S,KAAK8iQ,EAAOn6N,IAAO,IAElCovB,EAAM,SAAUpvB,GACd,OAAO0tQ,EAAMr2S,KAAK8iQ,EAAOn6N,QAEtB,CACL,IAAI6tQ,EAAQR,EAAU,SACtBpxJ,EAAW4xJ,IAAS,EACpB1oS,EAAM,SAAU66B,EAAI4tQ,GAElB,OADAvoM,EAA4BrlE,EAAI6tQ,EAAOD,GAChCA,GAET71S,EAAM,SAAUioC,GACd,OAAOotQ,EAAUptQ,EAAI6tQ,GAAS7tQ,EAAG6tQ,GAAS,IAE5Cz+O,EAAM,SAAUpvB,GACd,OAAOotQ,EAAUptQ,EAAI6tQ,IAIzBn3S,EAAOD,QAAU,CACf0O,IAAKA,EACLpN,IAAKA,EACLq3D,IAAKA,EACLk+O,QAASA,EACTC,UAAWA,I,oCC/Cb,IAAI7qS,EAAO,EAAQ,QAAiBA,KAChCo6D,EAAgB,EAAQ,QAAuCA,cAC/Dl3D,EAAiB,EAAQ,QACzBkoS,EAAe,EAAQ,QACvB7+Q,EAAU,EAAQ,QAClBphB,EAAM,EAAQ,QAqLlB,SAASkgS,EAAmB7iK,EAAYz0B,EAAOj1C,GAC3C,IAAIwsO,EAAU9iK,EACTp4F,KAAI,SAASt7C,GAAI,OAAOA,EAAEoS,WAAWvO,UACrC48F,QAAO,SAAS9nC,EAAIC,GAAK,OAAOnzD,KAAKqC,IAAI6wD,EAAIC,MAClD,MAAO,CAAC86E,WAAYA,EAAYz0B,MAAOA,EAAO3wG,WAAOgU,EAAWk0R,QAASA,EAASxsO,MAAOA,GAmC7F,SAASysO,EAAqBC,EAAcC,EAAcC,EAAYC,EAAgB7sO,GAClF,MAAO,CACH0sO,aAAcA,EACdC,aAAcA,EACdC,WAAYA,EACZC,eAAgBA,EAChB7sO,MAAOA,EACP53D,WAAY,GACZ0kS,MAAO,MAoCf,SAASC,EAAoBL,EAAcM,EAAaC,EAAeC,GACnE,MAAO,CACHR,aAAcA,EACdM,YAAaA,EACbC,cAAeA,EACfL,WAAYI,EACZE,cAAeA,EACfC,UAAW,GACXntO,MAAO,EACPotO,MAAO,MAYf,SAASC,EAAoBC,EAAeC,EAAUvtO,GAClDstO,EAAcH,UAAUx0S,KAAK40S,GAC7BD,EAActtO,OAASA,EA+B3B,SAASwtO,EAAgBC,EAAc1sS,EAAO2sS,GAC1C,MAAO,CACHD,aAAcA,EACd1sS,MAAOA,EACP2sS,SAAUA,EACVP,UAAW,GACXntO,MAAO,GAYf,SAAS2tO,EAAgBC,EAAWL,EAAUvtO,GAC1C4tO,EAAUT,UAAUx0S,KAAK40S,GACzBK,EAAU5tO,OAASA,EAgCvB,SAAS6tO,EAAc5+Q,EAAQ6+Q,GAGvBA,OADgBx1R,IAAjBw1R,GAA+C,OAAjBA,EACd,GAGAA,EAAax8P,KAAI,SAASh+B,GAAI,OAAOA,KAIxD,IAAIy6R,EAAoB,GACpBC,EAAkB,GAClBC,EAAO,GAGXH,EAAahhP,SAAQ,SAASohP,EAAWC,GACrCJ,EAAkBG,GAAa,EAC/BF,EAAgBE,GAAaC,KAIjC,IAAI,IAAIz4S,EAAI,EAAGA,EAAIu5B,EAAOp1B,OAAQnE,IAAK,CACnC,IACI04S,EADArqI,EAAO90I,EAAOv5B,QAGa4iB,IAA5By1R,EAAkBhqI,IAEjBgqI,EAAkBhqI,GAAQ,EAC1BqqI,EAAUN,EAAan1S,KAAKorK,GAAQ,EACpCiqI,EAAgBjqI,GAAQqqI,IAGxBL,EAAkBhqI,KAClBqqI,EAAUJ,EAAgBjqI,IAE9BkqI,EAAKt1S,KAAKy1S,GAId,IAAIC,EAAeP,EAAax8P,KAAI,SAAS92C,GAAK,OAAOuzS,EAAkBvzS,MAE3E,MAAO,CACHszS,aAAcA,EACdO,aAAcA,EACdJ,KAAMA,GAWd,SAASK,EAA6Bv0I,GAClC,IACIrkK,EADA64S,EAAcx0I,EAAYzoH,KAAI,SAASt7C,GAAK,OAAOA,EAAEw4S,gBAGzD,GAAGC,EAAmBF,GAClB,IAAI74S,EAAI,EAAGA,EAAIqkK,EAAYlgK,OAAQnE,IAC/BqkK,EAAYrkK,GAAGg5S,cAAgB30I,EAAYrkK,GAAG84S,kBAGlD,IAAI94S,EAAI,EAAGA,EAAIqkK,EAAYlgK,OAAQnE,IAC/BqkK,EAAYrkK,GAAGg5S,cAAgBh5S,EAW3C,SAASi5S,EAA2Bv7O,EAAKw7O,GAErCx7O,EAAIy7O,eAAiBD,EAAcd,aAGf,OAAjB16O,EAAIrnB,eAAsCzzB,IAAjB86C,EAAIrnB,SAC5BqnB,EAAI07O,UAAY,GAGhB17O,EAAI07O,UAAY17O,EAAIrnB,SAAS/xC,QAIjC,IAAI,IAAItE,EAAI09D,EAAI07O,UAAUj1S,OAAQnE,EAAIk5S,EAAcd,aAAaj0S,OAAQnE,IACrE09D,EAAI07O,UAAUn2S,KAAKi2S,EAAcd,aAAap4S,IAStD,SAAS+4S,EAAmBR,GAGxB,IAFA,IAAIc,EAAgB,IAAIt1S,MAAMw0S,EAAKp0S,QAE3BnE,EAAI,EAAGA,EAAIu4S,EAAKp0S,OAAQnE,IAAK,CAEjC,GAAGu4S,EAAKv4S,GAAK,GAAKu4S,EAAKv4S,IAAMu4S,EAAKp0S,OAC9B,OAAO,EAIX,QAA8Bye,IAA3By2R,EAAcd,EAAKv4S,IAClB,OAAO,EAGXq5S,EAAcd,EAAKv4S,KAAM,EAI7B,OAAO,EA7dXR,EAAOD,QAAU,SAAcoP,EAAIC,GAC/B,IAAIy1J,EAAc1tJ,EAAI8gQ,cAAc7oQ,EAAMolI,YAE1C,GAA0B,IAAvBqwB,EAAYlgK,OAAc,MAAO,GAEpC,IAoBIozE,EACAjN,EACAk9M,EAtBA8xB,EAAiBj1I,EAAYzoH,KAAI,SAAS8hB,GAC1C,IAAI67O,EAgBJ,MAfyB,UAAtB77O,EAAI87O,cAEHD,EAAiB,KACW,UAAtB77O,EAAI87O,cAGVD,EAAiB77O,EAAI+7O,eAIrBF,EAAiB3C,EAAal5O,EAAInkC,QAAQvyB,OACjB,wBAAtB02D,EAAI87O,gBACHD,EAAiBA,EAAe5pP,YAGjCwoP,EAAcz6O,EAAInkC,OAAQggR,MAOjChiO,EADD5gE,EAAIs7D,oBAAoBrjE,EAAM2oE,QACpB3oE,EAAM2oE,OAEN,CAAC3oE,EAAM2oE,QAGpBqhO,EAA6Bv0I,GAE7BA,EAAYjtG,SAAQ,SAASsG,EAAKg8O,GAC9BT,EAA2Bv7O,EAAK47O,EAAeI,OAKnD,IACIC,EADAlhR,EAAO7pB,EAAM6pB,KAkBjB,SAASmhR,EAAmBj3S,GACxB,IAAI1B,EAAO+2S,EAQX,OAPGrhS,EAAIs7D,oBAAoBx5C,EAAKptB,QAC5BpK,EAAQw3B,EAAKptB,MAAM1I,EAAQ81B,EAAKptB,MAAMlH,QACtC6zS,EAAW/2S,GAEXA,EAAQw3B,EAAKptB,MAGV,CAACA,MAAOsuS,EAAiB14S,GAAQ+2S,SAAUA,GAvBnDv/Q,GACImtC,EAAch3D,EAAO,SACpBF,EAAeC,EAAIC,EAAO,CACtBE,KAAMF,EAAM6pB,KAAKptB,MACjB0D,aAAc,OACdC,QAAS,MAGjB2qS,EAAmB5hR,EAAQ8hR,cAAcphR,IAEzCkhR,EAAmBhjS,EAAIvN,SAkB3B,IAYIyuS,EACAv3S,EAbAw5S,EAAYz1I,EAAY,GAAG9qI,OAAOp1B,OAKlC41S,EAAa,GAGbC,EAAmBV,EAAe19P,KAAI,SAASvjB,GAAK,OAAOA,EAAGkgR,QAOlE,IAJA/wB,EAAa,EAITqwB,EAAW,EAAGA,EAAWiC,EAAWjC,IAAY,CAEhD,IAAIoC,EAAmB,GACvB,IAAI35S,EAAI,EAAGA,EAAI05S,EAAiB71S,OAAQ7D,IACpC25S,EAAiBh3S,KAAK+2S,EAAiB15S,GAAGu3S,IAI9CvtO,EAAQiN,EAAOsgO,EAAWtgO,EAAOpzE,QAGjCqjR,GAAcl9M,EAGd,IAAI4vO,EAAgBN,EAAmB/B,GAGnCsC,EAAUF,EAAmB,IAAMC,EAAclC,cAG1Bp1R,IAAxBm3R,EAAWI,KACVJ,EAAWI,GAAWrC,EAAgBmC,EAClCC,EAAc7uS,MACd6uS,EAAclC,WAEtBC,EAAgB8B,EAAWI,GAAUtC,EAAUvtO,GAGnD,IAAI8vO,EAAkB/1I,EAAYzoH,KAAI,SAASvjB,EAAIr4B,GAC/C,OAAO+2S,EAAqB/2S,EAAGq4B,EAAGm5K,OAAQn5K,EAAG2gR,cAAe3gR,EAAG+nE,MAAOonL,MAI1E,IAAIqwB,EAAW,EAAGA,EAAWiC,EAAWjC,IAGpC,IAFAvtO,EAAQiN,EAAOsgO,EAAWtgO,EAAOpzE,QAE7B7D,EAAI,EAAGA,EAAI85S,EAAgBj2S,OAAQ7D,IAAK,CACxC,IAAI22S,EAAemD,EAAgB95S,GAAG22S,aAClCoD,EAASf,EAAeh5S,GAAGi4S,KAAKV,GAChCh6P,EAAOu8P,EAAgB95S,GAAGoS,WAE9B,QAAoBkQ,IAAjBi7B,EAAKw8P,GAAuB,CAC3B,IAAIC,EAAW1rS,EAAMolI,WAAWijK,GAAckC,eAAekB,GACzDE,EAAW3rS,EAAMolI,WAAWijK,GAAcmC,UAAUiB,GACxDx8P,EAAKw8P,GAAUhD,EAAoB/2S,EAAG+5S,EAAQC,EAAUC,GAG5D5C,EAAoB95P,EAAKw8P,GAASxC,EAAUvtO,GAKpD,OAAO9+D,EAAKqrS,EAAmBuD,EAAiBL,EAAYvyB,M,qBCxKhEhoR,EAAOD,QAAU,CACb,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,M,oCCnCJ,IAAI4P,EAAY,EAAQ,QAEpBuH,EAAO,EAAQ,QACfC,EAAM,EAAQ,QAEdk7B,EAAS,EAAQ,QAA6BA,OAC9Ci1B,EAAInwD,EAAImwD,EAiSZ,SAAS0zO,EAAO5rS,EAAOymD,EAAWolP,EAASr8P,GACvC,IAQI+4B,EARAujO,EAAcrlP,KAAazmD,EAC3B+rS,EAAUtlP,EAAY,MAAOzmD,EAC7BgsS,EAAa,IAAMvlP,KAAazmD,EAEpC,GAAG8rS,GAAgBC,GAAWC,EAC1B,OAAOH,EAAQvrQ,aAAatgC,EAAOymD,GAKnC8hB,EADDwjO,EACQ/rS,EAAMymD,EAAY,KACnB,SAAUzmD,IACC,aAAjB6rS,EAAQnnS,MACJnE,EAAUP,EAAMrO,QAC6B,IAA7C,CAAC,SAAU,OAAOyE,QAAQy1S,EAAQnnS,OAElCqD,EAAIi7D,WAAWhjE,EAAMrO,OACJ,SAAjBk6S,EAAQnnS,MAGL1E,EAAMrO,KAEN69C,EASX,IANA,IAAIy8P,EAAyB,kBAAjBJ,EAAQnnS,KAChBmnS,EAAQvwL,iBAAiB/yC,GACzBsjO,EAAQ/lQ,IAAIyiC,EAAM,EAAGvoE,EAAMymD,EAAY,aAEvCvnC,EAAMlf,EAAM6I,QACZyI,EAAM,IAAInc,MAAM+pB,GACZ9tB,EAAI,EAAGA,EAAI8tB,EAAK9tB,IAAKkgB,EAAIlgB,GAAK66S,EAEtC,OAAO36R,EAGX,SAAS46R,EAAStsS,EAAG4qB,GAIjB,IAHA,IAAItL,EAAMtf,EAAErK,OACRmzE,EAAO,IAAIvzE,MAAM+pB,EAAM,GAEnB9tB,EAAI,EAAGA,EAAI8tB,EAAK9tB,IACpBs3E,EAAKt3E,GAAKwO,EAAExO,GAAKo5B,EAIrB,OAFAk+C,EAAKxpD,GAAOtf,EAAEsf,EAAM,GAAKsL,EAElBk+C,EAGX,SAASyjO,EAAgBjtR,GAErB,IADA,IAAI6kD,EAAM,IAAI5uE,MAAM+pB,GACZ9tB,EAAI,EAAGA,EAAI8tB,EAAK9tB,IACpB2yE,EAAI3yE,GAAK,GAEb,OAAO2yE,EArVXnzE,EAAOD,QAAU,SAAcoP,EAAIC,GAC/B,IAQI5O,EAAG4E,EACHo2S,EAAS1lP,EACTmlP,EAASplP,EAVTnvC,EAAavX,EAAG+mB,YAChB+B,EAAK/gB,EAAK63B,UAAU5/B,EAAIC,EAAMoY,OAAS,KACvC8Q,EAAKphB,EAAK63B,UAAU5/B,EAAIC,EAAMqY,OAAS,KACvC7G,EAAK,GAGL66R,EAAwB,WAAfrsS,EAAM0E,KAAoB,cAAgB,YAM9B,MAAtB1E,EAAM5G,aACLgzS,EAAUvjR,EACV69B,EAAY,IACZmlP,EAAU3iR,EACVu9B,EAAY,MAEZ2lP,EAAUljR,EACVw9B,EAAY,IACZmlP,EAAUhjR,EACV49B,EAAY,KAGhB,IAMI/0C,EAEAmwB,EAEAyqQ,EAEAriP,EAEA14C,EAEArb,EAhBAq2S,EAAWX,EAAO5rS,EAAOymD,EAAWolP,EAASv0R,EAAW+0R,IACxDjlM,EAAKr/F,EAAIoiC,aAAaoiQ,GACtBC,EAAcplM,EAAGlnG,KACjBusS,EAAOrlM,EAAG/8D,QAAU,EAiBpBqiQ,EAAmD,SAArC1sS,EAAMk7H,WAAal7H,EAAM3K,QACvC0S,EAAIvN,SACJ,SAAS+W,GAAM,OAAQA,EAAGrb,EAAIwb,EAAIi7R,IAAMp7R,EAAGrb,EAAIwb,EAAIk7R,IAEvD,GAAG5sS,EAAM6sS,iBAAkB,CACvB,IAAIC,EAAc9sS,EAAM0mD,GACpB5gB,EAAM,SAAS3vC,GAAK,OAAOi2S,EAAQtmQ,KAAK9lC,EAAM7J,IAAM,IAAI/E,KACxDu+M,EAASh0M,IACTi0M,GAAUj0M,IAEd,IAAIvK,EAAI,EAAGA,EAAI4O,EAAM6I,QAASzX,IAAK,CAC/B,IAAI44E,EAAOuiO,EAASn7S,GACpB,GAAImP,EAAUypE,GAAd,CAUA,GARAt4D,EAAM,GACNA,EAAIkzB,IAAMlzB,EAAI+0C,GAAaujB,EAE3Bt4D,EAAIgpH,GAAK50F,EAAI,MACbp0B,EAAIq7R,IAAMjnQ,EAAI,UACdp0B,EAAIkpH,GAAK90F,EAAI,MAEbjE,EAAM,GACHirQ,GAAe/kS,EAAIs7D,oBAAoBypO,EAAY17S,IAClD,IAAI4E,EAAI,EAAGA,EAAI82S,EAAY17S,GAAGmE,OAAQS,IAClCE,EAAIk2S,EAAQtmQ,IAAIgnQ,EAAY17S,GAAG4E,IAC5BE,IAAM+sC,IACL1xB,EAAK,CAACrb,EAAGA,EAAG9E,EAAG,CAACA,EAAG4E,IACnByxE,EAAiBl2D,EAAIvR,EAAO,CAAC5O,EAAG4E,IAChC6rC,EAAIxtC,KAAKkd,IAQrB,GAJAG,EAAImwB,IAAMA,EAAIzpC,KAAK40S,GACnBV,EAAU56R,EAAIg1C,GAAa7kB,EAAImL,IAAIma,GACnC8C,EAAIqiP,EAAQ/2S,OAETmc,EAAIq7R,MAAQ9pQ,GAAUvxB,EAAIgpH,KAAOz3F,GAAUvxB,EAAIkpH,KAAO33F,GACrDvxB,EAAIq7R,KAAOr7R,EAAIgpH,IAAMhpH,EAAIkpH,IAAMlpH,EAAIq7R,IACrC,CACE,IAAIJ,EAAK7mQ,EAAI,cACbp0B,EAAIi7R,GAAMA,IAAO1pQ,GAAU0pQ,GAAMj7R,EAAIgpH,GACjCiyK,EACAM,EAAkBv7R,EAAK46R,EAASriP,GAEpC,IAAI2iP,EAAK9mQ,EAAI,cACbp0B,EAAIk7R,GAAMA,IAAO3pQ,GAAU2pQ,GAAMl7R,EAAIkpH,GACjCgyK,EACAM,EAAkBx7R,EAAK46R,EAASriP,GAEpC,IAAIqxE,EAAOx1F,EAAI,QACfp0B,EAAI4pH,KAAQA,IAASr4F,EACjBq4F,EACCrxE,EAAIliD,EAAIuzH,KAAKgxK,EAASriP,IAAMv4C,EAAIgpH,GAAKhpH,EAAIkpH,IAAM,EAEpD,IAAIW,EAAKz1F,EAAI,MACbp0B,EAAI6pH,GAAMD,IAASr4F,GAAUs4F,GAAM,EAC/BA,EACCtxE,EAAIliD,EAAI0iC,MAAM6hQ,EAASriP,EAAGv4C,EAAI4pH,MAAS5pH,EAAIkpH,GAAKlpH,EAAIgpH,GAEzDhpH,EAAI3I,GAAKokS,EAAyBz7R,GAClCA,EAAI07R,GAAKC,EAAyB37R,GAElC,IAAIjf,EAAKqzC,EAAI,aACbrzC,EAAMA,IAAOwwC,GAAUxwC,EAAK,EAAKA,EAAK66S,EAAiB57R,EAAKu4C,GAC5Dv4C,EAAI67R,GAAK77R,EAAIq7R,IAAMt6S,EACnBif,EAAI87R,GAAK97R,EAAIq7R,IAAMt6S,EAEnB,IAAIg7S,EAAO/7R,EAAIi7R,GACX/3C,EAAOljP,EAAIk7R,GACZ5sS,EAAMk7H,WAAaoxK,EAAQ/2S,SAC1Bk4S,EAAOt2S,KAAKoC,IAAIk0S,EAAMnB,EAAQ,IAC9B13C,EAAOz9P,KAAKqC,IAAIo7P,EAAM03C,EAAQriP,EAAI,KAEnCjqD,EAAM+6H,UACL0yK,EAAOt2S,KAAKoC,IAAIk0S,EAAM/7R,EAAI67R,IAC1B34C,EAAOz9P,KAAKqC,IAAIo7P,EAAMljP,EAAI87R,KAE9B97R,EAAInY,IAAMk0S,EACV/7R,EAAIlY,IAAMo7P,MACP,CAQH,IAAIxqM,EAPJriD,EAAI24B,KAAK,CACL,oDACA,QAAUhvB,EAAIgpH,GACd,YAAchpH,EAAIq7R,IAClB,QAAUr7R,EAAIkpH,IAChBpmI,KAAK,OAIH41D,EADD14C,EAAIq7R,MAAQ9pQ,EACNvxB,EAAIq7R,IACHr7R,EAAIgpH,KAAOz3F,EACdvxB,EAAIkpH,KAAO33F,GAAcvxB,EAAIgpH,GAAKhpH,EAAIkpH,IAAM,EACrClpH,EAAIgpH,GACRhpH,EAAIkpH,KAAO33F,EACZvxB,EAAIkpH,GAEJ,EAITlpH,EAAIq7R,IAAM3iP,EACV14C,EAAIgpH,GAAKhpH,EAAIkpH,GAAKxwE,EAClB14C,EAAIi7R,GAAKj7R,EAAIk7R,GAAKxiP,EAClB14C,EAAI4pH,KAAO5pH,EAAI6pH,GAAKnxE,EACpB14C,EAAI67R,GAAK77R,EAAI87R,GAAKpjP,EAClB14C,EAAInY,IAAMmY,EAAIlY,IAAM4wD,EAGxBulJ,EAASx4M,KAAKoC,IAAIo2M,EAAQj+L,EAAInY,KAC9Bq2M,EAASz4M,KAAKqC,IAAIo2M,EAAQl+L,EAAIlY,KAE9BkY,EAAIg8R,KAAO7rQ,EAAI5sC,OAAOy3S,GAEtBl7R,EAAGnd,KAAKqd,IAGZ1R,EAAMohC,UAAUgrQ,EAAQl+Q,KAAOpmB,EAAKu5B,aAAa+qQ,EAC7C,CAACz8F,EAAQC,GACT,CAACz6H,QAAQ,QAEV,CACH,IAAIw4N,GAAWvB,EAAQ9rQ,aAAatgC,EAAO0mD,GACvCknP,GAAU1B,EAASM,EAAaC,GAChC/sR,GAAO8sR,EAAYj3S,OACnBs4S,GAAY1B,EAAgBzsR,IAGhC,IAAItuB,EAAI,EAAGA,EAAI4O,EAAM6I,QAASzX,IAE1B,GADA8E,EAAIy3S,GAASv8S,GACTmP,EAAUrK,GAAd,CAEA,IAAIrD,GAAIkV,EAAIkiE,QAAQsiO,EAASn7S,GAAIw8S,IAC9B/6S,IAAK,GAAKA,GAAI6sB,KACbnO,EAAK,CAACrb,EAAGA,EAAG9E,EAAGA,GACfq2E,EAAiBl2D,EAAIvR,EAAO5O,GAC5By8S,GAAUh7S,IAAGwB,KAAKkd,IAI1B,IAAIu8R,GAAgBnyS,IAChBoyS,IAAiBpyS,IAEjB6/H,GAAiBx7H,EAAMw7H,eACvBwyK,GAAmC,cAAnBxyK,GAChByyK,GAAmC,cAAnBzyK,GAGpB,IAAIpqI,EAAI,EAAGA,EAAIsuB,GAAMtuB,IACjB,GAAGy8S,GAAUz8S,GAAGmE,OAAS,EAAG,CAepB,IAAI24S,GACApiK,GAFR,GAbAp6H,EAAM,GACNA,EAAIkzB,IAAMlzB,EAAI+0C,GAAa+lP,EAAYp7S,GAEvCywC,EAAMnwB,EAAImwB,IAAMgsQ,GAAUz8S,GAAGgH,KAAK40S,GAClCV,EAAU56R,EAAIg1C,GAAa7kB,EAAImL,IAAIma,GACnC8C,EAAIqiP,EAAQ/2S,OAEZmc,EAAInY,IAAM+yS,EAAQ,GAClB56R,EAAIlY,IAAM8yS,EAAQriP,EAAI,GACtBv4C,EAAI4pH,KAAOvzH,EAAIuzH,KAAKgxK,EAASriP,GAC7Bv4C,EAAI6pH,GAAKxzH,EAAI0iC,MAAM6hQ,EAASriP,EAAGv4C,EAAI4pH,MACnC5pH,EAAIq7R,IAAMhlS,EAAI0rC,OAAO64P,EAAS,IAE1BriP,EAAI,IAAO+jP,IAAiBC,IAIzBD,IAECE,GAAQ5B,EAAQ52S,MAAM,EAAGu0D,EAAI,GAC7B6hF,GAAQwgK,EAAQ52S,MAAMu0D,EAAI,EAAI,IACxBgkP,KAENC,GAAQ5B,EAAQ52S,MAAM,EAAGu0D,EAAI,EAAI,GACjC6hF,GAAQwgK,EAAQ52S,MAAMu0D,EAAI,IAG9Bv4C,EAAIgpH,GAAK3yH,EAAI0rC,OAAOy6P,GAAO,IAC3Bx8R,EAAIkpH,GAAK7yH,EAAI0rC,OAAOq4F,GAAO,SAE3Bp6H,EAAIgpH,GAAK3yH,EAAI0rC,OAAO64P,EAAS,KAC7B56R,EAAIkpH,GAAK7yH,EAAI0rC,OAAO64P,EAAS,KAIjC56R,EAAIi7R,GAAKM,EAAkBv7R,EAAK46R,EAASriP,GACzCv4C,EAAIk7R,GAAKM,EAAkBx7R,EAAK46R,EAASriP,GAGzCv4C,EAAI3I,GAAKokS,EAAyBz7R,GAClCA,EAAI07R,GAAKC,EAAyB37R,GAGlC,IAAIy8R,GAAMb,EAAiB57R,EAAKu4C,GAChCv4C,EAAI67R,GAAK77R,EAAIq7R,IAAMoB,GACnBz8R,EAAI87R,GAAK97R,EAAIq7R,IAAMoB,GACnBL,GAAgB32S,KAAKoC,IAAIu0S,GAAep8R,EAAI67R,IAC5CQ,GAAgB52S,KAAKqC,IAAIu0S,GAAer8R,EAAI87R,IAE5C97R,EAAIg8R,KAAO7rQ,EAAI5sC,OAAOy3S,GAEtBl7R,EAAGnd,KAAKqd,GAIhB1R,EAAMohC,UAAUgrQ,EAAQl+Q,KAAOpmB,EAAKu5B,aAAa+qQ,EAC7CpsS,EAAM+6H,QAAU4yK,GAASx0S,OAAO,CAAC20S,GAAeC,KAAkBJ,GAClE,CAACx4N,QAAQ,IAMjB,OAFA2lE,EAActpI,EAAIxR,GAEfwR,EAAGjc,OAAS,GACXic,EAAG,GAAGlf,EAAI,CACNk9C,IAAKl4B,EAAW+0R,GAChBI,KAAMA,EACNhmP,UAAWA,EACXC,UAAWA,EACXnvC,OAAQ,CACJw1R,IAAK70O,EAAEn4D,EAAI,WACXxG,IAAK2+D,EAAEn4D,EAAI,QACX26H,GAAIxiE,EAAEn4D,EAAI,OACV66H,GAAI1iE,EAAEn4D,EAAI,OACVvG,IAAK0+D,EAAEn4D,EAAI,QACXu7H,KAAwB,OAAlBt7H,EAAMq7H,QAAmBnjE,EAAEn4D,EAAI,aAAem4D,EAAEn4D,EAAI,SAC1D4sS,GAAIz0O,EAAEn4D,EAAI,gBACV6sS,GAAI10O,EAAEn4D,EAAI,kBAIlBuX,EAAW+0R,KACJ76R,GAEA,CAAC,CAAClf,EAAG,CAACsnB,OAAO,MAkE5B,IAAIw0R,EAAgB,CAChB3tS,KAAM,KACNoV,UAAW,OAGf,SAAS4xD,EAAiBl2D,EAAIvR,EAAOilS,GACjC,IAAI,IAAI9uS,KAAKi4S,EACNrmS,EAAIs7D,oBAAoBrjE,EAAM7J,MAC1BhB,MAAM4J,QAAQkmS,GACVl9R,EAAIs7D,oBAAoBrjE,EAAM7J,GAAG8uS,EAAS,OACzC1zR,EAAG68R,EAAcj4S,IAAM6J,EAAM7J,GAAG8uS,EAAS,IAAIA,EAAS,KAG1D1zR,EAAG68R,EAAcj4S,IAAM6J,EAAM7J,GAAG8uS,IAMhD,SAASnqJ,EAActpI,EAAIxR,GACvB,GAAG+H,EAAIs7D,oBAAoBrjE,EAAMgqB,gBAC7B,IAAI,IAAI54B,EAAI,EAAGA,EAAIogB,EAAGjc,OAAQnE,IAAK,CAI/B,IAHA,IAAIywC,EAAMrwB,EAAGpgB,GAAGywC,KAAO,GACnBkoC,EAAmB,GAEf/zE,EAAI,EAAGA,EAAI6rC,EAAItsC,OAAQS,IAC3B+zE,EAAiBloC,EAAI7rC,GAAG5E,GAAK4E,EAGjC+R,EAAI4iE,YAAY9oC,EAAK7hC,EAAO+pE,IAKxC,SAASijO,EAAU/4S,EAAGC,GAAK,OAAOD,EAAEiC,EAAIhC,EAAEgC,EAE1C,SAASixD,EAAWt1D,GAAK,OAAOA,EAAEqE,EAGlC,SAAS+2S,EAAkBv7R,EAAK46R,EAASriP,GACrC,OAAS,IAANA,EAAgBv4C,EAAIgpH,GAChBvjI,KAAKoC,IACRmY,EAAIgpH,GACJ4xK,EAAQn1S,KAAKoC,IACTwO,EAAIkiE,QAAQ,IAAMv4D,EAAIgpH,GAAK,IAAMhpH,EAAIkpH,GAAI0xK,GAAS,GAAQ,EAC1DriP,EAAI,KAMhB,SAASijP,EAAkBx7R,EAAK46R,EAASriP,GACrC,OAAS,IAANA,EAAgBv4C,EAAIkpH,GAChBzjI,KAAKqC,IACRkY,EAAIkpH,GACJ0xK,EAAQn1S,KAAKqC,IACTuO,EAAIkiE,QAAQ,IAAMv4D,EAAIkpH,GAAK,IAAMlpH,EAAIgpH,GAAI4xK,GACzC,KAOZ,SAASa,EAAyBz7R,GAC9B,OAAO,EAAIA,EAAIgpH,GAAK,EAAIhpH,EAAIkpH,GAKhC,SAASyyK,EAAyB37R,GAC9B,OAAO,EAAIA,EAAIkpH,GAAK,EAAIlpH,EAAIgpH,GAIhC,SAAS4yK,EAAiB57R,EAAKu4C,GAC3B,OAAS,IAANA,EAAgB,EACZ,MAAQv4C,EAAIkpH,GAAKlpH,EAAIgpH,IAAMvjI,KAAKuD,KAAKuvD,K,oCC7ahD,IAAIrtD,EAAO,EAAQ,QAAiBA,KAEpChM,EAAOD,QAAU,WAGb,OAAOiM,EAAK,M,oCCLhB,IAAImL,EAAM,EAAQ,QACd07B,EAAU,EAAQ,QAAcA,QAChC4qQ,EAAY,EAAQ,QACpBC,EAAY,EAAQ,QAAeA,UACnCC,EAAiB,EAAQ,QAAeA,eAExCl+M,EAAe,EAAQ,QAA6BA,aACpDmxL,EAAU,EAAQ,QAA6BA,QAsFnD,SAASgtB,EAAkBn2P,EAAQo2P,EAAQC,EAAY7lP,EAAWp/C,GAC9D,IAEIrY,EAAG4E,EAAG24S,EAAKC,EAFXC,EAAsC,UAAdplS,EACxB0/K,EAAWtgI,EAAUplB,EAAQgrQ,IAAS/pS,KAGtCoqS,EAAe,GACnB,IAAI94S,EAAI,EAAGA,EAAI04S,EAAWn5S,OAAQS,IAE9B,GADA24S,EAAMD,EAAW14S,GACd24S,IAAQF,IAEXG,EAAM/lP,EAAUplB,EAAQkrQ,IACrBC,EAAIlqS,OAASykL,GACZ,GAAIylH,EAAI/6M,YAED,GAAGg7M,GAAyBD,EAAIptP,OAAQ,CAG3C,IAAIutP,EAAalmP,EAAUplB,EAAQmrQ,EAAIptP,SACpCutP,EAAWl7M,YACVi7M,EAAaz6S,KAAKs6S,SANtBG,EAAaz6S,KAAKs6S,GAY9B,IAAIv9S,EAAI,EAAGA,EAAIinD,EAAO9iD,OAAQnE,IAC1B,GAAGinD,EAAOjnD,GAAGq9S,GAAS,CAClB,IAAIO,EAAY32P,EAAOjnD,GAEnB69S,EAAsB,GAC1B,IAAIj5S,EAAI,EAAGA,EAAI84S,EAAav5S,OAAQS,IAChC24S,EAAMG,EAAa94S,GACfg5S,EAAUL,IAAMM,EAAoB56S,KAAKs6S,GAEjD,MAAO,CAACG,aAAcG,EAAqBD,UAAWA,GAI9D,MAAO,CAACF,aAAcA,EAAcE,UAAW,MAiBnD,SAASE,EAAuBC,EAAkBH,EAAWP,EAAQW,EAAaC,GAC9E,IAAIj+S,EAAG4E,EAAGs5S,EAAQC,EAAMC,EAEP,OAAdR,GACCA,EAAY,GACZA,EAAUP,GAAU,EACpBe,EAAiBL,EAAiB55S,OAClC45S,EAAiB96S,KAAK26S,IAEtBQ,EAAiBL,EAAiB/4S,QAAQ44S,GAG9C,IAAIS,EAAgB39S,OAAOunD,KAAK21P,GAIhC,IAAI59S,EAAI,EAAGA,EAAI+9S,EAAiB55S,OAAQnE,IAEpC,GADAk+S,EAASH,EAAiB/9S,GACvBA,IAAMo+S,GAAkBF,EAAOF,GAAc,CAC5C,IAAIM,EAAYJ,EAAOF,GACvB,IAAIp5S,EAAI,EAAGA,EAAIy5S,EAAcl6S,OAAQS,IACjCu5S,EAAOE,EAAcz5S,GACrBs5S,EAAOC,GAAQG,EAAYL,EAAaL,EAAUO,GAGtD,YADAJ,EAAiBntS,OAAOwtS,EAAgB,GAOhD,GAAkB,IAAfH,EACC,IAAIr5S,EAAI,EAAGA,EAAIy5S,EAAcl6S,OAAQS,IACjCg5S,EAAUS,EAAcz5S,KAAOq5S,EAGvCL,EAAUI,GAAe,EAmL7B,SAASO,EAAal4R,EAAI4uC,GACtB,IAAIupP,EAAcn4R,EAAGo4R,aACjBhnF,EAAiB24D,EAAQ/pQ,EAAGq4R,iBAC5B59Q,EAAS09Q,EAAY,IAAMA,EAAY,GAAKA,EAAY,IAAM/mF,EAElEpxM,EAAGgqC,OAAShqC,EAAGgpB,OAAOghB,OAAS,CAC3BvvB,GAAU09Q,EAAY,GAAK19Q,GAAUm0B,EACrCn0B,GAAU09Q,EAAY,GAAK19Q,GAAUm0B,GAEzC5uC,EAAG8U,WA3WP57B,EAAQyoH,yBAA2B,SAASn1E,EAAaC,EAAcM,EAAQvlB,GAC3E,IAuBIqnH,EAASypK,EAcTX,EAAaY,EArCbtB,EAAazvR,EAAKyvR,WAClB7lP,EAAY5pC,EAAK4pC,UACjBonP,EAAkBhxR,EAAKgxR,gBACvBC,EAAgBjxR,EAAKixR,cACrBf,EAAmBtmP,EAAUsnP,sBAC7B10L,EAAc5yD,EAAU6yD,iBACxBvmE,EAAOjR,EAAahW,IACpBtZ,EAAWugC,EAAK10B,OAAO,GACvB2vR,IAAevnP,EAAUw9E,YAAc,IAAIzxH,IAAa,IAAIugC,IAAS,GACrEs5P,EAASvqQ,EAAahW,IACtBquJ,EAASkyH,EAAOhuR,OAAO,GAIvBhX,EAAY+6B,EAAO,YAAa0rQ,GA+CpC,GA9CAnoS,EAAIy8B,OAAOP,EAAaC,EAAc,CAClC4rQ,gBAAiB,CACbj7R,QAAS,aACT8V,OAAmB,MAAX4xJ,EAAiB,CAAC,OAAQ,SAAU,SAAW,CAAC,SAAU,SAAU,OAC5EznK,KAAiB,MAAXynK,EAAiB,SAAW,WAEvC,oBAICt4I,EAAYqiG,UAAW8pK,EAAW9pK,SAAapiG,EAAa2vD,aAC5Dk8M,EAAYvB,EAAkB/yL,EAAagzL,EAAQC,EAAY7lP,GAC/Dy9E,EAAUv+H,EAAIy8B,OAAOP,EAAaC,EAAc,CAC5CoiG,QAAS,CACLzxH,QAAS,aACT8V,OAAQolR,EAAUjB,cAAgB,GAClCh6R,KAAMs7R,EAAW9pK,UAEtB,YAMHA,GACCpiG,EAAa2vD,YAA4B,WAAdpqF,IAC5Bw6B,EAAYmrQ,cAAea,IAE3BD,EAAYxB,EAAkBW,EAAkBV,EAAQC,EAAY7lP,EAAWp/C,GAC/E2lS,EAAcrnS,EAAIy8B,OAAOP,EAAaC,EAAc,CAChDkrQ,YAAa,CACTv6R,QAAS,aACT8V,OAAQqlR,EAAUlB,cAAgB,KAEvC,cAAemB,IAGnB3pK,UACQpiG,EAAaz6B,UACpBylS,EAAuBzzL,EAAas0L,EAAUf,UAAWP,EAAQnoK,EAAS,KACvB,IAA7CooK,EAAWt4S,QAAQ6tC,EAAYqiG,UACrCv+H,EAAI24B,KAAK,WAAawD,EAAalV,MAAQ,cACvCiV,EAAYqiG,QAAU,kFAI3B8oK,EAAa,CACZ,IAAIC,EAAa7qQ,EAAO,cAOpB6qQ,IAAYA,EAAanrQ,EAAamrQ,WAAa,GAEvDH,EAAuBC,EAAkBa,EAAUhB,UAAWP,EAAQW,EAAaC,QAC5B,IAAjDX,EAAWt4S,QAAQ6tC,EAAYmrQ,cACrCrnS,EAAI24B,KAAK,WAAawD,EAAalV,MAAQ,kBACvCiV,EAAYmrQ,YAAc,uKAuGtCz+S,EAAQ62S,QAAU,SAAiBznS,GAC/B,IAGI3O,EAAG4E,EAAGq6S,EAAQ54R,EAAI64R,EAAW/9S,EAAM8zD,EAHnC/uC,EAAavX,EAAG+mB,YAChBqoR,EAAmB73R,EAAW64R,uBAAyB,GAI3D,IAAI/+S,EAAI,EAAGA,EAAI+9S,EAAiB55S,OAAQnE,IAAK,CACzC,IAAIoR,EAAQ2sS,EAAiB/9S,GACzBinP,EAAUvmP,OAAOunD,KAAK72C,GAEtB+tS,EAAW50S,IACX60S,EAAW,EAMXC,EAAa90S,IACb+0S,EAAa,GACb9nS,EAAO,GACP+nS,GAAyB,EAG7B,IAAI36S,EAAI,EAAGA,EAAIqiP,EAAQ9iP,OAAQS,IAC3Bq6S,EAASh4D,EAAQriP,GACjB4S,EAAKynS,GAAU54R,EAAKH,EAAWmsB,EAAQ4sQ,IAEpC54R,EAAGo4R,aAAcp4R,EAAGgqC,OAAShqC,EAAGo4R,aAAan6S,QAC3C+hB,EAAGo4R,aAAep4R,EAAGgqC,OAAO/rD,QAE7B+hB,EAAGm5R,cAAan5R,EAAGm5R,YAAcn5R,EAAGrO,MAAM1T,SAI9C+hB,EAAG8U,WAGHmkR,EAAWL,GAAUC,EAAYn5S,KAAK+R,IAAIuO,EAAGpO,IAAM7G,EAAM6tS,GACzDE,EAAWp5S,KAAKoC,IAAIg3S,EAAUD,GACV,WAAjB74R,EAAGhO,WAA2BgO,EAAGo5R,wBAChCJ,EAAat5S,KAAKoC,IAAIk3S,EAAYH,WAI/B74R,EAAGo5R,sBACVL,EAAWr5S,KAAKqC,IAAIg3S,EAAUF,GAEV,WAAjB74R,EAAGhO,YAAwBknS,GAAyB,GAI3D,KAAGJ,EAAWlgN,EAAemgN,IAAaG,EAG1C,IAAI36S,EAAI,EAAGA,EAAIqiP,EAAQ9iP,OAAQS,IAQ3B,GAPAq6S,EAASh4D,EAAQriP,GACjBs6S,EAAYI,EAAWL,GACvB54R,EAAK7O,EAAKynS,GACV99S,EAAOklB,EAAGhO,UAIP6mS,IAAcG,GAAuB,WAATl+S,EAG3B,GAFA8zD,EAASiqP,EAAYG,EAET,UAATl+S,EACC87S,EAAU52R,EAAI4uC,OACX,CAGH,IAAIupP,EAAcn4R,EAAGo4R,aACjBiB,GAAgBr5R,EAAGgqC,OAAO,GAAKhqC,EAAGgqC,OAAO,KACxCmuP,EAAY,GAAKA,EAAY,IAC9BmB,GAAet5R,EAAG+V,IAAI/V,EAAGrO,MAAM,IAAMqO,EAAG+V,IAAI/V,EAAGrO,MAAM,MACpDqO,EAAG+V,IAAI/V,EAAGm5R,YAAY,IAAMn5R,EAAG+V,IAAI/V,EAAGm5R,YAAY,KAIvD,GAFAvqP,GAAUyqP,EAEPzqP,EAAS0qP,EAAc,EAAG,CAGzBt5R,EAAGgqC,OAAShqC,EAAGgpB,OAAOghB,OAASmuP,EAAYl6S,QAC3C24S,EAAU52R,EAAI4uC,GACd,SAUJ,GAPG0qP,EAAc,IAGbt5R,EAAGrO,MAAQqO,EAAGgpB,OAAOr3B,MAAQqO,EAAGm5R,YAAYl7S,QAC5C2wD,GAAU0qP,GAGXt5R,EAAGqsB,UAAW,CAab,IAAIg4E,EAAMrkG,EAAG+V,IAAI/V,EAAGrO,MAAM,IACtB2yG,EAAMtkG,EAAG+V,IAAI/V,EAAGrO,MAAM,IACtB4nS,GAAel1L,EAAMC,GAAO,EAC5Bk1L,EAAWD,EACXE,EAAWF,EACXG,EAAYh6S,KAAK+R,IAAI6yG,EAAMi1L,GAG3BI,EAAWJ,EAAcG,EAAY9qP,EAAS,OAC9CgrP,EAAWL,EAAcG,EAAY9qP,EAAS,OAC9CirP,EAAShD,EAAU72R,GAEvBk4R,EAAal4R,EAAI4uC,GACjB,IAIIu9F,EACAztJ,EALA3E,EAAI2F,KAAK+R,IAAIuO,EAAGpO,IAChBkoS,EAAWhD,EAAexuS,EAAI0X,GAC9B+5R,EAAWD,EAASh4S,IACpBk4S,EAAWF,EAAS/3S,IAIxB,IAAIrD,EAAI,EAAGA,EAAIq7S,EAASj8S,OAAQY,IAC5BytJ,EAAS4tJ,EAASr7S,GAAG4tB,IAAMutR,EAAOE,EAASr7S,IAAM3E,EAC9CoyJ,EAASwtJ,GAAYxtJ,EAASqtJ,IAC7BA,EAAWrtJ,GAInB,IAAIztJ,EAAI,EAAGA,EAAIs7S,EAASl8S,OAAQY,IAC5BytJ,EAAS6tJ,EAASt7S,GAAG4tB,IAAMutR,EAAOG,EAASt7S,IAAM3E,EAC9CoyJ,EAASytJ,GAAYztJ,EAASstJ,IAC7BA,EAAWttJ,GAInB,IAAI8tJ,GAAgBR,EAAWD,IAAa,EAAIE,GAChD9qP,GAAUqrP,EAEVT,EAAWx5R,EAAGkW,IAAIsjR,GAClBC,EAAWz5R,EAAGkW,IAAIujR,GAClBz5R,EAAGrO,MAAQqO,EAAGgpB,OAAOr3B,MAAS0yG,EAAMC,EAChC,CAACk1L,EAAUC,GAAY,CAACA,EAAUD,GAG1CtB,EAAal4R,EAAI4uC,MASrC11D,EAAQ47D,MAAQ,SAAexsD,EAAI0X,GAC/B,GAAGA,EAAGo4R,aAAc,CAIhB,IAHA,IAAI8B,GAAgB,EAChBx8P,EAAO19B,EAAGyW,IACVihR,EAAmBpvS,EAAG+mB,YAAYqpR,sBAC9Bn6S,EAAI,EAAGA,EAAIm5S,EAAiB55S,OAAQS,IACxC,GAAGm5S,EAAiBn5S,GAAGm/C,GAAO,CAC1Bw8P,GAAgB,EAChB,MAGJA,GAAkC,WAAjBl6R,EAAGhO,YACpBgO,EAAGgpB,OAAOghB,OAAShqC,EAAGgqC,OAAShqC,EAAGo4R,oBAC3Bp4R,EAAGo4R,iB,oCCtWtB,IAAI9wS,EAAU5J,MAAM4J,QAIhBkzK,EAA6B,qBAAhBD,aAAgCA,YAAY4/H,OAEzD5/H,YADA,CAAC4/H,OAAQ,WAAa,OAAO,IAG7BxqM,EAA0B,qBAAbyqM,SACb,aACAA,SAEJ,SAASl1L,EAAa1oH,GAClB,OAAOg+K,EAAG2/H,OAAO39S,MAAQA,aAAamzG,GAI1C,SAAS/jC,EAAoBpvE,GACzB,OAAO8K,EAAQ9K,IAAM0oH,EAAa1oH,GAYtC,SAASisC,EAAUjsC,GACf,OAAQovE,EAAoBpvE,EAAE,IAoGlC,SAAS69S,EAAWzxS,EAAGoY,EAAIs5R,GACvB,GAAG1uO,EAAoBhjE,GAAI,CACvB,GAAGgjE,EAAoBhjE,EAAE,IAAK,CAE1B,IADA,IAAI6e,EAAM6yR,EACF3gT,EAAI,EAAGA,EAAIiP,EAAE9K,OAAQnE,IACzB8tB,EAAMzG,EAAGyG,EAAK7e,EAAEjP,GAAGmE,QAEvB,OAAO2pB,EAEP,OAAO7e,EAAE9K,OAGjB,OAAO,EAhIX5E,EAAQgsH,aAAeA,EAKvBhsH,EAAQ0yE,oBAAsBA,EAa9B1yE,EAAQuvC,UAAYA,EAUpBvvC,EAAQw5M,YAAc,SAAS74L,EAAKze,GAShC,OANIkM,EAAQuS,KAAMA,EAAM,IAIxBA,EAAI/b,OAAS1C,EAENye,GAUX3gB,EAAQwI,OAAS,WACb,IAII64S,EAAcC,EAAM7gT,EAAG8gT,EAAMloO,EAAMmoO,EAAM7gS,EAAKtb,EAJ9CmmC,EAAO,GACPi2Q,GAAW,EACXC,EAAW,EAIf,IAAIjhT,EAAI,EAAGA,EAAIob,UAAUjX,OAAQnE,IAC7B8gT,EAAO1lS,UAAUpb,GACjB+gT,EAAOD,EAAK38S,OACT48S,IACIF,EAAM91Q,EAAK9nC,KAAK69S,IAEfD,EAAOC,EACPloO,EAAOmoO,GAGRpzS,EAAQmzS,GACPF,GAAe,GAEfI,GAAW,EACPC,EAEML,IAAiBE,EAAK7iR,cAG5B2iR,GAAe,GAJfA,EAAeE,EAAK7iR,aAQ5BgjR,GAAYF,GAIpB,IAAIE,EAAU,MAAO,GACrB,IAAIl2Q,EAAK5mC,OAAQ,OAAO08S,EAExB,GAAGG,EAAU,OAAOH,EAAK94S,OAAOxD,MAAMs8S,EAAM91Q,GAC5C,GAAG61Q,EAAc,CAIb,IAFA1gS,EAAM,IAAI0gS,EAAaK,GACvB/gS,EAAIjS,IAAI4yS,GACJ7gT,EAAI,EAAGA,EAAI+qC,EAAK5mC,OAAQnE,IACxB8gT,EAAO/1Q,EAAK/qC,GACZkgB,EAAIjS,IAAI6yS,EAAMloO,GACdA,GAAQkoO,EAAK38S,OAEjB,OAAO+b,EAKX,IADAA,EAAM,IAAInc,MAAMk9S,GACZr8S,EAAI,EAAGA,EAAIi8S,EAAK18S,OAAQS,IAAKsb,EAAItb,GAAKi8S,EAAKj8S,GAC/C,IAAI5E,EAAI,EAAGA,EAAI+qC,EAAK5mC,OAAQnE,IAAK,CAE7B,IADA8gT,EAAO/1Q,EAAK/qC,GACR4E,EAAI,EAAGA,EAAIk8S,EAAK38S,OAAQS,IAAKsb,EAAI04D,EAAOh0E,GAAKk8S,EAAKl8S,GACtDg0E,GAAQh0E,EAEZ,OAAOsb,GAGX3gB,EAAQowC,aAAe,SAAS1gC,GAC5B,OAAOyxS,EAAWzxS,EAAGlJ,KAAKqC,IAAK,IAGnC7I,EAAQq6D,aAAe,SAAS3qD,GAC5B,OAAOyxS,EAAWzxS,EAAGlJ,KAAKoC,IAAKoC,O,oCChInC,IAAIoM,EAAM,EAAQ,QACdm7E,EAAW,EAAQ,QACnB1/C,EAAU,EAAQ,QAElBlnC,EAAa,EAAQ,QACrBgqH,EAAe,EAAQ,QAE3B11H,EAAOD,QAAU,SAAwBi4D,EAAUC,EAAW68B,GAC1D,IAAIE,EAAOh9B,EAAS88B,GAChBG,EAAQh9B,EAAU68B,GAEtB,GAAKE,EAAK4gC,aAAe39D,EAAUypP,oBAAoBzsN,EAAM33D,KAA7D,CAGInmB,EAAI6qD,cAAcgzB,EAAK4gC,eACvB5gC,EAAK4gC,YAAc,IAGvB,IAOI+rL,EAAkBC,EAPlBvuQ,EAAc2hD,EAAK4gC,YACnBtiF,EAAeg/C,EAASW,aAAagC,EAAO,eAW5CtiF,EAAUihC,EAAO,WACrB,GAAIjhC,EAAJ,CAEAihC,EAAO,UAAWqkB,EAAU+C,cAC5BpnB,EAAO,eACPA,EAAO,eACPA,EAAO,aAEPA,EAAO,aAAcqhD,EAAMW,aAAaviD,EAAY76B,QACpDo7B,EAAO,SAEP,IAAIxL,EAAW6vB,EAAUxkB,UACzB,GAAGrL,EASC,IARA,IAAIggB,EAAOhgB,EAAS+iB,UACf9mD,QAAO,SAAS82D,GACb,OAAOA,EAAUpoD,OAAO,EAAGooD,EAAU31D,QAAQ,QAAUotC,EAAQE,QAAQgiD,MAE1E14C,KAAI,SAAS+e,GACV,OAAOA,EAAUpoD,OAAOooD,EAAU31D,QAAQ,KAAM21D,EAAUx2D,WAE9Dk9S,EAAS1qS,EAAIwlB,UAAUyrB,EAAMxV,EAAQC,SACjCryC,EAAI,EAAGA,EAAIqhT,EAAOl9S,OAAQnE,IAAK,CACnC,IAAI09N,EAAQ2jF,EAAOrhT,GAEnBmhT,EAAmBtuQ,EAAY6qL,IAAU,GACzC0jF,EAAoBtvN,EAASW,aAAa3/C,EAAc4qL,EAAO,SAE/D,IAEI4jF,EAFAC,EAAS9pP,EAAUimK,GAGpByjF,EAAiBnpS,OAASupS,EAAOnsN,aAAa+rN,EAAiBnpS,SAC9DspS,EAAgB,SAGpB,IAAIE,EAAYC,EAAY,YAAaH,GACxB,UAAdE,GACCC,EAAY,QAASF,EAAOvpS,MAAM1T,SAM9CwuC,EAAazD,OAASwD,GAnDtB,SAASO,EAAOjrB,EAAMzE,GAClB,OAAO/M,EAAIy8B,OAAOP,EAAaC,EAAc5nC,EAAYid,EAAMzE,GAInE,SAAS+9R,EAAYt5R,EAAMzE,GACvB,OAAO/M,EAAIy8B,OAAO+tQ,EAAkBC,EAAmBlsL,EAAc/sG,EAAMzE,M,qCCrCnF,YAGA,IAAIrV,EAAO,EAAQ,QAsFnB,SAASyiN,EAAQrwN,GAChB,GAAIA,EAAEoxB,UACL,GAAIpxB,EAAEoxB,WAAapR,SAASwf,KACtBxf,SAASwf,KAAKlwB,MAAMwR,QAAO9gB,EAAE+f,OAAOe,MAAQ9gB,EAAE8gB,OAAU9gB,EAAEsK,WAAa0sF,EAAOzzD,YAC9EvjB,SAASwf,KAAKlwB,MAAM2Z,SAAQjpB,EAAE+f,OAAOkJ,OAASjpB,EAAEipB,QAAWjpB,EAAEsK,WAAa0sF,EAAOxzD,iBAElF,CACJ,IAAIz6B,EAAS/I,EAAEoxB,UAAUhK,wBACzBpnB,EAAE+f,OAAOe,MAAQ9gB,EAAE8gB,OAAU/X,EAAOyK,MAAQzK,EAAOwK,KACnDvT,EAAE+f,OAAOkJ,OAASjpB,EAAEipB,QAAWlgB,EAAO+oB,OAAS/oB,EAAOgpB,KAKzD,SAASkvR,EAAU9jS,GAClB,MAA+B,oBAAjBA,EAAEgD,YACZ,UAAWhD,GACX,WAAYA,EAGjB,SAAS+jS,EAAW/jS,GACnB,MAA6B,kBAAfA,EAAEkV,UACU,oBAAlBlV,EAAE0L,aAC0B,oBAA5B1L,EAAEiK,sBAGX,SAAS47L,EAAW7lM,GACnB,MAA+B,oBAAjBA,EAAEqqH,YACW,oBAAnBrqH,EAAEoqH,aAGX,SAAS45K,IACR,IAAIphS,EAASC,SAASC,cAAc,UAKpC,OAJAF,EAAOzQ,MAAMnG,SAAW,WACxB4W,EAAOzQ,MAAMyiB,IAAM,EACnBhS,EAAOzQ,MAAMiE,KAAO,EAEbwM,EAzHRhhB,EAAOD,QAAU,SAAqBkB,GA+BrC,GA9BKA,EACiB,kBAANA,IAAgBA,EAAI,CAACoxB,UAAWpxB,IADxCA,EAAI,GAKXA,EADGihT,EAASjhT,GACR,CAACoxB,UAAWpxB,GAGRkhT,EAAUlhT,GACd,CAACoxB,UAAWpxB,GAGRgjN,EAAUhjN,GACd,CAACuJ,GAAIvJ,GAIL4N,EAAK5N,EAAG,CACXoxB,UAAW,wFACX7nB,GAAI,6BACJua,MAAO,qCACPxZ,WAAY,iDACZwW,MAAO,UACPmI,OAAQ,aACN,GAGCjpB,EAAEsK,aAAYtK,EAAEsK,WAAa0sF,EAAO1sF,YAAc,GAGnDtK,EAAEuJ,GACL,OAAOvJ,EAAEuJ,GAKV,GAHIvJ,EAAE+f,SACL/f,EAAEoxB,UAAYpxB,EAAE+f,OAAO+H,YAEpB9nB,EAAEoxB,UAAW,CAChB,GAA2B,kBAAhBpxB,EAAEoxB,UAAwB,CACpC,IAAIxxB,EAAIogB,SAASs6C,cAAct6D,EAAEoxB,WACjC,IAAKxxB,EAAG,MAAM+D,MAAM,WAAa3D,EAAEoxB,UAAY,iBAC/CpxB,EAAEoxB,UAAYxxB,EAEXqhT,EAASjhT,EAAEoxB,YACdpxB,EAAE+f,OAAS/f,EAAEoxB,UACbpxB,EAAEoxB,UAAYpxB,EAAE+f,OAAO+H,YAEd9nB,EAAE+f,SACX/f,EAAE+f,OAASohS,IACXnhT,EAAEoxB,UAAUvI,YAAY7oB,EAAE+f,QAC1BswM,EAAOrwN,SAIJ,IAAKA,EAAE+f,OAAQ,CACnB,GAAwB,qBAAbC,SAOV,MAAMrc,MAAM,yCANZ3D,EAAEoxB,UAAYpR,SAASwf,MAAQxf,SAASuzL,gBACxCvzM,EAAE+f,OAASohS,IACXnhT,EAAEoxB,UAAUvI,YAAY7oB,EAAE+f,QAC1BswM,EAAOrwN,GAQT,IAAKA,EAAEuJ,GACN,IACCvJ,EAAEuJ,GAAKvJ,EAAE+f,OAAOI,WAAW,QAASngB,EAAE8jB,OACrC,MAAO3G,GACR,IACCnd,EAAEuJ,GAAKvJ,EAAE+f,OAAOI,WAAW,qBAAsBngB,EAAE8jB,OAEpD,MAAO3G,GACNnd,EAAEuJ,GAAKvJ,EAAE+f,OAAOI,WAAW,qBAAsBngB,EAAE8jB,QAKtD,OAAO9jB,EAAEuJ,M,0DCnFV,IAAId,EAAgB,EAAQ,QACxBP,EAAgB,EAAQ,QACxBC,EAAgB,EAAQ,QACxBC,EAAgB,EAAQ,QACxB6/F,EAAgB,EAAQ,QACxBjpF,EAAgB,EAAQ,QACxBzW,EAAgB,EAAQ,QACxBsoG,EAAgB,EAAQ,QAExBshD,EAAW,CACb,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,GAER,SAASivJ,EAAW73S,EAChBK,EACA+sP,EACAltP,EACAotP,EACAwqD,EACAvqD,EACAC,EACAC,EACAE,EACAjgM,GAEF93D,KAAKoK,GAAoBA,EACzBpK,KAAKmL,WAAqB,EAC1BnL,KAAKuH,MAAoB,GACzBvH,KAAKsN,UAAoB,GACzBtN,KAAKskK,UAAoB,GACzBtkK,KAAKyK,QAAoBA,EACzBzK,KAAKkL,OAAoB,EAEzBlL,KAAKw3P,UAAoBA,EACzBx3P,KAAKsK,WAAoBA,EAEzBtK,KAAK03P,kBAAoBA,EACzB13P,KAAKkiT,gBAAoBA,EACzBliT,KAAK43P,eAAoBA,EACzB53P,KAAK63P,YAAoBA,EACzB73P,KAAK23P,YAAoBA,EACzB33P,KAAK+3P,YAAoBA,EACzB/3P,KAAK64P,cAAoB,EAEzB74P,KAAK6K,OAAoB,EACzB7K,KAAK4J,OAAoB,CACvB,CAAEe,IAAUA,IAAUA,KACtB,EAAEA,KAAUA,KAAUA,MACxB3K,KAAK0K,WAAoB,CACvB,EAAEC,KAAUA,KAAUA,KACtB,CAAEA,IAAUA,IAAUA,MAExB3K,KAAK0yP,cAAgB,CAAC,IAAK,IAAK,GAChC1yP,KAAKi5P,aAAgB,GACrBj5P,KAAKk5P,aAAgB,GACrBl5P,KAAKm5P,cAAgB,EACrBn5P,KAAK2lB,UAAgB,GACrB3lB,KAAK4lB,QAAgB,IAErB5lB,KAAKgL,QAAgB,EAErBhL,KAAK83D,UAAgBA,EACrB93D,KAAKy2G,UAAgB,EACrBz2G,KAAKmkK,UAAgB,EACrBnkK,KAAK8jK,YAAgB,EACrB9jK,KAAK0jK,WAAgB,IAErB1jK,KAAKo5P,OAAepmG,EACpBhzJ,KAAKq5P,MAAermG,EACpBhzJ,KAAKs5P,YAAetmG,EACpBhzJ,KAAKu5P,YAAe,CAAC,EAAE,GAGzB,IAAIn1P,EAAQ69S,EAAWjgT,UAgBvB,SAASy3P,EAAYv3G,GAQnB,IAPA,IAAI30I,EAASmkG,EAAS,CAClBA,SAAUwwC,EACVw3G,QAAU,IACV50J,OAAS,SAGTj7F,EAAS,IAAI2J,WAAW,MACpBpT,EAAE,EAAGA,EAAE,MAAOA,EAAG,CAEvB,IADA,IAAIK,EAAI8M,EAAOnN,GACP4E,EAAE,EAAGA,EAAE,IAAKA,EAClB6E,EAAO,EAAEzJ,EAAE4E,GAAKvE,EAAEuE,GAEpB6E,EAAO,EAAEzJ,EAAE,GAAU,IAALK,EAAE,GAGpB,OAAO2I,EAAQS,EAAQ,CAAC,IAAI,IAAI,GAAI,CAAC,EAAE,EAAE,IAG3C,SAASkwP,EAAe3wN,GAGtB,IAFA,IAAIvnC,EAAIunC,EAAM7kC,OACVsF,EAAS,IAAI1F,MAAMtC,GACfzB,EAAE,EAAGA,EAAEyB,IAAKzB,EAClByJ,EAAOzJ,GAAKgpC,EAAMhpC,GAAG,GAEvB,OAAOyJ,EAuWT,SAASmwP,EAAiB5vP,EAAIf,GAC5B,IAAIgB,EAASf,EAAac,EACxBf,EAAQi0L,WAAWvwJ,OACnB1jC,EAAQi0L,WAAWzjC,SACnB,KACAxwJ,EAAQi0L,WAAWhyL,YAOrB,OAJAjB,EAAOiB,WAAWtB,SAASuB,SAAW,EACtClB,EAAOiB,WAAWG,MAAMF,SAAc,EACtClB,EAAOiB,WAAW2uP,GAAG1uP,SAAiB,EACtClB,EAAOiB,WAAW62S,OAAO52S,SAAa,EAC/BlB,EAIT,SAASd,EAAiBa,EAAIf,GAC5B,IAAIgB,EAASf,EAAac,EACxBf,EAAQiB,WAAWyiC,OACnB1jC,EAAQiB,WAAWuvJ,SACnB,KACAxwJ,EAAQiB,WAAWgB,YAMrB,OAHAjB,EAAOiB,WAAWtB,SAASuB,SAAW,EACtClB,EAAOiB,WAAWc,GAAGb,SAAiB,EACtClB,EAAOiB,WAAW62S,OAAO52S,SAAa,EAC/BlB,EAIT,SAAS+3S,EAAiBh4S,EAAIolG,EAAQvhF,GACpC,IAAI5kB,EAAU4kB,EAAK5kB,QAEM,IAArBmS,UAAUjX,SACZirG,EAASplG,EACTA,EAAKolG,EAAOplG,IAId,IAAIotP,EAAkBwC,EAAiB5vP,EAAIf,GACvCiB,EAAkBf,EAAiBa,EAAIf,GACvCkxP,EAAoBtxP,EAAcmB,EACpChB,EAAQ,IAAIoK,WAAW,CAAC,IAAI,IAAI,IAAI,MAAO,CAAC,EAAE,EAAE,KAClD+mP,EAAY96H,iBACZ86H,EAAY17H,UAAYz0H,EAAGgwH,qBAC3BmgI,EAAYz7H,UAAY10H,EAAG2vH,OAE3B,IAAI29H,EAAoB3uP,EAAaqB,GACjC83S,EAAoBn5S,EAAaqB,GACjCwtP,EAAoB7uP,EAAaqB,GACjCytP,EAAoB9uP,EAAaqB,GACjCutP,EAAoB5uP,EAAaqB,GACjC2tP,EAAoB/uP,EAAUoB,EAAI,CACpC,CAAEG,OAAQmtP,EACRhkP,KAAMtJ,EAAGwyH,MACTx4G,KAAM,GAER,CAAE7Z,OAAQotP,EACRjkP,KAAMtJ,EAAGyyH,cACTz4G,KAAM,EACN2yK,YAAY,GAEd,CAAExsL,OAAQqtP,EACRlkP,KAAMtJ,EAAGwyH,MACTx4G,KAAM,GAER,CAAE7Z,OAAQstP,EACRnkP,KAAMtJ,EAAGwyH,MACTx4G,KAAM,GAER,CAAE7Z,OAAQ23S,EACRxuS,KAAMtJ,EAAGwyH,MACTx4G,KAAM,KAINwtO,EAAO,IAAIqwD,EAAW73S,EACtBmwP,EACA/C,EACAltP,EACAotP,EACAwqD,EACAvqD,EACAC,EACAC,EACAE,EACA9pO,EAAK6pC,WAAa,QAKtB,OAFA85L,EAAK7lP,OAAOyjG,GAELoiJ,EA1eTxtP,EAAM6H,SAAW,WACf,OAAOjM,KAAKgL,SAAW,GAGzB5G,EAAM4H,cAAgB,WACpB,OAAOhM,KAAKgL,QAAU,GAGxB5G,EAAM8H,UAAY,EAElB9H,EAAM+H,YAAc,SAASC,GAC3BpM,KAAK6K,OAASuB,GA+BhBhI,EAAM2H,OAAS,SAASyjG,GACtBA,EAASA,GAAU,GACnB,IAAIplG,EAAKpK,KAAKoK,GAEdpK,KAAKkL,OAAQ,EAEV,kBAAmBskG,IACpBxvG,KAAK0yP,cAAgBljJ,EAAOkjJ,eAE3B,YAAaljJ,IACdxvG,KAAKgL,QAAUwkG,EAAOxkG,SAErB,YAAawkG,IACdxvG,KAAKi5P,aAAgBzpJ,EAAOhqF,SAE3B,YAAagqF,IACdxvG,KAAKk5P,aAAe1pJ,EAAO/pF,SAE1B,aAAc+pF,IACfxvG,KAAKm5P,cAAgB3pJ,EAAO9pF,UAE3B,cAAe8pF,IAChBxvG,KAAK2lB,UAAY6pF,EAAO7pF,WAEvB,YAAa6pF,IACdxvG,KAAK4lB,QAAU4pF,EAAO5pF,cAIC5C,IAArBwsF,EAAOiH,YACTz2G,KAAKy2G,UAAYjH,EAAOiH,gBAICzzF,IAAvBwsF,EAAOs0D,cACT9jK,KAAK8jK,YAAct0D,EAAOs0D,kBAEH9gJ,IAArBwsF,EAAO20D,YACTnkK,KAAKmkK,UAAY30D,EAAO20D,gBAEAnhJ,IAAtBwsF,EAAOk0D,aACT1jK,KAAK0jK,WAAal0D,EAAOk0D,YAGvBl0D,EAAOkC,WACT1xG,KAAKyK,QAAQy3B,MAAQ,CAAC,IAAI,KAC1BliC,KAAKyK,QAAQo0H,UAAYz0H,EAAGgwH,qBAC5Bp6H,KAAKyK,QAAQq0H,UAAY10H,EAAG2vH,OAC5B/5H,KAAKyK,QAAQ8D,UAAUkrP,EAAYjqJ,EAAOkC,WAC1C1xG,KAAKyK,QAAQg1H,kBAGf,IAAIl4H,EAAQioG,EAAOjoG,MACf+F,EAAYkiG,EAAOliG,UACnBmjG,EAAUjB,EAAOiB,QAErB,GAAInjG,GAAc/F,GAAUkpG,EAA5B,CAIA,IAAImqJ,EAAO,GACPynD,EAAO,GACPxnD,EAAO,GACPE,EAAO,GACPC,EAAO,GAGXh7P,KAAKuH,MAAYA,EACjBvH,KAAKsN,UAAYA,EACjBtN,KAAKywG,QAAYA,EAGjB,IAAI+iJ,EAAkBhkJ,EAAOgkJ,WAAa,CAAC,EAAE,EAAE,EAAE,GAG7CjiJ,EAAkB/B,EAAO+B,gBAEzBsqJ,EAAkBlxP,IAClBmxP,GAAmBnxP,IAEvB,GAAG4mG,EACD,GAAG/B,EAAOi0D,sBACRo4F,GAAersJ,EAAOi0D,sBAAsB,GAC5Cq4F,GAAetsJ,EAAOi0D,sBAAsB,QAE5C,IAAI,IAAIrjK,EAAE,EAAGA,EAAEmxG,EAAgBhtG,SAAUnE,EAAG,CAC1C,IAAI0oC,EAAIyoE,EAAgBnxG,GACxBy7P,EAAc11P,KAAKoC,IAAIszP,EAAa/yN,GACpCgzN,EAAc31P,KAAKqC,IAAIszP,EAAahzN,QAIxC,IAAQ1oC,EAAE,EAAGA,EAAEkN,EAAU/I,SAAUnE,EAAG,CAChC0oC,EAAIx7B,EAAUlN,GAAG,GACrBy7P,EAAc11P,KAAKoC,IAAIszP,EAAa/yN,GACpCgzN,EAAc31P,KAAKqC,IAAIszP,EAAahzN,GAKtC9oC,KAAKskK,UADJ/yD,GAGgBwoJ,EAAezsP,GAIlCtN,KAAK4J,OAAe,CAAC,CAACe,IAASA,IAASA,KAAW,EAAEA,KAAUA,KAAUA,MACzE,IAAQvK,EAAE,EAAGA,EAAEkN,EAAU/I,SAAUnE,EAEjC,IADA,IAAI8B,EAAIoL,EAAUlN,GACV4E,EAAE,EAAGA,EAAE,IAAKA,GACf6I,MAAM3L,EAAE8C,KAAQ8I,SAAS5L,EAAE8C,MAG9BhF,KAAK4J,OAAO,GAAG5E,GAAKmB,KAAKoC,IAAIvI,KAAK4J,OAAO,GAAG5E,GAAI9C,EAAE8C,IAClDhF,KAAK4J,OAAO,GAAG5E,GAAKmB,KAAKqC,IAAIxI,KAAK4J,OAAO,GAAG5E,GAAI9C,EAAE8C,KAKtD,IAAI6zP,EAAgB,EAEtBprP,EACE,IAAQrN,EAAE,EAAGA,EAAEmH,EAAMhD,SAAUnE,EAAG,CAChC,IAAI0C,EAAOyE,EAAMnH,GACjB,OAAO0C,EAAKyB,QACV,KAAK,EAEH,IAAQS,EAAE,EAAGA,EAAE,IAAKA,EAGlB,IAFA,IAAIE,EAAIpC,EAAKkC,GAELG,GADJjD,EAAIoL,EAAUpI,GACR,GAAGC,EAAE,IAAKA,EAClB,GAAG0I,MAAM3L,EAAEiD,MAAQ2I,SAAS5L,EAAEiD,IAC5B,SAASsI,EAKf,IAAQzI,EAAE,EAAGA,EAAE,IAAKA,EAAG,CACjBE,EAAIpC,EAAK,EAAIkC,GAEb9C,EAAIoL,EAAUpI,GAClB01P,EAAKv3P,KAAKnB,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAE9B,IAAIgc,EAAIuyF,EAAQvrG,GAChBm9S,EAAKh/S,KAAK6a,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAAM,GAEpC,IAOI+7O,EAPAx5P,EAAI+yP,EACQ,IAAb/yP,EAAE8D,OACHs2P,EAAKx3P,KAAK5C,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,GAE5Bo6P,EAAKx3P,KAAK5C,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAK9Bw5P,EADC1oJ,EACI,EACFA,EAAgBrsG,GAAK22P,IACrBC,EAAcD,GAAc,GAE1B,EACF35P,EAAE,GAAK25P,IACPC,EAAcD,GAAc,GAEjCd,EAAK13P,KAAK42P,EAAG,GAAIA,EAAG,IAEpBe,EAAK33P,KAAKjD,GAEZy4P,GAAiB,EACnB,MAEA,QACA,OAIJ74P,KAAK64P,cAAiBA,EAEtB74P,KAAK03P,kBAAkB3rP,OAAO6uP,GAC9B56P,KAAKkiT,gBAAgBn2S,OAAOs2S,GAC5BriT,KAAK43P,eAAe7rP,OAAO8uP,GAC3B76P,KAAK63P,YAAY9rP,OAAOgvP,GACxB/6P,KAAK23P,YAAY5rP,OAAO,IAAIkwP,YAAYjB,MAG1C52P,EAAMiI,gBAAkBjI,EAAMkI,KAAO,SAASkjG,GAC5CA,EAASA,GAAU,GAOnB,IANA,IAAIplG,EAAcpK,KAAKoK,GACnBqC,EAAc+iG,EAAO/iG,OAAcumJ,EACnCtmJ,EAAc8iG,EAAO9iG,MAAcsmJ,EACnCrmJ,EAAc6iG,EAAO7iG,YAAcqmJ,EAEnCtoJ,EAAa,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC,IAAI,IAAI,MACpCtK,EAAE,EAAGA,EAAE,IAAKA,EAClBsK,EAAW,GAAGtK,GAAK+F,KAAKqC,IAAIkC,EAAW,GAAGtK,GAAIJ,KAAK0K,WAAW,GAAGtK,IACjEsK,EAAW,GAAGtK,GAAK+F,KAAKoC,IAAImC,EAAW,GAAGtK,GAAIJ,KAAK0K,WAAW,GAAGtK,IAGnE,IAAIoM,EAAW,CACbC,MAAYA,EACZC,KAAYA,EACZC,WAAYA,EACZuvP,aAAclpG,EAAStuJ,QAEvBgG,WAAYA,EAEZyxP,SAAYn8P,KAAKi5P,aACjBmD,SAAYp8P,KAAKk5P,aACjBmD,UAAYr8P,KAAKm5P,cACjBxzO,UAAY3lB,KAAK2lB,UACjBC,QAAY5lB,KAAK4lB,QAEjB02O,YAAe,CAAC,EAAE,EAAE,GACpB5J,cAAe,CAAC,EAAE,EAAE,GAEpB1nP,QAAUhL,KAAKgL,QAEfyrG,UAAWz2G,KAAKy2G,UAEhBqtD,YAAa9jK,KAAK8jK,YAClBK,UAAWnkK,KAAKmkK,UAChBT,WAAY1jK,KAAK0jK,WAEjBj5J,QAAY,GAGd+B,EAAS0vP,aAAer8O,EAAOrT,EAAS0vP,aAAc1vP,EAASC,OAE/DrC,EAAGm3B,QAAQn3B,EAAGi9B,WAEdrnC,KAAKyK,QAAQ7I,KAAK,GAElB,IAAI26P,EAAkB,IAAIp4P,MAAM,IAChC2kG,EAASyzJ,EAAiB/vP,EAASE,KAAMF,EAASC,OAClDq8F,EAASyzJ,EAAiB/vP,EAASG,WAAY4vP,GAC/C18O,EAAO08O,EAAiBA,GAExB,IAAQn8P,EAAE,EAAGA,EAAE,IAAKA,EAClBoM,EAAS8vP,YAAYl8P,GAAKm8P,EAAgB,GAAGn8P,GAAKm8P,EAAgB,IAGpE,IAAIr+O,EAAIq+O,EAAgB,IACxB,IAAQn8P,EAAE,EAAGA,EAAE,IAAKA,EAClB8d,GAAKle,KAAK0yP,cAActyP,GAAKm8P,EAAgB,EAAEn8P,EAAE,GAEnD,IAAQA,EAAE,EAAGA,EAAE,IAAKA,EAAG,CAErB,IADA,IAAI+B,EAAIo6P,EAAgB,GAAGn8P,GACnB4E,EAAE,EAAGA,EAAE,IAAKA,EAClB7C,GAAKo6P,EAAgB,EAAEv3P,EAAE5E,GAAKJ,KAAK0yP,cAAc1tP,GAEnDwH,EAASkmP,cAActyP,GAAK+B,EAAI+b,EAGlC,GAAGle,KAAK64P,cAAgB,EAAG,CACzB,IAAIxuP,EAASrK,KAAKw3P,UAClBntP,EAAOzI,OACPyI,EAAOmC,SAAWA,EAElBxM,KAAK+3P,YAAYn2P,OACjBwI,EAAGi+H,WAAWj+H,EAAGygL,UAAW,EAAsB,EAAnB7qL,KAAK64P,eACpC74P,KAAK+3P,YAAY9qP,WAIrB7I,EAAM8I,SAAW,SAASsiG,GACxBA,EAASA,GAAU,GASnB,IAPA,IAAIplG,EAAapK,KAAKoK,GAElBqC,EAAa+iG,EAAO/iG,OAAcumJ,EAClCtmJ,EAAa8iG,EAAO9iG,MAAcsmJ,EAClCrmJ,EAAa6iG,EAAO7iG,YAAcqmJ,EAElCtoJ,EAAa,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC,IAAI,IAAI,MACpCtK,EAAE,EAAGA,EAAE,IAAKA,EAClBsK,EAAW,GAAGtK,GAAK+F,KAAKqC,IAAIkC,EAAW,GAAGtK,GAAIJ,KAAK0K,WAAW,GAAGtK,IACjEsK,EAAW,GAAGtK,GAAK+F,KAAKoC,IAAImC,EAAW,GAAGtK,GAAIJ,KAAK0K,WAAW,GAAGtK,IAInEJ,KAAKo5P,OAAc,GAAG10P,MAAMnE,KAAKkM,GACjCzM,KAAKq5P,MAAc,GAAG30P,MAAMnE,KAAKmM,GACjC1M,KAAKs5P,YAAc,GAAG50P,MAAMnE,KAAKoM,GACjC3M,KAAKu5P,YAAc,CAACnvP,EAAG0C,mBAAoB1C,EAAG2C,qBAE9C,IAAIP,EAAW,CACbC,MAAYA,EACZC,KAAYA,EACZC,WAAYA,EACZjC,WAAYA,EAEZ+rG,UAAWz2G,KAAKy2G,UAChBqtD,YAAa9jK,KAAK8jK,YAClBK,UAAWnkK,KAAKmkK,UAChBT,WAAY1jK,KAAK0jK,WAEjB74J,OAAY7K,KAAK6K,OAAS,KAGxBR,EAASrK,KAAKsK,WAClBD,EAAOzI,OACPyI,EAAOmC,SAAWA,EAEfxM,KAAK64P,cAAgB,IACtB74P,KAAK+3P,YAAYn2P,OACjBwI,EAAGi+H,WAAWj+H,EAAGygL,UAAW,EAAsB,EAAnB7qL,KAAK64P,eACpC74P,KAAK+3P,YAAY9qP,WAKrB7I,EAAMqK,KAAO,SAAS+tP,GACpB,IAAIA,EACF,OAAO,KAET,GAAGA,EAASpwP,KAAOpM,KAAK6K,OACtB,OAAO,KAGT,IAAI4xP,EAAYD,EAASn7P,MAAM,GAAK,IAAIm7P,EAASn7P,MAAM,GAAK,MAAMm7P,EAASn7P,MAAM,GAC7EyB,EAAY9C,KAAKuH,MAAMk1P,GACvB7oN,EAAU5zC,KAAKsN,UAAUxK,EAAK,IAAI4B,MAAM,EAAG,GAE3CmF,EAAS,CACXG,SAAU4pC,EACV3pC,eAAgB2pC,EAChB7wC,MAAOoD,KAAK2N,MAAMhR,EAAK,GAAK,KAa9B,MATsB,SAAnB9C,KAAK83D,UACNjuD,EAAO9G,MAAQoD,KAAK2N,MAAMhR,EAAK,GAAK,IACT,eAAnB9C,KAAK83D,YACbjuD,EAAOy6J,UAAYtkK,KAAKskK,UAAUxhK,EAAK,IACvC+G,EAAOy4S,SAAWtiT,KAAKywG,QAAQ3tG,EAAK,IAAI4B,MAAM,EAAG,GACjDmF,EAAOghF,WAAa7qF,KAAKywG,QAAQ3tG,EAAK,IAAI,GAC1C+G,EAAO9G,MAAQ05P,GAGV5yP,GAITzF,EAAMoK,QAAU,WACdxO,KAAKyK,QAAQ+D,UAEbxO,KAAKw3P,UAAUhpP,UACfxO,KAAKsK,WAAWkE,UAEhBxO,KAAK+3P,YAAYvpP,UACjBxO,KAAK03P,kBAAkBlpP,UACvBxO,KAAKkiT,gBAAgB1zS,UACrBxO,KAAK43P,eAAeppP,UACpBxO,KAAK63P,YAAYrpP,UACjBxO,KAAK23P,YAAYnpP,WAkGnB5O,EAAOD,QAAUyiT,G,oCCljBjB,IAAI9+R,EAAkB,EAAQ,QAC1BC,EAAqB,EAAQ,QAAmCA,mBAChEg/R,EAAe,EAAQ,QACvB/+R,EAAY,EAAQ,QAEpBC,EAAa,EAAQ,QAAoBA,WAE7C7jB,EAAOD,QAAU8jB,EAAW,CACxB7U,EAAG,CACCiV,QAAS,aACTK,SAAU,uBAGd3P,EAAG,CACCsP,QAAS,aACTK,SAAU,uBAGd7U,EAAG,CACCwU,QAAS,aACTK,SAAU,uBAId9jB,EAAG,CACCyjB,QAAS,aACTK,SAAU,QAGdlf,EAAG,CACC6e,QAAS,aACTK,SAAU,QAId/e,EAAG,CACC0e,QAAS,aACTK,SAAU,QAKdzU,KAAM,CACFoU,QAAS,SAETC,KAAM,GACNc,SAAS,EACTV,SAAU,QAGdW,UAAW,CACPhB,QAAS,SAETC,KAAM,GACNc,SAAS,EACTV,SAAU,QAGdY,cAAevB,EAAmB,CAACW,SAAU,SAE7C+tO,aAAc,CACVpuO,QAAS,aAET8V,OAAQ,CAAE,IAAK,IAAK,KACpB7V,KAAM,IACNI,SAAU,QAIduuO,UAAW,CACP5uO,QAAS,SAETC,MAAO,EACPI,SAAU,QAIdogJ,UAAW,CACPzgJ,QAAS,aACTK,SAAU,QAGdivO,cAAe,CACXtvO,QAAS,aACT8V,OAAQ,CAAC,SAAU,QACnB7V,KAAM,SACNI,SAAU,QAMdzY,MAAO,CACHoY,QAAS,QAETK,SAAU,QAGdkvO,YAAa,CACTvvO,QAAS,aAETK,SAAU,QAGdovO,UAAW,CACPzvO,QAAS,aAETK,SAAU,QAGdiC,gBAAYnD,GAGhBM,EAAgB,GAAI,CAChB0B,UAAW,cACXC,eAAe,EACfE,iBAAkB,SAClB,CACAna,QAASu3S,EAAav3S,QAGtBwlP,YAAa,CACT3sO,QAAS,UAETC,MAAM,EACNI,SAAU,QAIdusO,QAAS,CACLzsO,KAAMP,EAAW,GAAI8+R,EAAan9R,SAASxW,EAAEoV,KAAM,IAGnDvY,MAAO82S,EAAan9R,SAASxW,EAAEnD,MAC/BkW,MAAO4gS,EAAan9R,SAASxW,EAAE+S,MAC/BuC,SAAU,QAGdoB,cAAe,CACX1W,EAAG6U,EAAW,GAAI8+R,EAAaj9R,cAAc1W,EAAG,CAACkV,KAAM,MACvDvP,EAAGkP,EAAW,GAAI8+R,EAAaj9R,cAAc/Q,EAAG,CAACuP,KAAM,MACvDzU,EAAGoU,EAAW,GAAI8+R,EAAaj9R,cAAcjW,EAAG,CAACyU,KAAM,IACvDI,SAAU,QAEdqB,SAAU9B,EAAW,CACjBmvO,qBAAsB,CAClB/uO,QAAS,SAETtb,IAAK,EACLC,IAAK,EACLsb,KAAM,MACNI,SAAU,QAGd4uO,mBAAoB,CAChBjvO,QAAS,SAETtb,IAAK,EACLC,IAAK,EACLsb,KAAM,KACNI,SAAU,QAGdA,SAAU,QACXq+R,EAAah9R,UAEhBU,UAAWxC,EAAW,GAAID,EAAUyC,UAAW,CAAC/B,SAAU,SAC1DgC,WAAYzC,EAAW,GAAID,EAAU0C,WAAY,CAACpC,MAAM,O,oCCvK5D,IAAI2sQ,EAAQ,EAAQ,QAEpB9wR,EAAQgB,KAAO,MAEfhB,EAAQuT,KAAO,SAASnE,EAAIq4C,EAAQjtB,EAAgBC,GAChDq2P,EAAMC,aAAa/wR,EAAQgB,KAAMoO,EAAIq4C,EAAQjtB,EAAgBC,IAGjEz6B,EAAQ47D,MAAQ,SAASC,EAAaC,EAAeC,EAAaC,GAC9D80N,EAAME,cAAchxR,EAAQgB,KAAM66D,EAAaC,EAAeC,EAAaC,K,oCCT/E,IAAI6mP,EAAgB,CAAC,cAAe,YAAa,aAEjD5iT,EAAOD,QAAU,SAA6Bk6D,EAASC,EAAU3R,EAAQ3U,GACrE,IAAIivQ,EAAYt6P,EAAO27K,kBAEnBK,EAAa3wL,EAAO,cACxB,GAAG2wL,EAAY,CAEX,IAAIlhN,EAAU62C,EAAS1yC,MAAQ0yC,EAASzyC,MACpCw8M,EAAmB4+E,EAAUx/R,GAC7B4gN,IAAkBA,EAAmB4+E,EAAUx/R,GAAW,IAE9D,IAAIghN,EAAYJ,EAAiBM,GAC7Bu+E,GAAa,EACdz+E,EACCA,EAAU78K,OAAO/jD,KAAKy2D,IAEtBmqK,EAAYJ,EAAiBM,GAAc,CAIvC35G,aAAc,GAQdpjE,OAAQ,CAAC0S,IAEb4oP,GAAa,GAUjB,IAJA,IAAI3+J,EAAQ,CACR37I,YAAc0xD,EAASlrD,IAAMkrD,EAASvlD,EAAK,IAAM,KAG7CnU,EAAI,EAAGA,EAAIoiT,EAAcj+S,OAAQnE,IAAK,CAC1C,IAAImoB,EAAOi6R,EAAcpiT,GACrBuiT,EAAYp6R,EAAO,QACvB,IAAI07M,EAAU0+E,GAAY,CACtB,IAAIC,OAAiC5/R,IAAlB62C,EAAQtxC,GACvBs6R,EAAyB,gBAATt6R,EACpB,IAAGq6R,GAAgBF,KACfz+E,EAAU17M,GAAQirB,EAAOjrB,EAAMw7H,EAAMx7H,IAElCs6R,IACC5+E,EAAUv4I,SAA+B,MAApBu4I,EAAU17M,GAC3B,UAAY,WAGjBq6R,IAGC3+E,EAAU0+E,IAAa,GAenBD,WACOz+E,EAAU78K,OAAO,GAAG7+B,GAGxBs6R,KACC,IAAI,IAAI79S,EAAI,EAAGA,EAAIi/N,EAAU78K,OAAO7iD,OAAS,EAAGS,IAAK,CACjD,IAAI89S,EAAS7+E,EAAU78K,OAAOpiD,GAC3B89S,EAAOrzQ,OAAOx9B,OAAS6wS,EAAO7wS,OAC7B6wS,EAAO7wS,KAAOgyN,EAAUv4I,YASxD,OAAOu4I,K,oCC1Ff,IAAIlmJ,EAAa,EAAQ,QAErBglO,EAAc,EAAQ,QACtBt0O,EAAc,EAAQ,QACtB+iH,EAAU,EAAQ,QAKtB5xL,EAAOD,QAAU,SAAcoP,EAAIC,GAC/B,IAAIwR,EAAKuiS,EAAYh0S,EAAIC,GAErBg0S,EAAOxiS,EAAG,GAAGnR,EACjBo/D,EAAYz/D,EAAOg0S,GAEnB,IAEIC,EAFA79R,EAAWpW,EAAMoW,SACjBy6G,EAAQ9hD,EAAWI,YAAYnvE,GAGnC,GAAyB,YAAtBoW,EAAS0rB,UAA0B+uF,EAAM5d,OAA8B,IAAtBjzG,EAAMo6K,YAAuB,CAC7E,IAAInlK,EAAQmB,EAASnB,MACjBE,EAAMqtK,EAAQpsK,GACdusK,EAAKvsK,EAAShB,MAAQ,EACtB5c,EAAKrB,KAAK2N,OAAOqQ,EAAMF,GAAS0tK,GAAM,EAEtC7jL,SAAS6jL,KACTA,EAAK,EACLnqL,EAAK,GAGT,IAAI07S,EAAOj/R,EAAQ0tK,EAAK,EACpBwxH,EAAOD,EAAO17S,EAAKmqL,EACvBsxH,EAAQ,CAACC,EAAMC,QAEfF,EAAQD,EAKZ,OAFAjlO,EAAW9qE,KAAKlE,EAAIC,EAAO,CAACE,KAAM+zS,EAAO7zS,QAAS,MAE3CoR,I,oCC5BX7gB,EAAQyjT,aAAe,SAAsBn1R,GACzC,MACmB,SAAjBA,EAAK8zE,SACa,SAAjB9zE,EAAK8zE,SAAsB9zE,EAAKrf,GAAK,EAAI,GAIhDjP,EAAQitO,eAAiB,SAAwB3+M,GAC7C,MACqB,WAAjBA,EAAK8zE,SACa,SAAjB9zE,EAAK8zE,SAAsB9zE,EAAKrf,EAAI,EAAI,GAAKqf,EAAKrf,EAAI,EAAI,GAInEjP,EAAQgtO,cAAgB,SAAuB1+M,GAC3C,MACmB,UAAjBA,EAAK8zE,SACa,SAAjB9zE,EAAK8zE,SAAsB9zE,EAAKrf,GAAK,EAAI,GAIhDjP,EAAQ0jT,YAAc,SAAqBp1R,GACvC,MACqB,QAAjBA,EAAK+zE,SACa,SAAjB/zE,EAAK+zE,SAAsB/zE,EAAK1Z,GAAK,EAAI,GAIlD5U,EAAQmtO,eAAiB,SAAwB7+M,GAC7C,MACqB,WAAjBA,EAAK+zE,SACa,SAAjB/zE,EAAK+zE,SAAsB/zE,EAAK1Z,EAAI,EAAI,GAAK0Z,EAAK1Z,EAAI,EAAI,GAInE5U,EAAQktO,eAAiB,SAAwB5+M,GAC7C,MACmB,WAAjBA,EAAK+zE,SACa,SAAjB/zE,EAAK+zE,SAAsB/zE,EAAK1Z,GAAK,EAAI,I,oCCjDhD3U,EAAOD,QAAU,CACb2jT,eAAgB,CAAC,IAAK,KAAM,IAAK,KAAM,IAAK,MAC5CjwN,gBAAiB,CAAC,IAAK,IAAK,KAAM,IAAK,MACvCC,aAAc,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MACzDC,QAAS,CAAC,KAAM,MAChBgwN,qBAAsB,CAElB,IAAK,IAEL,IAAK,IACL,KAAM,IAEN,IAAK,IACL,KAAM,IAEN,KAAM,KACN,KAAM,KACN,KAAM,KACN,KAAM,KAEN,KAAM,KACN,KAAM,KACN,KAAM,KACN,KAAM,Q,oCCvBd3jT,EAAOD,QAAU,EAAQ,S,uBCVzB,IAAIqhB,EAAa,EAAQ,QAEzBphB,EAAOD,QAAU,SAA0BqI,GACzC,OAAOgZ,EAAW,QAAShZ,K,wBCH7B,aACA,WACE,IAAIw7S,EAAgBC,EAAQC,EAAUC,EAAgBC,EAAcC,EAExC,qBAAhB53O,aAA+C,OAAhBA,aAAyBA,YAAYjxC,IAC9Ep7B,EAAOD,QAAU,WACf,OAAOssE,YAAYjxC,OAEQ,qBAAZi+D,GAAuC,OAAZA,GAAqBA,EAAQwqN,QACzE7jT,EAAOD,QAAU,WACf,OAAQ6jT,IAAmBI,GAAgB,KAE7CH,EAASxqN,EAAQwqN,OACjBD,EAAiB,WACf,IAAIM,EAEJ,OADAA,EAAKL,IACU,IAARK,EAAG,GAAWA,EAAG,IAE1BH,EAAiBH,IACjBK,EAA4B,IAAnB5qN,EAAQ0sI,SACjBi+E,EAAeD,EAAiBE,GACvB3mS,KAAK8d,KACdp7B,EAAOD,QAAU,WACf,OAAOud,KAAK8d,MAAQ0oR,GAEtBA,EAAWxmS,KAAK8d,QAEhBp7B,EAAOD,QAAU,WACf,OAAO,IAAIud,MAAO0sN,UAAY85E,GAEhCA,GAAW,IAAIxmS,MAAO0sN,aAGvBrpO,KAAKP,Q,0DCvBRJ,EAAOD,QAAU,EAAQ,S,oCCCzB,IAAI4P,EAAY,EAAQ,QAGxB3P,EAAOD,QAAU,CACb+qE,MAAO,SAAS7oE,EAAGzB,EAAGgkB,GAElB,OADAA,EAAKviB,KACE,GAGXyzD,IAAK,SAASzzD,EAAGzB,EAAGgkB,EAAM6yD,GACtB,IAAI/xE,EAAI+xE,EAAY72E,GACpB,OAAGmP,EAAUrK,IACTA,EAAIgxC,OAAOhxC,GACXkf,EAAKviB,IAAMqD,EACJA,GAEJ,GAGXyzK,IAAK,SAAS92K,EAAGzB,EAAGgkB,EAAM6yD,EAAaU,GACnC,IAAIzyE,EAAI+xE,EAAY72E,GAMpB,OALGmP,EAAUrK,KACTA,EAAIgxC,OAAOhxC,GACXkf,EAAKviB,IAAMqD,EACXyyE,EAAO91E,MAEJ,GAGX0G,IAAK,SAAS1G,EAAGzB,EAAGgkB,EAAM6yD,GACtB,IAAI/xE,EAAI+xE,EAAY72E,GACpB,GAAGmP,EAAUrK,GAAI,CAEb,GADAA,EAAIgxC,OAAOhxC,IACPqK,EAAU6U,EAAKviB,IAEf,OADAuiB,EAAKviB,GAAKqD,EACHA,EACJ,GAAGkf,EAAKviB,GAAKqD,EAAG,CACnB,IAAIwkC,EAAQxkC,EAAIkf,EAAKviB,GAErB,OADAuiB,EAAKviB,GAAKqD,EACHwkC,GAGf,OAAO,GAGXlhC,IAAK,SAAS3G,EAAGzB,EAAGgkB,EAAM6yD,GACtB,IAAI/xE,EAAI+xE,EAAY72E,GACpB,GAAGmP,EAAUrK,GAAI,CAEb,GADAA,EAAIgxC,OAAOhxC,IACPqK,EAAU6U,EAAKviB,IAEf,OADAuiB,EAAKviB,GAAKqD,EACHA,EACJ,GAAGkf,EAAKviB,GAAKqD,EAAG,CACnB,IAAIwkC,EAAQxkC,EAAIkf,EAAKviB,GAErB,OADAuiB,EAAKviB,GAAKqD,EACHwkC,GAGf,OAAO,K,qJC3Df,IAAI56B,EAAiB,EAAQ,QAE7BlP,EAAOD,QAAU,SAAcoP,EAAIC,GAC5BA,EAAMs1J,WACLx1J,EAAeC,EAAIC,EAAO,CACtBE,KAAMF,EAAMs1J,UACZn1J,aAAc,GACdC,QAAS,Q,oCCfrBxP,EAAOD,QAAUgmH,EAEjB,IAAItjH,EAAS,EAAQ,QAAsB,GAE3C,SAAS0hT,EAAep1O,EAAIwiC,EAAIviC,EAAIm7B,GAElC,IAAI,IAAIrpG,EAAE,EAAGA,EAAE,IAAKA,EAAG,CACrB,IAAIi3B,EAAKg3C,EAAGjuE,GACRs3B,EAAKm5E,EAAGzwG,GACRwnJ,EAAK/hJ,KAAKoC,IAAIovB,EAAIK,GAClB8wN,EAAK3iP,KAAKqC,IAAImvB,EAAIK,GAElBJ,EAAKg3C,EAAGluE,GACRu3B,EAAK8xE,EAAGrpG,GACRsnJ,EAAK7hJ,KAAKoC,IAAIqvB,EAAIK,GAClB8wN,EAAK5iP,KAAKqC,IAAIovB,EAAIK,GAEtB,GAAG8wN,EAAK7gG,GAAM4gG,EAAK9gG,EACjB,OAAO,EAIX,OAAO,EAGT,SAASriC,EAAkBh3C,EAAIwiC,EAAIviC,EAAIm7B,GACrC,IAAIpyE,EAAKt1B,EAAOssE,EAAIC,EAAIm7B,GACpB/xE,EAAK31B,EAAO8uG,EAAIviC,EAAIm7B,GACxB,GAAIpyE,EAAK,GAAKK,EAAK,GAAOL,EAAK,GAAKK,EAAK,EACvC,OAAO,EAGT,IAAIJ,EAAKv1B,EAAOusE,EAAID,EAAIwiC,GACpBl5E,EAAK51B,EAAO0nG,EAAIp7B,EAAIwiC,GACxB,QAAIv5E,EAAK,GAAKK,EAAK,GAAOL,EAAK,GAAKK,EAAK,KAK/B,IAAPN,GAAmB,IAAPK,GAAmB,IAAPJ,GAAmB,IAAPK,GAC9B8rR,EAAep1O,EAAIwiC,EAAIviC,EAAIm7B,M,oCChCtC,IAAIi6M,EAAY,EAAQ,QACpBtmQ,EAAMsmQ,EAAUtmQ,IAChB03E,EAAU4uL,EAAU5uL,QAEpB3yF,EAAKt8B,KAAKs8B,GACVwhR,EAAQ,EAAIxhR,EAEhB,SAASkc,EAAQvvB,GAAO,OAAOA,EAAM,IAAMqT,EAE3C,SAASgrO,EAAQp8M,GAAO,OAAOA,EAAM5uB,EAAK,IAW1C,SAASi2O,EAAawrC,GAClB,OAAO/9S,KAAK+R,IAAIgsS,EAAM,GAAKA,EAAM,IAAMD,EAAQ,MAWnD,SAAStxC,EAAW1vQ,EAAGC,GACnB,OAAOkyH,EAAQlyH,EAAID,EAAGghT,GAU1B,SAASr1C,EAAU3rQ,EAAGC,GAClB,OAAOiD,KAAK+R,IAAIy6P,EAAW1vQ,EAAGC,IAUlC,SAAS0vQ,EAAoB3vQ,EAAGihT,GAC5B,GAAGxrC,EAAawrC,GAAQ,OAAO,EAE/B,IAAI3+N,EAAIC,EAEL0+N,EAAM,GAAKA,EAAM,IAChB3+N,EAAK2+N,EAAM,GACX1+N,EAAK0+N,EAAM,KAEX3+N,EAAK2+N,EAAM,GACX1+N,EAAK0+N,EAAM,IAGf3+N,EAAK7nC,EAAI6nC,EAAI0+N,GACbz+N,EAAK9nC,EAAI8nC,EAAIy+N,GACV1+N,EAAKC,IAAIA,GAAMy+N,GAElB,IAAIt1O,EAAKjxB,EAAIz6C,EAAGghT,GACZ9yM,EAAKxiC,EAAKs1O,EAEd,OAAQt1O,GAAM4W,GAAM5W,GAAM6W,GAAQ2rB,GAAM5rB,GAAM4rB,GAAM3rB,EAYxD,SAASuzL,EAAiB73Q,EAAG+B,EAAGkhT,EAAOD,GACnC,QAAItxC,EAAoB3vQ,EAAGihT,KAIxBC,EAAM,GAAKA,EAAM,IAChBrkQ,EAAKqkQ,EAAM,GACXvhN,EAAKuhN,EAAM,KAEXrkQ,EAAKqkQ,EAAM,GACXvhN,EAAKuhN,EAAM,IAGRjjT,GAAK4+C,GAAM5+C,GAAK0hG,GAVvB,IAAI9iD,EAAI8iD,EAcZ,SAASwhN,EAAMtkQ,EAAI8iD,EAAIj0B,EAAIwiC,EAAI38B,EAAIC,EAAIuzC,GACnCxzC,EAAKA,GAAM,EACXC,EAAKA,GAAM,EAEX,IACI4vO,EAAQC,EAAMC,EACdC,EAAQC,EAFRC,EAAWhsC,EAAa,CAAC/pM,EAAIwiC,IA2BjC,SAAS5wF,EAAGrf,EAAG+B,GACX,MAAO,CAAC/B,EAAIiF,KAAKmrD,IAAIruD,GAAKuxE,EAAIC,EAAKvzE,EAAIiF,KAAKorD,IAAItuD,IAxBjDyhT,GACCL,EAAS,EACTC,EAAO7hR,EACP8hR,EAAON,GAEJt1O,EAAKwiC,GACJkzM,EAAS11O,EACT41O,EAAOpzM,IAEPkzM,EAASlzM,EACTozM,EAAO51O,GAIZ7uB,EAAK8iD,GACJ4hN,EAAS1kQ,EACT2kQ,EAAO7hN,IAEP4hN,EAAS5hN,EACT6hN,EAAO3kQ,GAQX,IAKI59C,EALAyiT,EAAWx+S,KAAK+R,IAAIqsS,EAAOF,IAAW5hR,EAAK,EAAI,EACnD,SAASyrF,EAAIhtH,EAAG+B,EAAGmrH,GACf,MAAO,IAAM,CAACltH,EAAGA,GAAK,IAAM,CAAC,EAAGyjT,EAAUv2L,GAAM,IAAM7tG,EAAGrf,EAAG+B,GA+BhE,OA1BGyhT,EAEKxiT,EADU,OAAXsiT,EACK,IAAMjkS,EAAGkkS,EAAMJ,GACfn2L,EAAIu2L,EAAMH,EAAM,GAChBp2L,EAAIu2L,EAAMF,EAAM,GAAK,IAErB,IAAMhkS,EAAGikS,EAAQH,GACjBn2L,EAAIs2L,EAAQF,EAAM,GAClBp2L,EAAIs2L,EAAQD,EAAM,GAAK,KACjBhkS,EAAGkkS,EAAMJ,GACfn2L,EAAIu2L,EAAMH,EAAM,GAChBp2L,EAAIu2L,EAAMF,EAAM,GAAK,IAGf,OAAXC,GACCtiT,EAAI,IAAMqe,EAAGkkS,EAAMJ,GAAUn2L,EAAIu2L,EAAMF,EAAM,GAC1Cv8L,IAAU9lH,GAAK,UAElBA,EAAI,IAAMqe,EAAGikS,EAAQH,GACjB,IAAM9jS,EAAGkkS,EAAMJ,GACfn2L,EAAIu2L,EAAMF,EAAM,GAChB,IAAMhkS,EAAGikS,EAAQD,GACjBr2L,EAAIs2L,EAAQH,EAAQ,GAAK,IAI9BniT,EAaX,SAAS0vQ,EAAQ1wQ,EAAGytE,EAAIwiC,EAAI38B,EAAIC,GAC5B,OAAO2vO,EAAM,KAAMljT,EAAGytE,EAAIwiC,EAAI38B,EAAIC,EAAI,GAa1C,SAAS0/L,EAAWjzQ,EAAGytE,EAAIwiC,EAAI38B,EAAIC,GAC/B,OAAO2vO,EAAM,KAAMljT,EAAGytE,EAAIwiC,EAAI38B,EAAIC,EAAI,GAc1C,SAASwjM,EAAYn4N,EAAI8iD,EAAIj0B,EAAIwiC,EAAI38B,EAAIC,GACrC,OAAO2vO,EAAMtkQ,EAAI8iD,EAAIj0B,EAAIwiC,EAAI38B,EAAIC,EAAI,GAGzC70E,EAAOD,QAAU,CACbg/C,QAASA,EACT8uN,QAASA,EACTkF,WAAYA,EACZ/D,UAAWA,EACX8J,aAAcA,EACd9F,oBAAqBA,EACrBmG,iBAAkBA,EAClBnH,QAASA,EACTuC,WAAYA,EACZ8D,YAAaA,I,uBC7OjB,oBACE,IAAI3oQ,EAAK,CACPy8J,QAAS,UAEP64I,EAAgB,GAAGlgT,MAAOmgT,EAAW,SAAS//S,GAChD,OAAO8/S,EAAcrkT,KAAKuE,IAExBggT,EAAc9kT,KAAK6gB,SACvB,SAASkkS,EAAmB/8R,GAC1B,OAAOA,IAASA,EAAKksL,eAAiBlsL,EAAKnH,UAAYmH,GAAMosL,gBAE/D,SAAS4wG,EAAUh9R,GACjB,OAAOA,IAASA,EAAKksL,eAAiBlsL,EAAKksL,cAAc+wG,aAAej9R,EAAKnH,UAAYmH,GAAQA,EAAKi9R,aAExG,GAAIH,EACF,IACED,EAASC,EAAY1wG,gBAAgB7gF,YAAY,GAAG9iG,SACpD,MAAOzS,IACP6mS,EAAW,SAAS//S,GAClB,IAAI1E,EAAI0E,EAAKP,OAAQ6kC,EAAQ,IAAIjlC,MAAM/D,GACvC,MAAOA,IAAKgpC,EAAMhpC,GAAK0E,EAAK1E,GAC5B,OAAOgpC,GAOb,GAHKlsB,KAAK8d,MAAK9d,KAAK8d,IAAM,WACxB,OAAQ,IAAI9d,OAEV4nS,EACF,IACEA,EAAYhkS,cAAc,OAAO3Q,MAAM+0S,YAAY,UAAW,EAAG,IACjE,MAAO7mS,IACP,IAAI8mS,EAAuBnlT,KAAKolT,QAAQpjT,UAAWqjT,EAA0BF,EAAqBjiN,aAAcoiN,EAA4BH,EAAqBI,eAAgBC,EAAqBxlT,KAAKylT,oBAAoBzjT,UAAW0jT,EAAuBF,EAAmBN,YACpRC,EAAqBjiN,aAAe,SAASviG,EAAMU,GACjDgkT,EAAwB9kT,KAAKP,KAAMW,EAAMU,EAAQ,KAEnD8jT,EAAqBI,eAAiB,SAASI,EAAOpsS,EAAOlY,GAC3DikT,EAA0B/kT,KAAKP,KAAM2lT,EAAOpsS,EAAOlY,EAAQ,KAE7DmkT,EAAmBN,YAAc,SAASvkT,EAAMU,EAAOwoD,GACrD67P,EAAqBnlT,KAAKP,KAAMW,EAAMU,EAAQ,GAAIwoD,IAKxD,SAAS+7P,EAAa3iT,EAAGC,GACvB,OAAOD,EAAIC,GAAK,EAAID,EAAIC,EAAI,EAAID,GAAKC,EAAI,EAAI09D,IA8D/C,SAASilP,EAAUj3S,GACjB,OAAa,OAANA,EAAagyD,KAAOhyD,EAE7B,SAASk3S,EAAWl3S,GAClB,OAAQf,MAAMe,GA0DhB,SAASm3S,EAAYjxS,GACnB,MAAO,CACLV,KAAM,SAASnR,EAAG2L,EAAGmJ,EAAID,GACnB0D,UAAUjX,OAAS,IAAGwT,EAAK,GAC3ByD,UAAUjX,OAAS,IAAGuT,EAAK7U,EAAEsB,QACjC,MAAOwT,EAAKD,EAAI,CACd,IAAIo1F,EAAMn1F,EAAKD,IAAO,EAClBhD,EAAQ7R,EAAEiqG,GAAMt+F,GAAK,EAAGmJ,EAAKm1F,EAAM,EAAQp1F,EAAKo1F,EAEtD,OAAOn1F,GAET1D,MAAO,SAASpR,EAAG2L,EAAGmJ,EAAID,GACpB0D,UAAUjX,OAAS,IAAGwT,EAAK,GAC3ByD,UAAUjX,OAAS,IAAGuT,EAAK7U,EAAEsB,QACjC,MAAOwT,EAAKD,EAAI,CACd,IAAIo1F,EAAMn1F,EAAKD,IAAO,EAClBhD,EAAQ7R,EAAEiqG,GAAMt+F,GAAK,EAAGkJ,EAAKo1F,EAAUn1F,EAAKm1F,EAAM,EAExD,OAAOn1F,IAhJbzI,EAAG8rG,UAAYwqM,EAIft2S,EAAG02S,WAAa,SAAS/iT,EAAGC,GAC1B,OAAOA,EAAID,GAAK,EAAIC,EAAID,EAAI,EAAIC,GAAKD,EAAI,EAAI29D,KAE/CtxD,EAAG/G,IAAM,SAAS6gC,EAAON,GACvB,IAA8B7lC,EAAGC,EAA7B9C,GAAK,EAAGyB,EAAIunC,EAAM7kC,OACtB,GAAyB,IAArBiX,UAAUjX,OAAc,CAC1B,QAASnE,EAAIyB,EAAG,GAAsB,OAAjBqB,EAAIkmC,EAAMhpC,KAAe8C,GAAKA,EAAG,CACpDD,EAAIC,EACJ,MAEF,QAAS9C,EAAIyB,EAAyB,OAAjBqB,EAAIkmC,EAAMhpC,KAAe6C,EAAIC,IAAGD,EAAIC,OACpD,CACL,QAAS9C,EAAIyB,EAAG,GAAwC,OAAnCqB,EAAI4lC,EAAEvoC,KAAK6oC,EAAOA,EAAMhpC,GAAIA,KAAe8C,GAAKA,EAAG,CACtED,EAAIC,EACJ,MAEF,QAAS9C,EAAIyB,EAA2C,OAAnCqB,EAAI4lC,EAAEvoC,KAAK6oC,EAAOA,EAAMhpC,GAAIA,KAAe6C,EAAIC,IAAGD,EAAIC,GAE7E,OAAOD,GAETqM,EAAG9G,IAAM,SAAS4gC,EAAON,GACvB,IAA8B7lC,EAAGC,EAA7B9C,GAAK,EAAGyB,EAAIunC,EAAM7kC,OACtB,GAAyB,IAArBiX,UAAUjX,OAAc,CAC1B,QAASnE,EAAIyB,EAAG,GAAsB,OAAjBqB,EAAIkmC,EAAMhpC,KAAe8C,GAAKA,EAAG,CACpDD,EAAIC,EACJ,MAEF,QAAS9C,EAAIyB,EAAyB,OAAjBqB,EAAIkmC,EAAMhpC,KAAe8C,EAAID,IAAGA,EAAIC,OACpD,CACL,QAAS9C,EAAIyB,EAAG,GAAwC,OAAnCqB,EAAI4lC,EAAEvoC,KAAK6oC,EAAOA,EAAMhpC,GAAIA,KAAe8C,GAAKA,EAAG,CACtED,EAAIC,EACJ,MAEF,QAAS9C,EAAIyB,EAA2C,OAAnCqB,EAAI4lC,EAAEvoC,KAAK6oC,EAAOA,EAAMhpC,GAAIA,KAAe8C,EAAID,IAAGA,EAAIC,GAE7E,OAAOD,GAETqM,EAAGm6D,OAAS,SAASrgC,EAAON,GAC1B,IAA8B7lC,EAAGC,EAAGzC,EAAhCL,GAAK,EAAGyB,EAAIunC,EAAM7kC,OACtB,GAAyB,IAArBiX,UAAUjX,OAAc,CAC1B,QAASnE,EAAIyB,EAAG,GAAsB,OAAjBqB,EAAIkmC,EAAMhpC,KAAe8C,GAAKA,EAAG,CACpDD,EAAIxC,EAAIyC,EACR,MAEF,QAAS9C,EAAIyB,EAAyB,OAAjBqB,EAAIkmC,EAAMhpC,MACzB6C,EAAIC,IAAGD,EAAIC,GACXzC,EAAIyC,IAAGzC,EAAIyC,QAEZ,CACL,QAAS9C,EAAIyB,EAAG,GAAwC,OAAnCqB,EAAI4lC,EAAEvoC,KAAK6oC,EAAOA,EAAMhpC,GAAIA,KAAe8C,GAAKA,EAAG,CACtED,EAAIxC,EAAIyC,EACR,MAEF,QAAS9C,EAAIyB,EAA2C,OAAnCqB,EAAI4lC,EAAEvoC,KAAK6oC,EAAOA,EAAMhpC,GAAIA,MAC3C6C,EAAIC,IAAGD,EAAIC,GACXzC,EAAIyC,IAAGzC,EAAIyC,IAGnB,MAAO,CAAED,EAAGxC,IAQd6O,EAAGgmD,IAAM,SAASlsB,EAAON,GACvB,IAA6B7lC,EAAzBd,EAAI,EAAGN,EAAIunC,EAAM7kC,OAAWnE,GAAK,EACrC,GAAyB,IAArBob,UAAUjX,OACZ,QAASnE,EAAIyB,EAAOikT,EAAW7iT,GAAKmmC,EAAMhpC,MAAK+B,GAAKc,QAEpD,QAAS7C,EAAIyB,EAAOikT,EAAW7iT,GAAK6lC,EAAEvoC,KAAK6oC,EAAOA,EAAMhpC,GAAIA,MAAK+B,GAAKc,GAExE,OAAOd,GAETmN,EAAGg7H,KAAO,SAASlhG,EAAON,GACxB,IAA6B7lC,EAAzBd,EAAI,EAAGN,EAAIunC,EAAM7kC,OAAWnE,GAAK,EAAG4E,EAAInD,EAC5C,GAAyB,IAArB2Z,UAAUjX,OACZ,QAASnE,EAAIyB,EAAOikT,EAAW7iT,EAAI4iT,EAAUz8Q,EAAMhpC,KAAM+B,GAAKc,IAAU+B,OAExE,QAAS5E,EAAIyB,EAAOikT,EAAW7iT,EAAI4iT,EAAU/8Q,EAAEvoC,KAAK6oC,EAAOA,EAAMhpC,GAAIA,KAAM+B,GAAKc,IAAU+B,EAE5F,GAAIA,EAAG,OAAO7C,EAAI6C,GAEpBsK,EAAG22S,SAAW,SAAStsR,EAAQz3B,GAC7B,IAAIswR,GAAK74P,EAAOp1B,OAAS,GAAKrC,EAAI,EAAG4vD,EAAI3rD,KAAK2N,MAAM0+Q,GAAIttR,GAAKy0B,EAAOm4B,EAAI,GAAI9zC,EAAIw0Q,EAAI1gO,EACpF,OAAO9zC,EAAI9Y,EAAI8Y,GAAK2b,EAAOm4B,GAAK5sD,GAAKA,GAEvCoK,EAAGq6H,OAAS,SAASvgG,EAAON,GAC1B,IAAoC7lC,EAAhCijT,EAAU,GAAIrkT,EAAIunC,EAAM7kC,OAAWnE,GAAK,EAC5C,GAAyB,IAArBob,UAAUjX,OACZ,QAASnE,EAAIyB,EAAOikT,EAAW7iT,EAAI4iT,EAAUz8Q,EAAMhpC,MAAM8lT,EAAQ7iT,KAAKJ,QAEtE,QAAS7C,EAAIyB,EAAOikT,EAAW7iT,EAAI4iT,EAAU/8Q,EAAEvoC,KAAK6oC,EAAOA,EAAMhpC,GAAIA,MAAM8lT,EAAQ7iT,KAAKJ,GAE1F,GAAIijT,EAAQ3hT,OAAQ,OAAO+K,EAAG22S,SAASC,EAAQ9+S,KAAKw+S,GAAe,KAErEt2S,EAAG62S,SAAW,SAAS/8Q,EAAON,GAC5B,IAA6B7lC,EAAGvC,EAA5BmB,EAAIunC,EAAM7kC,OAAQ/D,EAAI,EAAS2B,EAAI,EAAG/B,GAAK,EAAG4E,EAAI,EACtD,GAAyB,IAArBwW,UAAUjX,OACZ,QAASnE,EAAIyB,EACPikT,EAAW7iT,EAAI4iT,EAAUz8Q,EAAMhpC,OACjCM,EAAIuC,EAAIzC,EACRA,GAAKE,IAAMsE,EACX7C,GAAKzB,GAAKuC,EAAIzC,SAIlB,QAASJ,EAAIyB,EACPikT,EAAW7iT,EAAI4iT,EAAU/8Q,EAAEvoC,KAAK6oC,EAAOA,EAAMhpC,GAAIA,OACnDM,EAAIuC,EAAIzC,EACRA,GAAKE,IAAMsE,EACX7C,GAAKzB,GAAKuC,EAAIzC,IAIpB,GAAIwE,EAAI,EAAG,OAAO7C,GAAK6C,EAAI,IAE7BsK,EAAGoyP,UAAY,WACb,IAAIx8P,EAAIoK,EAAG62S,SAASxhT,MAAM3E,KAAMwb,WAChC,OAAOtW,EAAIiB,KAAKuD,KAAKxE,GAAKA,GAwB5B,IAAIkhT,EAAYL,EAAYH,GAuC5B,SAASS,EAAmB3lT,GAC1B,OAAOA,EAAE6D,OAvCX+K,EAAGg3S,WAAaF,EAAUhyS,KAC1B9E,EAAGi3S,OAASj3S,EAAGk3S,YAAcJ,EAAU/xS,MACvC/E,EAAGm3S,SAAW,SAAS39Q,GACrB,OAAOi9Q,EAAyB,IAAbj9Q,EAAEvkC,OAAe,SAAS7D,EAAGkO,GAC9C,OAAOg3S,EAAa98Q,EAAEpoC,GAAIkO,IACxBk6B,IAENx5B,EAAGo3S,QAAU,SAASt9Q,EAAOssG,EAAIl/H,IAC1BhW,EAAIgb,UAAUjX,QAAU,IAC3BiS,EAAK4yB,EAAM7kC,OACP/D,EAAI,IAAGk1I,EAAK,IAElB,IAAiBp0I,EAAGlB,EAAhBI,EAAIgW,EAAKk/H,EACb,MAAOl1I,EACLJ,EAAI+F,KAAKF,SAAWzF,IAAM,EAC1Bc,EAAI8nC,EAAM5oC,EAAIk1I,GAAKtsG,EAAM5oC,EAAIk1I,GAAMtsG,EAAMhpC,EAAIs1I,GAAKtsG,EAAMhpC,EAAIs1I,GAAMp0I,EAEpE,OAAO8nC,GAET95B,EAAGs5L,QAAU,SAASx/J,EAAOu9Q,GAC3B,IAAIvmT,EAAIumT,EAAQpiT,OAAQqiT,EAAW,IAAIziT,MAAM/D,GAC7C,MAAOA,IAAKwmT,EAASxmT,GAAKgpC,EAAMu9Q,EAAQvmT,IACxC,OAAOwmT,GAETt3S,EAAG8R,MAAQ,SAASgoB,GAClB,IAAIhpC,EAAI,EAAGyB,EAAIunC,EAAM7kC,OAAS,EAAO8gF,EAAKj8C,EAAM,GAAIhoB,EAAQ,IAAIjd,MAAMtC,EAAI,EAAI,EAAIA,GAClF,MAAOzB,EAAIyB,EAAGuf,EAAMhhB,GAAK,CAAOilF,EAAIA,EAAKj8C,IAAQhpC,IACjD,OAAOghB,GAET9R,EAAGoqB,UAAY,SAAStD,GACtB,KAAMv0B,EAAIu0B,EAAO7xB,QAAS,MAAO,GACjC,IAAK,IAAInE,GAAK,EAAGI,EAAI8O,EAAG/G,IAAI6tB,EAAQiwR,GAAqB3sR,EAAY,IAAIv1B,MAAM3D,KAAMJ,EAAII,GACvF,IAAK,IAAYqB,EAARmD,GAAK,EAAMw4E,EAAM9jD,EAAUt5B,GAAK,IAAI+D,MAAMtC,KAAMmD,EAAInD,GAC3D27E,EAAIx4E,GAAKoxB,EAAOpxB,GAAG5E,GAGvB,OAAOs5B,GAKTpqB,EAAGsqM,IAAM,WACP,OAAOtqM,EAAGoqB,UAAUle,YAEtBlM,EAAG+4C,KAAO,SAASrM,GACjB,IAAIqM,EAAO,GACX,IAAK,IAAI1mD,KAAOq6C,EAAKqM,EAAKhlD,KAAK1B,GAC/B,OAAO0mD,GAET/4C,EAAGqqB,OAAS,SAASqiB,GACnB,IAAIriB,EAAS,GACb,IAAK,IAAIh4B,KAAOq6C,EAAKriB,EAAOt2B,KAAK24C,EAAIr6C,IACrC,OAAOg4B,GAETrqB,EAAGuuF,QAAU,SAAS7hD,GACpB,IAAI6hD,EAAU,GACd,IAAK,IAAIl8F,KAAOq6C,EAAK6hD,EAAQx6F,KAAK,CAChC1B,IAAKA,EACLN,MAAO26C,EAAIr6C,KAEb,OAAOk8F,GAETvuF,EAAGm+K,MAAQ,SAAS9gJ,GAClB,IAAuBnsC,EAAkBqmT,EAAQz9Q,EAA7CvnC,EAAI8qC,EAAOpoC,OAAWnE,GAAK,EAAG4E,EAAI,EACtC,QAAS5E,EAAIyB,EAAGmD,GAAK2nC,EAAOvsC,GAAGmE,OAC/BsiT,EAAS,IAAI1iT,MAAMa,GACnB,QAASnD,GAAK,EAAG,CACfunC,EAAQuD,EAAO9qC,GACfrB,EAAI4oC,EAAM7kC,OACV,QAAS/D,GAAK,EACZqmT,IAAS7hT,GAAKokC,EAAM5oC,GAGxB,OAAOqmT,GAET,IAAI3uS,EAAM/R,KAAK+R,IAef,SAAS4uS,EAAsBl4S,GAC7B,IAAIzJ,EAAI,EACR,MAAOyJ,EAAIzJ,EAAI,EAAGA,GAAK,GACvB,OAAOA,EAET,SAAS4hT,EAAS9lJ,EAAMx+F,GACtB,IAAK,IAAI9gE,KAAO8gE,EACd3hE,OAAOC,eAAekgK,EAAKj/J,UAAWL,EAAK,CACzCN,MAAOohE,EAAW9gE,GAClBX,YAAY,IAkBlB,SAASgmT,IACPhnT,KAAKknE,EAAIpmE,OAAOY,OAAO,MA1CzB4N,EAAG8I,MAAQ,SAAS6L,EAAOgpD,EAAMtjC,GAQ/B,GAPInuB,UAAUjX,OAAS,IACrBolC,EAAO,EACHnuB,UAAUjX,OAAS,IACrB0oE,EAAOhpD,EACPA,EAAQ,KAGPgpD,EAAOhpD,GAAS0lB,IAASh/B,IAAU,MAAM,IAAInG,MAAM,kBACxD,IAA8DQ,EAA1DoT,EAAQ,GAAIjT,EAAI2hT,EAAsB5uS,EAAIyxB,IAAQvpC,GAAK,EAE3D,GADA6jB,GAAS9e,EAAG8nE,GAAQ9nE,EAAGwkC,GAAQxkC,EAC3BwkC,EAAO,EAAG,OAAQ3kC,EAAIif,EAAQ0lB,IAASvpC,GAAK6sE,EAAM70D,EAAM/U,KAAK2B,EAAIG,QAAS,OAAQH,EAAIif,EAAQ0lB,IAASvpC,GAAK6sE,EAAM70D,EAAM/U,KAAK2B,EAAIG,GACrI,OAAOiT,GAeT9I,EAAG0sC,IAAM,SAASl6C,EAAQgnC,GACxB,IAAIkT,EAAM,IAAIgrQ,EACd,GAAIllT,aAAkBklT,EACpBllT,EAAO01D,SAAQ,SAAS71D,EAAKN,GAC3B26C,EAAI3tC,IAAI1M,EAAKN,WAEV,GAAI8C,MAAM4J,QAAQjM,GAAS,CAChC,IAA+BjB,EAA3BT,GAAK,EAAGyB,EAAIC,EAAOyC,OACvB,GAAyB,IAArBiX,UAAUjX,OAAc,QAASnE,EAAIyB,EAAGm6C,EAAI3tC,IAAIjO,EAAG0B,EAAO1B,SAAU,QAASA,EAAIyB,EAAGm6C,EAAI3tC,IAAIy6B,EAAEvoC,KAAKuB,EAAQjB,EAAIiB,EAAO1B,GAAIA,GAAIS,QAElI,IAAK,IAAIc,KAAOG,EAAQk6C,EAAI3tC,IAAI1M,EAAKG,EAAOH,IAE9C,OAAOq6C,GAKT,IAAIirQ,EAAe,YAAaC,EAAc,KA8B9C,SAASC,EAAcxlT,GACrB,OAAQA,GAAO,MAAQslT,GAAgBtlT,EAAI,KAAOulT,EAAcA,EAAcvlT,EAAMA,EAEtF,SAASylT,EAAgBzlT,GACvB,OAAQA,GAAO,IAAI,KAAOulT,EAAcvlT,EAAI+C,MAAM,GAAK/C,EAEzD,SAAS0lT,EAAW1lT,GAClB,OAAOwlT,EAAcxlT,KAAQ3B,KAAKknE,EAEpC,SAASogP,EAAc3lT,GACrB,OAAQA,EAAMwlT,EAAcxlT,MAAS3B,KAAKknE,UAAYlnE,KAAKknE,EAAEvlE,GAE/D,SAAS4lT,IACP,IAAIl/P,EAAO,GACX,IAAK,IAAI1mD,KAAO3B,KAAKknE,EAAG7e,EAAKhlD,KAAK+jT,EAAgBzlT,IAClD,OAAO0mD,EAET,SAASm/P,IACP,IAAIpjS,EAAO,EACX,IAAK,IAAIziB,KAAO3B,KAAKknE,IAAK9iD,EAC1B,OAAOA,EAET,SAASqjS,IACP,IAAK,IAAI9lT,KAAO3B,KAAKknE,EAAG,OAAO,EAC/B,OAAO,EAsET,SAASwgP,IACP1nT,KAAKknE,EAAIpmE,OAAOY,OAAO,MAiBzB,SAASimT,EAAYjnT,GACnB,OAAOA,EAOT,SAASknT,EAAUj3R,EAAQ64C,EAAQl1B,GACjC,OAAO,WACL,IAAIjzC,EAAQizC,EAAO3vC,MAAM6kE,EAAQhuD,WACjC,OAAOna,IAAUmoE,EAAS74C,EAAStvB,GAGvC,SAASwmT,EAAgB/lT,EAAQnB,GAC/B,GAAIA,KAAQmB,EAAQ,OAAOnB,EAC3BA,EAAOA,EAAK8uB,OAAO,GAAGy3J,cAAgBvmL,EAAK+D,MAAM,GACjD,IAAK,IAAItE,EAAI,EAAGyB,EAAIimT,EAAkBvjT,OAAQnE,EAAIyB,IAAKzB,EAAG,CACxD,IAAI2nT,EAAaD,EAAkB1nT,GAAKO,EACxC,GAAIonT,KAAcjmT,EAAQ,OAAOimT,GAhKrChB,EAASC,EAAQ,CACf1uP,IAAK+uP,EACLpmT,IAAK,SAASU,GACZ,OAAO3B,KAAKknE,EAAEigP,EAAcxlT,KAE9B0M,IAAK,SAAS1M,EAAKN,GACjB,OAAOrB,KAAKknE,EAAEigP,EAAcxlT,IAAQN,GAEtC4P,OAAQq2S,EACRj/P,KAAMk/P,EACN5tR,OAAQ,WACN,IAAIA,EAAS,GACb,IAAK,IAAIh4B,KAAO3B,KAAKknE,EAAGvtC,EAAOt2B,KAAKrD,KAAKknE,EAAEvlE,IAC3C,OAAOg4B,GAETkkE,QAAS,WACP,IAAIA,EAAU,GACd,IAAK,IAAIl8F,KAAO3B,KAAKknE,EAAG22B,EAAQx6F,KAAK,CACnC1B,IAAKylT,EAAgBzlT,GACrBN,MAAOrB,KAAKknE,EAAEvlE,KAEhB,OAAOk8F,GAETz5E,KAAMojS,EACN5+R,MAAO6+R,EACPjwP,QAAS,SAAS1uB,GAChB,IAAK,IAAInnC,KAAO3B,KAAKknE,EAAGp+B,EAAEvoC,KAAKP,KAAMonT,EAAgBzlT,GAAM3B,KAAKknE,EAAEvlE,OA6BtE2N,EAAGgjM,KAAO,WACR,IAAyC01G,EAAYC,EAAjD31G,EAAO,GAAIjqJ,EAAO,GAAI4vH,EAAW,GACrC,SAASj8H,EAAIksQ,EAAS9+Q,EAAO0rI,GAC3B,GAAIA,GAASzsH,EAAK9jD,OAAQ,OAAO0jT,EAASA,EAAO1nT,KAAK+xM,EAAMlpK,GAAS4+Q,EAAa5+Q,EAAMhiC,KAAK4gT,GAAc5+Q,EAC3G,IAAmD++Q,EAAUrmT,EAAQsmT,EAAoCzuR,EAArGv5B,GAAK,EAAGyB,EAAIunC,EAAM7kC,OAAQ5C,EAAM0mD,EAAKysH,KAAoCuzI,EAAc,IAAIrB,EAC/F,QAAS5mT,EAAIyB,GACP83B,EAAS0uR,EAAYpnT,IAAIknT,EAAWxmT,EAAIG,EAASsnC,EAAMhpC,MACzDu5B,EAAOt2B,KAAKvB,GAEZumT,EAAYh6S,IAAI85S,EAAU,CAAErmT,IAehC,OAZIomT,GACFpmT,EAASomT,IACTE,EAAS,SAASD,EAAUxuR,GAC1B73B,EAAOuM,IAAI85S,EAAUnsQ,EAAIksQ,EAASvuR,EAAQm7I,OAG5ChzK,EAAS,GACTsmT,EAAS,SAASD,EAAUxuR,GAC1B73B,EAAOqmT,GAAYnsQ,EAAIksQ,EAASvuR,EAAQm7I,KAG5CuzI,EAAY7wP,QAAQ4wP,GACbtmT,EAET,SAAS+7F,EAAQ7hD,EAAK84H,GACpB,GAAIA,GAASzsH,EAAK9jD,OAAQ,OAAOy3C,EACjC,IAAI5S,EAAQ,GAAIk/Q,EAAUrwI,EAASnD,KAOnC,OANA94H,EAAIwb,SAAQ,SAAS71D,EAAK4mT,GACxBn/Q,EAAM/lC,KAAK,CACT1B,IAAKA,EACLg4B,OAAQkkE,EAAQ0qN,EAAQzzI,QAGrBwzI,EAAUl/Q,EAAMhiC,MAAK,SAASnE,EAAGC,GACtC,OAAOolT,EAAQrlT,EAAEtB,IAAKuB,EAAEvB,QACrBynC,EAwBP,OAtBAkpK,EAAKt2J,IAAM,SAAS5S,EAAO8+Q,GACzB,OAAOlsQ,EAAIksQ,EAAS9+Q,EAAO,IAE7BkpK,EAAKz0G,QAAU,SAASz0D,GACtB,OAAOy0D,EAAQ7hD,EAAI1sC,EAAG0sC,IAAK5S,EAAO,GAAI,IAExCkpK,EAAK3wM,IAAM,SAASjB,GAElB,OADA2nD,EAAKhlD,KAAK3C,GACH4xM,GAETA,EAAKr6B,SAAW,SAASxtI,GAEvB,OADAwtI,EAAS5vH,EAAK9jD,OAAS,GAAKkmC,EACrB6nK,GAETA,EAAK01G,WAAa,SAASv9Q,GAEzB,OADAu9Q,EAAav9Q,EACN6nK,GAETA,EAAK21G,OAAS,SAASn/Q,GAErB,OADAm/Q,EAASn/Q,EACFwpK,GAEFA,GAEThjM,EAAGjB,IAAM,SAAS+6B,GAChB,IAAI/6B,EAAM,IAAIq5S,EACd,GAAIt+Q,EAAO,IAAK,IAAIhpC,EAAI,EAAGyB,EAAIunC,EAAM7kC,OAAQnE,EAAIyB,IAAKzB,EAAGiO,EAAIgO,IAAI+sB,EAAMhpC,IACvE,OAAOiO,GAKT04S,EAASW,EAAQ,CACfpvP,IAAK+uP,EACLhrS,IAAK,SAAS1a,GAEZ,OADA3B,KAAKknE,EAAEigP,EAAcxlT,GAAO,MAAO,EAC5BA,GAETsP,OAAQq2S,EACR3tR,OAAQ4tR,EACRnjS,KAAMojS,EACN5+R,MAAO6+R,EACPjwP,QAAS,SAAS1uB,GAChB,IAAK,IAAInnC,KAAO3B,KAAKknE,EAAGp+B,EAAEvoC,KAAKP,KAAMonT,EAAgBzlT,OAGzD2N,EAAGo2H,SAAW,GAIdp2H,EAAGumB,OAAS,SAASlF,EAAQ64C,GAC3B,IAAiCl1B,EAA7Bl0C,EAAI,EAAGyB,EAAI2Z,UAAUjX,OACzB,QAASnE,EAAIyB,EAAG8uB,EAAO2jB,EAAS94B,UAAUpb,IAAMwnT,EAAUj3R,EAAQ64C,EAAQA,EAAOl1B,IACjF,OAAO3jB,GAgBT,IAAIm3R,EAAoB,CAAE,SAAU,KAAM,MAAO,MAAO,IAAK,KAC7D,SAASU,KAMT,SAASC,KAeT,SAASC,EAAkBn1R,GACzB,IAAIo1R,EAAY,GAAIC,EAAiB,IAAI5B,EACzC,SAAS1xR,IACP,IAAyCj1B,EAArCgP,EAAIs5S,EAAWvoT,GAAK,EAAGyB,EAAIwN,EAAE9K,OACjC,QAASnE,EAAIyB,GAAOxB,EAAIgP,EAAEjP,GAAGoQ,KAAInQ,EAAEsE,MAAM3E,KAAMwb,WAC/C,OAAO+X,EAeT,OAbA+B,EAAM9kB,GAAK,SAAS7P,EAAMkoT,GACxB,IAAkCzoT,EAA9BC,EAAIuoT,EAAe3nT,IAAIN,GAC3B,OAAI6a,UAAUjX,OAAS,EAAUlE,GAAKA,EAAEmQ,IACpCnQ,IACFA,EAAEmQ,GAAK,KACPm4S,EAAYA,EAAUjkT,MAAM,EAAGtE,EAAIuoT,EAAUvjT,QAAQ/E,IAAI8H,OAAOwgT,EAAUjkT,MAAMtE,EAAI,IACpFwoT,EAAe33S,OAAOtQ,IAEpBkoT,GAAUF,EAAUtlT,KAAKulT,EAAev6S,IAAI1N,EAAM,CACpD6P,GAAIq4S,KAECt1R,IAEF+B,EAGT,SAASwzR,IACPx5S,EAAGgmB,MAAMmwG,iBAEX,SAASsjL,IACP,IAAkB5mT,EAAd6b,EAAI1O,EAAGgmB,MACX,MAAOnzB,EAAI6b,EAAE8lH,YAAa9lH,EAAI7b,EAC9B,OAAO6b,EAET,SAASgrS,EAAiBr4R,GACxB,IAAI4C,EAAW,IAAIk1R,EAAeroT,EAAI,EAAGyB,EAAI2Z,UAAUjX,OACvD,QAASnE,EAAIyB,EAAG0xB,EAAS/X,UAAUpb,IAAMsoT,EAAkBn1R,GAa3D,OAZAA,EAAS01R,GAAK,SAASC,EAAMC,GAC3B,OAAO,SAASC,GACd,IACE,IAAIhtK,EAAKgtK,EAAGtlL,YAAcx0H,EAAGgmB,MAC7B8zR,EAAGz4R,OAASA,EACZrhB,EAAGgmB,MAAQ8zR,EACX71R,EAAS61R,EAAG11S,MAAM/O,MAAMukT,EAAMC,GAC9B,QACA75S,EAAGgmB,MAAQ8mH,KAIV7oH,EAlETjkB,EAAGikB,SAAW,WACZ,IAAIA,EAAW,IAAIk1R,EAAeroT,GAAK,EAAGyB,EAAI2Z,UAAUjX,OACxD,QAASnE,EAAIyB,EAAG0xB,EAAS/X,UAAUpb,IAAMsoT,EAAkBn1R,GAC3D,OAAOA,GAGTk1R,EAAYzmT,UAAUwO,GAAK,SAASkD,EAAMm1S,GACxC,IAAIzoT,EAAIsT,EAAKtO,QAAQ,KAAMzE,EAAO,GAKlC,GAJIP,GAAK,IACPO,EAAO+S,EAAKhP,MAAMtE,EAAI,GACtBsT,EAAOA,EAAKhP,MAAM,EAAGtE,IAEnBsT,EAAM,OAAO8H,UAAUjX,OAAS,EAAIvE,KAAK0T,GAAMlD,GAAG7P,GAAQX,KAAK0T,GAAMlD,GAAG7P,EAAMkoT,GAClF,GAAyB,IAArBrtS,UAAUjX,OAAc,CAC1B,GAAgB,MAAZskT,EAAkB,IAAKn1S,KAAQ1T,KAC7BA,KAAKiC,eAAeyR,IAAO1T,KAAK0T,GAAMlD,GAAG7P,EAAM,MAErD,OAAOX,OAyBXsP,EAAGgmB,MAAQ,KA0BXhmB,EAAG+5S,QAAU,SAASlnT,GACpB,OAAOA,EAAE0W,QAAQywS,EAAe,SAElC,IAAIA,EAAgB,kCAChBC,EAAc,GAAGC,UAAY,SAAS1nT,EAAQE,GAChDF,EAAO0nT,UAAYxnT,GACjB,SAASF,EAAQE,GACnB,IAAK,IAAID,KAAYC,EAAWF,EAAOC,GAAYC,EAAUD,IAE/D,SAAS0nT,EAAapiQ,GAEpB,OADAkiQ,EAAYliQ,EAAQqiQ,GACbriQ,EAET,IAAIsiQ,EAAY,SAASxnT,EAAGN,GAC1B,OAAOA,EAAEs5D,cAAch5D,IACtBynT,EAAe,SAASznT,EAAGN,GAC5B,OAAOA,EAAEgoT,iBAAiB1nT,IACzB2nT,EAAmB,SAASjoT,EAAGM,GAChC,IAAI4nT,EAAmBloT,EAAEyzI,SAAWzzI,EAAEgmT,EAAgBhmT,EAAG,oBAIzD,OAHAioT,EAAmB,SAASjoT,EAAGM,GAC7B,OAAO4nT,EAAiBxpT,KAAKsB,EAAGM,IAE3B2nT,EAAiBjoT,EAAGM,IAEP,oBAAX6nT,SACTL,EAAY,SAASxnT,EAAGN,GACtB,OAAOmoT,OAAO7nT,EAAGN,GAAG,IAAM,MAE5B+nT,EAAeI,OACfF,EAAmBE,OAAOC,iBAE5B36S,EAAGZ,UAAY,WACb,OAAOY,EAAGO,OAAOi1S,EAAY1wG,kBAE/B,IAAIs1G,EAAwBp6S,EAAGZ,UAAU1M,UAAY,GAkBrD,SAASkoT,EAAsBvrR,GAC7B,MAA2B,oBAAbA,EAA0BA,EAAW,WACjD,OAAOgrR,EAAUhrR,EAAU3+B,OAgB/B,SAASmqT,GAAyBxrR,GAChC,MAA2B,oBAAbA,EAA0BA,EAAW,WACjD,OAAOirR,EAAajrR,EAAU3+B,OArClC0pT,EAAsB75S,OAAS,SAAS8uB,GACtC,IAAoByrR,EAAUC,EAAS74S,EAAOwW,EAA1CsiS,EAAY,GAChB3rR,EAAWurR,EAAsBvrR,GACjC,IAAK,IAAI35B,GAAK,EAAGxE,EAAIR,KAAKuE,SAAUS,EAAIxE,GAAK,CAC3C8pT,EAAUjnT,KAAK+mT,EAAW,IAC1BA,EAASzhS,YAAcnX,EAAQxR,KAAKgF,IAAI2jB,WACxC,IAAK,IAAIvoB,GAAK,EAAGyB,EAAI2P,EAAMjN,SAAUnE,EAAIyB,IACnCmmB,EAAOxW,EAAMpR,KACfgqT,EAAS/mT,KAAKgnT,EAAU1rR,EAASp+B,KAAKynB,EAAMA,EAAKwtI,SAAUp1J,EAAG4E,IAC1DqlT,GAAW,aAAcriS,IAAMqiS,EAAQ70J,SAAWxtI,EAAKwtI,WAE3D40J,EAAS/mT,KAAK,MAIpB,OAAOomT,EAAaa,IAOtBZ,EAAsB55S,UAAY,SAAS6uB,GACzC,IAAoByrR,EAAUpiS,EAA1BsiS,EAAY,GAChB3rR,EAAWwrR,GAAyBxrR,GACpC,IAAK,IAAI35B,GAAK,EAAGxE,EAAIR,KAAKuE,SAAUS,EAAIxE,GACtC,IAAK,IAAIgR,EAAQxR,KAAKgF,GAAI5E,GAAK,EAAGyB,EAAI2P,EAAMjN,SAAUnE,EAAIyB,IACpDmmB,EAAOxW,EAAMpR,MACfkqT,EAAUjnT,KAAK+mT,EAAWvF,EAASlmR,EAASp+B,KAAKynB,EAAMA,EAAKwtI,SAAUp1J,EAAG4E,KACzEolT,EAASzhS,WAAaX,GAI5B,OAAOyhS,EAAaa,IAOtB,IAAIC,GAAa,+BACbC,GAAc,CAChBp6R,IAAK,6BACLq6R,MAAOF,GACPG,MAAO,+BACPC,IAAK,uCACLtuP,MAAO,iCAyBT,SAASuuP,GAAkBjqT,EAAMU,GAE/B,SAASwpT,IACP7qT,KAAK8qT,gBAAgBnqT,GAEvB,SAASoqT,IACP/qT,KAAKgrT,kBAAkBrqT,EAAKglT,MAAOhlT,EAAK4Y,OAE1C,SAAS0xS,IACPjrT,KAAKkjG,aAAaviG,EAAMU,GAE1B,SAAS6pT,IACPlrT,KAAKulT,eAAe5kT,EAAKglT,MAAOhlT,EAAK4Y,MAAOlY,GAE9C,SAAS8pT,IACP,IAAIv8S,EAAIvN,EAAMsD,MAAM3E,KAAMwb,WACjB,MAAL5M,EAAW5O,KAAK8qT,gBAAgBnqT,GAAYX,KAAKkjG,aAAaviG,EAAMiO,GAE1E,SAASw8S,IACP,IAAIx8S,EAAIvN,EAAMsD,MAAM3E,KAAMwb,WACjB,MAAL5M,EAAW5O,KAAKgrT,kBAAkBrqT,EAAKglT,MAAOhlT,EAAK4Y,OAAavZ,KAAKulT,eAAe5kT,EAAKglT,MAAOhlT,EAAK4Y,MAAO3K,GAElH,OArBAjO,EAAO2O,EAAG7N,GAAG4pT,QAAQ1qT,GAqBL,MAATU,EAAgBV,EAAK4Y,MAAQwxS,EAAaF,EAA4B,oBAAVxpT,EAAuBV,EAAK4Y,MAAQ6xS,EAAiBD,EAAexqT,EAAK4Y,MAAQ2xS,EAAiBD,EAEvK,SAASK,GAAYnpT,GACnB,OAAOA,EAAEm7D,OAAOzkD,QAAQ,OAAQ,KAmBlC,SAAS0yS,GAAuB5qT,GAC9B,OAAO,IAAIgoC,OAAO,aAAer5B,EAAG+5S,QAAQ1oT,GAAQ,aAAc,KAEpE,SAAS6qT,GAAqB7qT,GAC5B,OAAQA,EAAO,IAAI28D,OAAO1sD,MAAM,SAElC,SAAS66S,GAAqB9qT,EAAMU,GAClCV,EAAO6qT,GAAqB7qT,GAAMq7C,IAAI0vQ,IACtC,IAAI7pT,EAAIlB,EAAK4D,OACb,SAASonT,IACP,IAAIvrT,GAAK,EACT,QAASA,EAAIyB,EAAGlB,EAAKP,GAAGJ,KAAMqB,GAEhC,SAASuqT,IACP,IAAIxrT,GAAK,EAAGwO,EAAIvN,EAAMsD,MAAM3E,KAAMwb,WAClC,QAASpb,EAAIyB,EAAGlB,EAAKP,GAAGJ,KAAM4O,GAEhC,MAAwB,oBAAVvN,EAAuBuqT,EAAkBD,EAEzD,SAASD,GAAyB/qT,GAChC,IAAIktB,EAAK09R,GAAuB5qT,GAChC,OAAO,SAASqnB,EAAM3mB,GACpB,GAAIZ,EAAIunB,EAAK6jS,UAAW,OAAOxqT,EAAQZ,EAAE4b,IAAI1b,GAAQF,EAAEwQ,OAAOtQ,GAC9D,IAAIF,EAAIunB,EAAK06E,aAAa,UAAY,GAClCrhG,GACFwsB,EAAGy0J,UAAY,EACVz0J,EAAGpqB,KAAKhD,IAAIunB,EAAKk7E,aAAa,QAASooN,GAAY7qT,EAAI,IAAME,KAElEqnB,EAAKk7E,aAAa,QAASooN,GAAY7qT,EAAEoY,QAAQgV,EAAI,QAoB3D,SAASi+R,GAAmBnrT,EAAMU,EAAOwoD,GACvC,SAASkiQ,IACP/rT,KAAKmQ,MAAM67S,eAAerrT,GAE5B,SAASsrT,IACPjsT,KAAKmQ,MAAM+0S,YAAYvkT,EAAMU,EAAOwoD,GAEtC,SAASqiQ,IACP,IAAIt9S,EAAIvN,EAAMsD,MAAM3E,KAAMwb,WACjB,MAAL5M,EAAW5O,KAAKmQ,MAAM67S,eAAerrT,GAAYX,KAAKmQ,MAAM+0S,YAAYvkT,EAAMiO,EAAGi7C,GAEvF,OAAgB,MAATxoD,EAAgB0qT,EAA6B,oBAAV1qT,EAAuB6qT,EAAgBD,EAUnF,SAASE,GAAsBxrT,EAAMU,GACnC,SAAS+qT,WACApsT,KAAKW,GAEd,SAAS0rT,IACPrsT,KAAKW,GAAQU,EAEf,SAASirT,IACP,IAAI19S,EAAIvN,EAAMsD,MAAM3E,KAAMwb,WACjB,MAAL5M,SAAkB5O,KAAKW,GAAYX,KAAKW,GAAQiO,EAEtD,OAAgB,MAATvN,EAAgB+qT,EAAgC,oBAAV/qT,EAAuBirT,EAAmBD,EA4BzF,SAASE,GAAqB5rT,GAC5B,SAASe,IACP,IAAImf,EAAW7gB,KAAKk0M,cAAes4G,EAAYxsT,KAAKysT,aACpD,OAAOD,IAAcjC,IAAc1pS,EAASuzL,gBAAgBq4G,eAAiBlC,GAAa1pS,EAASC,cAAcngB,GAAQkgB,EAASsP,gBAAgBq8R,EAAW7rT,GAE/J,SAAS+rT,IACP,OAAO1sT,KAAKk0M,cAAc/jL,gBAAgBxvB,EAAKglT,MAAOhlT,EAAK4Y,OAE7D,MAAuB,oBAAT5Y,EAAsBA,GAAQA,EAAO2O,EAAG7N,GAAG4pT,QAAQ1qT,IAAO4Y,MAAQmzS,EAAWhrT,EAY7F,SAASirT,KACP,IAAIjkS,EAAS1oB,KAAK2oB,WACdD,GAAQA,EAAO0oG,YAAYpxH,MAmFjC,SAAS4sT,GAAsBjhT,GAC7B,MAAO,CACL6pJ,SAAU7pJ,GAoBd,SAASkhT,GAAoBluR,GAC3B,OAAO,WACL,OAAOmrR,EAAiB9pT,KAAM2+B,IAmBlC,SAASmuR,GAA4BC,GAEnC,OADKvxS,UAAUjX,SAAQwoT,EAAanH,GAC7B,SAAS3iT,EAAGC,GACjB,OAAOD,GAAKC,EAAI6pT,EAAW9pT,EAAEuyJ,SAAUtyJ,EAAEsyJ,WAAavyJ,GAAKC,GAQ/D,SAAS8pT,GAAkB3lQ,EAAQyhB,GACjC,IAAK,IAAI9jE,EAAI,EAAGxE,EAAI6mD,EAAO9iD,OAAQS,EAAIxE,EAAGwE,IACxC,IAAK,IAAgDgjB,EAA5CxW,EAAQ61C,EAAOriD,GAAI5E,EAAI,EAAGyB,EAAI2P,EAAMjN,OAAcnE,EAAIyB,EAAGzB,KAC5D4nB,EAAOxW,EAAMpR,KAAI0oE,EAAS9gD,EAAM5nB,EAAG4E,GAG3C,OAAOqiD,EA0BT,SAAS4lQ,GAAmBv+S,GAE1B,OADA66S,EAAY76S,EAAWw+S,IAChBx+S,EAhXTY,EAAG7N,GAAK,CACN68D,OAAQksP,GACRa,QAAS,SAAS1qT,GAChB,IAAIP,EAAIO,EAAKyE,QAAQ,KAAMk5D,EAAS39D,EAEpC,OADIP,GAAK,GAAqC,WAA/Bk+D,EAAS39D,EAAK+D,MAAM,EAAGtE,MAAiBO,EAAOA,EAAK+D,MAAMtE,EAAI,IACtEoqT,GAAYvoT,eAAeq8D,GAAU,CAC1CqnP,MAAO6E,GAAYlsP,GACnB/kD,MAAO5Y,GACLA,IAGR+oT,EAAsBnhS,KAAO,SAAS5nB,EAAMU,GAC1C,GAAIma,UAAUjX,OAAS,EAAG,CACxB,GAAoB,kBAAT5D,EAAmB,CAC5B,IAAIqnB,EAAOhoB,KAAKgoB,OAEhB,OADArnB,EAAO2O,EAAG7N,GAAG4pT,QAAQ1qT,GACdA,EAAK4Y,MAAQyO,EAAKmlS,eAAexsT,EAAKglT,MAAOhlT,EAAK4Y,OAASyO,EAAK06E,aAAa/hG,GAEtF,IAAKU,KAASV,EAAMX,KAAKoQ,KAAKw6S,GAAkBvpT,EAAOV,EAAKU,KAC5D,OAAOrB,KAET,OAAOA,KAAKoQ,KAAKw6S,GAAkBjqT,EAAMU,KA6B3CqoT,EAAsBz5S,QAAU,SAAStP,EAAMU,GAC7C,GAAIma,UAAUjX,OAAS,EAAG,CACxB,GAAoB,kBAAT5D,EAAmB,CAC5B,IAAIqnB,EAAOhoB,KAAKgoB,OAAQnmB,GAAKlB,EAAO6qT,GAAqB7qT,IAAO4D,OAAQnE,GAAK,EAC7E,GAAIiB,EAAQ2mB,EAAK6jS,WACf,QAASzrT,EAAIyB,EAAG,IAAKR,EAAMq2B,SAAS/2B,EAAKP,IAAK,OAAO,MAChD,CACLiB,EAAQ2mB,EAAK06E,aAAa,SAC1B,QAAStiG,EAAIyB,EAAG,IAAK0pT,GAAuB5qT,EAAKP,IAAIqD,KAAKpC,GAAQ,OAAO,EAE3E,OAAO,EAET,IAAKA,KAASV,EAAMX,KAAKoQ,KAAKq7S,GAAqBpqT,EAAOV,EAAKU,KAC/D,OAAOrB,KAET,OAAOA,KAAKoQ,KAAKq7S,GAAqB9qT,EAAMU,KAkC9CqoT,EAAsBv5S,MAAQ,SAASxP,EAAMU,EAAOwoD,GAClD,IAAIhoD,EAAI2Z,UAAUjX,OAClB,GAAI1C,EAAI,EAAG,CACT,GAAoB,kBAATlB,EAAmB,CAE5B,IAAKkpD,KADDhoD,EAAI,IAAGR,EAAQ,IACFV,EAAMX,KAAKoQ,KAAK07S,GAAmBjiQ,EAAUlpD,EAAKkpD,GAAWxoD,IAC9E,OAAOrB,KAET,GAAI6B,EAAI,EAAG,CACT,IAAImmB,EAAOhoB,KAAKgoB,OAChB,OAAOg9R,EAAUh9R,GAAMuiJ,iBAAiBviJ,EAAM,MAAMwiJ,iBAAiB7pK,GAEvEkpD,EAAW,GAEb,OAAO7pD,KAAKoQ,KAAK07S,GAAmBnrT,EAAMU,EAAOwoD,KAenD6/P,EAAsB3nT,SAAW,SAASpB,EAAMU,GAC9C,GAAIma,UAAUjX,OAAS,EAAG,CACxB,GAAoB,kBAAT5D,EAAmB,OAAOX,KAAKgoB,OAAOrnB,GACjD,IAAKU,KAASV,EAAMX,KAAKoQ,KAAK+7S,GAAsB9qT,EAAOV,EAAKU,KAChE,OAAOrB,KAET,OAAOA,KAAKoQ,KAAK+7S,GAAsBxrT,EAAMU,KAe/CqoT,EAAsBj6S,KAAO,SAASpO,GACpC,OAAOma,UAAUjX,OAASvE,KAAKoQ,KAAsB,oBAAV/O,EAAuB,WAChE,IAAI6D,EAAI7D,EAAMsD,MAAM3E,KAAMwb,WAC1Bxb,KAAKm1B,YAAmB,MAALjwB,EAAY,GAAKA,GACzB,MAAT7D,EAAgB,WAClBrB,KAAKm1B,YAAc,IACjB,WACFn1B,KAAKm1B,YAAc9zB,IAChBrB,KAAKgoB,OAAOmN,aAEnBu0R,EAAsBn5S,KAAO,SAASlP,GACpC,OAAOma,UAAUjX,OAASvE,KAAKoQ,KAAsB,oBAAV/O,EAAuB,WAChE,IAAI6D,EAAI7D,EAAMsD,MAAM3E,KAAMwb,WAC1Bxb,KAAKotT,UAAiB,MAALloT,EAAY,GAAKA,GACvB,MAAT7D,EAAgB,WAClBrB,KAAKotT,UAAY,IACf,WACFptT,KAAKotT,UAAY/rT,IACdrB,KAAKgoB,OAAOolS,WAEnB1D,EAAsB15S,OAAS,SAASrP,GAEtC,OADAA,EAAO4rT,GAAqB5rT,GACrBX,KAAK6P,QAAO,WACjB,OAAO7P,KAAK0pB,YAAY/oB,EAAKgE,MAAM3E,KAAMwb,gBAa7CkuS,EAAsBnkT,OAAS,SAAS5E,EAAM0sT,GAG5C,OAFA1sT,EAAO4rT,GAAqB5rT,GAC5B0sT,EAASnD,EAAsBmD,GACxBrtT,KAAK6P,QAAO,WACjB,OAAO7P,KAAK2pB,aAAahpB,EAAKgE,MAAM3E,KAAMwb,WAAY6xS,EAAO1oT,MAAM3E,KAAMwb,YAAc,UAG3FkuS,EAAsBz4S,OAAS,WAC7B,OAAOjR,KAAKoQ,KAAKu8S,KAMnBjD,EAAsB/9S,KAAO,SAAStK,EAAOM,GAC3C,IAA6B6P,EAAOwW,EAAhC5nB,GAAK,EAAGyB,EAAI7B,KAAKuE,OACrB,IAAKiX,UAAUjX,OAAQ,CACrBlD,EAAQ,IAAI8C,MAAMtC,GAAK2P,EAAQxR,KAAK,IAAIuE,QACxC,QAASnE,EAAIyB,GACPmmB,EAAOxW,EAAMpR,MACfiB,EAAMjB,GAAK4nB,EAAKwtI,UAGpB,OAAOn0J,EAET,SAASO,EAAK4P,EAAO87S,GACnB,IAAIltT,EAAiJ4nB,EAAMulS,EAApJ1rT,EAAI2P,EAAMjN,OAAQ/D,EAAI8sT,EAAU/oT,OAAQ0P,EAAK9N,KAAKoC,IAAI1G,EAAGrB,GAAIgtT,EAAc,IAAIrpT,MAAM3D,GAAIitT,EAAa,IAAItpT,MAAM3D,GAAIktT,EAAY,IAAIvpT,MAAMtC,GACjJ,GAAIF,EAAK,CACP,IAA6DwmT,EAAzDwF,EAAiB,IAAI3G,EAAU4G,EAAY,IAAIzpT,MAAMtC,GACzD,IAAKzB,GAAK,IAAKA,EAAIyB,IACbmmB,EAAOxW,EAAMpR,MACXutT,EAAer1P,IAAI6vP,EAAWxmT,EAAIpB,KAAKynB,EAAMA,EAAKwtI,SAAUp1J,IAC9DstT,EAAUttT,GAAK4nB,EAEf2lS,EAAet/S,IAAI85S,EAAUngS,GAE/B4lS,EAAUxtT,GAAK+nT,GAGnB,IAAK/nT,GAAK,IAAKA,EAAII,IACXwnB,EAAO2lS,EAAe1sT,IAAIknT,EAAWxmT,EAAIpB,KAAK+sT,EAAWC,EAAWD,EAAUltT,GAAIA,MAEpE,IAAT4nB,IACTwlS,EAAYptT,GAAK4nB,EACjBA,EAAKwtI,SAAW+3J,GAHhBE,EAAWrtT,GAAKwsT,GAAsBW,GAKxCI,EAAet/S,IAAI85S,GAAU,GAE/B,IAAK/nT,GAAK,IAAKA,EAAIyB,GACbzB,KAAKwtT,IAAkD,IAArCD,EAAe1sT,IAAI2sT,EAAUxtT,MACjDstT,EAAUttT,GAAKoR,EAAMpR,QAGpB,CACL,IAAKA,GAAK,IAAKA,EAAI6T,GACjB+T,EAAOxW,EAAMpR,GACbmtT,EAAWD,EAAUltT,GACjB4nB,GACFA,EAAKwtI,SAAW+3J,EAChBC,EAAYptT,GAAK4nB,GAEjBylS,EAAWrtT,GAAKwsT,GAAsBW,GAG1C,KAAMntT,EAAII,IAAKJ,EACbqtT,EAAWrtT,GAAKwsT,GAAsBU,EAAUltT,IAElD,KAAMA,EAAIyB,IAAKzB,EACbstT,EAAUttT,GAAKoR,EAAMpR,GAGzBqtT,EAAW1hT,OAASyhT,EACpBC,EAAW9kS,WAAa6kS,EAAY7kS,WAAa+kS,EAAU/kS,WAAanX,EAAMmX,WAC9E5Y,EAAM1M,KAAKoqT,GACX1hT,EAAO1I,KAAKmqT,GACZhqQ,EAAKngD,KAAKqqT,GAEZ,IAAI39S,EAAQk9S,GAAmB,IAAKlhT,EAAS09S,EAAa,IAAKjmQ,EAAOimQ,EAAa,IACnF,GAAqB,oBAAVpoT,EACT,QAASjB,EAAIyB,EACXD,EAAK4P,EAAQxR,KAAKI,GAAIiB,EAAMd,KAAKiR,EAAOA,EAAMmX,WAAW6sI,SAAUp1J,SAGrE,QAASA,EAAIyB,EACXD,EAAK4P,EAAQxR,KAAKI,GAAIiB,GAS1B,OANA0K,EAAOgE,MAAQ,WACb,OAAOA,GAEThE,EAAOy3C,KAAO,WACZ,OAAOA,GAEFz3C,GAOT29S,EAAsBh4G,MAAQ,SAASrwM,GACrC,OAAOma,UAAUjX,OAASvE,KAAK+B,SAAS,WAAYV,GAASrB,KAAK+B,SAAS,aAE7E2nT,EAAsBzlT,OAAS,SAASA,GACtC,IAAoBmmT,EAAU54S,EAAOwW,EAAjCsiS,EAAY,GACM,oBAAXrmT,IAAuBA,EAAS4oT,GAAoB5oT,IAC/D,IAAK,IAAIe,EAAI,EAAGxE,EAAIR,KAAKuE,OAAQS,EAAIxE,EAAGwE,IAAK,CAC3CslT,EAAUjnT,KAAK+mT,EAAW,IAC1BA,EAASzhS,YAAcnX,EAAQxR,KAAKgF,IAAI2jB,WACxC,IAAK,IAAIvoB,EAAI,EAAGyB,EAAI2P,EAAMjN,OAAQnE,EAAIyB,EAAGzB,KAClC4nB,EAAOxW,EAAMpR,KAAO6D,EAAO1D,KAAKynB,EAAMA,EAAKwtI,SAAUp1J,EAAG4E,IAC3DolT,EAAS/mT,KAAK2kB,GAIpB,OAAOyhS,EAAaa,IAOtBZ,EAAsBj/Q,MAAQ,WAC5B,IAAK,IAAIzlC,GAAK,EAAGxE,EAAIR,KAAKuE,SAAUS,EAAIxE,GACtC,IAAK,IAA4DwnB,EAAxDxW,EAAQxR,KAAKgF,GAAI5E,EAAIoR,EAAMjN,OAAS,EAAG6yD,EAAO5lD,EAAMpR,KAAYA,GAAK,IACxE4nB,EAAOxW,EAAMpR,MACXg3D,GAAQA,IAASpvC,EAAK6lS,aAAaz2P,EAAKzuC,WAAWgB,aAAa3B,EAAMovC,GAC1EA,EAAOpvC,GAIb,OAAOhoB,MAET0pT,EAAsBtiT,KAAO,SAAS2lT,GACpCA,EAAaD,GAA4BnoT,MAAM3E,KAAMwb,WACrD,IAAK,IAAIxW,GAAK,EAAGxE,EAAIR,KAAKuE,SAAUS,EAAIxE,GAAKR,KAAKgF,GAAGoC,KAAK2lT,GAC1D,OAAO/sT,KAAKyqC,SAQdi/Q,EAAsBt5S,KAAO,SAAS04D,GACpC,OAAOkkP,GAAkBhtT,MAAM,SAASgoB,EAAM5nB,EAAG4E,GAC/C8jE,EAASvoE,KAAKynB,EAAMA,EAAKwtI,SAAUp1J,EAAG4E,OAW1C0kT,EAAsBnpT,KAAO,SAASuoE,GACpC,IAAI39B,EAAO05Q,EAASrpS,WAEpB,OADAstD,EAASnkE,MAAMwmC,EAAK,GAAKnrC,KAAMmrC,GACxBnrC,MAET0pT,EAAsB9gS,MAAQ,WAC5B,OAAQ5oB,KAAKgoB,QAEf0hS,EAAsB1hS,KAAO,WAC3B,IAAK,IAAIhjB,EAAI,EAAGxE,EAAIR,KAAKuE,OAAQS,EAAIxE,EAAGwE,IACtC,IAAK,IAAIwM,EAAQxR,KAAKgF,GAAI5E,EAAI,EAAGyB,EAAI2P,EAAMjN,OAAQnE,EAAIyB,EAAGzB,IAAK,CAC7D,IAAI4nB,EAAOxW,EAAMpR,GACjB,GAAI4nB,EAAM,OAAOA,EAGrB,OAAO,MAET0hS,EAAsBtlS,KAAO,WAC3B,IAAIviB,EAAI,EAIR,OAHAmrT,GAAkBhtT,MAAM,aACpB6B,KAEGA,GAMT,IAAIqrT,GAA8B,GA6BlC,SAASY,GAA+B/9S,GACtC,IAAI2lI,EAAIgd,EACR,OAAO,SAAShyJ,EAAGN,EAAG4E,GACpB,IAA+CgjB,EAA3CxW,EAAQzB,EAAM/K,GAAG+G,OAAQlK,EAAI2P,EAAMjN,OACnCS,GAAK0tJ,IAAIA,EAAK1tJ,EAAG0wI,EAAK,GACtBt1I,GAAKs1I,IAAIA,EAAKt1I,EAAI,GACtB,QAAS4nB,EAAOxW,EAAMkkI,OAAUA,EAAK7zI,GACrC,OAAOmmB,GAsCX,SAAS+lS,GAAgBr6S,EAAMm1S,EAAU74D,GACvC,IAAIrvP,EAAO,OAAS+S,EAAMtT,EAAIsT,EAAKtO,QAAQ,KAAMwG,EAAOoiT,GACpD5tT,EAAI,IAAGsT,EAAOA,EAAKhP,MAAM,EAAGtE,IAChC,IAAI6D,EAASgqT,GAAuBhtT,IAAIyS,GAExC,SAASw6S,IACP,IAAI7tT,EAAIL,KAAKW,GACTN,IACFL,KAAK4lC,oBAAoBlyB,EAAMrT,EAAGA,EAAEgoG,UAC7BroG,KAAKW,IAGhB,SAASwtT,IACP,IAAI9tT,EAAIuL,EAAKi9S,EAAUhE,EAASrpS,YAChC0yS,EAAS3tT,KAAKP,MACdA,KAAK0lC,iBAAiBhyB,EAAM1T,KAAKW,GAAQN,EAAGA,EAAEgoG,EAAI2nJ,GAClD3vP,EAAE6mE,EAAI2hP,EAER,SAASjgP,IACP,IAA8DngD,EAA1DoF,EAAK,IAAI8a,OAAO,eAAiBr5B,EAAG+5S,QAAQ31S,GAAQ,KACxD,IAAK,IAAI/S,KAAQX,KACf,GAAIyoB,EAAQ9nB,EAAK8nB,MAAMoF,GAAK,CAC1B,IAAIxtB,EAAIL,KAAKW,GACbX,KAAK4lC,oBAAoBnd,EAAM,GAAIpoB,EAAGA,EAAEgoG,UACjCroG,KAAKW,IAIlB,OAxBIsD,IAAQyP,EAAOzP,EAAQ2H,EAAOwiT,IAwB3BhuT,EAAIyoT,EAAWsF,EAAQD,EAAWrF,EAAWL,EAAU5/O,EArGhEt5D,EAAGZ,UAAUqB,MAAQk9S,GACrB39S,EAAGZ,UAAUqB,MAAM/N,UAAYkrT,GAC/BA,GAA4Bl9S,OAAS05S,EAAsB15S,OAC3Dk9S,GAA4BtkS,MAAQ8gS,EAAsB9gS,MAC1DskS,GAA4BllS,KAAO0hS,EAAsB1hS,KACzDklS,GAA4B3sT,KAAOmpT,EAAsBnpT,KACzD2sT,GAA4B9oS,KAAOslS,EAAsBtlS,KACzD8oS,GAA4Br9S,OAAS,SAAS8uB,GAE5C,IADA,IAAoByrR,EAAUC,EAASgE,EAAS78S,EAAOwW,EAAnDsiS,EAAY,GACPtlT,GAAK,EAAGxE,EAAIR,KAAKuE,SAAUS,EAAIxE,GAAK,CAC3C6tT,GAAW78S,EAAQxR,KAAKgF,IAAI+G,OAC5Bu+S,EAAUjnT,KAAK+mT,EAAW,IAC1BA,EAASzhS,WAAanX,EAAMmX,WAC5B,IAAK,IAAIvoB,GAAK,EAAGyB,EAAI2P,EAAMjN,SAAUnE,EAAIyB,IACnCmmB,EAAOxW,EAAMpR,KACfgqT,EAAS/mT,KAAKgrT,EAAQjuT,GAAKiqT,EAAU1rR,EAASp+B,KAAKiR,EAAMmX,WAAYX,EAAKwtI,SAAUp1J,EAAG4E,IACvFqlT,EAAQ70J,SAAWxtI,EAAKwtI,UAExB40J,EAAS/mT,KAAK,MAIpB,OAAOomT,EAAaa,IAEtB4C,GAA4B3nT,OAAS,SAAS5E,EAAM0sT,GAElD,OADI7xS,UAAUjX,OAAS,IAAG8oT,EAASS,GAA+B9tT,OAC3D0pT,EAAsBnkT,OAAOhF,KAAKP,KAAMW,EAAM0sT,IAYvD/9S,EAAGO,OAAS,SAASmY,GACnB,IAAIxW,EAQJ,MAPoB,kBAATwW,GACTxW,EAAQ,CAAEm4S,EAAU3hS,EAAM88R,IAC1BtzS,EAAMmX,WAAam8R,EAAY1wG,kBAE/B5iM,EAAQ,CAAEwW,GACVxW,EAAMmX,WAAao8R,EAAmB/8R,IAEjCyhS,EAAa,CAAEj4S,KAExBlC,EAAGQ,UAAY,SAAS+2D,GACtB,IAAIr1D,EAQJ,MAPqB,kBAAVq1D,GACTr1D,EAAQqzS,EAAS+E,EAAa/iP,EAAOi+O,IACrCtzS,EAAMmX,WAAam8R,EAAY1wG,kBAE/B5iM,EAAQqzS,EAASh+O,GACjBr1D,EAAMmX,WAAa,MAEd8gS,EAAa,CAAEj4S,KAExBk4S,EAAsBl5S,GAAK,SAASkD,EAAMm1S,EAAU74D,GAClD,IAAInuP,EAAI2Z,UAAUjX,OAClB,GAAI1C,EAAI,EAAG,CACT,GAAoB,kBAAT6R,EAAmB,CAE5B,IAAKs8O,KADDnuP,EAAI,IAAGgnT,GAAW,GACNn1S,EAAM1T,KAAKoQ,KAAK29S,GAAgB/9D,EAASt8O,EAAKs8O,GAAU64D,IACxE,OAAO7oT,KAET,GAAI6B,EAAI,EAAG,OAAQA,EAAI7B,KAAKgoB,OAAO,OAAStU,KAAU7R,EAAEqlE,EACxD8oL,GAAU,EAEZ,OAAOhwP,KAAKoQ,KAAK29S,GAAgBr6S,EAAMm1S,EAAU74D,KAgCnD,IAAIi+D,GAAyB3+S,EAAG0sC,IAAI,CAClCsyQ,WAAY,YACZC,WAAY,aAOd,SAASP,GAAwBnF,EAAUM,GACzC,OAAO,SAASnrS,GACd,IAAInd,EAAIyO,EAAGgmB,MACXhmB,EAAGgmB,MAAQtX,EACXmrS,EAAU,GAAKnpT,KAAKw1J,SACpB,IACEqzJ,EAASlkT,MAAM3E,KAAMmpT,GACrB,QACA75S,EAAGgmB,MAAQz0B,IAIjB,SAASutT,GAAsBvF,EAAUM,GACvC,IAAI9oT,EAAI2tT,GAAwBnF,EAAUM,GAC1C,OAAO,SAASnrS,GACd,IAAI2S,EAAS3wB,KAAMwuT,EAAUxwS,EAAE+tO,cAC1ByiE,IAAWA,IAAY79R,GAAsD,EAA1C69R,EAAQC,wBAAwB99R,KACtEtwB,EAAEE,KAAKowB,EAAQ3S,IAtBjB8mS,GACFmJ,GAAuBz2P,SAAQ,SAASryD,GAClC,KAAOA,KAAK2/S,GAAamJ,GAAuBh9S,OAAO9L,MAwB/D,IAAIupT,GAAqBC,GAAkB,EAC3C,SAASC,GAAsB5mS,GAC7B,IAAIrnB,EAAO,oBAAqBguT,GAAiB3pN,EAAQ,QAAUrkG,EAAMud,EAAI5O,EAAGO,OAAOm1S,EAAUh9R,IAAOxX,GAAG,YAAc7P,EAAMmoT,GAAwBt4S,GAAG,YAAc7P,EAAMmoT,GAAwBt4S,GAAG,cAAgB7P,EAAMmoT,GAI/N,GAH2B,MAAvB4F,KACFA,KAAsB,kBAAmB1mS,IAAe6/R,EAAgB7/R,EAAK7X,MAAO,eAElFu+S,GAAqB,CACvB,IAAIv+S,EAAQ40S,EAAmB/8R,GAAM7X,MAAON,EAASM,EAAMu+S,IAC3Dv+S,EAAMu+S,IAAuB,OAE/B,OAAO,SAASG,GAGd,GAFA3wS,EAAE1N,GAAG7P,EAAM,MACP+tT,KAAqBv+S,EAAMu+S,IAAuB7+S,GAClDg/S,EAAe,CACjB,IAAIt3P,EAAM,WACRr5C,EAAE1N,GAAGw0F,EAAO,OAEd9mF,EAAE1N,GAAGw0F,GAAO,WACV8jN,IACAvxP,OACC,GACH4U,WAAW5U,EAAK,KAItBjoD,EAAGqwB,MAAQ,SAAS1N,GAClB,OAAO68R,GAAc78R,EAAW82R,MAElC,IAAIgG,GAAoB/uT,KAAKqgL,WAAa,SAAS58K,KAAKzD,KAAKqgL,UAAUrU,YAAc,EAAI,EACzF,SAAS8iJ,GAAc78R,EAAWjU,GAC5BA,EAAE8wN,iBAAgB9wN,EAAIA,EAAE8wN,eAAe,IAC3C,IAAI1+M,EAAM6B,EAAU+8R,iBAAmB/8R,EACvC,GAAI7B,EAAI6+R,eAAgB,CACtB,IAAIxpT,EAAQ2qB,EAAI6+R,iBAChB,GAAIF,GAAoB,EAAG,CACzB,IAAI76R,EAAS8wR,EAAU/yR,GACvB,GAAIiC,EAAOg7R,SAAWh7R,EAAOuiI,QAAS,CACpCrmI,EAAM9gB,EAAGO,OAAO,QAAQG,OAAO,OAAOG,MAAM,CAC1CnG,SAAU,WACV4oB,IAAK,EACLxe,KAAM,EACN2gB,OAAQ,EACRC,QAAS,EACTm6R,OAAQ,QACP,aACH,IAAIC,EAAMh/R,EAAI,GAAG,GAAGi/R,eACpBN,KAAsBK,EAAItmR,GAAKsmR,EAAIpxS,GACnCoS,EAAInf,UAMR,OAHI89S,IAAmBtpT,EAAMmJ,EAAIoP,EAAEsxS,MAAO7pT,EAAM8O,EAAIyJ,EAAEuxS,QAAY9pT,EAAMmJ,EAAIoP,EAAEwgI,QAC9E/4I,EAAM8O,EAAIyJ,EAAEygI,SACZh5I,EAAQA,EAAM+pT,gBAAgBv9R,EAAUo9R,eAAez7J,WAChD,CAAEnuJ,EAAMmJ,EAAGnJ,EAAM8O,GAE1B,IAAI85G,EAAOp8F,EAAUhK,wBACrB,MAAO,CAAEjK,EAAEwgI,QAAUnwB,EAAKj6G,KAAO6d,EAAUw9R,WAAYzxS,EAAEygI,QAAUpwB,EAAKz7F,IAAMX,EAAUy9R,WA2D1F,SAASC,KACP,OAAOrgT,EAAGgmB,MAAMw5M,eAAe,GAAG8gF,WA1DpCtgT,EAAGugT,MAAQ,SAAS59R,EAAW69R,EAASF,GAEtC,GADIp0S,UAAUjX,OAAS,IAAGqrT,EAAaE,EAASA,EAAU/G,IAAiBj6E,gBACvEghF,EAAS,IAAK,IAA+BD,EAA3BzvT,EAAI,EAAGyB,EAAIiuT,EAAQvrT,OAAenE,EAAIyB,IAAKzB,EAC/D,IAAKyvT,EAAQC,EAAQ1vT,IAAIwvT,aAAeA,EACtC,OAAOd,GAAc78R,EAAW49R,IAItCvgT,EAAGo2H,SAASZ,KAAO,WACjB,IAAIxvG,EAAQ0zR,EAAiBlkL,EAAM,OAAQ,YAAa,WAAYoyB,EAAS,KAAM64J,EAAYnsL,EAAU4kL,EAASl5S,EAAGqwB,MAAOqlR,EAAW,YAAa,WAAYgL,EAAapsL,EAAU+rL,GAAyBrgT,EAAGugT,MAAOlI,EAAa,YAAa,YACpP,SAAS7iL,IACP9kI,KAAKwQ,GAAG,iBAAkBu/S,GAAWv/S,GAAG,kBAAmBw/S,GAE7D,SAASpsL,EAAUx3H,EAAIpC,EAAUimT,EAASx7S,EAAM0P,GAC9C,OAAO,WACL,IAA0O+rS,EAAtOxoS,EAAO1nB,KAAM2wB,EAASrhB,EAAGgmB,MAAM3E,OAAOw/R,sBAAwB7gT,EAAGgmB,MAAM3E,OAAQjI,EAAShB,EAAKiB,WAAY4K,EAAW+B,EAAM2zR,GAAGvhS,EAAMlM,WAAY40S,EAAU,EAAGC,EAASjkT,IAAMkkT,EAAW,SAAqB,MAAVD,EAAiB,GAAK,IAAMA,GAAqBE,EAAcjhT,EAAGO,OAAOogT,EAAQt/R,IAASngB,GAAGiE,EAAO67S,EAAUE,GAAOhgT,GAAG2T,EAAMmsS,EAAUG,GAAQC,EAAc9B,GAAsBj+R,GAASggS,EAAY3mT,EAAS0e,EAAQ2nS,GAU/Z,SAASG,IACP,IAA0Ch3R,EAAIhP,EAA1ComS,EAAY5mT,EAAS0e,EAAQ2nS,GAC5BO,IACLp3R,EAAKo3R,EAAU,GAAKD,EAAU,GAC9BnmS,EAAKomS,EAAU,GAAKD,EAAU,GAC9BP,GAAW52R,EAAKhP,EAChBmmS,EAAYC,EACZr9R,EAAS,CACP7f,KAAM,OACN9E,EAAGgiT,EAAU,GAAKV,EAAW,GAC7B37S,EAAGq8S,EAAU,GAAKV,EAAW,GAC7B12R,GAAIA,EACJhP,GAAIA,KAGR,SAASimS,IACFzmT,EAAS0e,EAAQ2nS,KACtBE,EAAY//S,GAAGiE,EAAO67S,EAAU,MAAM9/S,GAAG2T,EAAMmsS,EAAU,MACzDI,EAAYN,GACZ78R,EAAS,CACP7f,KAAM,aA7BNwjJ,GACFg5J,EAAah5J,EAAOvyJ,MAAM+iB,EAAMlM,WAChC00S,EAAa,CAAEA,EAAWthT,EAAI+hT,EAAU,GAAIT,EAAW37S,EAAIo8S,EAAU,KAErET,EAAa,CAAE,EAAG,GAEpB38R,EAAS,CACP7f,KAAM,eAgCZ,OALAoxH,EAAKoyB,OAAS,SAAStoJ,GACrB,OAAK4M,UAAUjX,QACf2yJ,EAAStoJ,EACFk2H,GAFuBoyB,GAIzB5nJ,EAAGumB,OAAOivG,EAAMxvG,EAAO,OAKhChmB,EAAGwgT,QAAU,SAAS79R,EAAW69R,GAE/B,OADIt0S,UAAUjX,OAAS,IAAGurT,EAAU/G,IAAiB+G,SAC9CA,EAAUjL,EAASiL,GAAS9zQ,KAAI,SAAS6zQ,GAC9C,IAAIpqT,EAAQqpT,GAAc78R,EAAW49R,GAErC,OADApqT,EAAMmqT,WAAaC,EAAMD,WAClBnqT,KACJ,IAEP,IAAIo7O,GAAI,KAAMC,GAAKD,GAAIA,GAAGE,GAAI56O,KAAKs8B,GAAIouR,GAAI,EAAI9vE,GAAG+vE,GAAKD,GAAIhwE,GAAGG,GAAQD,GAAI,EAAGgwE,GAAahwE,GAAI,IAAKiwE,GAAa,IAAMjwE,GACtH,SAASkwE,GAAOriT,GACd,OAAOA,EAAI,EAAI,EAAIA,EAAI,GAAK,EAAI,EAElC,SAASsiT,GAAWjuT,EAAGC,EAAGzC,GACxB,OAAQyC,EAAE,GAAKD,EAAE,KAAOxC,EAAE,GAAKwC,EAAE,KAAOC,EAAE,GAAKD,EAAE,KAAOxC,EAAE,GAAKwC,EAAE,IAEnE,SAASkuT,GAAQviT,GACf,OAAOA,EAAI,EAAI,EAAIA,GAAK,EAAImyO,GAAI56O,KAAKmuE,KAAK1lE,GAE5C,SAASwiT,GAAQxiT,GACf,OAAOA,EAAI,EAAIoyO,GAAQpyO,GAAK,GAAKoyO,GAAQ76O,KAAKi7O,KAAKxyO,GAErD,SAASyiT,GAAQziT,GACf,QAASA,EAAIzI,KAAK6uD,IAAIpmD,IAAM,EAAIA,GAAK,EAEvC,SAAS0iT,GAAQ1iT,GACf,QAASA,EAAIzI,KAAK6uD,IAAIpmD,IAAM,EAAIA,GAAK,EAEvC,SAAS2iT,GAAQ3iT,GACf,QAASA,EAAIzI,KAAK6uD,IAAI,EAAIpmD,IAAM,IAAMA,EAAI,GAE5C,SAAS4iT,GAAY5iT,GACnB,OAAQA,EAAIzI,KAAKorD,IAAI3iD,EAAI,IAAMA,EAEjC,IAAI6iT,GAAItrT,KAAK09O,MAAO6tE,GAAK,EAAGC,GAAK,EACjCriT,EAAGsiT,gBAAkB,SAASxsO,EAAIC,GAChC,IAAwIjlF,EAAG28C,EAAvI80Q,EAAMzsO,EAAG,GAAI0sO,EAAM1sO,EAAG,GAAIx3E,EAAKw3E,EAAG,GAAI2sO,EAAM1sO,EAAG,GAAI2sO,EAAM3sO,EAAG,GAAI2hH,EAAK3hH,EAAG,GAAI7rD,EAAKu4R,EAAMF,EAAKrnS,EAAKwnS,EAAMF,EAAKrpP,EAAKjvC,EAAKA,EAAKhP,EAAKA,EACpI,GAAIi+C,EAAKq4K,GACP/jM,EAAI52C,KAAKomB,IAAIy6K,EAAKp5L,GAAM6jT,GACxBrxT,EAAI,SAASkB,GACX,MAAO,CAAEuwT,EAAMvwT,EAAIk4B,EAAIs4R,EAAMxwT,EAAIkpB,EAAI5c,EAAKzH,KAAK6uD,IAAIy8P,GAAInwT,EAAIy7C,SAExD,CACL,IAAI01G,EAAKtsJ,KAAKuD,KAAK++D,GAAKmG,GAAMo4H,EAAKA,EAAKp5L,EAAKA,EAAK+jT,GAAKlpP,IAAO,EAAI76D,EAAK8jT,GAAKj/J,GAAK1oD,GAAMi9F,EAAKA,EAAKp5L,EAAKA,EAAK+jT,GAAKlpP,IAAO,EAAIu+H,EAAK0qH,GAAKj/J,GAAK3yG,EAAK35C,KAAKomB,IAAIpmB,KAAKuD,KAAKklE,EAAKA,EAAK,GAAKA,GAAKg0B,EAAKz8F,KAAKomB,IAAIpmB,KAAKuD,KAAKqgG,EAAKA,EAAK,GAAKA,GAC7NhtD,GAAK6lD,EAAK9iD,GAAM2xQ,GAChBrxT,EAAI,SAASkB,GACX,IAAIa,EAAIb,EAAIy7C,EAAGk1Q,EAASX,GAAQxxQ,GAAKn8C,EAAIiK,GAAM8jT,GAAKj/J,IAAOw/J,EAASV,GAAQE,GAAItvT,EAAI29C,GAAMuxQ,GAAQvxQ,IAClG,MAAO,CAAE+xQ,EAAMluT,EAAI61B,EAAIs4R,EAAMnuT,EAAI6mB,EAAI5c,EAAKqkT,EAASX,GAAQG,GAAItvT,EAAI29C,KAIvE,OADA1/C,EAAEyQ,SAAe,IAAJksC,EACN38C,GAETkP,EAAGo2H,SAAS/gC,KAAO,WACjB,IAIGutN,EAAYC,EAASjxR,EAAwLkxR,EAAiDC,EAA2E16R,EAAIC,EAAII,EAAIC,EAJpVvrB,EAAO,CACTkC,EAAG,EACH2F,EAAG,EACHpP,EAAG,GAC2Bif,EAAO,CAAE,IAAK,KAAOkuS,EAAcC,GAA0B1hT,EAAW,IAAK2hT,EAAU,EAAGzC,EAAY,iBAAkB7qL,EAAY,iBAAkButL,EAAU,eAAiCzC,EAAa,kBAA8B16R,EAAQ0zR,EAAiBrkN,EAAM,YAAa,OAAQ,WAUhU,SAASA,EAAK16E,GACZA,EAAEzZ,GAAGu/S,EAAW2C,GAAaliT,GAAGmiT,GAAwB,QAASC,GAAcpiT,GAAG,gBAAiBqiT,GAAYriT,GAAGw/S,EAAY8C,GAoGhI,SAASvnT,EAASrJ,GAChB,MAAO,EAAGA,EAAE,GAAKwK,EAAKkC,GAAKlC,EAAKvH,GAAIjD,EAAE,GAAKwK,EAAK6H,GAAK7H,EAAKvH,GAE5D,SAASM,EAAMpF,GACb,MAAO,CAAEA,EAAE,GAAKqM,EAAKvH,EAAIuH,EAAKkC,EAAGvO,EAAE,GAAKqM,EAAKvH,EAAIuH,EAAK6H,GAExD,SAASw+S,EAAQ5wT,GACfuK,EAAKvH,EAAIgB,KAAKqC,IAAI8pT,EAAY,GAAInsT,KAAKoC,IAAI+pT,EAAY,GAAInwT,IAE7D,SAAS6wT,EAAY9wT,EAAG7B,GACtBA,EAAIoF,EAAMpF,GACVqM,EAAKkC,GAAK1M,EAAE,GAAK7B,EAAE,GACnBqM,EAAK6H,GAAKrS,EAAE,GAAK7B,EAAE,GAErB,SAAS4yT,EAAOvrS,EAAMxlB,EAAG7B,EAAG8E,GAC1BuiB,EAAKwrS,UAAY,CACftkT,EAAGlC,EAAKkC,EACR2F,EAAG7H,EAAK6H,EACRpP,EAAGuH,EAAKvH,GAEV4tT,EAAQ5sT,KAAK85B,IAAI,EAAG96B,IACpB6tT,EAAYb,EAAUjwT,EAAG7B,GACzBqnB,EAAOpY,EAAGO,OAAO6X,GACb7W,EAAW,IAAG6W,EAAOA,EAAKjX,aAAaI,SAASA,IACpD6W,EAAKnnB,KAAKokG,EAAKrvE,OAEjB,SAAS69R,IACHv7R,GAAIA,EAAG64B,OAAO94B,EAAGvf,QAAQ4jC,KAAI,SAASptC,GACxC,OAAQA,EAAIlC,EAAKkC,GAAKlC,EAAKvH,KAC1B62C,IAAIrkB,EAAG9X,SACNoY,GAAIA,EAAGw4B,OAAOz4B,EAAG5f,QAAQ4jC,KAAI,SAASznC,GACxC,OAAQA,EAAI7H,EAAK6H,GAAK7H,EAAKvH,KAC1B62C,IAAIhkB,EAAGnY,SAEZ,SAASuzS,EAAY7/R,GACdi/R,KAAWj/R,EAAS,CACvB7f,KAAM,cAGV,SAAS2/S,EAAO9/R,GACd4/R,IACA5/R,EAAS,CACP7f,KAAM,OACNqyD,MAAOr5D,EAAKvH,EACZ80N,UAAW,CAAEvtN,EAAKkC,EAAGlC,EAAK6H,KAG9B,SAAS++S,EAAU//R,KACVi/R,IAASj/R,EAAS,CACvB7f,KAAM,YACJy+S,EAAU,MAEhB,SAASO,IACP,IAAIhrS,EAAO1nB,KAAMuzB,EAAW+B,EAAM2zR,GAAGvhS,EAAMlM,WAAY40S,EAAU,EAAGH,EAAU3gT,EAAGO,OAAOm1S,EAAUt9R,IAAOlX,GAAG00H,EAAWsrL,GAAOhgT,GAAGiiT,EAAShC,GAAQ8C,EAAYhoT,EAAS+D,EAAGqwB,MAAMjY,IAAQgpS,EAAc9B,GAAsBlnS,GAG5N,SAAS8oS,IACPJ,EAAU,EACV4C,EAAY1jT,EAAGqwB,MAAMjY,GAAO6rS,GAC5BF,EAAO9/R,GAET,SAASk9R,IACPR,EAAQz/S,GAAG00H,EAAW,MAAM10H,GAAGiiT,EAAS,MACxC/B,EAAYN,GACZkD,EAAU//R,GAVZigS,GAAuBjzT,KAAKmnB,GAC5B0rS,EAAY7/R,GAYd,SAASu/R,IACP,IAAuFW,EAAnF/rS,EAAO1nB,KAAMuzB,EAAW+B,EAAM2zR,GAAGvhS,EAAMlM,WAAYk4S,EAAa,GAAIC,EAAY,EAAWC,EAAW,SAAWtkT,EAAGgmB,MAAMw5M,eAAe,GAAG8gF,WAAYiE,EAAY,YAAcD,EAAUE,EAAW,WAAaF,EAAU1rC,EAAU,GAAI+nC,EAAU3gT,EAAGO,OAAO6X,GAAOgpS,EAAc9B,GAAsBlnS,GAI/S,SAASqsS,IACP,IAAIjE,EAAUxgT,EAAGwgT,QAAQpoS,GAKzB,OAJA+rS,EAAS/mT,EAAKvH,EACd2qT,EAAQt4P,SAAQ,SAASl2D,GACnBA,EAAEsuT,cAAc8D,IAAYA,EAAWpyT,EAAEsuT,YAAcrkT,EAASjK,OAE/DwuT,EAET,SAASkE,IACP,IAAIrjS,EAASrhB,EAAGgmB,MAAM3E,OACtBrhB,EAAGO,OAAO8gB,GAAQngB,GAAGqjT,EAAWrD,GAAOhgT,GAAGsjT,EAAUrD,GACpDvoC,EAAQ7kR,KAAKstB,GAEb,IADA,IAAI4lN,EAAUjnO,EAAGgmB,MAAMw5M,eACd1uO,EAAI,EAAGyB,EAAI00O,EAAQhyO,OAAQnE,EAAIyB,IAAKzB,EAC3CszT,EAAWn9E,EAAQn2O,GAAGwvT,YAAc,KAEtC,IAAIE,EAAUiE,IAAY/4R,EAAM9d,KAAK8d,MACrC,GAAuB,IAAnB80R,EAAQvrT,OAAc,CACxB,GAAIy2B,EAAMq3R,EAAY,IAAK,CACzB,IAAInwT,EAAI4tT,EAAQ,GAChBmD,EAAOvrS,EAAMxlB,EAAGwxT,EAAWxxT,EAAE0tT,YAAazpT,KAAK2N,MAAM3N,KAAKomB,IAAI7f,EAAKvH,GAAKgB,KAAK8tT,KAAO,GACpFnL,IAEFuJ,EAAYr3R,OACP,GAAI80R,EAAQvrT,OAAS,EAAG,CACzBrC,EAAI4tT,EAAQ,GAAhB,IAAoB1nP,EAAI0nP,EAAQ,GAAIt2R,EAAKt3B,EAAE,GAAKkmE,EAAE,GAAI59C,EAAKtoB,EAAE,GAAKkmE,EAAE,GACpEurP,EAAYn6R,EAAKA,EAAKhP,EAAKA,GAG/B,SAASgmS,IACP,IAAgCprO,EAAI8iE,EAAI7iE,EAAI2iE,EAAxC8nK,EAAUxgT,EAAGwgT,QAAQpoS,GACzB8rS,GAAuBjzT,KAAKmnB,GAC5B,IAAK,IAAItnB,EAAI,EAAGyB,EAAIiuT,EAAQvrT,OAAQnE,EAAIyB,IAAKzB,EAAG4nJ,EAAK,KAEnD,GADA3iE,EAAKyqO,EAAQ1vT,GACT4nJ,EAAK0rK,EAAWruO,EAAGuqO,YAAa,CAClC,GAAI1nK,EAAI,MACR9iE,EAAKC,EAAI6iE,EAAKF,EAGlB,GAAIA,EAAI,CACN,IAAIksK,GAAaA,EAAY7uO,EAAG,GAAKD,EAAG,IAAM8uO,GAAaA,EAAY7uO,EAAG,GAAKD,EAAG,IAAM8uO,EAAWC,EAASR,GAAaxtT,KAAKuD,KAAKwqT,EAAYP,GAC/IvuO,EAAK,EAAGA,EAAG,GAAKC,EAAG,IAAM,GAAID,EAAG,GAAKC,EAAG,IAAM,GAC9C6iE,EAAK,EAAGA,EAAG,GAAKF,EAAG,IAAM,GAAIE,EAAG,GAAKF,EAAG,IAAM,GAC9C+qK,EAAQoB,EAASV,GAEnBpB,EAAY,KACZW,EAAY5tO,EAAI8iE,GAChBmrK,EAAO9/R,GAET,SAASk9R,IACP,GAAInhT,EAAGgmB,MAAMw6R,QAAQvrT,OAAQ,CAE3B,IADA,IAAIgyO,EAAUjnO,EAAGgmB,MAAMw5M,eACd1uO,EAAI,EAAGyB,EAAI00O,EAAQhyO,OAAQnE,EAAIyB,IAAKzB,SACpCszT,EAAWn9E,EAAQn2O,GAAGwvT,YAE/B,IAAK,IAAIA,KAAc8D,EACrB,YAAYK,IAGhBzkT,EAAGQ,UAAUo4Q,GAAS13Q,GAAGojT,EAAU,MACnC3D,EAAQz/S,GAAGu/S,EAAW2C,GAAaliT,GAAGw/S,EAAY8C,GAClDpC,IACA4C,EAAU//R,GAjEZygS,IACAZ,EAAY7/R,GACZ08R,EAAQz/S,GAAGu/S,EAAW,MAAMv/S,GAAGw/S,EAAYgE,GAkE7C,SAASpB,IACP,IAAIr/R,EAAW+B,EAAM2zR,GAAGjpT,KAAMwb,WAC1B42S,EAAiBplP,aAAaolP,IAAuBoB,GAAuBjzT,KAAKP,MACrFkyT,EAAa3mT,EAAS4mT,EAAUjxR,GAAU5xB,EAAGqwB,MAAM3/B,OAAQozT,EAAY7/R,IACvE6+R,EAAkBjmP,YAAW,WAC3BimP,EAAkB,KAClBkB,EAAU//R,KACT,IACHu1R,IACAiK,EAAQ5sT,KAAK85B,IAAI,EAA6B,KAA1Bm0R,MAAkC1nT,EAAKvH,GAC3D6tT,EAAYb,EAASD,GACrBmB,EAAO9/R,GAET,SAASs/R,IACP,IAAI3wT,EAAIoN,EAAGqwB,MAAM3/B,MAAOmF,EAAIgB,KAAKomB,IAAI7f,EAAKvH,GAAKgB,KAAK8tT,IACpDhB,EAAOjzT,KAAMkC,EAAGqJ,EAASrJ,GAAIoN,EAAGgmB,MAAM6oF,SAAWh4G,KAAK+5B,KAAK/6B,GAAK,EAAIgB,KAAK2N,MAAM3O,GAAK,GAEtF,OAxQKwtT,KACHA,GAAwB,YAAa7N,GAAesP,GAAwB,WAC1E,OAAQ9kT,EAAGgmB,MAAMwpI,QAAUxvJ,EAAGgmB,MAAM++R,UAAY,IAAM,IACrD,SAAW,iBAAkBvP,GAAesP,GAAwB,WACrE,OAAO9kT,EAAGgmB,MAAMg/R,YACf,eAAiBF,GAAwB,WAC1C,OAAQ9kT,EAAGgmB,MAAMynE,QAChB,wBAKL4H,EAAKrvE,MAAQ,SAASrL,GACpBA,EAAE7Z,MAAK,WACL,IAAImjB,EAAW+B,EAAM2zR,GAAGjpT,KAAMwb,WAAY+4S,EAAQ7nT,EAC9C8nT,GACFllT,EAAGO,OAAO7P,MAAMyQ,aAAaL,KAAK,cAAc,WAC9C1D,EAAO1M,KAAKkzT,WAAa,CACvBtkT,EAAG,EACH2F,EAAG,EACHpP,EAAG,GAELiuT,EAAY7/R,MACXkhS,MAAM,aAAa,WACpB,IAAIj7R,EAAKpV,EAAK,GAAIoG,EAAKpG,EAAK,GAAIowD,EAAK29O,EAAUA,EAAQ,GAAK34R,EAAK,EAAGi7C,EAAK09O,EAAUA,EAAQ,GAAK3nS,EAAK,EAAGpqB,EAAIkP,EAAGsiT,gBAAgB,EAAGp9O,EAAK9nE,EAAKkC,GAAKlC,EAAKvH,GAAIsvE,EAAK/nE,EAAK6H,GAAK7H,EAAKvH,EAAGq0B,EAAK9sB,EAAKvH,GAAK,EAAGqvE,EAAK+/O,EAAM3lT,GAAK2lT,EAAMpvT,GAAIsvE,EAAK8/O,EAAMhgT,GAAKggT,EAAMpvT,EAAGq0B,EAAK+6R,EAAMpvT,IACjQ,OAAO,SAAS7D,GACd,IAAIjB,EAAID,EAAEkB,GAAI6D,EAAIq0B,EAAKn5B,EAAE,GACzBL,KAAKkzT,UAAYxmT,EAAO,CACtBkC,EAAG4lE,EAAKn0E,EAAE,GAAK8E,EACfoP,EAAGkgE,EAAKp0E,EAAE,GAAK8E,EACfA,EAAGA,GAELkuT,EAAO9/R,OAERnjB,KAAK,kBAAkB,WACxBkjT,EAAU//R,MACTnjB,KAAK,YAAY,WAClBkjT,EAAU//R,OAGZvzB,KAAKkzT,UAAYxmT,EACjB0mT,EAAY7/R,GACZ8/R,EAAO9/R,GACP+/R,EAAU//R,QAIhBoxE,EAAKs1H,UAAY,SAAS/yJ,GACxB,OAAK1rD,UAAUjX,QACfmI,EAAO,CACLkC,GAAIs4D,EAAE,GACN3yD,GAAI2yD,EAAE,GACN/hE,EAAGuH,EAAKvH,GAEVguT,IACOxuN,GAPuB,CAAEj4F,EAAKkC,EAAGlC,EAAK6H,IAS/CowF,EAAK5+B,MAAQ,SAASmB,GACpB,OAAK1rD,UAAUjX,QACfmI,EAAO,CACLkC,EAAGlC,EAAKkC,EACR2F,EAAG7H,EAAK6H,EACRpP,EAAG,MAEL4tT,GAAS7rP,GACTisP,IACOxuN,GARuBj4F,EAAKvH,GAUrCw/F,EAAK2tN,YAAc,SAASprP,GAC1B,OAAK1rD,UAAUjX,QACf+tT,EAAmB,MAALprP,EAAYqrP,GAA2B,EAAGrrP,EAAE,IAAKA,EAAE,IAC1Dy9B,GAFuB2tN,GAIhC3tN,EAAKzjE,OAAS,SAASgmC,GACrB,OAAK1rD,UAAUjX,QACf28B,EAASgmC,GAAK,EAAGA,EAAE,IAAKA,EAAE,IACnBy9B,GAFuBzjE,GAIhCyjE,EAAKvgF,KAAO,SAAS8iD,GACnB,OAAK1rD,UAAUjX,QACf6f,EAAO8iD,GAAK,EAAGA,EAAE,IAAKA,EAAE,IACjBy9B,GAFuBvgF,GAIhCugF,EAAK9zF,SAAW,SAASq2D,GACvB,OAAK1rD,UAAUjX,QACfsM,GAAYq2D,EACLy9B,GAFuB9zF,GAIhC8zF,EAAK/1F,EAAI,SAASS,GAChB,OAAKmM,UAAUjX,QACfqzB,EAAKvoB,EACLsoB,EAAKtoB,EAAE+5D,OACP18D,EAAO,CACLkC,EAAG,EACH2F,EAAG,EACHpP,EAAG,GAEEw/F,GARuB/sE,GAUhC+sE,EAAKpwF,EAAI,SAASlF,GAChB,OAAKmM,UAAUjX,QACf0zB,EAAK5oB,EACL2oB,EAAK3oB,EAAE+5D,OACP18D,EAAO,CACLkC,EAAG,EACH2F,EAAG,EACHpP,EAAG,GAEEw/F,GARuB1sE,GAoKzB3oB,EAAGumB,OAAO8uE,EAAMrvE,EAAO,OAEhC,IAAgD8+R,GAAuBzB,GAAnEJ,GAA2B,CAAE,EAAG5nT,KAEpC,SAAS+pT,MAKT,SAASC,GAAO7iQ,EAAG3vD,EAAG9B,GACpB,OAAOL,gBAAgB20T,IAAe30T,KAAK8xD,GAAKA,EAAG9xD,KAAKmC,GAAKA,OAAGnC,KAAKK,GAAKA,IAAKmb,UAAUjX,OAAS,EAAIutD,aAAa6iQ,GAAS,IAAIA,GAAO7iQ,EAAEA,EAAGA,EAAE3vD,EAAG2vD,EAAEzxD,GAAKu0T,GAAa,GAAK9iQ,EAAG+iQ,GAAYF,IAAU,IAAIA,GAAO7iQ,EAAG3vD,EAAG9B,GAPtNiP,EAAG7D,MAAQipT,GAEXA,GAAS1yT,UAAU+a,SAAW,WAC5B,OAAO/c,KAAKsI,MAAQ,IAEtBgH,EAAG1G,IAAM+rT,GAIT,IAAIG,GAAkBH,GAAO3yT,UAAY,IAAI0yT,GAY7C,SAASK,GAAWjjQ,EAAG3vD,EAAG9B,GACxB,IAAI4nJ,EAAI+sK,EAMR,SAAS9vT,EAAE4sD,GAET,OADIA,EAAI,IAAKA,GAAK,IAAcA,EAAI,IAAGA,GAAK,KACxCA,EAAI,GAAWm2F,GAAM+sK,EAAK/sK,GAAMn2F,EAAI,GACpCA,EAAI,IAAYkjQ,EAChBljQ,EAAI,IAAYm2F,GAAM+sK,EAAK/sK,IAAO,IAAMn2F,GAAK,GAC1Cm2F,EAET,SAASliJ,EAAG+rD,GACV,OAAO3rD,KAAK45B,MAAa,IAAP76B,EAAE4sD,IAEtB,OAfAA,EAAIjkD,MAAMikD,GAAK,GAAKA,GAAK,KAAO,EAAIA,EAAI,IAAMA,EAC9C3vD,EAAI0L,MAAM1L,GAAK,EAAIA,EAAI,EAAI,EAAIA,EAAI,EAAI,EAAIA,EAC3C9B,EAAIA,EAAI,EAAI,EAAIA,EAAI,EAAI,EAAIA,EAC5B20T,EAAK30T,GAAK,GAAKA,GAAK,EAAI8B,GAAK9B,EAAI8B,EAAI9B,EAAI8B,EACzC8lJ,EAAK,EAAI5nJ,EAAI20T,EAWN,IAAIC,GAAOlvT,EAAG+rD,EAAI,KAAM/rD,EAAG+rD,GAAI/rD,EAAG+rD,EAAI,MAG/C,SAASojQ,GAAOpjQ,EAAGrxD,EAAGJ,GACpB,OAAOL,gBAAgBk1T,IAAel1T,KAAK8xD,GAAKA,EAAG9xD,KAAKS,GAAKA,OAAGT,KAAKK,GAAKA,IAAKmb,UAAUjX,OAAS,EAAIutD,aAAaojQ,GAAS,IAAIA,GAAOpjQ,EAAEA,EAAGA,EAAErxD,EAAGqxD,EAAEzxD,GAA2B80T,GAAtBrjQ,aAAasjQ,GAAoBtjQ,EAAEzxD,GAA2ByxD,EAAIujQ,IAAYvjQ,EAAIxiD,EAAGhH,IAAIwpD,IAAI5wD,EAAG4wD,EAAE7nC,EAAG6nC,EAAE5uD,IAAI7C,EAArEyxD,EAAE7uD,EAAG6uD,EAAE5uD,GAA6E,IAAIgyT,GAAOpjQ,EAAGrxD,EAAGJ,GAhCrSy0T,GAAgBQ,SAAW,SAASnwT,GAElC,OADAA,EAAIgB,KAAK85B,IAAI,GAAIzkB,UAAUjX,OAASY,EAAI,GACjC,IAAIwvT,GAAO30T,KAAK8xD,EAAG9xD,KAAKmC,EAAGnC,KAAKK,EAAI8E,IAE7C2vT,GAAgB9iH,OAAS,SAAS7sM,GAEhC,OADAA,EAAIgB,KAAK85B,IAAI,GAAIzkB,UAAUjX,OAASY,EAAI,GACjC,IAAIwvT,GAAO30T,KAAK8xD,EAAG9xD,KAAKmC,EAAGgD,EAAInF,KAAKK,IAE7Cy0T,GAAgBxsT,IAAM,WACpB,OAAOysT,GAAW/0T,KAAK8xD,EAAG9xD,KAAKmC,EAAGnC,KAAKK,IAqBzCiP,EAAGimT,IAAML,GAIT,IAAIM,GAAkBN,GAAOlzT,UAAY,IAAI0yT,GAU7C,SAASe,GAAW3jQ,EAAGrxD,EAAGJ,GAGxB,OAFIwN,MAAMikD,KAAIA,EAAI,GACdjkD,MAAMpN,KAAIA,EAAI,GACX,IAAI20T,GAAO/0T,EAAG8F,KAAKmrD,IAAIQ,GAAKi/P,IAActwT,EAAG0F,KAAKorD,IAAIO,GAAKrxD,GAGpE,SAAS20T,GAAO/0T,EAAG4C,EAAGC,GACpB,OAAOlD,gBAAgBo1T,IAAep1T,KAAKK,GAAKA,EAAGL,KAAKiD,GAAKA,OAAGjD,KAAKkD,GAAKA,IAAKsY,UAAUjX,OAAS,EAAIlE,aAAa+0T,GAAS,IAAIA,GAAO/0T,EAAEA,EAAGA,EAAE4C,EAAG5C,EAAE6C,GAAK7C,aAAa60T,GAASO,GAAWp1T,EAAEyxD,EAAGzxD,EAAEI,EAAGJ,EAAEA,GAAKg1T,IAAYh1T,EAAI40T,GAAO50T,IAAIa,EAAGb,EAAE4pB,EAAG5pB,EAAE6C,GAAK,IAAIkyT,GAAO/0T,EAAG4C,EAAGC,GAhBvQsyT,GAAgBF,SAAW,SAASnwT,GAClC,OAAO,IAAI+vT,GAAOl1T,KAAK8xD,EAAG9xD,KAAKS,EAAG0F,KAAKoC,IAAI,IAAKvI,KAAKK,EAAIq1T,IAAYl6S,UAAUjX,OAASY,EAAI,MAE9FqwT,GAAgBxjH,OAAS,SAAS7sM,GAChC,OAAO,IAAI+vT,GAAOl1T,KAAK8xD,EAAG9xD,KAAKS,EAAG0F,KAAKqC,IAAI,EAAGxI,KAAKK,EAAIq1T,IAAYl6S,UAAUjX,OAASY,EAAI,MAE5FqwT,GAAgBltT,IAAM,WACpB,OAAOmtT,GAAWz1T,KAAK8xD,EAAG9xD,KAAKS,EAAGT,KAAKK,GAAGiI,OAO5CgH,EAAGqmT,IAAMP,GAIT,IAAIM,GAAW,GACXE,GAAW,OAAQC,GAAW,EAAGC,GAAW,QAC5CC,GAAkBX,GAAOpzT,UAAY,IAAI0yT,GAU7C,SAASsB,GAAW31T,EAAG4C,EAAGC,GACxB,IAAIqR,GAAKlU,EAAI,IAAM,IAAKuO,EAAI2F,EAAItR,EAAI,IAAKoM,EAAIkF,EAAIrR,EAAI,IAIrD,OAHA0L,EAAIqnT,GAAWrnT,GAAKgnT,GACpBrhT,EAAI0hT,GAAW1hT,GAAKshT,GACpBxmT,EAAI4mT,GAAW5mT,GAAKymT,GACb,IAAIb,GAAOiB,GAAW,UAAYtnT,EAAI,UAAY2F,EAAI,SAAWlF,GAAI6mT,IAAY,QAAUtnT,EAAI,UAAY2F,EAAI,QAAUlF,GAAI6mT,GAAW,SAAWtnT,EAAI,SAAW2F,EAAI,UAAYlF,IAE3L,SAAS8lT,GAAW90T,EAAG4C,EAAGC,GACxB,OAAO7C,EAAI,EAAI,IAAI60T,GAAO/uT,KAAKk0M,MAAMn3M,EAAGD,GAAK+tT,GAAY7qT,KAAKuD,KAAKzG,EAAIA,EAAIC,EAAIA,GAAI7C,GAAK,IAAI60T,GAAOt0P,IAAKA,IAAKvgE,GAE/G,SAAS41T,GAAWrnT,GAClB,OAAOA,EAAI,WAAaA,EAAIA,EAAIA,GAAKA,EAAI,EAAI,IAAM,SAErD,SAASunT,GAAWvnT,GAClB,OAAOA,EAAI,QAAUzI,KAAK85B,IAAIrxB,EAAG,EAAI,GAAK,SAAWA,EAAI,EAAI,GAE/D,SAASsnT,GAAWh1T,GAClB,OAAOiF,KAAK45B,MAAM,KAAO7+B,GAAK,OAAS,MAAQA,EAAI,MAAQiF,KAAK85B,IAAI/+B,EAAG,EAAI,KAAO,OAGpF,SAAS+zT,GAAO/zT,EAAG+oB,EAAG/mB,GACpB,OAAOlD,gBAAgBi1T,IAAej1T,KAAKkB,IAAMA,EAAGlB,KAAKiqB,IAAMA,OAAGjqB,KAAKkD,IAAMA,IAAKsY,UAAUjX,OAAS,EAAIrD,aAAa+zT,GAAS,IAAIA,GAAO/zT,EAAEA,EAAGA,EAAE+oB,EAAG/oB,EAAEgC,GAAK0xT,GAAa,GAAK1zT,EAAG+zT,GAAQF,IAAc,IAAIE,GAAO/zT,EAAG+oB,EAAG/mB,GAEzN,SAASkzT,GAAa/0T,GACpB,OAAO,IAAI4zT,GAAO5zT,GAAS,GAAIA,GAAS,EAAI,IAAa,IAARA,GAEnD,SAASg1T,GAAah1T,GACpB,OAAO+0T,GAAa/0T,GAAS,GApC/B00T,GAAgBT,SAAW,SAASnwT,GAClC,OAAO,IAAIiwT,GAAOjvT,KAAKoC,IAAI,IAAKvI,KAAKK,EAAIq1T,IAAYl6S,UAAUjX,OAASY,EAAI,IAAKnF,KAAKiD,EAAGjD,KAAKkD,IAEhG6yT,GAAgB/jH,OAAS,SAAS7sM,GAChC,OAAO,IAAIiwT,GAAOjvT,KAAKqC,IAAI,EAAGxI,KAAKK,EAAIq1T,IAAYl6S,UAAUjX,OAASY,EAAI,IAAKnF,KAAKiD,EAAGjD,KAAKkD,IAE9F6yT,GAAgBztT,IAAM,WACpB,OAAO0tT,GAAWh2T,KAAKK,EAAGL,KAAKiD,EAAGjD,KAAKkD,IAqBzCoM,EAAGhH,IAAM2sT,GAUT,IAAIqB,GAAkBrB,GAAOjzT,UAAY,IAAI0yT,GAoB7C,SAAS6B,GAAWrxT,GAClB,OAAOA,EAAI,GAAK,IAAMiB,KAAKqC,IAAI,EAAGtD,GAAG6X,SAAS,IAAM5W,KAAKoC,IAAI,IAAKrD,GAAG6X,SAAS,IAEhF,SAAS63S,GAAa9vN,EAAQx8F,EAAKM,GACjC,IAAyBq/I,EAAI+sK,EAAIvpT,EAA7BvK,EAAI,EAAG+oB,EAAI,EAAG/mB,EAAI,EAEtB,GADA+kJ,EAAK,mBAAmB37C,KAAKxH,EAASA,EAAOjqF,eACzCotI,EAEF,OADA+sK,EAAK/sK,EAAG,GAAGr3I,MAAM,KACTq3I,EAAG,IACV,IAAK,MAEF,OAAOr/I,EAAI8rB,WAAWsgS,EAAG,IAAKtgS,WAAWsgS,EAAG,IAAM,IAAKtgS,WAAWsgS,EAAG,IAAM,KAG9E,IAAK,MAEF,OAAO1sT,EAAIkuT,GAAmBxB,EAAG,IAAKwB,GAAmBxB,EAAG,IAAKwB,GAAmBxB,EAAG,KAI7F,OAAIvpT,EAAQgrT,GAAax1T,IAAI6jG,IACpBx8F,EAAImD,EAAMvK,EAAGuK,EAAMwe,EAAGxe,EAAMvI,IAEvB,MAAV4hG,GAAuC,MAArBA,EAAOr1E,OAAO,IAAe5hB,MAAMpC,EAAQwd,SAAS67E,EAAOpgG,MAAM,GAAI,OACnE,IAAlBogG,EAAOvgG,QACTrD,GAAa,KAARuK,IAAiB,EACtBvK,GAAIA,GAAK,EACT+oB,EAAY,IAARxe,EACJwe,GAAIA,GAAK,EACT/mB,EAAY,GAARuI,EACJvI,GAAIA,GAAK,GACkB,IAAlB4hG,EAAOvgG,SAChBrD,GAAa,SAARuK,IAAqB,GAC1Bwe,GAAa,MAARxe,IAAkB,EACvBvI,EAAY,IAARuI,IAGDnD,EAAIpH,EAAG+oB,EAAG/mB,IAEnB,SAAS2xT,GAAW3zT,EAAG+oB,EAAG/mB,GACxB,IAA0F4uD,EAAG3vD,EAAzFoG,EAAMpC,KAAKoC,IAAIrH,GAAK,IAAK+oB,GAAK,IAAK/mB,GAAK,KAAMsF,EAAMrC,KAAKqC,IAAItH,EAAG+oB,EAAG/mB,GAAIxC,EAAI8H,EAAMD,EAAWlI,GAAKmI,EAAMD,GAAO,EASlH,OARI7H,GACFyB,EAAI9B,EAAI,GAAKK,GAAK8H,EAAMD,GAAO7H,GAAK,EAAI8H,EAAMD,GAChCupD,EAAV5wD,GAAKsH,GAAUyhB,EAAI/mB,GAAKxC,GAAKupB,EAAI/mB,EAAI,EAAI,GAAa+mB,GAAKzhB,GAAUtF,EAAIhC,GAAKR,EAAI,GAAaQ,EAAI+oB,GAAKvpB,EAAI,EAChHoxD,GAAK,KAELA,EAAI8O,IACJz+D,EAAI9B,EAAI,GAAKA,EAAI,EAAI,EAAIyxD,GAEpB,IAAI6iQ,GAAO7iQ,EAAG3vD,EAAG9B,GAE1B,SAASg1T,GAAWn0T,EAAG+oB,EAAG/mB,GACxBhC,EAAIw1T,GAAWx1T,GACf+oB,EAAIysS,GAAWzsS,GACf/mB,EAAIwzT,GAAWxzT,GACf,IAAI0L,EAAIunT,IAAY,SAAWj1T,EAAI,SAAW+oB,EAAI,SAAW/mB,GAAK0yT,IAAWrhT,EAAI4hT,IAAY,SAAWj1T,EAAI,SAAW+oB,EAAI,QAAU/mB,GAAK2yT,IAAWxmT,EAAI8mT,IAAY,SAAWj1T,EAAI,QAAU+oB,EAAI,SAAW/mB,GAAK4yT,IAClN,OAAOV,GAAO,IAAM7gT,EAAI,GAAI,KAAO3F,EAAI2F,GAAI,KAAOA,EAAIlF,IAExD,SAASqnT,GAAWx1T,GAClB,OAAQA,GAAK,MAAQ,OAASA,EAAI,MAAQiF,KAAK85B,KAAK/+B,EAAI,MAAQ,MAAO,KAEzE,SAASs1T,GAAmB/1T,GAC1B,IAAIqoC,EAAIpU,WAAWj0B,GACnB,MAAkC,MAA3BA,EAAEgvB,OAAOhvB,EAAE8D,OAAS,GAAa4B,KAAK45B,MAAU,KAAJ+I,GAAYA,EAlFjEwtR,GAAgBhB,SAAW,SAASnwT,GAClCA,EAAIgB,KAAK85B,IAAI,GAAIzkB,UAAUjX,OAASY,EAAI,GACxC,IAAIjE,EAAIlB,KAAKkB,EAAG+oB,EAAIjqB,KAAKiqB,EAAG/mB,EAAIlD,KAAKkD,EAAG9C,EAAI,GAC5C,OAAKc,GAAM+oB,GAAM/mB,GACbhC,GAAKA,EAAId,IAAGc,EAAId,GAChB6pB,GAAKA,EAAI7pB,IAAG6pB,EAAI7pB,GAChB8C,GAAKA,EAAI9C,IAAG8C,EAAI9C,GACb,IAAI60T,GAAO9uT,KAAKoC,IAAI,IAAKrH,EAAIiE,GAAIgB,KAAKoC,IAAI,IAAK0hB,EAAI9kB,GAAIgB,KAAKoC,IAAI,IAAKrF,EAAIiC,KAJrD,IAAI8vT,GAAO70T,EAAGA,EAAGA,IAM9Ck2T,GAAgBtkH,OAAS,SAAS7sM,GAEhC,OADAA,EAAIgB,KAAK85B,IAAI,GAAIzkB,UAAUjX,OAASY,EAAI,GACjC,IAAI8vT,GAAO9vT,EAAInF,KAAKkB,EAAGiE,EAAInF,KAAKiqB,EAAG9kB,EAAInF,KAAKkD,IAErDozT,GAAgB1tT,IAAM,WACpB,OAAOisT,GAAW70T,KAAKkB,EAAGlB,KAAKiqB,EAAGjqB,KAAKkD,IAEzCozT,GAAgBv5S,SAAW,WACzB,MAAO,IAAMw5S,GAAWv2T,KAAKkB,GAAKq1T,GAAWv2T,KAAKiqB,GAAKssS,GAAWv2T,KAAKkD,IAmEzE,IAAIuzT,GAAennT,EAAG0sC,IAAI,CACxBmhP,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,QACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,EACPC,eAAgB,SAChB7oG,KAAM,IACN8oG,WAAY,QACZC,MAAO,SACPC,UAAW,SACXE,UAAW,QACXC,WAAY,QACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,QAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,IACVC,SAAU,MACVC,cAAe,SACfC,SAAU,SACVC,UAAW,MACXC,SAAU,SACVC,UAAW,SACXC,YAAa,QACbC,eAAgB,QAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,QACTC,WAAY,SACZC,aAAc,QACdC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,cAAe,MACfC,WAAY,QACZC,SAAU,SACVC,YAAa,MACbC,QAAS,QACTC,QAAS,QACTC,WAAY,QACZC,UAAW,SACXC,YAAa,SACbC,YAAa,QACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,QACNC,MAAO,MACPC,YAAa,SACbC,KAAM,QACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,QACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,QACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,QACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,QACfC,aAAc,QACdC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,QACXC,MAAO,SACPC,QAAS,SACTC,OAAQ,QACRC,iBAAkB,QAClBC,WAAY,IACZC,aAAc,SACdC,aAAc,QACdC,eAAgB,QAChBC,gBAAiB,QACjBC,kBAAmB,MACnBC,gBAAiB,QACjBC,gBAAiB,SACjBC,aAAc,QACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,IACNC,QAAS,SACTC,MAAO,QACPC,UAAW,QACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,QACRC,cAAe,QACf/vG,IAAK,SACLgwG,UAAW,SACXC,UAAW,QACXC,YAAa,QACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,QACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,QACTC,UAAW,QACXC,UAAW,QACXC,UAAW,QACXC,KAAM,SACNC,YAAa,MACbC,UAAW,QACXxxN,IAAK,SACLyxN,KAAM,MACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,QACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,WAAY,SACZC,OAAQ,SACRC,YAAa,WAKf,SAASuwB,GAAWzxT,GAClB,MAAoB,oBAANA,EAAmBA,EAAI,WACnC,OAAOA,GAKX,SAAS0xT,GAAWC,GAClB,OAAO,SAAS/xP,EAAKgyP,EAAUhuP,GAG7B,OAFyB,IAArBttD,UAAUjX,QAAoC,oBAAbuyT,IAAyBhuP,EAAWguP,EACzEA,EAAW,MACJC,GAAOjyP,EAAKgyP,EAAUD,EAAU/tP,IAG3C,SAASiuP,GAAOjyP,EAAKgyP,EAAUD,EAAU/tP,GACvC,IAAIkuP,EAAM,GAAIzjS,EAAWjkB,EAAGikB,SAAS,aAAc,WAAY,OAAQ,SAAU0jS,EAAU,GAAIC,EAAU,IAAIC,eAAkBC,EAAe,KAK9I,SAASC,IACP,IAA6BxtT,EAAzBq7D,EAASgyP,EAAQhyP,OACrB,IAAKA,GAAUoyP,GAAkBJ,IAAYhyP,GAAU,KAAOA,EAAS,KAAkB,MAAXA,EAAgB,CAC5F,IACEr7D,EAASgtT,EAASt2T,KAAKy2T,EAAKE,GAC5B,MAAOl5S,IAEP,YADAuV,EAASlV,MAAM9d,KAAKy2T,EAAKh5S,IAG3BuV,EAASgkS,KAAKh3T,KAAKy2T,EAAKntT,QAExB0pB,EAASlV,MAAM9d,KAAKy2T,EAAKE,GAwD7B,OAvEIl3T,KAAKw3T,gBAAoB,oBAAqBN,IAAY,oBAAoBzzT,KAAKqhE,KAAMoyP,EAAU,IAAIM,gBAC3G,WAAYN,EAAUA,EAAQ/tE,OAAS+tE,EAAQ3tE,QAAU8tE,EAAUH,EAAQO,mBAAqB,WAC9FP,EAAQQ,WAAa,GAAKL,KAgB5BH,EAAQS,WAAa,SAASriS,GAC5B,IAAIz0B,EAAIyO,EAAGgmB,MACXhmB,EAAGgmB,MAAQA,EACX,IACE/B,EAASuI,SAASv7B,KAAKy2T,EAAKE,GAC5B,QACA5nT,EAAGgmB,MAAQz0B,IAGfm2T,EAAI56C,OAAS,SAASz7Q,EAAMU,GAE1B,OADAV,GAAQA,EAAO,IAAIka,cACfW,UAAUjX,OAAS,EAAU0yT,EAAQt2T,IAC5B,MAATU,SAAsB41T,EAAQt2T,GAAYs2T,EAAQt2T,GAAQU,EAAQ,GAC/D21T,IAETA,EAAIF,SAAW,SAASz1T,GACtB,OAAKma,UAAUjX,QACfuyT,EAAoB,MAATz1T,EAAgB,KAAOA,EAAQ,GACnC21T,GAFuBF,GAIhCE,EAAII,aAAe,SAAS/1T,GAC1B,OAAKma,UAAUjX,QACf6yT,EAAe/1T,EACR21T,GAFuBI,GAIhCJ,EAAIH,SAAW,SAASx1T,GAEtB,OADAw1T,EAAWx1T,EACJ21T,GAET,CAAE,MAAO,QAASx/P,SAAQ,SAASljB,GACjC0iR,EAAI1iR,GAAU,WACZ,OAAO0iR,EAAIY,KAAKjzT,MAAMqyT,EAAK,CAAE1iR,GAASnsC,OAAO08S,EAASrpS,iBAG1Dw7S,EAAIY,KAAO,SAAStjR,EAAQ3oC,EAAMm9D,GAIhC,GAHyB,IAArBttD,UAAUjX,QAAgC,oBAAToH,IAAqBm9D,EAAWn9D,EAAMA,EAAO,MAClFurT,EAAQ1jG,KAAKl/K,EAAQwwB,GAAK,GACV,MAAZgyP,GAAsB,WAAYG,IAAUA,EAAQ,UAAYH,EAAW,QAC3EI,EAAQW,iBAAkB,IAAK,IAAIl3T,KAAQs2T,EAASC,EAAQW,iBAAiBl3T,EAAMs2T,EAAQt2T,IAQ/F,OAPgB,MAAZm2T,GAAoBI,EAAQY,kBAAkBZ,EAAQY,iBAAiBhB,GACvD,MAAhBM,IAAsBF,EAAQE,aAAeA,GACjC,MAAZtuP,GAAkBkuP,EAAIxmT,GAAG,QAASs4D,GAAUt4D,GAAG,QAAQ,SAAS0mT,GAClEpuP,EAAS,KAAMouP,MAEjB3jS,EAASwkS,WAAWx3T,KAAKy2T,EAAKE,GAC9BA,EAAQU,KAAa,MAARjsT,EAAe,KAAOA,GAC5BqrT,GAETA,EAAIgB,MAAQ,WAEV,OADAd,EAAQc,QACDhB,GAET1nT,EAAGumB,OAAOmhS,EAAKzjS,EAAU,MACN,MAAZu1C,EAAmBkuP,EAAMA,EAAI/1T,IAAIg3T,GAAmBnvP,IAE7D,SAASmvP,GAAmBnvP,GAC1B,OAA2B,IAApBA,EAASvkE,OAAe,SAAS8Z,EAAO64S,GAC7CpuP,EAAkB,MAATzqD,EAAgB64S,EAAU,OACjCpuP,EAEN,SAASwuP,GAAkBJ,GACzB,IAAIxjT,EAAOwjT,EAAQE,aACnB,OAAO1jT,GAAiB,SAATA,EAAkBwjT,EAAQL,SAAWK,EAAQgB,aAnG9DzB,GAAaj/P,SAAQ,SAAS71D,EAAKN,GACjCo1T,GAAapoT,IAAI1M,EAAKy0T,GAAa/0T,OAOrCiO,EAAG6oT,QAAUxB,GACbrnT,EAAG0nT,IAAMJ,GAAWjP,GA4FpBr4S,EAAG8oT,IAAM,SAASC,EAAWvB,GAC3B,IAAIwB,EAAW,IAAI3vR,OAAO,KAAO0vR,EAAY,OAAQE,EAAgBF,EAAU7xP,WAAW,GAC1F,SAAS4xP,EAAItzP,EAAK0Y,EAAK1U,GACjBttD,UAAUjX,OAAS,IAAGukE,EAAW0U,EAAKA,EAAM,MAChD,IAAIw5O,EAAMD,GAAOjyP,EAAKgyP,EAAiB,MAAPt5O,EAAcq5O,EAAW2B,EAAch7O,GAAM1U,GAI7E,OAHAkuP,EAAIx5O,IAAM,SAAStW,GACjB,OAAO1rD,UAAUjX,OAASyyT,EAAIH,SAAsB,OAAZr5O,EAAMtW,GAAa2vP,EAAW2B,EAActxP,IAAMsW,GAErFw5O,EAET,SAASH,EAASK,GAChB,OAAOkB,EAAI3+G,MAAMy9G,EAAQgB,cAE3B,SAASM,EAAc1vR,GACrB,OAAO,SAASouR,GACd,OAAOkB,EAAI3+G,MAAMy9G,EAAQgB,aAAcpvR,IA+E3C,SAAS2vR,EAAUj7O,GACjB,OAAOA,EAAIxhC,IAAImpI,GAAa3hL,KAAK60T,GAEnC,SAASlzI,EAAY11K,GACnB,OAAO6oT,EAAS70T,KAAKgM,GAAQ,IAAMA,EAAKoJ,QAAQ,MAAO,MAAQ,IAAMpJ,EAEvE,OAlFA2oT,EAAI3+G,MAAQ,SAAShqM,EAAMq5B,GACzB,IAAIjoC,EACJ,OAAOu3T,EAAIM,UAAUjpT,GAAM,SAAS+tE,EAAKp9E,GACvC,GAAIS,EAAG,OAAOA,EAAE28E,EAAKp9E,EAAI,GACzB,IAAI6C,EAAI,IAAIM,SAAS,IAAK,WAAai6E,EAAIxhC,KAAI,SAASr7C,EAAMP,GAC5D,OAAO2jL,KAAKC,UAAUrjL,GAAQ,OAASP,EAAI,OAC1CoD,KAAK,KAAO,KACf3C,EAAIioC,EAAI,SAAS00C,EAAKp9E,GACpB,OAAO0oC,EAAE7lC,EAAEu6E,GAAMp9E,IACf6C,MAGRm1T,EAAIM,UAAY,SAASjpT,EAAMq5B,GAC7B,IAAkExnC,EAAGq3T,EAAjEC,EAAM,GAAIC,EAAM,GAAI39J,EAAO,GAAIjiG,EAAIxpD,EAAKlL,OAAQu0T,EAAI,EAAGj3T,EAAI,EAC/D,SAASgqI,IACP,GAAIitL,GAAK7/P,EAAG,OAAO4/P,EACnB,GAAIF,EAAK,OAAOA,GAAM,EAAOC,EAC7B,IAAI5zT,EAAI8zT,EACR,GAA2B,KAAvBrpT,EAAK+2D,WAAWxhE,GAAW,CAC7B,IAAI5E,EAAI4E,EACR,MAAO5E,IAAM64D,EACX,GAA2B,KAAvBxpD,EAAK+2D,WAAWpmE,GAAW,CAC7B,GAA+B,KAA3BqP,EAAK+2D,WAAWpmE,EAAI,GAAW,QACjCA,EAGN04T,EAAI14T,EAAI,EACR,IAAIK,EAAIgP,EAAK+2D,WAAWpmE,EAAI,GAO5B,OANU,KAANK,GACFk4T,GAAM,EACyB,KAA3BlpT,EAAK+2D,WAAWpmE,EAAI,MAAa04T,GACtB,KAANr4T,IACTk4T,GAAM,GAEDlpT,EAAK/K,MAAMM,EAAI,EAAG5E,GAAGyY,QAAQ,MAAO,KAE7C,MAAOigT,EAAI7/P,EAAG,CACRx4D,EAAIgP,EAAK+2D,WAAWsyP,KAAxB,IAA8B3zT,EAAI,EAClC,GAAU,KAAN1E,EAAUk4T,GAAM,OAAW,GAAU,KAANl4T,EACjCk4T,GAAM,EACqB,KAAvBlpT,EAAK+2D,WAAWsyP,OAAaA,IAAK3zT,QACjC,GAAI1E,IAAM83T,EAAe,SAChC,OAAO9oT,EAAK/K,MAAMM,EAAG8zT,EAAI3zT,GAE3B,OAAOsK,EAAK/K,MAAMM,GAEpB,OAAQ1D,EAAIuqI,OAAagtL,EAAK,CAC5B,IAAI51T,EAAI,GACR,MAAO3B,IAAMs3T,GAAOt3T,IAAMu3T,EACxB51T,EAAEI,KAAK/B,GACPA,EAAIuqI,IAEF/iG,GAAwB,OAAlB7lC,EAAI6lC,EAAE7lC,EAAGpB,OACnBq5J,EAAK73J,KAAKJ,GAEZ,OAAOi4J,GAETk9J,EAAItzN,OAAS,SAASo2D,GACpB,GAAI/2J,MAAM4J,QAAQmtJ,EAAK,IAAK,OAAOk9J,EAAIW,WAAW79J,GAClD,IAAI89J,EAAW,IAAItR,EAAUuR,EAAS,GAQtC,OAPA/9J,EAAK1jG,SAAQ,SAASgmB,GACpB,IAAK,IAAI07O,KAAS17O,EACXw7O,EAAS1gQ,IAAI4gQ,IAChBD,EAAO51T,KAAK21T,EAAS38S,IAAI68S,OAIxB,CAAED,EAAOj9Q,IAAImpI,GAAa3hL,KAAK60T,IAAalwT,OAAO+yJ,EAAKl/G,KAAI,SAASwhC,GAC1E,OAAOy7O,EAAOj9Q,KAAI,SAASk9Q,GACzB,OAAO/zI,EAAY3nG,EAAI07O,OACtB11T,KAAK60T,OACN70T,KAAK,OAEX40T,EAAIW,WAAa,SAAS79J,GACxB,OAAOA,EAAKl/G,IAAIy8Q,GAAWj1T,KAAK,OAQ3B40T,GAET9oT,EAAG6pT,IAAM7pT,EAAG8oT,IAAI,IAAK,YACrB9oT,EAAG8pT,IAAM9pT,EAAG8oT,IAAI,KAAK,6BACrB,IAAIiB,GAAoBC,GAAoBC,GAAmBC,GAAkBC,GAAiBz5T,KAAK6nT,EAAgB7nT,KAAM,2BAA6B,SAAS8oE,GACjKqD,WAAWrD,EAAU,KAKvB,SAAS4wP,GAAS5wP,EAAUh4D,EAAOmtB,GACjC,IAAIp8B,EAAI2Z,UAAUjX,OACd1C,EAAI,IAAGiP,EAAQ,GACfjP,EAAI,IAAGo8B,EAAO/gB,KAAK8d,OACvB,IAAIyxC,EAAOxuC,EAAOntB,EAAO07D,EAAQ,CAC/B/rE,EAAGqoE,EACHxnE,EAAGmrE,EACH5qE,EAAG,MASL,OAPIy3T,GAAoBA,GAAmBz3T,EAAI2qE,EAAY6sP,GAAqB7sP,EAChF8sP,GAAqB9sP,EAChB+sP,KACHC,GAAmBxsP,aAAawsP,IAChCD,GAAoB,EACpBE,GAAeE,KAEVntP,EAET,SAASmtP,KACP,IAAI3+R,EAAM4+R,KAAiB9oT,EAAQ+oT,KAAmB7+R,EAClDlqB,EAAQ,IACNhD,SAASgD,KACXk8D,aAAawsP,IACbA,GAAmBrtP,WAAWwtP,GAAe7oT,IAE/CyoT,GAAoB,IAEpBA,GAAoB,EACpBE,GAAeE,KAOnB,SAASC,KACP,IAAI5+R,EAAM9d,KAAK8d,MAAOwxC,EAAQ6sP,GAC9B,MAAO7sP,EACDxxC,GAAOwxC,EAAMlrE,GAAKkrE,EAAM/rE,EAAEu6B,EAAMwxC,EAAMlrE,KAAIkrE,EAAM/rE,EAAI,MACxD+rE,EAAQA,EAAM3qE,EAEhB,OAAOm5B,EAET,SAAS6+R,KACP,IAAI7rT,EAAIssB,EAAK++R,GAAoB5sP,EAAO9hE,IACxC,MAAO2vB,EACDA,EAAG75B,GACD65B,EAAGh5B,EAAImrE,IAAMA,EAAOnyC,EAAGh5B,GAC3Bg5B,GAAMtsB,EAAKssB,GAAIz4B,GAEfy4B,EAAKtsB,EAAKA,EAAGnM,EAAIy4B,EAAGz4B,EAAIw3T,GAAqB/+R,EAAGz4B,EAIpD,OADAy3T,GAAqBtrT,EACdy+D,EAET,SAASqtP,GAAoBlrT,EAAG1M,GAC9B,OAAOA,GAAK0M,EAAIzI,KAAK+5B,KAAK/5B,KAAKomB,IAAI3d,GAAKzI,KAAKmzC,MAAQ,GA5DvDhqC,EAAGk9D,MAAQ,WACTktP,GAAS/0T,MAAM3E,KAAMwb,YAiCvBlM,EAAGk9D,MAAM6rB,MAAQ,WACfuhO,KACAC,MA0BFvqT,EAAGywB,MAAQ,SAASnxB,EAAG/M,GACrB,OAAOA,EAAIsE,KAAK45B,MAAMnxB,GAAK/M,EAAIsE,KAAK85B,IAAI,GAAIp+B,KAAOA,EAAIsE,KAAK45B,MAAMnxB,IAEpE,IAAImrT,GAAoB,CAAE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM/9Q,IAAIg+Q,IAWnH,SAASA,GAAgBt5T,EAAGN,GAC1B,IAAI+E,EAAIgB,KAAK85B,IAAI,GAAiB,EAAb/nB,EAAI,EAAI9X,IAC7B,MAAO,CACL2lE,MAAO3lE,EAAI,EAAI,SAASM,GACtB,OAAOA,EAAIyE,GACT,SAASzE,GACX,OAAOA,EAAIyE,GAEbonF,OAAQ7rF,GAGZ,SAASu5T,GAAuB3tM,GAC9B,IAAI4tM,EAAiB5tM,EAAO4c,QAASixL,EAAmB7tM,EAAO6c,UAAWixL,EAAkB9tM,EAAO8c,SAAUixL,EAAkB/tM,EAAO+c,SAAUixL,EAAcF,GAAmBD,EAAmB,SAAS94T,EAAOsgB,GAClN,IAAIvhB,EAAIiB,EAAMkD,OAAQjD,EAAI,GAAI0D,EAAI,EAAGilB,EAAImwS,EAAgB,GAAI71T,EAAS,EACtE,MAAOnE,EAAI,GAAK6pB,EAAI,EAAG,CAGrB,GAFI1lB,EAAS0lB,EAAI,EAAItI,IAAOsI,EAAI9jB,KAAKqC,IAAI,EAAGmZ,EAAQpd,IACpDjD,EAAE+B,KAAKhC,EAAMkZ,UAAUna,GAAK6pB,EAAG7pB,EAAI6pB,KAC9B1lB,GAAU0lB,EAAI,GAAKtI,EAAO,MAC/BsI,EAAImwS,EAAgBp1T,GAAKA,EAAI,GAAKo1T,EAAgB71T,QAEpD,OAAOjD,EAAEyuD,UAAUvsD,KAAK22T,IACtBxS,EACJ,OAAO,SAAS4S,GACd,IAAI9xS,EAAQ+xS,GAAaluN,KAAKiuN,GAAYtoT,EAAOwW,EAAM,IAAM,IAAK0iF,EAAQ1iF,EAAM,IAAM,IAAKk9C,EAAOl9C,EAAM,IAAM,IAAK8jE,EAAS9jE,EAAM,IAAM,GAAIgyS,EAAQhyS,EAAM,GAAI9G,GAAS8G,EAAM,GAAIiyS,EAAQjyS,EAAM,GAAIu2B,EAAYv2B,EAAM,GAAI/U,EAAO+U,EAAM,GAAIs9C,EAAQ,EAAGzH,EAAS,GAAI51D,EAAS,GAAIu7I,GAAU,EAAOxiG,GAAW,EAM3S,OALIzC,IAAWA,GAAaA,EAAUzkC,UAAU,KAC5CkgT,GAAkB,MAATxoT,GAA0B,MAAVk5F,KAC3BsvN,EAAQxoT,EAAO,IACfk5F,EAAQ,KAEFz3F,GACP,IAAK,IACJgnT,GAAQ,EACRhnT,EAAO,IACP,MAED,IAAK,IACJqyD,EAAQ,IACRr9D,EAAS,IACTgL,EAAO,IACP,MAED,IAAK,IACJqyD,EAAQ,IACRr9D,EAAS,IACTgL,EAAO,IACP,MAED,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACW,MAAX64E,IAAgBjuB,EAAS,IAAM5qD,EAAKmH,eAEzC,IAAK,IACJ4mC,GAAW,EAEZ,IAAK,IACJwiG,GAAU,EACVjlG,EAAY,EACZ,MAED,IAAK,IACJ+mB,GAAS,EACTryD,EAAO,IACP,MAEa,MAAX64E,IAAgBjuB,EAAS+7P,EAAgB,GAAI3xT,EAAS2xT,EAAgB,IAC9D,KAAR3mT,GAAgBsrC,IAAWtrC,EAAO,KACrB,MAAbsrC,IACU,KAARtrC,EAAasrC,EAAY74C,KAAKqC,IAAI,EAAGrC,KAAKoC,IAAI,GAAIy2C,IAA8B,KAARtrC,GAAuB,KAARA,IAAasrC,EAAY74C,KAAKqC,IAAI,EAAGrC,KAAKoC,IAAI,GAAIy2C,MAE/ItrC,EAAOinT,GAAgB15T,IAAIyS,IAASknT,GACpC,IAAIC,EAASJ,GAASC,EACtB,OAAO,SAASr5T,GACd,IAAIy5T,EAAapyT,EACjB,GAAIu7I,GAAW5iJ,EAAQ,EAAG,MAAO,GACjC,IAAI+2G,EAAW/2G,EAAQ,GAAe,IAAVA,GAAe,EAAIA,EAAQ,GAAKA,GAASA,EAAO,KAAgB,MAATskE,EAAe,GAAKA,EACvG,GAAII,EAAQ,EAAG,CACb,IAAIq5D,EAAO9vH,EAAGyrT,aAAa15T,EAAO29C,GAClC39C,EAAQ+9H,EAAKr5D,MAAM1kE,GACnBy5T,EAAa17L,EAAK7yC,OAAS7jF,OAE3BrH,GAAS0kE,EAEX1kE,EAAQqS,EAAKrS,EAAO29C,GACpB,IAAgCquQ,EAAQ2N,EAApC56T,EAAIiB,EAAM+3Q,YAAY,KAC1B,GAAIh5Q,EAAI,EAAG,CACT,IAAI4E,EAAIy8C,EAAWpgD,EAAM+3Q,YAAY,MAAQ,EACzCp0Q,EAAI,GAAGqoT,EAAShsT,EAAO25T,EAAQ,KAAS3N,EAAShsT,EAAMkZ,UAAU,EAAGvV,GAAIg2T,EAAQ35T,EAAMkZ,UAAUvV,SAEpGqoT,EAAShsT,EAAMkZ,UAAU,EAAGna,GAC5B46T,EAAQd,EAAiB74T,EAAMkZ,UAAUna,EAAI,IAE1Cq6T,GAASC,IAAOrN,EAASiN,EAAYjN,EAAQ1iT,MAClD,IAAIpG,EAAS+5D,EAAO/5D,OAAS8oT,EAAO9oT,OAASy2T,EAAMz2T,QAAUs2T,EAAS,EAAIziN,EAAS7zG,QAASywB,EAAUzwB,EAASod,EAAQ,IAAIxd,MAAMI,EAASod,EAAQpd,EAAS,GAAGf,KAAKyO,GAAQ,GAI3K,OAHI4oT,IAAQxN,EAASiN,EAAYtlS,EAAUq4R,EAAQr4R,EAAQzwB,OAASod,EAAQq5S,EAAMz2T,OAASoG,MAC3FytG,GAAY95C,EACZj9D,EAAQgsT,EAAS2N,GACC,MAAV7vN,EAAgBiN,EAAW/2G,EAAQ2zB,EAAoB,MAAVm2E,EAAgBn2E,EAAUojF,EAAW/2G,EAAkB,MAAV8pG,EAAgBn2E,EAAQza,UAAU,EAAGhW,IAAW,GAAK6zG,EAAW/2G,EAAQ2zB,EAAQza,UAAUhW,GAAU6zG,GAAYyiN,EAASx5T,EAAQ2zB,EAAU3zB,IAAUy5T,IA5G7PxrT,EAAGyrT,aAAe,SAAS15T,EAAO29C,GAChC,IAAI5+C,EAAI,EAOR,OANIiB,GAASA,KACPA,EAAQ,IAAGA,IAAU,GACrB29C,IAAW39C,EAAQiO,EAAGywB,MAAM1+B,EAAOy4T,GAAoBz4T,EAAO29C,KAClE5+C,EAAI,EAAI+F,KAAK2N,MAAM,MAAQ3N,KAAKomB,IAAIlrB,GAAS8E,KAAKmzC,MAClDl5C,EAAI+F,KAAKqC,KAAK,GAAIrC,KAAKoC,IAAI,GAA8B,EAA1BpC,KAAK2N,OAAO1T,EAAI,GAAK,MAE/C25T,GAAkB,EAAI35T,EAAI,IAwGnC,IAAIo6T,GAAe,yEACfG,GAAkBrrT,EAAG0sC,IAAI,CAC3B94C,EAAG,SAAS0L,GACV,OAAOA,EAAEmO,SAAS,IAEpBtc,EAAG,SAASmO,GACV,OAAOoT,OAAOC,aAAarT,IAE7B/N,EAAG,SAAS+N,GACV,OAAOA,EAAEmO,SAAS,IAEpBnO,EAAG,SAASA,GACV,OAAOA,EAAEmO,SAAS,KAEpBmD,EAAG,SAAStR,GACV,OAAOA,EAAEmO,SAAS,IAAImqK,eAExBj9J,EAAG,SAASrb,EAAG1M,GACb,OAAO0M,EAAEmlM,YAAY7xM,IAEvB8b,EAAG,SAASpP,EAAG1M,GACb,OAAO0M,EAAEqsT,cAAc/4T,IAEzB4mC,EAAG,SAASl6B,EAAG1M,GACb,OAAO0M,EAAEklR,QAAQ5xR,IAEnBhB,EAAG,SAAS0N,EAAG1M,GACb,OAAQ0M,EAAIU,EAAGywB,MAAMnxB,EAAGkrT,GAAoBlrT,EAAG1M,KAAK4xR,QAAQ3tR,KAAKqC,IAAI,EAAGrC,KAAKoC,IAAI,GAAIuxT,GAAoBlrT,GAAK,EAAI,OAAQ1M,SAG9H,SAAS04T,GAAsBhsT,GAC7B,OAAOA,EAAI,GAEb,IAAIssT,GAAU5rT,EAAGm9D,KAAO,GAAI0uP,GAAUj+S,KACtC,SAASk+S,KACPp7T,KAAKknE,EAAI,IAAIhqD,KAAK1B,UAAUjX,OAAS,EAAI2Y,KAAK21Q,IAAIluR,MAAM3E,KAAMwb,WAAaA,UAAU,IAEvF4/S,GAAYp5T,UAAY,CACtBwd,QAAS,WACP,OAAOxf,KAAKknE,EAAE8rN,cAEhBqoC,OAAQ,WACN,OAAOr7T,KAAKknE,EAAEo0P,aAEhBh8S,YAAa,WACX,OAAOtf,KAAKknE,EAAEq0P,kBAEhBl8S,SAAU,WACR,OAAOrf,KAAKknE,EAAEssN,eAEhBnB,gBAAiB,WACf,OAAOryR,KAAKknE,EAAEkrN,sBAEhBhrG,WAAY,WACV,OAAOpnL,KAAKknE,EAAEgrN,iBAEhB3yQ,SAAU,WACR,OAAOvf,KAAKknE,EAAE6rN,eAEhB1rG,WAAY,WACV,OAAOrnL,KAAKknE,EAAEirN,iBAEhBvoD,QAAS,WACP,OAAO5pO,KAAKknE,EAAE0iK,WAEhBooD,kBAAmB,WACjB,OAAO,GAETlxD,QAAS,WACP,OAAO9gO,KAAKknE,EAAE45J,WAEhB06F,QAAS,WACPC,GAAkBC,WAAW/2T,MAAM3E,KAAKknE,EAAG1rD,YAE7CmgT,OAAQ,WACNF,GAAkBG,UAAUj3T,MAAM3E,KAAKknE,EAAG1rD,YAE5CqgT,YAAa,WACXJ,GAAkB3oC,eAAenuR,MAAM3E,KAAKknE,EAAG1rD,YAEjDyD,SAAU,WACRw8S,GAAkBK,YAAYn3T,MAAM3E,KAAKknE,EAAG1rD,YAE9C4D,gBAAiB,WACfq8S,GAAkBM,mBAAmBp3T,MAAM3E,KAAKknE,EAAG1rD,YAErD0D,WAAY,WACVu8S,GAAkBO,cAAcr3T,MAAM3E,KAAKknE,EAAG1rD,YAEhDygT,SAAU,WACRR,GAAkBjnC,YAAY7vR,MAAM3E,KAAKknE,EAAG1rD,YAE9C2D,WAAY,WACVs8S,GAAkBS,cAAcv3T,MAAM3E,KAAKknE,EAAG1rD,YAEhD2gT,QAAS,WACPV,GAAkBU,QAAQx3T,MAAM3E,KAAKknE,EAAG1rD,aAG5C,IAAIigT,GAAoBv+S,KAAKlb,UAC7B,SAASo6T,GAAiB7iT,EAAOowB,EAAMsV,GACrC,SAASlf,EAAMtkB,GACb,IAAI+2I,EAAKj5I,EAAMkC,GAAOg3I,EAAKn2I,EAAOk2I,EAAI,GACtC,OAAO/2I,EAAO+2I,EAAKC,EAAKh3I,EAAO+2I,EAAKC,EAEtC,SAASvyH,EAAKzkB,GAEZ,OADAkuB,EAAKluB,EAAOlC,EAAM,IAAI4hT,GAAQ1/S,EAAO,IAAK,GACnCA,EAET,SAASa,EAAOb,EAAMtW,GAEpB,OADAwkC,EAAKluB,EAAO,IAAI0/S,IAAS1/S,GAAOtW,GACzBsW,EAET,SAASrD,EAAMpK,EAAIssB,EAAI8gM,GACrB,IAAI3uJ,EAAOvsC,EAAKlyB,GAAKkhB,EAAQ,GAC7B,GAAIksM,EAAK,EACP,MAAO3uJ,EAAOnyC,EACN2kB,EAAOwtB,GAAQ2uJ,GAAKlsM,EAAM7rB,KAAK,IAAI6Z,MAAMuvD,IAC/C9iC,EAAK8iC,EAAM,QAGb,MAAOA,EAAOnyC,EAAIpL,EAAM7rB,KAAK,IAAI6Z,MAAMuvD,IAAQ9iC,EAAK8iC,EAAM,GAE5D,OAAOv9C,EAET,SAASmtS,EAAUruT,EAAIssB,EAAI8gM,GACzB,IACE+/F,GAAUC,GACV,IAAI5uM,EAAM,IAAI4uM,GAEd,OADA5uM,EAAItlD,EAAIl5D,EACDoK,EAAMo0G,EAAKlyF,EAAI8gM,GACtB,QACA+/F,GAAUj+S,MAGd3D,EAAMzF,MAAQyF,EACdA,EAAMwmB,MAAQA,EACdxmB,EAAM2mB,KAAOA,EACb3mB,EAAM+C,OAASA,EACf/C,EAAMnB,MAAQA,EACd,IAAIo0G,EAAMjzG,EAAMizG,IAAM8vM,GAAqB/iT,GAM3C,OALAizG,EAAI14G,MAAQ04G,EACZA,EAAIzsF,MAAQu8R,GAAqBv8R,GACjCysF,EAAItsF,KAAOo8R,GAAqBp8R,GAChCssF,EAAIlwG,OAASggT,GAAqBhgT,GAClCkwG,EAAIp0G,MAAQikT,EACL9iT,EAET,SAAS+iT,GAAqBhoR,GAC5B,OAAO,SAAS74B,EAAMtW,GACpB,IACEg2T,GAAUC,GACV,IAAI5uM,EAAM,IAAI4uM,GAEd,OADA5uM,EAAItlD,EAAIzrD,EACD64B,EAAOk4E,EAAKrnH,GAAG+hE,EACtB,QACAi0P,GAAUj+S,OAoDhB,SAASq/S,GAAqBjwM,GAC5B,IAAIkwM,EAAkBlwM,EAAO2c,SAAUwzL,EAAcnwM,EAAO7wG,KAAMihT,EAAcpwM,EAAO7/C,KAAMkwP,EAAiBrwM,EAAO0c,QAAS4zL,EAActwM,EAAOsc,KAAMi0L,EAAmBvwM,EAAOuc,UAAWi0L,EAAgBxwM,EAAOwc,OAAQi0L,EAAqBzwM,EAAOyc,YACzP,SAASi0L,EAAehsJ,GACtB,IAAInvK,EAAImvK,EAASzsK,OACjB,SAASugG,EAAOrpF,GACd,IAAgChb,EAAGyB,EAAG4mC,EAAlCwsP,EAAS,GAAIl1R,GAAK,EAAG4E,EAAI,EAC7B,QAAS5E,EAAIyB,EACoB,KAA3BmvK,EAASxqG,WAAWpmE,KACtBk1R,EAAOjyR,KAAK2tK,EAAStsK,MAAMM,EAAG5E,IAC4B,OAArD8B,EAAI+6T,GAAmBx8T,EAAIuwK,EAASvhJ,SAASrvB,OAAcK,EAAIuwK,EAASvhJ,SAASrvB,KAClF0oC,EAAIo0R,EAAgBz8T,MAAIA,EAAIqoC,EAAErtB,EAAW,MAALvZ,EAAkB,MAANzB,EAAY,IAAM,IAAMyB,IAC5EozR,EAAOjyR,KAAK5C,GACZuE,EAAI5E,EAAI,GAIZ,OADAk1R,EAAOjyR,KAAK2tK,EAAStsK,MAAMM,EAAG5E,IACvBk1R,EAAO9xR,KAAK,IA2BrB,OAzBAshG,EAAO20G,MAAQ,SAAS67E,GACtB,IAAI50R,EAAI,CACN6T,EAAG,KACH/T,EAAG,EACHE,EAAG,EACH8xR,EAAG,EACH11O,EAAG,EACHC,EAAG,EACHogR,EAAG,EACHC,EAAG,MACFh9T,EAAIi9T,EAAc38T,EAAGswK,EAAUskH,EAAQ,GAC1C,GAAIl1R,GAAKk1R,EAAO/wR,OAAQ,OAAO,KAC3B,MAAO7D,IAAGA,EAAE8xR,EAAI9xR,EAAE8xR,EAAI,GAAW,GAAN9xR,EAAEwB,GACjC,IAAIo7T,EAAgB,MAAP58T,EAAE08T,GAAajC,KAAYC,GAAa3/S,EAAO,IAAK6hT,EAASlC,GAAcD,IAOxF,MANI,MAAOz6T,EAAG+a,EAAKogT,YAAYn7T,EAAE6T,EAAG,EAAG7T,EAAEsE,GAAa,MAAOtE,GAAK,MAAOA,GACjE,MAAOA,IAAIA,EAAEwd,EAAI,MAAOxd,EAAI,EAAI,GACtC+a,EAAKogT,YAAYn7T,EAAE6T,EAAG,EAAG,GACzBkH,EAAKogT,YAAYn7T,EAAE6T,EAAG,EAAG,MAAO7T,GAAKA,EAAEwd,EAAI,GAAK,EAAU,EAANxd,EAAEigO,GAASllN,EAAK4/S,SAAW,GAAK,EAAI36T,EAAEwd,EAAU,EAANxd,EAAEmgO,GAASplN,EAAK4/S,SAAW,GAAK,IACzH5/S,EAAKogT,YAAYn7T,EAAE6T,EAAG7T,EAAEF,EAAGE,EAAEA,GACpC+a,EAAKwD,SAASve,EAAE8xR,GAAK9xR,EAAE08T,EAAI,IAAM,GAAI18T,EAAEo8C,EAAIp8C,EAAE08T,EAAI,IAAK18T,EAAEq8C,EAAGr8C,EAAEy8T,GACtDG,EAAS7hT,EAAKyrD,EAAIzrD,GAE3BqpF,EAAO/nF,SAAW,WAChB,OAAOi0J,GAEFlsE,EAET,SAASu4N,EAAc5hT,EAAMu1J,EAAUskH,EAAQtwR,GAC7C,IAAIvE,EAAGyB,EAAGZ,EAAGlB,EAAI,EAAGyB,EAAImvK,EAASzsK,OAAQ/D,EAAI80R,EAAO/wR,OACpD,MAAOnE,EAAIyB,EAAG,CACZ,GAAImD,GAAKxE,EAAG,OAAQ,EAEpB,GADAC,EAAIuwK,EAASxqG,WAAWpmE,KACd,KAANK,GAGF,GAFAa,EAAI0vK,EAASvhJ,OAAOrvB,KACpB8B,EAAIq7T,EAAgBj8T,KAAK27T,GAAqBjsJ,EAASvhJ,OAAOrvB,KAAOkB,IAChEY,IAAM8C,EAAI9C,EAAEuZ,EAAM65Q,EAAQtwR,IAAM,EAAG,OAAQ,OAC3C,GAAIvE,GAAK60R,EAAO9uN,WAAWxhE,KAChC,OAAQ,EAGZ,OAAOA,EAETg4T,EAAexwM,IAAM,SAASwkD,GAC5B,IAAIz3J,EAAQyjT,EAAehsJ,GAC3B,SAASlsE,EAAOrpF,GACd,IACE0/S,GAAUC,GACV,IAAI5uM,EAAM,IAAI2uM,GAEd,OADA3uM,EAAItlD,EAAIzrD,EACDlC,EAAMizG,GACb,QACA2uM,GAAUj+S,MAad,OAVA4nF,EAAO20G,MAAQ,SAAS67E,GACtB,IACE6lC,GAAUC,GACV,IAAI3/S,EAAOlC,EAAMkgM,MAAM67E,GACvB,OAAO75Q,GAAQA,EAAKyrD,EACpB,QACAi0P,GAAUj+S,OAGd4nF,EAAO/nF,SAAWxD,EAAMwD,SACjB+nF,GAETk4N,EAAeQ,MAAQR,EAAexwM,IAAIgxM,MAAQC,GAClD,IAAIC,EAAuBpuT,EAAG0sC,MAAO2hR,EAAgBC,GAAiBhB,GAAciB,EAAoBC,GAAqBlB,GAAcmB,EAAsBH,GAAiBf,GAAmBmB,EAA0BF,GAAqBjB,GAAmBoB,EAAkBL,GAAiBd,GAAgBoB,EAAsBJ,GAAqBhB,GAAgBqB,EAAwBP,GAAiBb,GAAqBqB,EAA4BN,GAAqBf,GACpeJ,EAAenlQ,SAAQ,SAASt1D,EAAG9B,GACjCs9T,EAAqBrvT,IAAInM,EAAE2Y,cAAeza,MAE5C,IAAI88T,EAAkB,CACpBj6T,EAAG,SAASvC,GACV,OAAOm8T,EAAiBn8T,EAAE26T,WAE5BzkI,EAAG,SAASl2L,GACV,OAAOk8T,EAAYl8T,EAAE26T,WAEvBn4T,EAAG,SAASxC,GACV,OAAOq8T,EAAmBr8T,EAAE6e,aAE9BktL,EAAG,SAAS/rM,GACV,OAAOo8T,EAAcp8T,EAAE6e,aAEzB9e,EAAGu8T,EAAeR,GAClB97T,EAAG,SAASA,EAAGwB,GACb,OAAOm8T,GAAkB39T,EAAE8e,UAAWtd,EAAG,IAE3C8b,EAAG,SAAStd,EAAGwB,GACb,OAAOm8T,GAAkB39T,EAAE8e,UAAWtd,EAAG,IAE3CswR,EAAG,SAAS9xR,EAAGwB,GACb,OAAOm8T,GAAkB39T,EAAE2e,WAAYnd,EAAG,IAE5C42T,EAAG,SAASp4T,EAAGwB,GACb,OAAOm8T,GAAkB39T,EAAE2e,WAAa,IAAM,GAAInd,EAAG,IAEvD8C,EAAG,SAAStE,EAAGwB,GACb,OAAOm8T,GAAkB,EAAInD,GAAQl/S,UAAUtb,GAAIwB,EAAG,IAExDi7T,EAAG,SAASz8T,EAAGwB,GACb,OAAOm8T,GAAkB39T,EAAE2xR,kBAAmBnwR,EAAG,IAEnD1B,EAAG,SAASE,EAAGwB,GACb,OAAOm8T,GAAkB39T,EAAE6e,WAAa,EAAGrd,EAAG,IAEhD46C,EAAG,SAASp8C,EAAGwB,GACb,OAAOm8T,GAAkB39T,EAAE0mL,aAAcllL,EAAG,IAE9CA,EAAG,SAASxB,GACV,OAAOi8T,IAAiBj8T,EAAE2e,YAAc,MAE1C09B,EAAG,SAASr8C,EAAGwB,GACb,OAAOm8T,GAAkB39T,EAAE2mL,aAAcnlL,EAAG,IAE9C2+N,EAAG,SAASngO,EAAGwB,GACb,OAAOm8T,GAAkBnD,GAAQoD,aAAa59T,GAAIwB,EAAG,IAEvDgc,EAAG,SAASxd,GACV,OAAOA,EAAE26T,UAEX16F,EAAG,SAASjgO,EAAGwB,GACb,OAAOm8T,GAAkBnD,GAAQqD,aAAa79T,GAAIwB,EAAG,IAEvD0M,EAAGouT,EAAeP,GAClBv8S,EAAG88S,EAAeN,GAClBnoT,EAAG,SAAS7T,EAAGwB,GACb,OAAOm8T,GAAkB39T,EAAE4e,cAAgB,IAAKpd,EAAG,IAErDw8B,EAAG,SAASh+B,EAAGwB,GACb,OAAOm8T,GAAkB39T,EAAE4e,cAAgB,IAAKpd,EAAG,IAErDk7T,EAAGoB,GACH,IAAK,WACH,MAAO,MAGPjB,EAAkB,CACpBt6T,EAAGw7T,EACH7nI,EAAG8nI,EACHx7T,EAAGy7T,EACHlyH,EAAGmyH,EACHn+T,EAAGo+T,EACHn+T,EAAGo+T,GACH9gT,EAAG8gT,GACHtsC,EAAGusC,GACHjG,EAAGiG,GACH/5T,EAAGg6T,GACH7B,EAAG8B,GACHz+T,EAAG0+T,GACHpiR,EAAGqiR,GACHj9T,EAAGk9T,EACHriR,EAAGsiR,GACHx+F,EAAGy+F,GACHphT,EAAGqhT,GACH5+F,EAAG6+F,GACH5wT,EAAG6wT,EACHv/S,EAAGw/S,EACHnrT,EAAGorT,GACHjhS,EAAGkhS,GACHxC,EAAGyC,GACH,IAAKC,IAEP,SAASrB,EAA2BhjT,EAAM65Q,EAAQl1R,GAChD29T,EAAoBz7I,UAAY,EAChC,IAAIzgL,EAAIk8T,EAAoBzxN,KAAKgpL,EAAO5wR,MAAMtE,IAC9C,OAAOyB,GAAK4Z,EAAKyC,EAAI8/S,EAAwB/8T,IAAIY,EAAE,GAAGgZ,eAAgBza,EAAIyB,EAAE,GAAG0C,SAAW,EAE5F,SAASm6T,EAAqBjjT,EAAM65Q,EAAQl1R,GAC1Cu9T,EAAcr7I,UAAY,EAC1B,IAAIzgL,EAAI87T,EAAcrxN,KAAKgpL,EAAO5wR,MAAMtE,IACxC,OAAOyB,GAAK4Z,EAAKyC,EAAI2/S,EAAkB58T,IAAIY,EAAE,GAAGgZ,eAAgBza,EAAIyB,EAAE,GAAG0C,SAAW,EAEtF,SAASo6T,EAAyBljT,EAAM65Q,EAAQl1R,GAC9C+9T,EAAsB77I,UAAY,EAClC,IAAIzgL,EAAIs8T,EAAsB7xN,KAAKgpL,EAAO5wR,MAAMtE,IAChD,OAAOyB,GAAK4Z,EAAKjb,EAAI49T,EAA0Bn9T,IAAIY,EAAE,GAAGgZ,eAAgBza,EAAIyB,EAAE,GAAG0C,SAAW,EAE9F,SAASq6T,EAAmBnjT,EAAM65Q,EAAQl1R,GACxC69T,EAAgB37I,UAAY,EAC5B,IAAIzgL,EAAIo8T,EAAgB3xN,KAAKgpL,EAAO5wR,MAAMtE,IAC1C,OAAOyB,GAAK4Z,EAAKjb,EAAI09T,EAAoBj9T,IAAIY,EAAE,GAAGgZ,eAAgBza,EAAIyB,EAAE,GAAG0C,SAAW,EAExF,SAASs6T,EAAwBpjT,EAAM65Q,EAAQl1R,GAC7C,OAAOi9T,EAAc5hT,EAAMyhT,EAAgBz8T,EAAEsc,WAAYu4Q,EAAQl1R,GAEnE,SAASq/T,EAAwBhkT,EAAM65Q,EAAQl1R,GAC7C,OAAOi9T,EAAc5hT,EAAMyhT,EAAgBtuT,EAAEmO,WAAYu4Q,EAAQl1R,GAEnE,SAASs/T,EAAwBjkT,EAAM65Q,EAAQl1R,GAC7C,OAAOi9T,EAAc5hT,EAAMyhT,EAAgBh9S,EAAEnD,WAAYu4Q,EAAQl1R,GAEnE,SAASg/T,EAAkB3jT,EAAM65Q,EAAQl1R,GACvC,IAAIyB,EAAI67T,EAAqBz8T,IAAIq0R,EAAO5wR,MAAMtE,EAAGA,GAAK,GAAGya,eACzD,OAAY,MAALhZ,GAAa,GAAK4Z,EAAKvZ,EAAIL,EAAGzB,GAEvC,OAAO48T,EAtQT9B,GAAQthT,KAAOwiT,IAAiB,SAAS3gT,GAGvC,OAFAA,EAAOy/S,GAAQphT,IAAI2B,GACnBA,EAAKwgT,SAAS,EAAG,GACVxgT,KACN,SAASA,EAAMa,GAChBb,EAAKogT,YAAYpgT,EAAK6D,cAAgBhD,MACrC,SAASb,GACV,OAAOA,EAAK6D,iBAEd47S,GAAQ6E,MAAQ7E,GAAQthT,KAAKxB,MAC7B8iT,GAAQ6E,MAAMvzM,IAAM0uM,GAAQthT,KAAK4yG,IAAIp0G,MACrC8iT,GAAQphT,IAAMsiT,IAAiB,SAAS3gT,GACtC,IAAI3B,EAAM,IAAIqhT,GAAQ,IAAK,GAE3B,OADArhT,EAAI+hT,YAAYpgT,EAAK6D,cAAe7D,EAAK8D,WAAY9D,EAAK+D,WACnD1F,KACN,SAAS2B,EAAMa,GAChBb,EAAK+/S,QAAQ//S,EAAK+D,UAAYlD,MAC7B,SAASb,GACV,OAAOA,EAAK+D,UAAY,KAE1B07S,GAAQtyL,KAAOsyL,GAAQphT,IAAI1B,MAC3B8iT,GAAQtyL,KAAKpc,IAAM0uM,GAAQphT,IAAI0yG,IAAIp0G,MACnC8iT,GAAQl/S,UAAY,SAASP,GAC3B,IAAI7B,EAAOshT,GAAQthT,KAAK6B,GACxB,OAAOtV,KAAK2N,OAAO2H,EAAO7B,EAA+D,KAAvD6B,EAAKu2Q,oBAAsBp4Q,EAAKo4Q,sBAA8B,QAElG,CAAE,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YAAax6N,SAAQ,SAAS19C,EAAK1Z,GACrGA,EAAI,EAAIA,EACR,IAAIglE,EAAW81P,GAAQphT,GAAOsiT,IAAiB,SAAS3gT,GAEtD,OADCA,EAAOy/S,GAAQphT,IAAI2B,IAAO+/S,QAAQ//S,EAAK+D,WAAa/D,EAAK4/S,SAAWj7T,GAAK,GACnEqb,KACN,SAASA,EAAMa,GAChBb,EAAK+/S,QAAQ//S,EAAK+D,UAAiC,EAArBrZ,KAAK2N,MAAMwI,OACxC,SAASb,GACV,IAAI3B,EAAMohT,GAAQthT,KAAK6B,GAAM4/S,SAC7B,OAAOl1T,KAAK2N,OAAOonT,GAAQl/S,UAAUP,IAAS3B,EAAM1Z,GAAK,GAAK,IAAM0Z,IAAQ1Z,MAE9E86T,GAAQphT,EAAM,KAAOsrD,EAAShtD,MAC9B8iT,GAAQphT,EAAM,KAAK0yG,IAAMpnD,EAASonD,IAAIp0G,MACtC8iT,GAAQphT,EAAM,UAAY,SAAS2B,GACjC,IAAI3B,EAAMohT,GAAQthT,KAAK6B,GAAM4/S,SAC7B,OAAOl1T,KAAK2N,OAAOonT,GAAQl/S,UAAUP,IAAS3B,EAAM1Z,GAAK,GAAK,OAGlE86T,GAAQ8E,KAAO9E,GAAQrpC,OACvBqpC,GAAQ+E,MAAQ/E,GAAQrpC,OAAOz5Q,MAC/B8iT,GAAQ+E,MAAMzzM,IAAM0uM,GAAQrpC,OAAOrlK,IAAIp0G,MACvC8iT,GAAQp/S,WAAao/S,GAAQoD,aAyN7B,IAAIrB,GAAqB,CACvB,IAAK,GACL/1P,EAAG,IACH,EAAK,KACJg5P,GAAmB,UAAWC,GAAoB,KACrD,SAAS9B,GAAkBh9T,EAAO4Q,EAAM0P,GACtC,IAAIgkD,EAAOtkE,EAAQ,EAAI,IAAM,GAAIi0R,GAAU3vN,GAAQtkE,EAAQA,GAAS,GAAIkD,EAAS+wR,EAAO/wR,OACxF,OAAOohE,GAAQphE,EAASod,EAAQ,IAAIxd,MAAMwd,EAAQpd,EAAS,GAAGf,KAAKyO,GAAQqjR,EAASA,GAEtF,SAASsoC,GAAiBlyL,GACxB,OAAO,IAAI/iG,OAAO,OAAS+iG,EAAM1vF,IAAI1sC,EAAG+5S,SAAS7lT,KAAK,KAAO,IAAK,KAEpE,SAASs6T,GAAqBpyL,GAC5B,IAAI1vF,EAAM,IAAIgrQ,EAAU5mT,GAAK,EAAGyB,EAAI6pI,EAAMnnI,OAC1C,QAASnE,EAAIyB,EAAGm6C,EAAI3tC,IAAIq9H,EAAMtrI,GAAGya,cAAeza,GAChD,OAAO47C,EAET,SAASujR,GAA2B9jT,EAAM65Q,EAAQl1R,GAChD8/T,GAAiB59I,UAAY,EAC7B,IAAIzgL,EAAIq+T,GAAiB5zN,KAAKgpL,EAAO5wR,MAAMtE,EAAGA,EAAI,IAClD,OAAOyB,GAAK4Z,EAAKyC,GAAKrc,EAAE,GAAIzB,EAAIyB,EAAE,GAAG0C,SAAW,EAElD,SAAS+6T,GAA8B7jT,EAAM65Q,EAAQl1R,GACnD8/T,GAAiB59I,UAAY,EAC7B,IAAIzgL,EAAIq+T,GAAiB5zN,KAAKgpL,EAAO5wR,MAAMtE,IAC3C,OAAOyB,GAAK4Z,EAAKolN,GAAKh/N,EAAE,GAAIzB,EAAIyB,EAAE,GAAG0C,SAAW,EAElD,SAASi7T,GAA8B/jT,EAAM65Q,EAAQl1R,GACnD8/T,GAAiB59I,UAAY,EAC7B,IAAIzgL,EAAIq+T,GAAiB5zN,KAAKgpL,EAAO5wR,MAAMtE,IAC3C,OAAOyB,GAAK4Z,EAAKklN,GAAK9+N,EAAE,GAAIzB,EAAIyB,EAAE,GAAG0C,SAAW,EAElD,SAASq7T,GAAsBnkT,EAAM65Q,EAAQl1R,GAC3C8/T,GAAiB59I,UAAY,EAC7B,IAAIzgL,EAAIq+T,GAAiB5zN,KAAKgpL,EAAO5wR,MAAMtE,EAAGA,EAAI,IAClD,OAAOyB,GAAK4Z,EAAKlH,GAAK1S,EAAE,GAAIzB,EAAIyB,EAAE,GAAG0C,SAAW,EAElD,SAASo7T,GAAkBlkT,EAAM65Q,EAAQl1R,GACvC8/T,GAAiB59I,UAAY,EAC7B,IAAIzgL,EAAIq+T,GAAiB5zN,KAAKgpL,EAAO5wR,MAAMtE,EAAGA,EAAI,IAClD,OAAOyB,GAAK4Z,EAAKlH,EAAI6rT,IAAoBv+T,EAAE,IAAKzB,EAAIyB,EAAE,GAAG0C,SAAW,EAEtE,SAASs7T,GAAkBpkT,EAAM65Q,EAAQl1R,GACvC,MAAO,cAAcqD,KAAK6xR,EAASA,EAAO5wR,MAAMtE,EAAGA,EAAI,KAAOqb,EAAK2hT,GAAK9nC,EACxEl1R,EAAI,IAAM,EAEZ,SAASggU,GAAmB1/T,GAC1B,OAAOA,GAAKA,EAAI,GAAK,KAAO,KAE9B,SAASw+T,GAAyBzjT,EAAM65Q,EAAQl1R,GAC9C8/T,GAAiB59I,UAAY,EAC7B,IAAIzgL,EAAIq+T,GAAiB5zN,KAAKgpL,EAAO5wR,MAAMtE,EAAGA,EAAI,IAClD,OAAOyB,GAAK4Z,EAAKjb,EAAIqB,EAAE,GAAK,EAAGzB,EAAIyB,EAAE,GAAG0C,SAAW,EAErD,SAASu6T,GAAiBrjT,EAAM65Q,EAAQl1R,GACtC8/T,GAAiB59I,UAAY,EAC7B,IAAIzgL,EAAIq+T,GAAiB5zN,KAAKgpL,EAAO5wR,MAAMtE,EAAGA,EAAI,IAClD,OAAOyB,GAAK4Z,EAAK/a,GAAKmB,EAAE,GAAIzB,EAAIyB,EAAE,GAAG0C,SAAW,EAElD,SAASy6T,GAAuBvjT,EAAM65Q,EAAQl1R,GAC5C8/T,GAAiB59I,UAAY,EAC7B,IAAIzgL,EAAIq+T,GAAiB5zN,KAAKgpL,EAAO5wR,MAAMtE,EAAGA,EAAI,IAClD,OAAOyB,GAAK4Z,EAAKzW,GAAKnD,EAAE,GAAIzB,EAAIyB,EAAE,GAAG0C,SAAW,EAElD,SAASw6T,GAAoBtjT,EAAM65Q,EAAQl1R,GACzC8/T,GAAiB59I,UAAY,EAC7B,IAAIzgL,EAAIq+T,GAAiB5zN,KAAKgpL,EAAO5wR,MAAMtE,EAAGA,EAAI,IAClD,OAAOyB,GAAK4Z,EAAK+2Q,GAAK3wR,EAAE,GAAIzB,EAAIyB,EAAE,GAAG0C,SAAW,EAElD,SAAS46T,GAAqB1jT,EAAM65Q,EAAQl1R,GAC1C8/T,GAAiB59I,UAAY,EAC7B,IAAIzgL,EAAIq+T,GAAiB5zN,KAAKgpL,EAAO5wR,MAAMtE,EAAGA,EAAI,IAClD,OAAOyB,GAAK4Z,EAAKqhC,GAAKj7C,EAAE,GAAIzB,EAAIyB,EAAE,GAAG0C,SAAW,EAElD,SAAS86T,GAAqB5jT,EAAM65Q,EAAQl1R,GAC1C8/T,GAAiB59I,UAAY,EAC7B,IAAIzgL,EAAIq+T,GAAiB5zN,KAAKgpL,EAAO5wR,MAAMtE,EAAGA,EAAI,IAClD,OAAOyB,GAAK4Z,EAAKshC,GAAKl7C,EAAE,GAAIzB,EAAIyB,EAAE,GAAG0C,SAAW,EAElD,SAAS06T,GAA0BxjT,EAAM65Q,EAAQl1R,GAC/C8/T,GAAiB59I,UAAY,EAC7B,IAAIzgL,EAAIq+T,GAAiB5zN,KAAKgpL,EAAO5wR,MAAMtE,EAAGA,EAAI,IAClD,OAAOyB,GAAK4Z,EAAK0hT,GAAKt7T,EAAE,GAAIzB,EAAIyB,EAAE,GAAG0C,SAAW,EAElD,SAASi6T,GAAa99T,GACpB,IAAI2O,EAAI3O,EAAEsxR,oBAAqBr9K,EAAKtlG,EAAI,EAAI,IAAM,IAAKgxT,EAAKnoT,EAAI7I,GAAK,GAAK,EAAGixT,EAAKpoT,EAAI7I,GAAK,GAC3F,OAAOslG,EAAK0pN,GAAkBgC,EAAI,IAAK,GAAKhC,GAAkBiC,EAAI,IAAK,GAEzE,SAASR,GAA4BrkT,EAAM65Q,EAAQl1R,GACjD+/T,GAAkB79I,UAAY,EAC9B,IAAIzgL,EAAIs+T,GAAkB7zN,KAAKgpL,EAAO5wR,MAAMtE,EAAGA,EAAI,IACnD,OAAOyB,EAAIzB,EAAIyB,EAAE,GAAG0C,QAAU,EAEhC,SAASk5T,GAAoB8C,GAC3B,IAAI1+T,EAAI0+T,EAAQh8T,OAAQnE,GAAK,EAC7B,QAASA,EAAIyB,EAAG0+T,EAAQngU,GAAG,GAAKJ,KAAKugU,EAAQngU,GAAG,IAChD,OAAO,SAASqb,GACd,IAAIrb,EAAI,EAAG0oC,EAAIy3R,EAAQngU,GACvB,OAAQ0oC,EAAE,GAAGrtB,GAAOqtB,EAAIy3R,IAAUngU,GAClC,OAAO0oC,EAAE,GAAGrtB,IAGhBnM,EAAGg9G,OAAS,SAASA,GACnB,MAAO,CACLI,aAAcutM,GAAuB3tM,GACrCC,WAAYgwM,GAAqBjwM,KAGrC,IAAIk0M,GAAiBlxT,EAAGg9G,OAAO,CAC7B4c,QAAS,IACTC,UAAW,IACXC,SAAU,CAAE,GACZC,SAAU,CAAE,IAAK,IACjBJ,SAAU,iBACVxtH,KAAM,WACNgxD,KAAM,WACNu8D,QAAS,CAAE,KAAM,MACjBJ,KAAM,CAAE,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YAC1EC,UAAW,CAAE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACvDC,OAAQ,CAAE,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YACxHC,YAAa,CAAE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,SAI9F,SAAS03L,MAFTnxT,EAAGw1F,OAAS07N,GAAe9zM,aAC3Bp9G,EAAGkoB,IAAM,GAETipS,GAASz+T,UAAY,CACnBG,EAAG,EACHb,EAAG,EACH+a,IAAK,SAAS9H,GACZmsT,GAAYnsT,EAAGvU,KAAKsB,EAAGq/T,IACvBD,GAAYC,GAAax+T,EAAGnC,KAAKmC,EAAGnC,MAChCA,KAAKmC,EAAGnC,KAAKsB,GAAKq/T,GAAar/T,EAAQtB,KAAKmC,EAAIw+T,GAAar/T,GAEnE40B,MAAO,WACLl2B,KAAKmC,EAAInC,KAAKsB,EAAI,GAEpBw/N,QAAS,WACP,OAAO9gO,KAAKmC,IAGhB,IAAIw+T,GAAe,IAAIF,GACvB,SAASC,GAAYz9T,EAAGC,EAAGrC,GACzB,IAAI+N,EAAI/N,EAAEsB,EAAIc,EAAIC,EAAGmlF,EAAKz5E,EAAI3L,EAAG29T,EAAKhyT,EAAIy5E,EAC1CxnF,EAAES,EAAI2B,EAAI29T,GAAM19T,EAAImlF,GAStB,SAASw4O,GAAsB/9P,EAAU+lP,GACnC/lP,GAAYg+P,GAA0B7+T,eAAe6gE,EAASpvD,OAChEotT,GAA0Bh+P,EAASpvD,MAAMovD,EAAU+lP,GATvDv5S,EAAGkoB,IAAI24E,OAAS,SAASruG,EAAQ+mT,GAC3B/mT,GAAUi/T,GAAwB9+T,eAAeH,EAAO4R,MAC1DqtT,GAAwBj/T,EAAO4R,MAAM5R,EAAQ+mT,GAE7CgY,GAAsB/+T,EAAQ+mT,IAQlC,IAAIkY,GAA0B,CAC5B3hF,QAAS,SAASx8K,EAASimP,GACzBgY,GAAsBj+P,EAAQE,SAAU+lP,IAE1CxpE,kBAAmB,SAASv9O,EAAQ+mT,GAClC,IAAIvmP,EAAWxgE,EAAOwgE,SAAUliE,GAAK,EAAGyB,EAAIygE,EAAS/9D,OACrD,QAASnE,EAAIyB,EAAGg/T,GAAsBv+P,EAASliE,GAAG0iE,SAAU+lP,KAG5DiY,GAA4B,CAC9BrgF,OAAQ,SAAS3+O,EAAQ+mT,GACvBA,EAAS1mE,UAEX/B,MAAO,SAASt+O,EAAQ+mT,GACtB/mT,EAASA,EAAOkhE,YAChB6lP,EAASpjT,MAAM3D,EAAO,GAAIA,EAAO,GAAIA,EAAO,KAE9Cu+O,WAAY,SAASv+O,EAAQ+mT,GAC3B,IAAI7lP,EAAclhE,EAAOkhE,YAAa5iE,GAAK,EAAGyB,EAAImhE,EAAYz+D,OAC9D,QAASnE,EAAIyB,EAAGC,EAASkhE,EAAY5iE,GAAIyoT,EAASpjT,MAAM3D,EAAO,GAAIA,EAAO,GAAIA,EAAO,KAEvFksL,WAAY,SAASlsL,EAAQ+mT,GAC3BmY,GAAkBl/T,EAAOkhE,YAAa6lP,EAAU,IAElDvoE,gBAAiB,SAASx+O,EAAQ+mT,GAChC,IAAI7lP,EAAclhE,EAAOkhE,YAAa5iE,GAAK,EAAGyB,EAAImhE,EAAYz+D,OAC9D,QAASnE,EAAIyB,EAAGm/T,GAAkBh+P,EAAY5iE,GAAIyoT,EAAU,IAE9DtoE,QAAS,SAASz+O,EAAQ+mT,GACxBoY,GAAqBn/T,EAAOkhE,YAAa6lP,IAE3CroE,aAAc,SAAS1+O,EAAQ+mT,GAC7B,IAAI7lP,EAAclhE,EAAOkhE,YAAa5iE,GAAK,EAAGyB,EAAImhE,EAAYz+D,OAC9D,QAASnE,EAAIyB,EAAGo/T,GAAqBj+P,EAAY5iE,GAAIyoT,IAEvDqY,mBAAoB,SAASp/T,EAAQ+mT,GACnC,IAAI7pE,EAAal9O,EAAOk9O,WAAY5+O,GAAK,EAAGyB,EAAIm9O,EAAWz6O,OAC3D,QAASnE,EAAIyB,EAAGg/T,GAAsB7hF,EAAW5+O,GAAIyoT,KAGzD,SAASmY,GAAkBh+P,EAAa6lP,EAAU7tE,GAChD,IAA6CmmF,EAAzC/gU,GAAK,EAAGyB,EAAImhE,EAAYz+D,OAASy2O,EACrC6tE,EAASnpE,YACT,QAASt/O,EAAIyB,EAAGs/T,EAAan+P,EAAY5iE,GAAIyoT,EAASpjT,MAAM07T,EAAW,GAAIA,EAAW,GAAIA,EAAW,IACrGtY,EAASjpE,UAEX,SAASqhF,GAAqBj+P,EAAa6lP,GACzC,IAAIzoT,GAAK,EAAGyB,EAAImhE,EAAYz+D,OAC5BskT,EAAS/oE,eACT,QAAS1/O,EAAIyB,EAAGm/T,GAAkBh+P,EAAY5iE,GAAIyoT,EAAU,GAC5DA,EAAS9oE,aAEXzwO,EAAGkoB,IAAIgtC,KAAO,SAAS1iE,GAGrB,OAFAs/T,GAAiB,EACjB9xT,EAAGkoB,IAAI24E,OAAOruG,EAAQu/T,IACfD,IAET,IAAIA,GA8MAE,GAAmBC,GAAmBC,GAAmBC,GAAmBC,GAAmBC,GAAmBC,GAAmBC,GAAmBC,GAAmBC,GAAmBC,GA9M9KC,GAAqB,IAAIxB,GACzCY,GAAc,CAChBl/E,OAAQ,WACNi/E,IAAkB,EAAIrgF,IAExBt7O,MAAO+iT,EACP9oE,UAAW8oE,EACX5oE,QAAS4oE,EACT1oE,aAAc,WACZmiF,GAAmB/rS,QACnBmrS,GAAY3hF,UAAYwiF,IAE1BniF,WAAY,WACV,IAAIv7K,EAAO,EAAIy9P,GACfb,IAAkB58P,EAAO,EAAI,EAAIu8K,GAAIv8K,EAAOA,EAC5C68P,GAAY3hF,UAAY2hF,GAAYzhF,QAAUyhF,GAAY57T,MAAQ+iT,IAGtE,SAAS0Z,KACP,IAAIC,EAAKC,EAAKhgF,EAAIigF,EAAOC,EAMzB,SAASC,EAAUhhF,EAAGC,GACpBD,GAAKwvE,GACLvvE,EAAIA,EAAIuvE,GAAa,EAAIhwE,GAAI,EAC7B,IAAIyhF,EAAKjhF,EAAIa,EAAIqgF,EAAMD,GAAM,EAAI,GAAK,EAAGE,EAAMD,EAAMD,EAAI9gF,EAAOv7O,KAAKmrD,IAAIkwL,GAAIiD,EAAOt+O,KAAKorD,IAAIiwL,GAAIr8O,EAAIm9T,EAAQ79E,EAAM9gP,EAAI0+T,EAAQ3gF,EAAOv8O,EAAIgB,KAAKmrD,IAAIoxQ,GAAMx9T,EAAIC,EAAIs9T,EAAMt8T,KAAKorD,IAAImxQ,GAChLT,GAAmB5lT,IAAIlW,KAAKk0M,MAAMn1M,EAAGvB,IACrCy+O,EAAKb,EAAG8gF,EAAQ3gF,EAAM4gF,EAAQ79E,EAVhC48E,GAAY57T,MAAQ,SAAS87O,EAAGC,GAC9B6/E,GAAY57T,MAAQ88T,EACpBngF,GAAM+/E,EAAM5gF,GAAKwvE,GAAYsR,EAAQl8T,KAAKmrD,IAAIkwL,GAAK4gF,EAAM5gF,GAAKuvE,GAAa,EAAIhwE,GAAI,GACnFuhF,EAAQn8T,KAAKorD,IAAIiwL,IASnB6/E,GAAYzhF,QAAU,WACpB2iF,EAAUJ,EAAKC,IAGnB,SAASO,GAAiBC,GACxB,IAAIrhF,EAAIqhF,EAAU,GAAIphF,EAAIohF,EAAU,GAAIlhF,EAAOv7O,KAAKmrD,IAAIkwL,GACxD,MAAO,CAAEE,EAAOv7O,KAAKmrD,IAAIiwL,GAAIG,EAAOv7O,KAAKorD,IAAIgwL,GAAIp7O,KAAKorD,IAAIiwL,IAE5D,SAASqhF,GAAoB5/T,EAAGC,GAC9B,OAAOD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAE9C,SAAS4/T,GAAsB7/T,EAAGC,GAChC,MAAO,CAAED,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAID,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAID,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,IAExF,SAAS6/T,GAAoB9/T,EAAGC,GAC9BD,EAAE,IAAMC,EAAE,GACVD,EAAE,IAAMC,EAAE,GACVD,EAAE,IAAMC,EAAE,GAEZ,SAAS8/T,GAAsB7gB,EAAQh9S,GACrC,MAAO,CAAEg9S,EAAO,GAAKh9S,EAAGg9S,EAAO,GAAKh9S,EAAGg9S,EAAO,GAAKh9S,GAErD,SAAS89T,GAA0BviU,GACjC,IAAIL,EAAI8F,KAAKuD,KAAKhJ,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IACvDA,EAAE,IAAML,EACRK,EAAE,IAAML,EACRK,EAAE,IAAML,EAEV,SAAS6iU,GAAiBn4Q,GACxB,MAAO,CAAE5kD,KAAKk0M,MAAMtvJ,EAAU,GAAIA,EAAU,IAAKqmQ,GAAQrmQ,EAAU,KAErE,SAASo4Q,GAAsBlgU,EAAGC,GAChC,OAAOgV,EAAIjV,EAAE,GAAKC,EAAE,IAAM29O,IAAK3oO,EAAIjV,EAAE,GAAKC,EAAE,IAAM29O,GAEpDvxO,EAAGkoB,IAAI5tB,OAAS,WACd,IAAIw4O,EAAIC,EAAI+gF,EAAI9gF,EAAI+gF,EAAIC,EAAKC,EAAKn+O,EAAIo+O,EAAO/zN,EAAQr3F,EACjDqrT,EAAQ,CACVh+T,MAAOA,EACPi6O,UAAWA,EACXE,QAASA,EACTE,aAAc,WACZ2jF,EAAMh+T,MAAQi+T,EACdD,EAAM/jF,UAAYikF,EAClBF,EAAM7jF,QAAUgkF,EAChBJ,EAAQ,EACRnC,GAAYvhF,gBAEdC,WAAY,WACVshF,GAAYthF,aACZ0jF,EAAMh+T,MAAQA,EACdg+T,EAAM/jF,UAAYA,EAClB+jF,EAAM7jF,QAAUA,EACZqiF,GAAqB,GAAG7/E,IAAOghF,EAAK,KAAM/gF,IAAOC,EAAK,KAAckhF,EAAQ3iF,GAAGyB,EAAK,GAAakhF,GAAS3iF,KAAGwB,GAAM,IACvHjqO,EAAM,GAAKgqO,EAAIhqO,EAAM,GAAKgrT,IAG9B,SAAS39T,EAAM87O,EAAGC,GAChB/xI,EAAOpsG,KAAK+U,EAAQ,CAAEgqO,EAAKb,EAAG6hF,EAAK7hF,IAC/BC,EAAIa,IAAIA,EAAKb,GACbA,EAAIc,IAAIA,EAAKd,GAEnB,SAASqiF,EAAUtiF,EAAGC,GACpB,IAAIt/O,EAAIygU,GAAiB,CAAEphF,EAAIwvE,GAAYvvE,EAAIuvE,KAC/C,GAAI3rO,EAAI,CACN,IAAIqlG,EAASq4I,GAAsB19O,EAAIljF,GAAI4hU,EAAa,CAAEr5I,EAAO,IAAKA,EAAO,GAAI,GAAKs5I,EAAajB,GAAsBgB,EAAYr5I,GACrIw4I,GAA0Bc,GAC1BA,EAAab,GAAiBa,GAC9B,IAAIvB,EAAKjhF,EAAI8hF,EAAIlhU,EAAIqgU,EAAK,EAAI,GAAK,EAAGwB,EAAKD,EAAW,GAAK/S,GAAa7uT,EAAG8hU,EAAe/rT,EAAIsqT,GAAM,IACpG,GAAIyB,GAAgB9hU,EAAIkhU,EAAKW,GAAMA,EAAK7hU,EAAIo/O,GAAI,CAC9C,IAAI2iF,EAAKH,EAAW,GAAK/S,GACrBkT,EAAK5hF,IAAIA,EAAK4hF,QACb,GAAIF,GAAMA,EAAK,KAAO,IAAM,IAAKC,GAAgB9hU,EAAIkhU,EAAKW,GAAMA,EAAK7hU,EAAIo/O,GAAI,CAC9E2iF,GAAMH,EAAW,GAAK/S,GACtBkT,EAAK7hF,IAAIA,EAAK6hF,QAEd1iF,EAAIa,IAAIA,EAAKb,GACbA,EAAIc,IAAIA,EAAKd,GAEfyiF,EACE1iF,EAAI8hF,EACFpyQ,EAAMmxL,EAAIb,GAAKtwL,EAAMmxL,EAAIghF,KAAKA,EAAK7hF,GAEnCtwL,EAAMswL,EAAG6hF,GAAMnyQ,EAAMmxL,EAAIghF,KAAKhhF,EAAKb,GAGrC6hF,GAAMhhF,GACJb,EAAIa,IAAIA,EAAKb,GACbA,EAAI6hF,IAAIA,EAAK7hF,IAEbA,EAAI8hF,EACFpyQ,EAAMmxL,EAAIb,GAAKtwL,EAAMmxL,EAAIghF,KAAKA,EAAK7hF,GAEnCtwL,EAAMswL,EAAG6hF,GAAMnyQ,EAAMmxL,EAAIghF,KAAKhhF,EAAKb,QAK7C97O,EAAM87O,EAAGC,GAEXp8J,EAAKljF,EAAGmhU,EAAK9hF,EAEf,SAAS7B,IACP+jF,EAAMh+T,MAAQo+T,EAEhB,SAASjkF,IACPxnO,EAAM,GAAKgqO,EAAIhqO,EAAM,GAAKgrT,EAC1BK,EAAMh+T,MAAQA,EACd2/E,EAAK,KAEP,SAASs+O,EAAUniF,EAAGC,GACpB,GAAIp8J,EAAI,CACN,IAAIo9O,EAAKjhF,EAAI8hF,EACbG,GAAStrT,EAAIsqT,GAAM,IAAMA,GAAMA,EAAK,EAAI,KAAO,KAAOA,OACjDc,EAAM/hF,EAAGgiF,EAAM/hF,EACtB6/E,GAAY57T,MAAM87O,EAAGC,GACrBqiF,EAAUtiF,EAAGC,GAEf,SAASmiF,IACPtC,GAAY3hF,YAEd,SAASkkF,IACPF,EAAUJ,EAAKC,GACflC,GAAYzhF,UACR1nO,EAAIsrT,GAAS3iF,KAAGuB,IAAOghF,EAAK,MAChChrT,EAAM,GAAKgqO,EAAIhqO,EAAM,GAAKgrT,EAC1Bh+O,EAAK,KAEP,SAASn0B,EAAMmxL,EAAIghF,GACjB,OAAQA,GAAMhhF,GAAM,EAAIghF,EAAK,IAAMA,EAErC,SAASe,EAAclhU,EAAGC,GACxB,OAAOD,EAAE,GAAKC,EAAE,GAElB,SAASkhU,EAAYx1T,EAAGwJ,GACtB,OAAOA,EAAM,IAAMA,EAAM,GAAKA,EAAM,IAAMxJ,GAAKA,GAAKwJ,EAAM,GAAKxJ,EAAIwJ,EAAM,IAAMA,EAAM,GAAKxJ,EAE5F,OAAO,SAASg0D,GACd0/K,EAAK8gF,IAAOhhF,EAAKC,EAAK13O,KACtB8kG,EAAS,GACTngG,EAAGkoB,IAAI24E,OAAOvtC,EAAS6gQ,GACvB,IAAI5hU,EAAI4tG,EAAOlrG,OACf,GAAI1C,EAAG,CACL4tG,EAAOroG,KAAK+8T,GACZ,IAAK,IAAI/jU,EAAI,EAAG6C,EAAIwsG,EAAO,GAAOo3M,EAAS,CAAE5jT,GAAK7C,EAAIyB,IAAKzB,EACzD8C,EAAIusG,EAAOrvG,GACPgkU,EAAYlhU,EAAE,GAAID,IAAMmhU,EAAYlhU,EAAE,GAAID,IACxCguD,EAAMhuD,EAAE,GAAIC,EAAE,IAAM+tD,EAAMhuD,EAAE,GAAIA,EAAE,MAAKA,EAAE,GAAKC,EAAE,IAChD+tD,EAAM/tD,EAAE,GAAID,EAAE,IAAMguD,EAAMhuD,EAAE,GAAIA,EAAE,MAAKA,EAAE,GAAKC,EAAE,KAEpD2jT,EAAOxjT,KAAKJ,EAAIC,GAGpB,IAAsBs/T,EACgCt/T,EADlDmhU,GAAQ15T,IACZ,IAAS9I,EAAIglT,EAAOtiT,OAAS,EAAGnE,EAAI,EAAG6C,EAAI4jT,EAAOhlT,GAAOzB,GAAKyB,EAAGoB,EAAIC,IAAK9C,EACxE8C,EAAI2jT,EAAOzmT,IACNoiU,EAAKvxQ,EAAMhuD,EAAE,GAAIC,EAAE,KAAOmhU,IAAMA,EAAO7B,EAAIpgF,EAAKl/O,EAAE,GAAIkgU,EAAKngU,EAAE,IAItE,OADAwsG,EAASr3F,EAAQ,KACVgqO,IAAOz3O,KAAY03O,IAAO13O,IAAW,CAAE,CAAEi2D,IAAKA,KAAO,CAAEA,IAAKA,MAAU,CAAE,CAAEwhL,EAAIC,GAAM,CAAE+gF,EAAI9gF,KA7HrF,GAgIhBhzO,EAAGkoB,IAAI8sS,SAAW,SAASxiU,GACzBw/T,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoB,EAC5N1yT,EAAGkoB,IAAI24E,OAAOruG,EAAQyiU,IACtB,IAAI31T,EAAIkzT,GAAmBvtT,EAAIwtT,GAAmB1yT,EAAI2yT,GAAmBxhU,EAAIoO,EAAIA,EAAI2F,EAAIA,EAAIlF,EAAIA,EACjG,OAAI7O,EAAIsgP,KACNlyO,EAAI+yT,GAAmBptT,EAAIqtT,GAAmBvyT,EAAIwyT,GAC9CN,GAAoB1gF,KAAGjyO,EAAI4yT,GAAmBjtT,EAAIktT,GAAmBpyT,EAAIqyT,IAC7ElhU,EAAIoO,EAAIA,EAAI2F,EAAIA,EAAIlF,EAAIA,EACpB7O,EAAIsgP,IAAW,CAAElgL,IAAKA,KAErB,CAAEz6D,KAAKk0M,MAAM9lM,EAAG3F,GAAKoiT,GAAYI,GAAQ/hT,EAAIlJ,KAAKuD,KAAKlJ,IAAMwwT,KAGtE,IAAIuT,GAAkB,CACpBpiF,OAAQqmE,EACR/iT,MAAO++T,GACP9kF,UAAW+kF,GACX7kF,QAAS8kF,GACT5kF,aAAc,WACZykF,GAAgB7kF,UAAYilF,IAE9B5kF,WAAY,WACVwkF,GAAgB7kF,UAAY+kF,KAGhC,SAASD,GAAqBjjF,EAAGC,GAC/BD,GAAKwvE,GACL,IAAIrvE,EAAOv7O,KAAKmrD,IAAIkwL,GAAKuvE,IACzB6T,GAAwBljF,EAAOv7O,KAAKmrD,IAAIiwL,GAAIG,EAAOv7O,KAAKorD,IAAIgwL,GAAIp7O,KAAKorD,IAAIiwL,IAE3E,SAASojF,GAAwBh2T,EAAG2F,EAAGlF,KACnCiyT,GACFE,KAAsB5yT,EAAI4yT,IAAqBF,GAC/CG,KAAsBltT,EAAIktT,IAAqBH,GAC/CI,KAAsBryT,EAAIqyT,IAAqBJ,GAEjD,SAASmD,KACP,IAAI9sS,EAAIK,EAAIm6E,EAUZ,SAASowN,EAAUhhF,EAAGC,GACpBD,GAAKwvE,GACL,IAAIrvE,EAAOv7O,KAAKmrD,IAAIkwL,GAAKuvE,IAAaniT,EAAI8yO,EAAOv7O,KAAKmrD,IAAIiwL,GAAIhtO,EAAImtO,EAAOv7O,KAAKorD,IAAIgwL,GAAIlyO,EAAIlJ,KAAKorD,IAAIiwL,GAAItjO,EAAI/X,KAAKk0M,MAAMl0M,KAAKuD,MAAMwU,EAAI8Z,EAAK3oB,EAAI8iG,EAAK59F,GAAK2J,GAAKA,EAAIi0F,EAAKvjG,EAAI+oB,EAAKtoB,GAAK6O,GAAKA,EAAIyZ,EAAKpjB,EAAIyjB,EAAKppB,GAAKsP,GAAIyZ,EAAK/oB,EAAIopB,EAAKzjB,EAAI49F,EAAK9iG,GAC3OkyT,IAAqBrjT,EACrByjT,IAAqBzjT,GAAKyZ,GAAMA,EAAK/oB,IACrCgzT,IAAqB1jT,GAAK8Z,GAAMA,EAAKzjB,IACrCstT,IAAqB3jT,GAAKi0F,GAAMA,EAAK9iG,IACrCu1T,GAAwBjtS,EAAIK,EAAIm6E,GAhBlCoyN,GAAgB9+T,MAAQ,SAAS87O,EAAGC,GAClCD,GAAKwvE,GACL,IAAIrvE,EAAOv7O,KAAKmrD,IAAIkwL,GAAKuvE,IACzBp5R,EAAK+pN,EAAOv7O,KAAKmrD,IAAIiwL,GACrBvpN,EAAK0pN,EAAOv7O,KAAKorD,IAAIgwL,GACrBpvI,EAAKhsG,KAAKorD,IAAIiwL,GACd+iF,GAAgB9+T,MAAQ88T,EACxBqC,GAAwBjtS,EAAIK,EAAIm6E,IAYpC,SAASuyN,KACPH,GAAgB9+T,MAAQ++T,GAE1B,SAASG,KACP,IAAIxC,EAAKC,EAAKzqS,EAAIK,EAAIm6E,EAgBtB,SAASowN,EAAUhhF,EAAGC,GACpBD,GAAKwvE,GACL,IAAIrvE,EAAOv7O,KAAKmrD,IAAIkwL,GAAKuvE,IAAaniT,EAAI8yO,EAAOv7O,KAAKmrD,IAAIiwL,GAAIhtO,EAAImtO,EAAOv7O,KAAKorD,IAAIgwL,GAAIlyO,EAAIlJ,KAAKorD,IAAIiwL,GAAIhtK,EAAKx8C,EAAK3oB,EAAI8iG,EAAK59F,EAAGkgE,EAAK09B,EAAKvjG,EAAI+oB,EAAKtoB,EAAGgkJ,EAAK17H,EAAKpjB,EAAIyjB,EAAKppB,EAAGpO,EAAI2F,KAAKuD,KAAK8qE,EAAKA,EAAKC,EAAKA,EAAK4+E,EAAKA,GAAK1vJ,EAAIg0B,EAAK/oB,EAAIopB,EAAKzjB,EAAI49F,EAAK9iG,EAAGnK,EAAI1E,IAAM2wT,GAAQxtT,GAAKnD,EAAG0d,EAAI/X,KAAKk0M,MAAM75M,EAAGmD,GAC/Rm+T,IAAqB58T,EAAIsvE,EACzButP,IAAqB78T,EAAIuvE,EACzButP,IAAqB98T,EAAImuJ,EACzBkuK,IAAqBrjT,EACrByjT,IAAqBzjT,GAAKyZ,GAAMA,EAAK/oB,IACrCgzT,IAAqB1jT,GAAK8Z,GAAMA,EAAKzjB,IACrCstT,IAAqB3jT,GAAKi0F,GAAMA,EAAK9iG,IACrCu1T,GAAwBjtS,EAAIK,EAAIm6E,GAzBlCoyN,GAAgB9+T,MAAQ,SAAS87O,EAAGC,GAClC2gF,EAAM5gF,EAAG6gF,EAAM5gF,EACf+iF,GAAgB9+T,MAAQ88T,EACxBhhF,GAAKwvE,GACL,IAAIrvE,EAAOv7O,KAAKmrD,IAAIkwL,GAAKuvE,IACzBp5R,EAAK+pN,EAAOv7O,KAAKmrD,IAAIiwL,GACrBvpN,EAAK0pN,EAAOv7O,KAAKorD,IAAIgwL,GACrBpvI,EAAKhsG,KAAKorD,IAAIiwL,GACdojF,GAAwBjtS,EAAIK,EAAIm6E,IAElCoyN,GAAgB3kF,QAAU,WACxB2iF,EAAUJ,EAAKC,GACfmC,GAAgB3kF,QAAU8kF,GAC1BH,GAAgB9+T,MAAQ++T,IAe5B,SAASK,GAAe5hU,EAAGC,GACzB,SAAS4hU,EAAQl2T,EAAG2F,GAClB,OAAO3F,EAAI3L,EAAE2L,EAAG2F,GAAIrR,EAAE0L,EAAE,GAAIA,EAAE,IAKhC,OAHI3L,EAAE4c,QAAU3c,EAAE2c,SAAQilT,EAAQjlT,OAAS,SAASjR,EAAG2F,GACrD,OAAO3F,EAAI1L,EAAE2c,OAAOjR,EAAG2F,GAAI3F,GAAK3L,EAAE4c,OAAOjR,EAAE,GAAIA,EAAE,MAE5Ck2T,EAET,SAASC,KACP,OAAO,EAET,SAASC,GAAmB5uP,EAAUthE,EAASmwT,EAAiBtpH,EAAaktG,GAC3E,IAAIoH,EAAU,GAAI/mM,EAAO,GAuBzB,GAtBA9yC,EAAS5e,SAAQ,SAASiqF,GACxB,MAAK5/I,EAAI4/I,EAAQl9I,OAAS,IAAM,GAAhC,CACA,IAAI1C,EAAGujF,EAAKq8D,EAAQ,GAAIp8D,EAAKo8D,EAAQ5/I,GACrC,GAAIshU,GAAsB/9O,EAAIC,GAA9B,CACEwjO,EAASnpE,YACT,IAAK,IAAIt/O,EAAI,EAAGA,EAAIyB,IAAKzB,EAAGyoT,EAASpjT,OAAO2/E,EAAKq8D,EAAQrhJ,IAAI,GAAIglF,EAAG,IACpEyjO,EAASjpE,cAHX,CAMA,IAAI38O,EAAI,IAAIiiU,GAA+B9/O,EAAIq8D,EAAS,MAAM,GAAOv+I,EAAI,IAAIgiU,GAA+B9/O,EAAI,KAAMniF,GAAG,GACzHA,EAAEpC,EAAIqC,EACN+sT,EAAQ5sT,KAAKJ,GACbimH,EAAK7lH,KAAKH,GACVD,EAAI,IAAIiiU,GAA+B7/O,EAAIo8D,EAAS,MAAM,GAC1Dv+I,EAAI,IAAIgiU,GAA+B7/O,EAAI,KAAMpiF,GAAG,GACpDA,EAAEpC,EAAIqC,EACN+sT,EAAQ5sT,KAAKJ,GACbimH,EAAK7lH,KAAKH,QAEZgmH,EAAK9hH,KAAK0N,GACVqwT,GAA+BlV,GAC/BkV,GAA+Bj8M,GAC1B+mM,EAAQ1rT,OAAb,CACA,IAAK,IAAInE,EAAI,EAAGi+F,EAAQ4mO,EAAiBpjU,EAAIqnH,EAAK3kH,OAAQnE,EAAIyB,IAAKzB,EACjE8oH,EAAK9oH,GAAG4d,EAAIqgF,GAASA,EAEvB,IAAwBh6F,EAAQoB,EAA5Bwe,EAAQgsS,EAAQ,GACpB,MAAO,EAAG,CACR,IAAIttQ,EAAU1+B,EAAOmhT,GAAY,EACjC,MAAOziR,EAAQz9C,EAAG,IAAKy9C,EAAUA,EAAQ9gD,KAAOoiB,EAAO,OACvD5f,EAASs+C,EAAQtzC,EACjBw5S,EAASnpE,YACT,EAAG,CAED,GADA/8L,EAAQz9C,EAAIy9C,EAAQ9hD,EAAEqE,GAAI,EACtBy9C,EAAQ3kC,EAAG,CACb,GAAIonT,EACF,IAAShlU,EAAI,EAAGyB,EAAIwC,EAAOE,OAAQnE,EAAIyB,IAAKzB,EAAGyoT,EAASpjT,OAAOA,EAAQpB,EAAOjE,IAAI,GAAIqF,EAAM,SAE5Fk2M,EAAYh5J,EAAQ/zC,EAAG+zC,EAAQ9gD,EAAE+M,EAAG,EAAGi6S,GAEzClmQ,EAAUA,EAAQ9gD,MACb,CACL,GAAIujU,EAAW,CACb/gU,EAASs+C,EAAQzgD,EAAEmN,EACnB,IAASjP,EAAIiE,EAAOE,OAAS,EAAGnE,GAAK,IAAKA,EAAGyoT,EAASpjT,OAAOA,EAAQpB,EAAOjE,IAAI,GAAIqF,EAAM,SAE1Fk2M,EAAYh5J,EAAQ/zC,EAAG+zC,EAAQzgD,EAAE0M,GAAI,EAAGi6S,GAE1ClmQ,EAAUA,EAAQzgD,EAEpBygD,EAAUA,EAAQ9hD,EAClBwD,EAASs+C,EAAQtzC,EACjB+1T,GAAaA,SACLziR,EAAQz9C,GAClB2jT,EAASjpE,YAGb,SAASulF,GAA+B/7R,GACtC,GAAMvnC,EAAIunC,EAAM7kC,OAAhB,CACA,IAAI1C,EAAwBqB,EAArB9C,EAAI,EAAG6C,EAAImmC,EAAM,GACxB,QAAShpC,EAAIyB,EACXoB,EAAEpB,EAAIqB,EAAIkmC,EAAMhpC,GAChB8C,EAAEhB,EAAIe,EACNA,EAAIC,EAEND,EAAEpB,EAAIqB,EAAIkmC,EAAM,GAChBlmC,EAAEhB,EAAIe,GAER,SAASiiU,GAA+Bz/T,EAAOpB,EAAQghU,EAAOhnO,GAC5Dr+F,KAAK4O,EAAInJ,EACTzF,KAAKqP,EAAIhL,EACTrE,KAAKa,EAAIwkU,EACTrlU,KAAKge,EAAIqgF,EACTr+F,KAAKkF,GAAI,EACTlF,KAAK6B,EAAI7B,KAAKkC,EAAI,KAEpB,SAASojU,GAAYC,EAAcC,EAAU7pH,EAAa8pH,GACxD,OAAO,SAAS/wT,EAAQm0S,GACtB,IAsDIzyO,EAtDAv9C,EAAO2sS,EAAS3c,GAAW6c,EAAmBhxT,EAAOmL,OAAO4lT,EAAU,GAAIA,EAAU,IACpFv8M,EAAO,CACTzjH,MAAOA,EACPi6O,UAAWA,EACXE,QAASA,EACTE,aAAc,WACZ52H,EAAKzjH,MAAQkgU,EACbz8M,EAAKw2H,UAAYikF,EACjBz6M,EAAK02H,QAAUgkF,EACfxtP,EAAW,GACXvU,EAAU,IAEZk+K,WAAY,WACV72H,EAAKzjH,MAAQA,EACbyjH,EAAKw2H,UAAYA,EACjBx2H,EAAK02H,QAAUA,EACfxpK,EAAW9mE,EAAGm+K,MAAMr3G,GACpB,IAAI6uP,EAAkBW,GAAsBF,EAAkB7jQ,GAC1DuU,EAAS7xE,QACNshU,IAAgBhd,EAAS/oE,eAAgB+lF,GAAiB,GAC/Db,GAAmB5uP,EAAU0vP,GAAiBb,EAAiBtpH,EAAaktG,IACnEoc,IACJY,IAAgBhd,EAAS/oE,eAAgB+lF,GAAiB,GAC/Dhd,EAASnpE,YACT/jC,EAAY,KAAM,KAAM,EAAGktG,GAC3BA,EAASjpE,WAEPimF,IAAgBhd,EAAS9oE,aAAc8lF,GAAiB,GAC5DzvP,EAAWvU,EAAU,MAEvBsgL,OAAQ,WACN0mE,EAAS/oE,eACT+oE,EAASnpE,YACT/jC,EAAY,KAAM,KAAM,EAAGktG,GAC3BA,EAASjpE,UACTipE,EAAS9oE,eAGb,SAASt6O,EAAM87O,EAAGC,GAChB,IAAI/7O,EAAQiP,EAAO6sO,EAAGC,GAClB+jF,EAAahkF,EAAI97O,EAAM,GAAI+7O,EAAI/7O,EAAM,KAAKojT,EAASpjT,MAAM87O,EAAGC,GAElE,SAASukF,EAAUxkF,EAAGC,GACpB,IAAI/7O,EAAQiP,EAAO6sO,EAAGC,GACtB3oN,EAAKpzB,MAAMA,EAAM,GAAIA,EAAM,IAE7B,SAASi6O,IACPx2H,EAAKzjH,MAAQsgU,EACbltS,EAAK6mN,YAEP,SAASE,IACP12H,EAAKzjH,MAAQA,EACbozB,EAAK+mN,UAGP,IAAmG/9K,EAASo+K,EAAxG11O,EAASy7T,KAA6BC,EAAeT,EAASj7T,GAASs7T,GAAiB,EAC5F,SAASF,EAAUpkF,EAAGC,GACpBvB,EAAK58O,KAAK,CAAEk+O,EAAGC,IACf,IAAI/7O,EAAQiP,EAAO6sO,EAAGC,GACtBykF,EAAaxgU,MAAMA,EAAM,GAAIA,EAAM,IAErC,SAASk+T,IACPsC,EAAavmF,YACbO,EAAO,GAET,SAAS2jF,IACP+B,EAAU1lF,EAAK,GAAG,GAAIA,EAAK,GAAG,IAC9BgmF,EAAarmF,UACb,IAAkEn+F,EAA9DlmF,EAAQ0qQ,EAAa1qQ,QAAS2qQ,EAAe37T,EAAOA,SAAmB1I,EAAIqkU,EAAa3hU,OAI5F,GAHA07O,EAAKt6O,MACLk8D,EAAQx+D,KAAK48O,GACbA,EAAO,KACFp+O,EACL,GAAY,EAAR05D,EAAJ,CACEkmF,EAAUykL,EAAa,GACnBrkU,EAAI4/I,EAAQl9I,OAAS,EAAzB,IAAoCkB,EAARrF,GAAK,EACjC,GAAIyB,EAAI,EAAG,CACJgkU,IAAgBhd,EAAS/oE,eAAgB+lF,GAAiB,GAC/Dhd,EAASnpE,YACT,QAASt/O,EAAIyB,EAAGgnT,EAASpjT,OAAOA,EAAQg8I,EAAQrhJ,IAAI,GAAIqF,EAAM,IAC9DojT,EAASjpE,gBAIT/9O,EAAI,GAAa,EAAR05D,GAAW2qQ,EAAa7iU,KAAK6iU,EAAavgU,MAAMwC,OAAO+9T,EAAan1Q,UACjFqlB,EAAS/yE,KAAK6iU,EAAajiU,OAAOkiU,KAEpC,OAAOj9M,GAGX,SAASi9M,GAA0B1kL,GACjC,OAAOA,EAAQl9I,OAAS,EAE1B,SAASyhU,KACP,IAAgBntS,EAAZloB,EAAQ,GACZ,MAAO,CACL+uO,UAAW,WACT/uO,EAAMtN,KAAKw1B,EAAO,KAEpBpzB,MAAO,SAAS87O,EAAGC,GACjB3oN,EAAKx1B,KAAK,CAAEk+O,EAAGC,KAEjB5B,QAAS4oE,EACTj+S,OAAQ,WACN,IAAIA,EAASoG,EAGb,OAFAA,EAAQ,GACRkoB,EAAO,KACAtuB,GAET67T,OAAQ,WACFz1T,EAAMpM,OAAS,GAAGoM,EAAMtN,KAAKsN,EAAMhL,MAAMwC,OAAOwI,EAAMogD,YAIhE,SAAS+0Q,GAAgB7iU,EAAGC,GAC1B,QAASD,EAAIA,EAAE2L,GAAG,GAAK,EAAI3L,EAAE,GAAK+9O,GAAQH,GAAIG,GAAQ/9O,EAAE,MAAQC,EAAIA,EAAE0L,GAAG,GAAK,EAAI1L,EAAE,GAAK89O,GAAQH,GAAIG,GAAQ99O,EAAE,IAEjH,IAAImjU,GAA0Bf,GAAYP,GAASuB,GAA6BC,GAAoC,EAAGxlF,IAAIA,GAAI,IAC/H,SAASulF,GAA4Bzd,GACnC,IAAmCttP,EAA/B6mL,EAAKxhL,IAAKyhL,EAAKzhL,IAAK4lQ,EAAM5lQ,IAC9B,MAAO,CACL8+K,UAAW,WACTmpE,EAASnpE,YACTnkL,EAAQ,GAEV91D,MAAO,SAAS29T,EAAI9gF,GAClB,IAAImkF,EAAMrD,EAAK,EAAIriF,IAAKA,GAAGyhF,EAAKtqT,EAAIkrT,EAAKhhF,GACrClqO,EAAIsqT,EAAKzhF,IAAKF,IAChBgoE,EAASpjT,MAAM28O,EAAIC,GAAMA,EAAKC,GAAM,EAAI,EAAItB,IAASA,IACrD6nE,EAASpjT,MAAM+gU,EAAKnkF,GACpBwmE,EAASjpE,UACTipE,EAASnpE,YACTmpE,EAASpjT,MAAMghU,EAAKpkF,GACpBwmE,EAASpjT,MAAM29T,EAAI/gF,GACnB9mL,EAAQ,GACCirQ,IAAQC,GAAOjE,GAAMzhF,KAC1B7oO,EAAIkqO,EAAKokF,GAAO3lF,KAAGuB,GAAMokF,EAAM3lF,IAC/B3oO,EAAIkrT,EAAKqD,GAAO5lF,KAAGuiF,GAAMqD,EAAM5lF,IACnCwB,EAAKqkF,GAAiCtkF,EAAIC,EAAI+gF,EAAI9gF,GAClDumE,EAASpjT,MAAM+gU,EAAKnkF,GACpBwmE,EAASjpE,UACTipE,EAASnpE,YACTmpE,EAASpjT,MAAMghU,EAAKpkF,GACpB9mL,EAAQ,GAEVstP,EAASpjT,MAAM28O,EAAKghF,EAAI/gF,EAAKC,GAC7BkkF,EAAMC,GAER7mF,QAAS,WACPipE,EAASjpE,UACTwC,EAAKC,EAAKzhL,KAEZrF,MAAO,WACL,OAAO,EAAIA,IAIjB,SAASmrQ,GAAiCtkF,EAAIC,EAAI+gF,EAAI9gF,GACpD,IAAI+/E,EAAOsE,EAAOC,EAAWzgU,KAAKorD,IAAI6wL,EAAKghF,GAC3C,OAAOlrT,EAAI0uT,GAAY/lF,GAAI16O,KAAKmhH,MAAMnhH,KAAKorD,IAAI8wL,IAAOskF,EAAQxgU,KAAKmrD,IAAIgxL,IAAOn8O,KAAKorD,IAAI6xQ,GAAMj9T,KAAKorD,IAAI+wL,IAAO+/E,EAAQl8T,KAAKmrD,IAAI+wL,IAAOl8O,KAAKorD,IAAI6wL,KAAQigF,EAAQsE,EAAQC,KAAcvkF,EAAKC,GAAM,EAEjM,SAASikF,GAAmCh6N,EAAMk/E,EAAItyG,EAAW0vO,GAC/D,IAAIrnE,EACJ,GAAY,MAARj1I,EACFi1I,EAAIroK,EAAY6nK,GAChB6nE,EAASpjT,OAAOs7O,GAAGS,GACnBqnE,EAASpjT,MAAM,EAAG+7O,GAClBqnE,EAASpjT,MAAMs7O,GAAGS,GAClBqnE,EAASpjT,MAAMs7O,GAAG,GAClB8nE,EAASpjT,MAAMs7O,IAAIS,GACnBqnE,EAASpjT,MAAM,GAAI+7O,GACnBqnE,EAASpjT,OAAOs7O,IAAIS,GACpBqnE,EAASpjT,OAAOs7O,GAAG,GACnB8nE,EAASpjT,OAAOs7O,GAAGS,QACd,GAAItpO,EAAIq0F,EAAK,GAAKk/E,EAAG,IAAMo1D,GAAG,CACnC,IAAI1+O,EAAIoqG,EAAK,GAAKk/E,EAAG,GAAKs1D,IAAKA,GAC/BS,EAAIroK,EAAYh3E,EAAI,EACpB0mT,EAASpjT,OAAOtD,EAAGq/O,GACnBqnE,EAASpjT,MAAM,EAAG+7O,GAClBqnE,EAASpjT,MAAMtD,EAAGq/O,QAElBqnE,EAASpjT,MAAMgmL,EAAG,GAAIA,EAAG,IAG7B,SAASm6I,GAAsBngU,EAAOo8D,GACpC,IAAIglQ,EAAWphU,EAAM,GAAIqhU,EAAWrhU,EAAM,GAAIshU,EAAiB,CAAE5gU,KAAKorD,IAAIs1Q,IAAY1gU,KAAKmrD,IAAIu1Q,GAAW,GAAKG,EAAa,EAAGx4I,EAAU,EACzIyzI,GAAmB/rS,QACnB,IAAK,IAAI91B,EAAI,EAAGyB,EAAIggE,EAAQt9D,OAAQnE,EAAIyB,IAAKzB,EAAG,CAC9C,IAAI6/O,EAAOp+K,EAAQzhE,GAAII,EAAIy/O,EAAK17O,OAChC,GAAK/D,EAAL,CACA,IAAIymU,EAAShnF,EAAK,GAAImC,EAAK6kF,EAAO,GAAI5kF,EAAK4kF,EAAO,GAAK,EAAIlmF,GAAI,EAAGuhF,EAAQn8T,KAAKorD,IAAI8wL,GAAKggF,EAAQl8T,KAAKmrD,IAAI+wL,GAAKr9O,EAAI,EAClH,MAAO,EAAM,CACPA,IAAMxE,IAAGwE,EAAI,GACjBS,EAAQw6O,EAAKj7O,GACb,IAAIu8O,EAAI97O,EAAM,GAAI+7O,EAAI/7O,EAAM,GAAK,EAAIs7O,GAAI,EAAG0D,EAAOt+O,KAAKorD,IAAIiwL,GAAIE,EAAOv7O,KAAKmrD,IAAIkwL,GAAIghF,EAAKjhF,EAAIa,EAAIqgF,EAAMD,GAAM,EAAI,GAAK,EAAGE,EAAMD,EAAMD,EAAIyB,EAAevB,EAAM3hF,GAAG57O,EAAIm9T,EAAQ79E,EAG7K,GAFAw9E,GAAmB5lT,IAAIlW,KAAKk0M,MAAMl1M,EAAIs9T,EAAMt8T,KAAKorD,IAAImxQ,GAAML,EAAQ3gF,EAAOv8O,EAAIgB,KAAKmrD,IAAIoxQ,KACvFsE,GAAc/C,EAAezB,EAAKC,EAAM5R,GAAI2R,EACxCyB,EAAe7hF,GAAMykF,EAAWtlF,GAAKslF,EAAU,CACjD,IAAI34M,EAAM40M,GAAsBH,GAAiBsE,GAAStE,GAAiBl9T,IAC3Ew9T,GAA0B/0M,GAC1B,IAAIg5M,EAAepE,GAAsBiE,EAAgB74M,GACzD+0M,GAA0BiE,GAC1B,IAAIC,GAAQlD,EAAezB,GAAM,GAAK,EAAI,GAAKpR,GAAQ8V,EAAa,KAChEJ,EAAWK,GAAQL,IAAaK,IAASj5M,EAAI,IAAMA,EAAI,OACzDsgE,GAAWy1I,EAAezB,GAAM,EAAI,GAAK,GAG7C,IAAKx9T,IAAK,MACVo9O,EAAKb,EAAG+gF,EAAQ79E,EAAM49E,EAAQ3gF,EAAMulF,EAASxhU,IAGjD,OAAQuhU,GAAcnmF,IAAKmmF,EAAanmF,IAAKohF,IAAsBphF,IAAe,EAAVryD,EAE1E,SAAS44I,GAAkB5+P,GACzB,IAAI6+P,EAAKlhU,KAAKmrD,IAAIkX,GAAS8+P,EAAcD,EAAK,EAAGE,EAAgBrvT,EAAImvT,GAAMxmF,GAAGllC,EAAc6rH,GAAyBh/P,EAAQ,EAAIuoP,IACjI,OAAOuU,GAAY/yT,EAASizT,EAAU7pH,EAAa2rH,EAAc,CAAE,GAAI9+P,GAAW,EAAGu4K,GAAGv4K,EAASu4K,KACjG,SAASxuO,EAAQgvO,EAAGC,GAClB,OAAOr7O,KAAKmrD,IAAIiwL,GAAKp7O,KAAKmrD,IAAIkwL,GAAK6lF,EAErC,SAAS7B,EAAS3c,GAChB,IAAIoe,EAAQ7yN,EAAIh7C,EAAIquQ,EAAKlsQ,EACzB,MAAO,CACLmkL,UAAW,WACT+nF,EAAMruQ,GAAK,EACXmC,EAAQ,GAEV91D,MAAO,SAAS87O,EAAGC,GACjB,IAAuBkmF,EAAnBC,EAAS,CAAEpmF,EAAGC,GAAat8O,EAAIqN,EAAQgvO,EAAGC,GAAI/gP,EAAI6mU,EAAcpiU,EAAI,EAAI9B,EAAKm+O,EAAGC,GAAKt8O,EAAI9B,EAAKm+O,GAAKA,EAAI,EAAIR,IAAKA,IAAIS,GAAK,EAU7H,IATKylF,IAAWQ,EAAMruQ,EAAKl0D,IAAI2jT,EAASnpE,YACpCx6O,IAAMk0D,IACRsuQ,EAAS5gL,EAAUmgL,EAAQU,IACvBxE,GAAsB8D,EAAQS,IAAWvE,GAAsBwE,EAAQD,MACzEC,EAAO,IAAM9mF,GACb8mF,EAAO,IAAM9mF,GACb37O,EAAIqN,EAAQo1T,EAAO,GAAIA,EAAO,MAG9BziU,IAAMk0D,EACRmC,EAAQ,EACJr2D,GACF2jT,EAASnpE,YACTgoF,EAAS5gL,EAAU6gL,EAAQV,GAC3Bpe,EAASpjT,MAAMiiU,EAAO,GAAIA,EAAO,MAEjCA,EAAS5gL,EAAUmgL,EAAQU,GAC3B9e,EAASpjT,MAAMiiU,EAAO,GAAIA,EAAO,IACjC7e,EAASjpE,WAEXqnF,EAASS,OACJ,GAAIH,GAAiBN,GAAUK,EAAcpiU,EAAG,CACrD,IAAI5D,EACEb,EAAI2zG,KAAQ9yG,EAAIwlJ,EAAU6gL,EAAQV,GAAQ,MAC9C1rQ,EAAQ,EACJ+rQ,GACFze,EAASnpE,YACTmpE,EAASpjT,MAAMnE,EAAE,GAAG,GAAIA,EAAE,GAAG,IAC7BunT,EAASpjT,MAAMnE,EAAE,GAAG,GAAIA,EAAE,GAAG,IAC7BunT,EAASjpE,YAETipE,EAASpjT,MAAMnE,EAAE,GAAG,GAAIA,EAAE,GAAG,IAC7BunT,EAASjpE,UACTipE,EAASnpE,YACTmpE,EAASpjT,MAAMnE,EAAE,GAAG,GAAIA,EAAE,GAAG,OAI/B4D,GAAO+hU,GAAW9D,GAAsB8D,EAAQU,IAClD9e,EAASpjT,MAAMkiU,EAAO,GAAIA,EAAO,IAEnCV,EAASU,EAAQvuQ,EAAKl0D,EAAGkvG,EAAK3zG,GAEhCm/O,QAAS,WACHxmL,GAAIyvP,EAASjpE,UACjBqnF,EAAS,MAEX1rQ,MAAO,WACL,OAAOA,GAASksQ,GAAOruQ,IAAO,IAIpC,SAAS0tF,EAAU7jJ,EAAGC,EAAG0kU,GACvB,IAAI7wP,EAAK4rP,GAAiB1/T,GAAI03P,EAAKgoE,GAAiBz/T,GAChD2kU,EAAK,CAAE,EAAG,EAAG,GAAKC,EAAKhF,GAAsB/rP,EAAI4jL,GAAKotE,EAAOlF,GAAoBiF,EAAIA,GAAKE,EAAOF,EAAG,GAAIn3P,EAAco3P,EAAOC,EAAOA,EACxI,IAAKr3P,EAAa,OAAQi3P,GAAO3kU,EACjC,IAAIoxG,EAAKgzN,EAAKU,EAAOp3P,EAAau0L,GAAMmiE,EAAKW,EAAOr3P,EAAas3P,EAAQnF,GAAsB+E,EAAIC,GAAKlxI,EAAIosI,GAAsB6E,EAAIxzN,GAAKo4F,EAAIu2H,GAAsB8E,EAAI5iE,GACzK69D,GAAoBnsI,EAAG6V,GACvB,IAAI9oM,EAAIskU,EAAO/pT,EAAI2kT,GAAoBjsI,EAAGjzL,GAAIsD,EAAK47T,GAAoBl/T,EAAGA,GAAI42B,EAAKrc,EAAIA,EAAIjX,GAAM47T,GAAoBjsI,EAAGA,GAAK,GAC7H,KAAIr8J,EAAK,GAAT,CACA,IAAIj5B,EAAI6E,KAAKuD,KAAK6wB,GAAK6tC,EAAI46P,GAAsBr/T,IAAKua,EAAI5c,GAAK2F,GAG/D,GAFA87T,GAAoB36P,EAAGwuH,GACvBxuH,EAAI86P,GAAiB96P,IAChBw/P,EAAK,OAAOx/P,EACjB,IAAgD/4D,EAA5C+yO,EAAKn/O,EAAE,GAAImgU,EAAKlgU,EAAE,GAAIm/O,EAAKp/O,EAAE,GAAIq/O,EAAKp/O,EAAE,GACxCkgU,EAAKhhF,IAAI/yO,EAAI+yO,EAAIA,EAAKghF,EAAIA,EAAK/zT,GACnC,IAAI+1O,EAAKg+E,EAAKhhF,EAAI8lF,EAAQhwT,EAAIktO,EAAKrE,IAAKF,GAAGgmF,EAAWqB,GAAS9iF,EAAKvE,GAEpE,IADKqnF,GAAS5lF,EAAKD,IAAIhzO,EAAIgzO,EAAIA,EAAKC,EAAIA,EAAKjzO,GACzCw3T,EAAWqB,EAAQ7lF,EAAKC,EAAK,EAAIl6K,EAAE,IAAMlwD,EAAIkwD,EAAE,GAAKg6K,GAAMvB,GAAIwB,EAAKC,GAAMD,GAAMj6K,EAAE,IAAMA,EAAE,IAAMk6K,EAAK8C,EAAKrE,IAAKqB,GAAMh6K,EAAE,IAAMA,EAAE,IAAMg7P,GAAK,CAC3I,IAAI15L,EAAKs5L,GAAsBr/T,IAAKua,EAAI5c,GAAK2F,GAE7C,OADA87T,GAAoBr5L,EAAIktD,GACjB,CAAExuH,EAAG86P,GAAiBx5L,MAGjC,SAAStmI,EAAKm+O,EAAGC,GACf,IAAItgP,EAAIomU,EAAc9+P,EAASu4K,GAAIv4K,EAAQplE,EAAO,EAGlD,OAFIm+O,GAAKrgP,EAAGkC,GAAQ,EAAYm+O,EAAIrgP,IAAGkC,GAAQ,GAC3Co+O,GAAKtgP,EAAGkC,GAAQ,EAAYo+O,EAAItgP,IAAGkC,GAAQ,GACxCA,GAGX,SAAS+kU,GAAiBxwS,EAAIK,EAAIJ,EAAIK,GACpC,OAAO,SAASY,GACd,IAAgH33B,EAA5G+B,EAAI41B,EAAK51B,EAAGC,EAAI21B,EAAK31B,EAAGujB,EAAKxjB,EAAE2L,EAAGo8F,EAAK/nG,EAAEsR,EAAG0rJ,EAAK/8J,EAAE0L,EAAGsxJ,EAAKh9J,EAAEqR,EAAGvG,EAAK,EAAGssB,EAAK,EAAGd,EAAKymI,EAAKx5I,EAAI+D,EAAK01I,EAAKl1D,EAE5G,GADA9pG,EAAIy2B,EAAKlR,EACJ+S,KAAMt4B,EAAI,GAAf,CAEA,GADAA,GAAKs4B,EACDA,EAAK,EAAG,CACV,GAAIt4B,EAAI8M,EAAI,OACR9M,EAAIo5B,IAAIA,EAAKp5B,QACZ,GAAIs4B,EAAK,EAAG,CACjB,GAAIt4B,EAAIo5B,EAAI,OACRp5B,EAAI8M,IAAIA,EAAK9M,GAGnB,GADAA,EAAI02B,EAAKnR,EACJ+S,KAAMt4B,EAAI,GAAf,CAEA,GADAA,GAAKs4B,EACDA,EAAK,EAAG,CACV,GAAIt4B,EAAIo5B,EAAI,OACRp5B,EAAI8M,IAAIA,EAAK9M,QACZ,GAAIs4B,EAAK,EAAG,CACjB,GAAIt4B,EAAI8M,EAAI,OACR9M,EAAIo5B,IAAIA,EAAKp5B,GAGnB,GADAA,EAAI82B,EAAKgzE,EACJxgF,KAAMtpB,EAAI,GAAf,CAEA,GADAA,GAAKspB,EACDA,EAAK,EAAG,CACV,GAAItpB,EAAI8M,EAAI,OACR9M,EAAIo5B,IAAIA,EAAKp5B,QACZ,GAAIspB,EAAK,EAAG,CACjB,GAAItpB,EAAIo5B,EAAI,OACRp5B,EAAI8M,IAAIA,EAAK9M,GAGnB,GADAA,EAAI+2B,EAAK+yE,EACJxgF,KAAMtpB,EAAI,GAAf,CAEA,GADAA,GAAKspB,EACDA,EAAK,EAAG,CACV,GAAItpB,EAAIo5B,EAAI,OACRp5B,EAAI8M,IAAIA,EAAK9M,QACZ,GAAIspB,EAAK,EAAG,CACjB,GAAItpB,EAAI8M,EAAI,OACR9M,EAAIo5B,IAAIA,EAAKp5B,GAUnB,OARI8M,EAAK,IAAG6qB,EAAK51B,EAAI,CACnB2L,EAAG6X,EAAKzY,EAAKwrB,EACbjlB,EAAGy2F,EAAKh9F,EAAKwc,IAEX8P,EAAK,IAAGzB,EAAK31B,EAAI,CACnB0L,EAAG6X,EAAK6T,EAAKd,EACbjlB,EAAGy2F,EAAK1wE,EAAK9P,IAERqO,OAGX,IAAIuvS,GAAuB,IAkB3B,SAASC,GAAkB1wS,EAAIK,EAAIJ,EAAIK,GACrC,OAAO,SAAS4wR,GACd,IAAqHzyO,EAAUvU,EAASo+K,EA6DpIqoF,EAAKC,EAAKC,EAAKC,EAAIC,EAAIC,EAAIxyS,EAAOolC,EA7DlCqtQ,EAAY/f,EAAUggB,EAAiB7C,KAA6BR,EAAW2C,GAAiBxwS,EAAIK,EAAIJ,EAAIK,GAC5GixF,EAAO,CACTzjH,MAAOA,EACPi6O,UAAWA,EACXE,QAASA,EACTE,aAAc,WACZ+oE,EAAWggB,EACXzyP,EAAW,GACXvU,EAAU,GACVtG,GAAQ,GAEVwkL,WAAY,WACV8oE,EAAW+f,EACXxyP,EAAW9mE,EAAGm+K,MAAMr3G,GACpB,IAAI6uP,EAAkB6D,EAAc,CAAEnxS,EAAIM,IAAO0mK,EAASpjI,GAAS0pQ,EAAiB1yT,EAAU6jE,EAAS7xE,QACnGo6L,GAAUpsL,KACZs2S,EAAS/oE,eACLnhD,IACFkqH,EAASnpE,YACT/jC,EAAY,KAAM,KAAM,EAAGktG,GAC3BA,EAASjpE,WAEPrtO,GACFyyT,GAAmB5uP,EAAUthE,EAASmwT,EAAiBtpH,EAAaktG,GAEtEA,EAAS9oE,cAEX3pK,EAAWvU,EAAUo+K,EAAO,OAGhC,SAAS6oF,EAAc5mU,GAErB,IADA,IAAI6mU,EAAK,EAAGlnU,EAAIggE,EAAQt9D,OAAQgQ,EAAIrS,EAAE,GAC7B9B,EAAI,EAAGA,EAAIyB,IAAKzB,EACvB,IAAK,IAAmD8C,EAA/C8B,EAAI,EAAGE,EAAI28D,EAAQzhE,GAAII,EAAI0E,EAAEX,OAAQtB,EAAIiC,EAAE,GAAOF,EAAIxE,IAAKwE,EAClE9B,EAAIgC,EAAEF,GACF/B,EAAE,IAAMsR,EACNrR,EAAE,GAAKqR,GAAK28S,GAAWjuT,EAAGC,EAAGhB,GAAK,KAAK6mU,EAEvC7lU,EAAE,IAAMqR,GAAK28S,GAAWjuT,EAAGC,EAAGhB,GAAK,KAAK6mU,EAE9C9lU,EAAIC,EAGR,OAAc,IAAP6lU,EAET,SAASptH,EAAYpvG,EAAMk/E,EAAItyG,EAAW0vO,GACxC,IAAI5lT,EAAI,EAAGkuG,EAAK,EAChB,GAAY,MAAR5E,IAAiBtpG,EAAIipC,EAAOqgE,EAAMpzB,OAAiBg4B,EAAKjlE,EAAOu/I,EAAItyG,KAAe6vP,EAAcz8N,EAAMk/E,GAAM,EAAItyG,EAAY,EAC9H,GACE0vO,EAASpjT,MAAY,IAANxC,GAAiB,IAANA,EAAU00B,EAAKC,EAAI30B,EAAI,EAAIg1B,EAAKD,UAClD/0B,GAAKA,EAAIk2E,EAAY,GAAK,KAAOg4B,QAE3C03M,EAASpjT,MAAMgmL,EAAG,GAAIA,EAAG,IAG7B,SAAS85I,EAAa32T,EAAG2F,GACvB,OAAOojB,GAAM/oB,GAAKA,GAAKgpB,GAAMI,GAAMzjB,GAAKA,GAAK0jB,EAE/C,SAASxyB,EAAMmJ,EAAG2F,GACZgxT,EAAa32T,EAAG2F,IAAIs0S,EAASpjT,MAAMmJ,EAAG2F,GAG5C,SAASmrO,IACPx2H,EAAKzjH,MAAQo+T,EACThiQ,GAASA,EAAQx+D,KAAK48O,EAAO,IACjC9pN,GAAQ,EACRwyS,GAAK,EACLF,EAAKC,EAAK9nQ,IAEZ,SAASg/K,IACHxpK,IACFytP,EAAUyE,EAAKC,GACXC,GAAOG,GAAIE,EAAezC,SAC9BhwP,EAAS/yE,KAAKwlU,EAAet+T,WAE/B2+G,EAAKzjH,MAAQA,EACTkjU,GAAI9f,EAASjpE,UAEnB,SAASikF,EAAUj1T,EAAG2F,GACpB3F,EAAIzI,KAAKqC,KAAK4/T,GAAsBjiU,KAAKoC,IAAI6/T,GAAsBx5T,IACnE2F,EAAIpO,KAAKqC,KAAK4/T,GAAsBjiU,KAAKoC,IAAI6/T,GAAsB7zT,IACnE,IAAIrP,EAAIqgU,EAAa32T,EAAG2F,GAExB,GADIstD,GAASo+K,EAAK58O,KAAK,CAAEuL,EAAG2F,IACxB4hB,EACFmyS,EAAM15T,EAAG25T,EAAMh0T,EAAGi0T,EAAMtjU,EACxBixB,GAAQ,EACJjxB,IACF2jT,EAASnpE,YACTmpE,EAASpjT,MAAMmJ,EAAG2F,SAGpB,GAAIrP,GAAKyjU,EAAI9f,EAASpjT,MAAMmJ,EAAG2F,OAAS,CACtC,IAAIlU,EAAI,CACN4C,EAAG,CACD2L,EAAG65T,EACHl0T,EAAGm0T,GAELxlU,EAAG,CACD0L,EAAGA,EACH2F,EAAGA,IAGHixT,EAASnlU,IACNsoU,IACH9f,EAASnpE,YACTmpE,EAASpjT,MAAMpF,EAAE4C,EAAE2L,EAAGvO,EAAE4C,EAAEsR,IAE5Bs0S,EAASpjT,MAAMpF,EAAE6C,EAAE0L,EAAGvO,EAAE6C,EAAEqR,GACrBrP,GAAG2jT,EAASjpE,UACjBrkL,GAAQ,GACCr2D,IACT2jT,EAASnpE,YACTmpE,EAASpjT,MAAMmJ,EAAG2F,GAClBgnD,GAAQ,GAIdktQ,EAAK75T,EAAG85T,EAAKn0T,EAAGo0T,EAAKzjU,EAEvB,OAAOgkH,GAET,SAASh9E,EAAOhqC,EAAGi3E,GACjB,OAAOjhE,EAAIhW,EAAE,GAAKy1B,GAAMkpN,GAAI1nK,EAAY,EAAI,EAAI,EAAIjhE,EAAIhW,EAAE,GAAK01B,GAAMipN,GAAI1nK,EAAY,EAAI,EAAI,EAAIjhE,EAAIhW,EAAE,GAAK81B,GAAM6oN,GAAI1nK,EAAY,EAAI,EAAI,EAAIA,EAAY,EAAI,EAAI,EAEpK,SAASrkE,EAAQ7R,EAAGC,GAClB,OAAO8lU,EAAc/lU,EAAE2L,EAAG1L,EAAE0L,GAE9B,SAASo6T,EAAc/lU,EAAGC,GACxB,IAAI+lU,EAAK/8R,EAAOjpC,EAAG,GAAIooK,EAAKn/H,EAAOhpC,EAAG,GACtC,OAAO+lU,IAAO59J,EAAK49J,EAAK59J,EAAY,IAAP49J,EAAW/lU,EAAE,GAAKD,EAAE,GAAY,IAAPgmU,EAAWhmU,EAAE,GAAKC,EAAE,GAAY,IAAP+lU,EAAWhmU,EAAE,GAAKC,EAAE,GAAKA,EAAE,GAAKD,EAAE,IAGrH,SAASimU,GAAaC,GACpB,IAAI9mF,EAAK,EAAGC,EAAKvB,GAAI,EAAGvgP,EAAI4oU,GAAyBD,GAAYjnU,EAAI1B,EAAE6hP,EAAIC,GAK3E,OAJApgP,EAAE4yO,UAAY,SAAS5tK,GACrB,OAAK1rD,UAAUjX,OACR/D,EAAE6hP,EAAKn7K,EAAE,GAAK65K,GAAI,IAAKuB,EAAKp7K,EAAE,GAAK65K,GAAI,KADhB,CAAEsB,EAAKtB,GAAI,IAAKuB,EAAKvB,GAAI,MAGlD7+O,EAET,SAASmnU,GAAsBhnF,EAAIC,GACjC,IAAIggF,EAAQn8T,KAAKorD,IAAI8wL,GAAKxgP,GAAKygU,EAAQn8T,KAAKorD,IAAI+wL,IAAO,EAAG51C,EAAI,EAAI41H,GAAS,EAAIzgU,EAAIygU,GAAQgH,EAAKnjU,KAAKuD,KAAKgjM,GAAK7qM,EAC/G,SAASggP,EAAQN,EAAGC,GAClB,IAAIiwE,EAAItrT,KAAKuD,KAAKgjM,EAAI,EAAI7qM,EAAIsE,KAAKorD,IAAIiwL,IAAM3/O,EAC7C,MAAO,CAAE4vT,EAAItrT,KAAKorD,IAAIgwL,GAAK1/O,GAAIynU,EAAK7X,EAAItrT,KAAKmrD,IAAIiwL,IAMnD,OAJAM,EAAQhiO,OAAS,SAASjR,EAAG2F,GAC3B,IAAIg1T,EAAOD,EAAK/0T,EAChB,MAAO,CAAEpO,KAAKk0M,MAAMzrM,EAAG26T,GAAQ1nU,EAAGuvT,IAAS1kH,GAAK99L,EAAIA,EAAI26T,EAAOA,GAAQ1nU,EAAIA,IAAM,EAAIA,MAEhFggP,EAzKTvyO,EAAGkoB,IAAIgyS,WAAa,WAClB,IAAI7xS,EAAIK,EAAIJ,EAAIK,EAAIk4E,EAAQ+Y,EAAMsgN,EAAa,CAC7Cr5N,OAAQ,SAASv8F,GAIf,OAHIu8F,IAAQA,EAAO/xF,OAAQ,GAC3B+xF,EAAS+Y,EAAKt1G,GACdu8F,EAAO/xF,OAAQ,EACR+xF,GAET1mC,OAAQ,SAASvC,GACf,OAAK1rD,UAAUjX,QACf2kH,EAAOm/M,GAAkB1wS,GAAMuvC,EAAE,GAAG,GAAIlvC,GAAMkvC,EAAE,GAAG,GAAItvC,GAAMsvC,EAAE,GAAG,GAAIjvC,GAAMivC,EAAE,GAAG,IAC7EipC,IAAQA,EAAO/xF,OAAQ,EAAO+xF,EAAS,MACpCq5N,GAHuB,CAAE,CAAE7xS,EAAIK,GAAM,CAAEJ,EAAIK,MAMtD,OAAOuxS,EAAW//P,OAAO,CAAE,CAAE,EAAG,GAAK,CAAE,IAAK,SA4J7Cn6D,EAAGkoB,IAAIiyS,eAAiB,WACvB,OAAOP,GAAaG,MACnBzqM,IAAMyqM,GACT/5T,EAAGkoB,IAAIkyS,OAAS,WACd,OAAOp6T,EAAGkoB,IAAIiyS,iBAAiB/0T,OAAO,CAAE,GAAI,IAAKwsB,OAAO,EAAG,GAAI,OAAQ4zM,UAAU,CAAE,KAAM,OAAQ/uK,MAAM,OAEzGz2D,EAAGkoB,IAAImyS,UAAY,WACjB,IAGIlkU,EAIDmkU,EAAcC,EAAaC,EAP1BC,EAAUz6T,EAAGkoB,IAAIkyS,SACjBM,EAAS16T,EAAGkoB,IAAIiyS,iBAAiB/0T,OAAO,CAAE,IAAK,IAAKwsB,OAAO,EAAG,EAAG,OAAQ4zM,UAAU,CAAE,GAAI,KACzFm1F,EAAS36T,EAAGkoB,IAAIiyS,iBAAiB/0T,OAAO,CAAE,IAAK,IAAKwsB,OAAO,EAAG,EAAG,OAAQ4zM,UAAU,CAAE,EAAG,KACjFo1F,EAAc,CACvBzkU,MAAO,SAASmJ,EAAG2F,GACjB9O,EAAQ,CAAEmJ,EAAG2F,KAGjB,SAASo1T,EAAU3mQ,GACjB,IAAIp0D,EAAIo0D,EAAY,GAAIzuD,EAAIyuD,EAAY,GAGxC,OAFAv9D,EAAQ,KACPmkU,EAAah7T,EAAG2F,GAAI9O,IAAWokU,EAAYj7T,EAAG2F,GAAI9O,IAAUqkU,EAAYl7T,EAAG2F,GACrE9O,EA+DT,OA7DAkkU,EAAU9pT,OAAS,SAASmjD,GAC1B,IAAI79D,EAAI4kU,EAAQhkQ,QAASzkE,EAAIyoU,EAAQ9vG,YAAarrN,GAAKo0D,EAAY,GAAK1hE,EAAE,IAAM6D,EAAGoP,GAAKyuD,EAAY,GAAK1hE,EAAE,IAAM6D,EACjH,OAAQoP,GAAK,KAAOA,EAAI,MAAQ3F,IAAM,MAAQA,GAAK,KAAOo7T,EAASz1T,GAAK,MAAQA,EAAI,MAAQ3F,IAAM,MAAQA,GAAK,KAAOq7T,EAASF,GAASlqT,OAAOmjD,IAEjJ2mQ,EAAUx5N,OAAS,SAASA,GAC1B,IAAIg6N,EAAgBJ,EAAQ55N,OAAOA,GAASi6N,EAAeJ,EAAO75N,OAAOA,GAASk6N,EAAeJ,EAAO95N,OAAOA,GAC/G,MAAO,CACL1qG,MAAO,SAASmJ,EAAG2F,GACjB41T,EAAc1kU,MAAMmJ,EAAG2F,GACvB61T,EAAa3kU,MAAMmJ,EAAG2F,GACtB81T,EAAa5kU,MAAMmJ,EAAG2F,IAExB4tO,OAAQ,WACNgoF,EAAchoF,SACdioF,EAAajoF,SACbkoF,EAAaloF,UAEfzC,UAAW,WACTyqF,EAAczqF,YACd0qF,EAAa1qF,YACb2qF,EAAa3qF,aAEfE,QAAS,WACPuqF,EAAcvqF,UACdwqF,EAAaxqF,UACbyqF,EAAazqF,WAEfE,aAAc,WACZqqF,EAAcrqF,eACdsqF,EAAatqF,eACbuqF,EAAavqF,gBAEfC,WAAY,WACVoqF,EAAcpqF,aACdqqF,EAAarqF,aACbsqF,EAAatqF,gBAInB4pF,EAAU3qR,UAAY,SAASkoB,GAC7B,OAAK1rD,UAAUjX,QACfwlU,EAAQ/qR,UAAUkoB,GAClB8iQ,EAAOhrR,UAAUkoB,GACjB+iQ,EAAOjrR,UAAUkoB,GACVyiQ,GAJuBI,EAAQ/qR,aAMxC2qR,EAAU5jQ,MAAQ,SAASmB,GACzB,OAAK1rD,UAAUjX,QACfwlU,EAAQhkQ,MAAMmB,GACd8iQ,EAAOjkQ,MAAU,IAAJmB,GACb+iQ,EAAOlkQ,MAAMmB,GACNyiQ,EAAU1vG,UAAU8vG,EAAQ9vG,cAJL8vG,EAAQhkQ,SAMxC4jQ,EAAU1vG,UAAY,SAAS/yJ,GAC7B,IAAK1rD,UAAUjX,OAAQ,OAAOwlU,EAAQ9vG,YACtC,IAAI90N,EAAI4kU,EAAQhkQ,QAASn3D,GAAKs4D,EAAE,GAAI3yD,GAAK2yD,EAAE,GAI3C,OAHA0iQ,EAAeG,EAAQ9vG,UAAU/yJ,GAAGsiQ,WAAW,CAAE,CAAE56T,EAAI,KAAOzJ,EAAGoP,EAAI,KAAOpP,GAAK,CAAEyJ,EAAI,KAAOzJ,EAAGoP,EAAI,KAAOpP,KAAOgrG,OAAO+5N,GAAazkU,MACvIokU,EAAcG,EAAO/vG,UAAU,CAAErrN,EAAI,KAAOzJ,EAAGoP,EAAI,KAAOpP,IAAKqkU,WAAW,CAAE,CAAE56T,EAAI,KAAOzJ,EAAI07O,GAAGtsO,EAAI,IAAMpP,EAAI07O,IAAK,CAAEjyO,EAAI,KAAOzJ,EAAI07O,GAAGtsO,EAAI,KAAOpP,EAAI07O,MAAO1wI,OAAO+5N,GAAazkU,MACjLqkU,EAAcG,EAAOhwG,UAAU,CAAErrN,EAAI,KAAOzJ,EAAGoP,EAAI,KAAOpP,IAAKqkU,WAAW,CAAE,CAAE56T,EAAI,KAAOzJ,EAAI07O,GAAGtsO,EAAI,KAAOpP,EAAI07O,IAAK,CAAEjyO,EAAI,KAAOzJ,EAAI07O,GAAGtsO,EAAI,KAAOpP,EAAI07O,MAAO1wI,OAAO+5N,GAAazkU,MAC3KkkU,GAEFA,EAAU5jQ,MAAM,OAEzB,IAAIukQ,GAAoBC,GA2BpBC,GAAqBC,GAAqBC,GAAqBC,GA3BnBC,GAAkB,CAChEnlU,MAAO+iT,EACP9oE,UAAW8oE,EACX5oE,QAAS4oE,EACT1oE,aAAc,WACZyqF,GAAyB,EACzBK,GAAgBlrF,UAAYmrF,IAE9B9qF,WAAY,WACV6qF,GAAgBlrF,UAAYkrF,GAAgBhrF,QAAUgrF,GAAgBnlU,MAAQ+iT,EAC9E8hB,IAAsBpyT,EAAIqyT,GAAyB,KAGvD,SAASM,KACP,IAAIC,EAAKC,EAAKpzS,EAAIK,EAKlB,SAASuqS,EAAU3zT,EAAG2F,GACpBg2T,IAA0BvyS,EAAKppB,EAAI+oB,EAAKpjB,EACxCojB,EAAK/oB,EAAGopB,EAAKzjB,EANfq2T,GAAgBnlU,MAAQ,SAASmJ,EAAG2F,GAClCq2T,GAAgBnlU,MAAQ88T,EACxBuI,EAAMnzS,EAAK/oB,EAAGm8T,EAAM/yS,EAAKzjB,GAM3Bq2T,GAAgBhrF,QAAU,WACxB2iF,EAAUuI,EAAKC,IAInB,IAAIC,GAAoB,CACtBvlU,MAAOwlU,GACPvrF,UAAW8oE,EACX5oE,QAAS4oE,EACT1oE,aAAc0oE,EACdzoE,WAAYyoE,GAEd,SAASyiB,GAAuBr8T,EAAG2F,GAC7B3F,EAAI47T,KAAqBA,GAAsB57T,GAC/CA,EAAI87T,KAAqBA,GAAsB97T,GAC/C2F,EAAIk2T,KAAqBA,GAAsBl2T,GAC/CA,EAAIo2T,KAAqBA,GAAsBp2T,GAErD,SAAS22T,KACP,IAAIC,EAAcC,GAAwB,KAAM7gU,EAAS,GACrD4lG,EAAS,CACX1qG,MAAOA,EACPi6O,UAAW,WACTvvI,EAAO1qG,MAAQ4lU,GAEjBzrF,QAASA,EACTE,aAAc,WACZ3vI,EAAOyvI,QAAU0rF,GAEnBvrF,WAAY,WACV5vI,EAAOyvI,QAAUA,EACjBzvI,EAAO1qG,MAAQA,GAEjB8lU,YAAa,SAASrkQ,GAEpB,OADAikQ,EAAcC,GAAwBlkQ,GAC/BipC,GAETtmG,OAAQ,WACN,GAAIU,EAAOhG,OAAQ,CACjB,IAAIsF,EAASU,EAAO/G,KAAK,IAEzB,OADA+G,EAAS,GACFV,KAIb,SAASpE,EAAMmJ,EAAG2F,GAChBhK,EAAOlH,KAAK,IAAKuL,EAAG,IAAK2F,EAAG42T,GAE9B,SAASE,EAAez8T,EAAG2F,GACzBhK,EAAOlH,KAAK,IAAKuL,EAAG,IAAK2F,GACzB47F,EAAO1qG,MAAQsgU,EAEjB,SAASA,EAAUn3T,EAAG2F,GACpBhK,EAAOlH,KAAK,IAAKuL,EAAG,IAAK2F,GAE3B,SAASqrO,IACPzvI,EAAO1qG,MAAQA,EAEjB,SAAS6lU,IACP/gU,EAAOlH,KAAK,KAEd,OAAO8sG,EAET,SAASi7N,GAAwB5iQ,GAC/B,MAAO,MAAQA,EAAS,IAAMA,EAAS,IAAMA,EAAS,aAAe,EAAIA,EAAS,IAAMA,EAAS,IAAMA,EAAS,YAAc,EAAIA,EAAS,IAE7I,IAqmBIgjQ,GArmBAC,GAAsB,CACxBhmU,MAAOimU,GACPhsF,UAAWisF,GACX/rF,QAASgsF,GACT9rF,aAAc,WACZ2rF,GAAoB/rF,UAAYmsF,IAElC9rF,WAAY,WACV0rF,GAAoBhmU,MAAQimU,GAC5BD,GAAoB/rF,UAAYisF,GAChCF,GAAoB7rF,QAAUgsF,KAGlC,SAASF,GAAyB98T,EAAG2F,GACnCitT,IAAqB5yT,EACrB6yT,IAAqBltT,IACnBmtT,GAEJ,SAASiK,KACP,IAAIh0S,EAAIK,EAKR,SAASuqS,EAAU3zT,EAAG2F,GACpB,IAAIilB,EAAK5qB,EAAI+oB,EAAInN,EAAKjW,EAAIyjB,EAAI3oB,EAAIlJ,KAAKuD,KAAK8vB,EAAKA,EAAKhP,EAAKA,GAC3Dm3S,IAAqBtyT,GAAKsoB,EAAK/oB,GAAK,EACpCgzT,IAAqBvyT,GAAK2oB,EAAKzjB,GAAK,EACpCstT,IAAqBxyT,EACrBq8T,GAAyB/zS,EAAK/oB,EAAGopB,EAAKzjB,GATxCk3T,GAAoBhmU,MAAQ,SAASmJ,EAAG2F,GACtCk3T,GAAoBhmU,MAAQ88T,EAC5BmJ,GAAyB/zS,EAAK/oB,EAAGopB,EAAKzjB,IAU1C,SAASq3T,KACPH,GAAoBhmU,MAAQimU,GAE9B,SAASG,KACP,IAAIf,EAAKC,EAAKpzS,EAAIK,EAKlB,SAASuqS,EAAU3zT,EAAG2F,GACpB,IAAIilB,EAAK5qB,EAAI+oB,EAAInN,EAAKjW,EAAIyjB,EAAI3oB,EAAIlJ,KAAKuD,KAAK8vB,EAAKA,EAAKhP,EAAKA,GAC3Dm3S,IAAqBtyT,GAAKsoB,EAAK/oB,GAAK,EACpCgzT,IAAqBvyT,GAAK2oB,EAAKzjB,GAAK,EACpCstT,IAAqBxyT,EACrBA,EAAI2oB,EAAKppB,EAAI+oB,EAAKpjB,EAClButT,IAAqBzyT,GAAKsoB,EAAK/oB,GAC/BmzT,IAAqB1yT,GAAK2oB,EAAKzjB,GAC/BytT,IAAyB,EAAJ3yT,EACrBq8T,GAAyB/zS,EAAK/oB,EAAGopB,EAAKzjB,GAbxCk3T,GAAoBhmU,MAAQ,SAASmJ,EAAG2F,GACtCk3T,GAAoBhmU,MAAQ88T,EAC5BmJ,GAAyBZ,EAAMnzS,EAAK/oB,EAAGm8T,EAAM/yS,EAAKzjB,IAapDk3T,GAAoB7rF,QAAU,WAC5B2iF,EAAUuI,EAAKC,IAGnB,SAASe,GAAmB14S,GAC1B,IAAIm4S,EAAc,IACdp7N,EAAS,CACX1qG,MAAOA,EACPi6O,UAAW,WACTvvI,EAAO1qG,MAAQ4lU,GAEjBzrF,QAASA,EACTE,aAAc,WACZ3vI,EAAOyvI,QAAU0rF,GAEnBvrF,WAAY,WACV5vI,EAAOyvI,QAAUA,EACjBzvI,EAAO1qG,MAAQA,GAEjB8lU,YAAa,SAASrkQ,GAEpB,OADAqkQ,EAAcrkQ,EACPipC,GAETtmG,OAAQ2+S,GAEV,SAAS/iT,EAAMmJ,EAAG2F,GAChB6e,EAAQ25F,OAAOn+G,EAAI28T,EAAah3T,GAChC6e,EAAQ86F,IAAIt/G,EAAG2F,EAAGg3T,EAAa,EAAG1a,IAEpC,SAASwa,EAAez8T,EAAG2F,GACzB6e,EAAQ25F,OAAOn+G,EAAG2F,GAClB47F,EAAO1qG,MAAQsgU,EAEjB,SAASA,EAAUn3T,EAAG2F,GACpB6e,EAAQ65F,OAAOr+G,EAAG2F,GAEpB,SAASqrO,IACPzvI,EAAO1qG,MAAQA,EAEjB,SAAS6lU,IACPl4S,EAAQ45F,YAEV,OAAO7c,EAET,SAAS47N,GAAgB1nT,GACvB,IAAI2nT,EAAK,GAAIC,EAAiB9lU,KAAKmrD,IAAI,GAAKy/P,IAAa9qD,EAAW,GACpE,SAASxjB,EAAStyI,GAChB,OAAQ81J,EAAWimE,EAAoBC,GAAch8N,GAEvD,SAASg8N,EAAah8N,GACpB,OAAOi8N,GAAsBj8N,GAAQ,SAASvhG,EAAG2F,GAC/C3F,EAAIyV,EAAQzV,EAAG2F,GACf47F,EAAO1qG,MAAMmJ,EAAE,GAAIA,EAAE,OAGzB,SAASs9T,EAAkB/7N,GACzB,IAAIgyN,EAAU2I,EAAKC,EAAKhiO,EAAKsjO,EAAKt4N,EAAKquI,EAAIzqN,EAAIK,EAAI22C,EAAIC,EAAIwlC,EACvDquI,EAAW,CACbh9O,MAAOA,EACPi6O,UAAWA,EACXE,QAASA,EACTE,aAAc,WACZ3vI,EAAO2vI,eACP2C,EAAS/C,UAAYikF,GAEvB5jF,WAAY,WACV5vI,EAAO4vI,aACP0C,EAAS/C,UAAYA,IAGzB,SAASj6O,EAAMmJ,EAAG2F,GAChB3F,EAAIyV,EAAQzV,EAAG2F,GACf47F,EAAO1qG,MAAMmJ,EAAE,GAAIA,EAAE,IAEvB,SAAS8wO,IACP/nN,EAAKipC,IACL6hL,EAASh9O,MAAQo+T,EACjB1zN,EAAOuvI,YAET,SAASmkF,EAAUtiF,EAAGC,GACpB,IAAI/gP,EAAIkiU,GAAiB,CAAEphF,EAAGC,IAAMt/O,EAAImiB,EAAQk9N,EAAGC,GACnD8qF,EAAe30S,EAAIK,EAAIoqN,EAAIzzK,EAAIC,EAAIwlC,EAAIz8E,EAAKz1B,EAAE,GAAI81B,EAAK91B,EAAE,GAAIkgP,EAAKb,EAAG5yK,EAAKluE,EAAE,GAAImuE,EAAKnuE,EAAE,GAAI2zG,EAAK3zG,EAAE,GAAIwlQ,EAAU91J,GAChHA,EAAO1qG,MAAMkyB,EAAIK,GAEnB,SAAS4nN,IACP6C,EAASh9O,MAAQA,EACjB0qG,EAAOyvI,UAET,SAAS+jF,IACPjkF,IACA+C,EAASh9O,MAAQi+T,EACjBjhF,EAAS7C,QAAUgkF,EAErB,SAASF,EAAUniF,EAAGC,GACpBqiF,EAAU1B,EAAM5gF,EAASC,GAAIspF,EAAMnzS,EAAIozS,EAAM/yS,EAAI+wE,EAAMp6B,EAAI09P,EAAMz9P,EAAImlC,EAAMK,EAC3EquI,EAASh9O,MAAQo+T,EAEnB,SAASD,IACP0I,EAAe30S,EAAIK,EAAIoqN,EAAIzzK,EAAIC,EAAIwlC,EAAI02N,EAAKC,EAAK5I,EAAKp5N,EAAKsjO,EAAKt4N,EAAKkyJ,EAAU91J,GAC/EsyI,EAAS7C,QAAUA,EACnBA,IAEF,OAAO6C,EAET,SAAS6pF,EAAe30S,EAAIK,EAAIoqN,EAAIzzK,EAAIC,EAAIwlC,EAAIx8E,EAAIK,EAAImrS,EAAIjyN,EAAIpH,EAAIsK,EAAIygE,EAAO3kE,GAC7E,IAAI32E,EAAK5B,EAAKD,EAAInN,EAAKyN,EAAKD,EAAIywC,EAAKjvC,EAAKA,EAAKhP,EAAKA,EACpD,GAAIi+C,EAAK,EAAIujQ,GAAMl3J,IAAS,CAC1B,IAAI7xK,EAAI0rE,EAAKwiC,EAAIjuG,EAAI0rE,EAAKm7B,EAAItpG,EAAI2zG,EAAKC,EAAI7zG,EAAI2F,KAAKuD,KAAKzG,EAAIA,EAAIC,EAAIA,EAAIzC,EAAIA,GAAI+hP,EAAKr8O,KAAKi7O,KAAK3gP,GAAKD,GAAI+hP,EAAKrqO,EAAIA,EAAIzX,GAAK,GAAKogP,IAAK3oO,EAAIkqO,EAAKghF,GAAMviF,IAAKuB,EAAKghF,GAAM,EAAIj9T,KAAKk0M,MAAMn3M,EAAGD,GAAIf,EAAImiB,EAAQk+N,EAAIC,GAAK5iM,EAAK19C,EAAE,GAAIimE,EAAKjmE,EAAE,GAAIqqU,EAAM3sR,EAAKjoB,EAAI60S,EAAMrkQ,EAAKnwC,EAAI4jM,EAAKpxM,EAAK+hT,EAAM/yS,EAAKgzS,GACpR5wG,EAAKA,EAAKnzJ,EAAKujQ,GAAM9zT,GAAKshB,EAAK+yS,EAAM/hT,EAAKgiT,GAAO/jQ,EAAK,IAAM,IAAMkG,EAAKwiC,EAAKviC,EAAKm7B,EAAKqK,EAAKC,EAAK43N,KAClGK,EAAe30S,EAAIK,EAAIoqN,EAAIzzK,EAAIC,EAAIwlC,EAAIx0D,EAAIuoB,EAAIo6K,EAAIt/O,GAAKzC,EAAG0C,GAAK1C,EAAGC,EAAGq0K,EAAO3kE,GAC7EA,EAAO1qG,MAAMm6C,EAAIuoB,GACjBmkQ,EAAe1sR,EAAIuoB,EAAIo6K,EAAIt/O,EAAGC,EAAGzC,EAAGm3B,EAAIK,EAAImrS,EAAIjyN,EAAIpH,EAAIsK,EAAIygE,EAAO3kE,KASzE,OALAsyI,EAASzjM,UAAY,SAASkoB,GAC5B,OAAK1rD,UAAUjX,QACf0hQ,GAAY+lE,EAAK9kQ,EAAIA,GAAK,GAAK,GACxBu7K,GAFuBt8O,KAAKuD,KAAKsiU,IAInCvpF,EAiDT,SAASgqF,GAAyBpoT,GAChC,IAAIo+N,EAAWspF,IAAgB,SAASn9T,EAAG2F,GACzC,OAAO8P,EAAQ,CAAEzV,EAAIoiT,GAAYz8S,EAAIy8S,QAEvC,OAAO,SAAS7gN,GACd,OAAOu8N,GAAyBjqF,EAAStyI,KAY7C,SAASw8N,GAAiBx8N,GACxBnwG,KAAKmwG,OAASA,EAsBhB,SAASi8N,GAAsBj8N,EAAQ1qG,GACrC,MAAO,CACLA,MAAOA,EACP08O,OAAQ,WACNhyI,EAAOgyI,UAETzC,UAAW,WACTvvI,EAAOuvI,aAETE,QAAS,WACPzvI,EAAOyvI,WAETE,aAAc,WACZ3vI,EAAO2vI,gBAETC,WAAY,WACV5vI,EAAO4vI,eAMb,SAAS6sF,GAAkBvoT,GACzB,OAAO+kT,IAAyB,WAC9B,OAAO/kT,IADF+kT,GAIT,SAASA,GAAyBD,GAChC,IAAI9kT,EAAS3P,EAAQm4T,EAGgDC,EAAIC,EAAoG58N,EAHzI68N,EAAkBjB,IAAgB,SAASn9T,EAAG2F,GAEhF,OADA3F,EAAIyV,EAAQzV,EAAG2F,GACR,CAAE3F,EAAE,GAAKzJ,EAAI2nU,EAAIC,EAAKn+T,EAAE,GAAKzJ,MAClCA,EAAI,IAAKyJ,EAAI,IAAK2F,EAAI,IAAKgtO,EAAI,EAAGC,EAAI,EAAG4D,EAAK,EAAGC,EAAK,EAAG4nF,EAAK,EAAWC,EAAU7G,GAAyB8G,EAAWxlB,EAAaylB,EAAY,KAAM5D,EAAa,KACvK,SAAS78T,EAAWlH,GAElB,OADAA,EAAQonU,EAAcpnU,EAAM,GAAKsrT,GAAYtrT,EAAM,GAAKsrT,IACjD,CAAEtrT,EAAM,GAAKN,EAAI2nU,EAAIC,EAAKtnU,EAAM,GAAKN,GAE9C,SAAS0a,EAAOpa,GAEd,OADAA,EAAQonU,EAAchtT,QAAQpa,EAAM,GAAKqnU,GAAM3nU,GAAI4nU,EAAKtnU,EAAM,IAAMN,GAC7DM,GAAS,CAAEA,EAAM,GAAKurT,GAAYvrT,EAAM,GAAKurT,IA4CtD,SAAS96R,IACP22S,EAAgBhI,GAAenwT,EAAS24T,GAAgBjoF,EAAIC,EAAI4nF,GAAK5oT,GACrE,IAAI6c,EAAS7c,EAAQk9N,EAAGC,GAGxB,OAFAsrF,EAAKl+T,EAAIsyB,EAAO,GAAK/7B,EACrB4nU,EAAKx4T,EAAI2sB,EAAO,GAAK/7B,EACdmoU,IAET,SAASA,IAEP,OADIn9N,IAAQA,EAAO/xF,OAAQ,EAAO+xF,EAAS,MACpCxjG,EAET,OArDAA,EAAWwjG,OAAS,SAASv8F,GAI3B,OAHIu8F,IAAQA,EAAO/xF,OAAQ,GAC3B+xF,EAASu8N,GAAyBQ,EAAQx4T,EAAQs4T,EAAgBG,EAASv5T,MAC3Eu8F,EAAO/xF,OAAQ,EACR+xF,GAETxjG,EAAWygU,UAAY,SAASlmQ,GAC9B,OAAK1rD,UAAUjX,QACf2oU,EAAe,MAALhmQ,GAAakmQ,EAAYlmQ,EAAGm/P,IAA2Be,IAAmBgG,GAAalmQ,GAAK6pP,IAC/Fuc,KAFuBF,GAIhCzgU,EAAW68T,WAAa,SAAStiQ,GAC/B,OAAK1rD,UAAUjX,QACfilU,EAAatiQ,EACbimQ,EAAWjmQ,EAAImhQ,GAAkBnhQ,EAAE,GAAG,GAAIA,EAAE,GAAG,GAAIA,EAAE,GAAG,GAAIA,EAAE,GAAG,IAAMygP,EAChE2lB,KAHuB9D,GAKhC78T,EAAWo5D,MAAQ,SAASmB,GAC1B,OAAK1rD,UAAUjX,QACfY,GAAK+hE,EACEhxC,KAFuB/wB,GAIhCwH,EAAWstN,UAAY,SAAS/yJ,GAC9B,OAAK1rD,UAAUjX,QACfqK,GAAKs4D,EAAE,GACP3yD,GAAK2yD,EAAE,GACAhxC,KAHuB,CAAEtnB,EAAG2F,IAKrC5H,EAAWu0B,OAAS,SAASgmC,GAC3B,OAAK1rD,UAAUjX,QACfg9O,EAAIr6K,EAAE,GAAK,IAAM6pP,GACjBvvE,EAAIt6K,EAAE,GAAK,IAAM6pP,GACV76R,KAHuB,CAAEqrN,EAAIyvE,GAAYxvE,EAAIwvE,KAKtDrkT,EAAW+H,OAAS,SAASwyD,GAC3B,OAAK1rD,UAAUjX,QACf6gP,EAAKl+K,EAAE,GAAK,IAAM6pP,GAClB1rE,EAAKn+K,EAAE,GAAK,IAAM6pP,GAClBkc,EAAK/lQ,EAAE3iE,OAAS,EAAI2iE,EAAE,GAAK,IAAM6pP,GAAa,EACvC76R,KAJuB,CAAEkvN,EAAK4rE,GAAY3rE,EAAK2rE,GAAYic,EAAKjc,KAMzE1hT,EAAGumB,OAAOlpB,EAAYqgU,EAAiB,aAYhC,WAGL,OAFA3oT,EAAU8kT,EAAUxkU,MAAM3E,KAAMwb,WAChC7O,EAAWkT,OAASwE,EAAQxE,QAAUA,EAC/BqW,KAGX,SAASw2S,GAAyBv8N,GAChC,OAAOi8N,GAAsBj8N,GAAQ,SAASvhG,EAAG2F,GAC/C47F,EAAO1qG,MAAMmJ,EAAImiT,GAAYx8S,EAAIw8S,OAGrC,SAASwc,GAAuBhsF,EAAGC,GACjC,MAAO,CAAED,EAAGC,GAiBd,SAASgsF,GAAwBjsF,EAAGC,GAClC,MAAO,CAAED,EAAIR,GAAIQ,EAAIsvE,GAAItvE,GAAKR,GAAIQ,EAAIsvE,GAAItvE,EAAGC,GAG/C,SAAS6rF,GAAgBjoF,EAAIC,EAAI4nF,GAC/B,OAAO7nF,EAAKC,GAAM4nF,EAAKpI,GAAe4I,GAAiBroF,GAAKsoF,GAAkBroF,EAAI4nF,IAAOQ,GAAiBroF,GAAMC,GAAM4nF,EAAKS,GAAkBroF,EAAI4nF,GAAMO,GAEzJ,SAASG,GAAwBvoF,GAC/B,OAAO,SAAS7D,EAAGC,GACjB,OAAOD,GAAK6D,EAAI,CAAE7D,EAAIR,GAAIQ,EAAIsvE,GAAItvE,GAAKR,GAAIQ,EAAIsvE,GAAItvE,EAAGC,IAG1D,SAASisF,GAAiBroF,GACxB,IAAIvQ,EAAW84F,GAAwBvoF,GAEvC,OADAvQ,EAASh1N,OAAS8tT,IAAyBvoF,GACpCvQ,EAET,SAAS64F,GAAkBroF,EAAI4nF,GAC7B,IAAIW,EAAQznU,KAAKmrD,IAAI+zL,GAAKwoF,EAAQ1nU,KAAKorD,IAAI8zL,GAAKyoF,EAAQ3nU,KAAKmrD,IAAI27Q,GAAKc,EAAQ5nU,KAAKorD,IAAI07Q,GACvF,SAASp4F,EAAS0M,EAAGC,GACnB,IAAIE,EAAOv7O,KAAKmrD,IAAIkwL,GAAI5yO,EAAIzI,KAAKmrD,IAAIiwL,GAAKG,EAAMntO,EAAIpO,KAAKorD,IAAIgwL,GAAKG,EAAMryO,EAAIlJ,KAAKorD,IAAIiwL,GAAIr8O,EAAIkK,EAAIu+T,EAAQh/T,EAAIi/T,EAC7G,MAAO,CAAE1nU,KAAKk0M,MAAM9lM,EAAIu5T,EAAQ3oU,EAAI4oU,EAAOn/T,EAAIg/T,EAAQv+T,EAAIw+T,GAAQzc,GAAQjsT,EAAI2oU,EAAQv5T,EAAIw5T,IAM7F,OAJAl5F,EAASh1N,OAAS,SAAS0hO,EAAGC,GAC5B,IAAIE,EAAOv7O,KAAKmrD,IAAIkwL,GAAI5yO,EAAIzI,KAAKmrD,IAAIiwL,GAAKG,EAAMntO,EAAIpO,KAAKorD,IAAIgwL,GAAKG,EAAMryO,EAAIlJ,KAAKorD,IAAIiwL,GAAIr8O,EAAIkK,EAAIy+T,EAAQv5T,EAAIw5T,EAC7G,MAAO,CAAE5nU,KAAKk0M,MAAM9lM,EAAIu5T,EAAQz+T,EAAI0+T,EAAOn/T,EAAIg/T,EAAQzoU,EAAI0oU,GAAQzc,GAAQjsT,EAAIyoU,EAAQh/T,EAAIi/T,KAEtFh5F,EAkCT,SAAS2yF,GAAyBh/P,EAAQxpB,GACxC,IAAIqoR,EAAKlhU,KAAKmrD,IAAIkX,GAASwlQ,EAAK7nU,KAAKorD,IAAIiX,GACzC,OAAO,SAAS+jC,EAAMk/E,EAAItyG,EAAW0vO,GACnC,IAAIl/Q,EAAOwvC,EAAYn6B,EACX,MAARutD,GACFA,EAAO0hO,GAAmB5G,EAAI96N,GAC9Bk/E,EAAKwiJ,GAAmB5G,EAAI57I,IACxBtyG,EAAY,EAAIozB,EAAOk/E,EAAKl/E,EAAOk/E,KAAIl/E,GAAQpzB,EAAY03O,MAE/DtkN,EAAO/jC,EAAS2Q,EAAY03O,GAC5BplI,EAAKjjH,EAAS,GAAK7+B,GAErB,IAAK,IAAIlkC,EAAOnE,EAAIirG,EAAMpzB,EAAY,EAAI73E,EAAImqL,EAAKnqL,EAAImqL,EAAInqL,GAAKqoC,EAC9Dk/Q,EAASpjT,OAAOA,EAAQy9T,GAAiB,CAAEmE,GAAK2G,EAAK7nU,KAAKmrD,IAAIhwD,IAAK0sU,EAAK7nU,KAAKorD,IAAIjwD,MAAO,GAAImE,EAAM,KAIxG,SAASwoU,GAAmB5G,EAAI5hU,GAC9B,IAAIxC,EAAI0/T,GAAiBl9T,GACzBxC,EAAE,IAAMokU,EACRpE,GAA0BhgU,GAC1B,IAAIguD,EAAQkgQ,IAASluT,EAAE,IACvB,SAAUA,EAAE,GAAK,GAAKguD,EAAQA,GAAS,EAAI9qD,KAAKs8B,GAAKo+M,KAAM,EAAI16O,KAAKs8B,IAgFtE,SAASyrS,GAAkBl2S,EAAIC,EAAIzN,GACjC,IAAIjW,EAAIjF,EAAG8I,MAAM4f,EAAIC,EAAK4oN,GAAGr2N,GAAIriB,OAAO8vB,GACxC,OAAO,SAASrpB,GACd,OAAO2F,EAAEynC,KAAI,SAASznC,GACpB,MAAO,CAAE3F,EAAG2F,OAIlB,SAAS45T,GAAkBx2S,EAAIC,EAAI4B,GACjC,IAAI5qB,EAAIU,EAAG8I,MAAMuf,EAAIC,EAAKipN,GAAGrnN,GAAIrxB,OAAOyvB,GACxC,OAAO,SAASrjB,GACd,OAAO3F,EAAEotC,KAAI,SAASptC,GACpB,MAAO,CAAEA,EAAG2F,OAIlB,SAAS65T,GAAU1tU,GACjB,OAAOA,EAAE8oE,OAEX,SAAS6kQ,GAAU3tU,GACjB,OAAOA,EAAEiwB,OA+BX,SAAS29S,GAAmB32S,EAAIK,EAAIJ,EAAIK,GACtC,IAAIs2S,EAAMpoU,KAAKmrD,IAAIt5B,GAAKw2S,EAAMroU,KAAKorD,IAAIv5B,GAAKy2S,EAAMtoU,KAAKmrD,IAAIr5B,GAAKy2S,EAAMvoU,KAAKorD,IAAIt5B,GAAK02S,EAAMJ,EAAMpoU,KAAKmrD,IAAI35B,GAAKi3S,EAAML,EAAMpoU,KAAKorD,IAAI55B,GAAKk3S,EAAMJ,EAAMtoU,KAAKmrD,IAAI15B,GAAKk3S,EAAML,EAAMtoU,KAAKorD,IAAI35B,GAAKl3B,EAAI,EAAIyF,KAAKi7O,KAAKj7O,KAAKuD,KAAK8nT,GAAYv5R,EAAKD,GAAMu2S,EAAME,EAAMjd,GAAY55R,EAAKD,KAAOxyB,EAAI,EAAIgB,KAAKorD,IAAI7wD,GAChSi7M,EAAcj7M,EAAI,SAASY,GAC7B,IAAImrM,EAAItmM,KAAKorD,IAAIjwD,GAAKZ,GAAKyE,EAAGyxL,EAAIzwL,KAAKorD,IAAI7wD,EAAIY,GAAK6D,EAAGyJ,EAAIgoL,EAAI+3I,EAAMliI,EAAIoiI,EAAKt6T,EAAIqiL,EAAIg4I,EAAMniI,EAAIqiI,EAAKz/T,EAAIunL,EAAI43I,EAAM/hI,EAAIiiI,EACvH,MAAO,CAAEvoU,KAAKk0M,MAAM9lM,EAAG3F,GAAKoiT,GAAY7qT,KAAKk0M,MAAMhrM,EAAGlJ,KAAKuD,KAAKkF,EAAIA,EAAI2F,EAAIA,IAAMy8S,KAChF,WACF,MAAO,CAAEr5R,EAAKq5R,GAAYh5R,EAAKg5R,KAGjC,OADAr1G,EAAYlyM,SAAW/I,EAChBi7M,EAhbTrsM,EAAGkoB,IAAIqsB,KAAO,WACZ,IAAuBl3C,EAAYymB,EAAS27S,EAAeC,EAAeC,EAAtE1D,EAAc,IAClB,SAAS1nR,EAAK/hD,GAMZ,OALIA,IACyB,oBAAhBypU,GAA4ByD,EAAczD,aAAaA,EAAY5mU,MAAM3E,KAAMwb,YACrFyzT,GAAgBA,EAAY7wT,QAAO6wT,EAAcF,EAAcC,IACpE1/T,EAAGkoB,IAAI24E,OAAOruG,EAAQmtU,IAEjBD,EAAcnlU,SAiCvB,SAASqsB,IAEP,OADA+4S,EAAc,KACPprR,EAET,OAnCAA,EAAK2gB,KAAO,SAAS1iE,GAGnB,OAFAwoU,GAAqB,EACrBh7T,EAAGkoB,IAAI24E,OAAOruG,EAAQitU,EAAcnE,KAC7BN,IAETzmR,EAAKygR,SAAW,SAASxiU,GAGvB,OAFA0/T,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoB,EACpL1yT,EAAGkoB,IAAI24E,OAAOruG,EAAQitU,EAActD,KAC7BzJ,GAAoB,CAAEF,GAAoBE,GAAmBD,GAAoBC,IAAsBH,GAAoB,CAAEF,GAAoBE,GAAmBD,GAAoBC,IAAsBH,GAAoB,CAAEF,GAAoBE,GAAmBD,GAAoBC,IAAsB,CAAE9gQ,IAAKA,MAErU/c,EAAKj6C,OAAS,SAAS9H,GAGrB,OAFA4oU,GAAsBC,KAAwBH,GAAsBC,GAAsB9/T,KAC1F2E,EAAGkoB,IAAI24E,OAAOruG,EAAQitU,EAAc/D,KAC7B,CAAE,CAAER,GAAqBC,IAAuB,CAAEC,GAAqBC,MAEhF9mR,EAAKl3C,WAAa,SAASu6D,GACzB,OAAK1rD,UAAUjX,QACfwqU,GAAiBpiU,EAAau6D,GAAKA,EAAEipC,QAAUs8N,GAAyBvlQ,GAAKygP,EACtEzxR,KAFuBvpB,GAIhCk3C,EAAKzwB,QAAU,SAAS8zC,GACtB,OAAK1rD,UAAUjX,QACfyqU,EAAiC,OAAhB57S,EAAU8zC,GAAa,IAAIgkQ,GAAsB,IAAIY,GAAmB5kQ,GAC9D,oBAAhBqkQ,GAA4ByD,EAAczD,YAAYA,GAC1Dr1S,KAHuB9C,GAKhCywB,EAAK0nR,YAAc,SAASrkQ,GAC1B,OAAK1rD,UAAUjX,QACfgnU,EAA2B,oBAANrkQ,EAAmBA,GAAK8nQ,EAAczD,aAAarkQ,IAAKA,GACtErjB,GAFuB0nR,GAQzB1nR,EAAKl3C,WAAW2C,EAAGkoB,IAAImyS,aAAav2S,QAAQ,OAUrD9jB,EAAGkoB,IAAI/M,UAAY,SAASykT,GAC1B,MAAO,CACL/+N,OAAQ,SAASA,GACf,IAAI1lF,EAAY,IAAIkiT,GAAiBx8N,GACrC,IAAK,IAAIhrG,KAAK+pU,EAASzkT,EAAUtlB,GAAK+pU,EAAQ/pU,GAC9C,OAAOslB,KAObkiT,GAAiB3qU,UAAY,CAC3ByD,MAAO,SAASmJ,EAAG2F,GACjBvU,KAAKmwG,OAAO1qG,MAAMmJ,EAAG2F,IAEvB4tO,OAAQ,WACNniP,KAAKmwG,OAAOgyI,UAEdzC,UAAW,WACT1/O,KAAKmwG,OAAOuvI,aAEdE,QAAS,WACP5/O,KAAKmwG,OAAOyvI,WAEdE,aAAc,WACZ9/O,KAAKmwG,OAAO2vI,gBAEdC,WAAY,WACV//O,KAAKmwG,OAAO4vI,eAuBhBzwO,EAAGkoB,IAAI7qB,WAAaigU,GACpBt9T,EAAGkoB,IAAI6pN,kBAAoB+nF,IAsF1B95T,EAAGkoB,IAAI23S,gBAAkB,WACxB,OAAOvC,GAAkBW,MACxB3uM,IAAM2uM,GAAuB1tT,OAAS0tT,GACzCj+T,EAAGkoB,IAAIq9M,SAAW,SAASngO,GAEzB,SAASmtO,EAAQ7+K,GAEf,OADAA,EAActuD,EAAOsuD,EAAY,GAAK+tP,GAAY/tP,EAAY,GAAK+tP,IAC5D/tP,EAAY,IAAMguP,GAAYhuP,EAAY,IAAMguP,GAAYhuP,EAMrE,OATAtuD,EAAS24T,GAAgB34T,EAAO,GAAK,IAAMq8S,GAAYr8S,EAAO,GAAKq8S,GAAYr8S,EAAOnQ,OAAS,EAAImQ,EAAO,GAAKq8S,GAAa,GAK5HlvE,EAAQhiO,OAAS,SAASmjD,GAExB,OADAA,EAActuD,EAAOmL,OAAOmjD,EAAY,GAAK+tP,GAAY/tP,EAAY,GAAK+tP,IACnE/tP,EAAY,IAAMguP,GAAYhuP,EAAY,IAAMguP,GAAYhuP,GAE9D6+K,GAKT2rF,GAAwB3tT,OAAS0tT,GA0BjCj+T,EAAGkoB,IAAI/gB,OAAS,WACd,IAAuBw6C,EAAsB0qJ,EAAzCzkD,EAAS,CAAE,EAAG,GAAYl4G,EAAY,EAC1C,SAASvoC,IACP,IAAIyqB,EAA2B,oBAAXg2H,EAAwBA,EAAOvyJ,MAAM3E,KAAMwb,WAAa07I,EAAQxiJ,EAAS24T,IAAiBnsS,EAAO,GAAK6vR,IAAa7vR,EAAO,GAAK6vR,GAAY,GAAGlxS,OAAQogO,EAAO,GAOjL,OANAtkC,EAAY,KAAM,KAAM,EAAG,CACzBl2M,MAAO,SAASmJ,EAAG2F,GACjB0rO,EAAK58O,KAAKuL,EAAI8F,EAAO9F,EAAG2F,IACxB3F,EAAE,IAAMoiT,GAAYpiT,EAAE,IAAMoiT,MAGzB,CACLt9S,KAAM,UACNsvD,YAAa,CAAEi9K,IAkBnB,OAfAxpO,EAAOygJ,OAAS,SAAStoJ,GACvB,OAAK4M,UAAUjX,QACf2yJ,EAAStoJ,EACF6H,GAFuBygJ,GAIhCzgJ,EAAOw6C,MAAQ,SAASriD,GACtB,OAAK4M,UAAUjX,QACfo3M,EAAc6rH,IAA0Bv2Q,GAASriD,GAAKmiT,GAAY/xQ,EAAY+xQ,IACvEt6S,GAFuBw6C,GAIhCx6C,EAAOuoC,UAAY,SAASkoB,GAC1B,OAAK1rD,UAAUjX,QACfo3M,EAAc6rH,GAAyBv2Q,EAAQ8/P,IAAa/xQ,GAAakoB,GAAK6pP,IACvEt6S,GAFuBuoC,GAIzBvoC,EAAOw6C,MAAM,KA0BtB3hD,EAAGkoB,IAAI/tB,SAAW,SAASxG,EAAGC,GAC5B,IAAyN5B,EAArN8tU,GAAMlsU,EAAE,GAAKD,EAAE,IAAM8tT,GAAY1uE,EAAKp/O,EAAE,GAAK8tT,GAAYzuE,EAAKp/O,EAAE,GAAK6tT,GAAYse,EAAQlpU,KAAKorD,IAAI69Q,GAAKE,EAAQnpU,KAAKmrD,IAAI89Q,GAAK9M,EAAQn8T,KAAKorD,IAAI8wL,GAAKggF,EAAQl8T,KAAKmrD,IAAI+wL,GAAKktF,EAAQppU,KAAKorD,IAAI+wL,GAAKqkF,EAAQxgU,KAAKmrD,IAAIgxL,GACpN,OAAOn8O,KAAKk0M,MAAMl0M,KAAKuD,MAAMpI,EAAIqlU,EAAQ0I,GAAS/tU,GAAKA,EAAI+gU,EAAQkN,EAAQjN,EAAQqE,EAAQ2I,GAAShuU,GAAIghU,EAAQiN,EAAQlN,EAAQsE,EAAQ2I,IAE1IhgU,EAAGkoB,IAAIg4S,UAAY,WACjB,IAAI53S,EAAID,EAAI83S,EAAIC,EAAIz3S,EAAID,EAAI23S,EAAIC,EAAyChhU,EAAG2F,EAAG2L,EAAGwe,EAA9ClF,EAAK,GAAIhP,EAAKgP,EAAIq2S,EAAK,GAAIC,EAAK,IAAiB9wR,EAAY,IACjG,SAASwwR,IACP,MAAO,CACL97T,KAAM,kBACNsvD,YAAaryD,KAGjB,SAASA,IACP,OAAOrB,EAAG8I,MAAMjS,KAAK+5B,KAAKwvS,EAAKG,GAAMA,EAAIJ,EAAII,GAAI7zR,IAAI97B,GAAG/X,OAAOmH,EAAG8I,MAAMjS,KAAK+5B,KAAK0vS,EAAKE,GAAMA,EAAIH,EAAIG,GAAI9zR,IAAItd,IAAIv2B,OAAOmH,EAAG8I,MAAMjS,KAAK+5B,KAAKvI,EAAK6B,GAAMA,EAAI5B,EAAI4B,GAAIv1B,QAAO,SAAS2K,GAChL,OAAOsJ,EAAItJ,EAAIihU,GAAMhvF,MACpB7kM,IAAIptC,IAAIzG,OAAOmH,EAAG8I,MAAMjS,KAAK+5B,KAAKlI,EAAKxN,GAAMA,EAAIyN,EAAIzN,GAAIvmB,QAAO,SAASsQ,GAC1E,OAAO2D,EAAI3D,EAAIu7T,GAAMjvF,MACpB7kM,IAAIznC,IA2DT,OAzDAi7T,EAAU7+T,MAAQ,WAChB,OAAOA,IAAQqrC,KAAI,SAASgnB,GAC1B,MAAO,CACLtvD,KAAM,aACNsvD,YAAaA,OAInBwsQ,EAAU16S,QAAU,WAClB,MAAO,CACLphB,KAAM,UACNsvD,YAAa,CAAE9iD,EAAEwvT,GAAIvnU,OAAOu2B,EAAEixS,GAAIjrU,MAAM,GAAIwb,EAAEuvT,GAAI1/Q,UAAUrrD,MAAM,GAAIg6B,EAAEkxS,GAAI7/Q,UAAUrrD,MAAM,OAGhG8qU,EAAU/lQ,OAAS,SAASvC,GAC1B,OAAK1rD,UAAUjX,OACRirU,EAAUO,YAAY7oQ,GAAG8oQ,YAAY9oQ,GADdsoQ,EAAUQ,eAG1CR,EAAUO,YAAc,SAAS7oQ,GAC/B,OAAK1rD,UAAUjX,QACfmrU,GAAMxoQ,EAAE,GAAG,GAAIuoQ,GAAMvoQ,EAAE,GAAG,GAC1B0oQ,GAAM1oQ,EAAE,GAAG,GAAIyoQ,GAAMzoQ,EAAE,GAAG,GACtBwoQ,EAAKD,IAAIvoQ,EAAIwoQ,EAAIA,EAAKD,EAAIA,EAAKvoQ,GAC/B0oQ,EAAKD,IAAIzoQ,EAAI0oQ,EAAIA,EAAKD,EAAIA,EAAKzoQ,GAC5BsoQ,EAAUxwR,UAAUA,IALG,CAAE,CAAE0wR,EAAIE,GAAM,CAAEH,EAAIE,KAOpDH,EAAUQ,YAAc,SAAS9oQ,GAC/B,OAAK1rD,UAAUjX,QACfozB,GAAMuvC,EAAE,GAAG,GAAItvC,GAAMsvC,EAAE,GAAG,GAC1BlvC,GAAMkvC,EAAE,GAAG,GAAIjvC,GAAMivC,EAAE,GAAG,GACtBvvC,EAAKC,IAAIsvC,EAAIvvC,EAAIA,EAAKC,EAAIA,EAAKsvC,GAC/BlvC,EAAKC,IAAIivC,EAAIlvC,EAAIA,EAAKC,EAAIA,EAAKivC,GAC5BsoQ,EAAUxwR,UAAUA,IALG,CAAE,CAAErnB,EAAIK,GAAM,CAAEJ,EAAIK,KAOpDu3S,EAAU7lS,KAAO,SAASu9B,GACxB,OAAK1rD,UAAUjX,OACRirU,EAAUS,UAAU/oQ,GAAGgpQ,UAAUhpQ,GADVsoQ,EAAUU,aAG1CV,EAAUS,UAAY,SAAS/oQ,GAC7B,OAAK1rD,UAAUjX,QACfsrU,GAAM3oQ,EAAE,GAAI4oQ,GAAM5oQ,EAAE,GACbsoQ,GAFuB,CAAEK,EAAIC,IAItCN,EAAUU,UAAY,SAAShpQ,GAC7B,OAAK1rD,UAAUjX,QACfi1B,GAAM0tC,EAAE,GAAI18C,GAAM08C,EAAE,GACbsoQ,GAFuB,CAAEh2S,EAAIhP,IAItCglT,EAAUxwR,UAAY,SAASkoB,GAC7B,OAAK1rD,UAAUjX,QACfy6C,GAAakoB,EACbt4D,EAAIs/T,GAAkBl2S,EAAIC,EAAI,IAC9B1jB,EAAI45T,GAAkBx2S,EAAIC,EAAIonB,GAC9B9+B,EAAIguT,GAAkB0B,EAAID,EAAI,IAC9BjxS,EAAIyvS,GAAkBuB,EAAID,EAAIzwR,GACvBwwR,GANuBxwR,GAQzBwwR,EAAUO,YAAY,CAAE,EAAG,KAAM,GAAKlvF,IAAK,CAAE,IAAK,GAAKA,MAAOmvF,YAAY,CAAE,EAAG,KAAM,GAAKnvF,IAAK,CAAE,IAAK,GAAKA,OAwBpHvxO,EAAGkoB,IAAI24S,SAAW,WAChB,IAAwBC,EAA6BC,EAAjD7mQ,EAAS4kQ,GAAoBz9S,EAAS09S,GAC1C,SAAS8B,IACP,MAAO,CACLz8T,KAAM,aACNsvD,YAAa,CAAEotQ,GAAW5mQ,EAAO7kE,MAAM3E,KAAMwb,WAAY60T,GAAW1/S,EAAOhsB,MAAM3E,KAAMwb,aAmB3F,OAhBA20T,EAAS1mU,SAAW,WAClB,OAAO6F,EAAGkoB,IAAI/tB,SAAS2mU,GAAW5mQ,EAAO7kE,MAAM3E,KAAMwb,WAAY60T,GAAW1/S,EAAOhsB,MAAM3E,KAAMwb,aAEjG20T,EAAS3mQ,OAAS,SAAStC,GACzB,OAAK1rD,UAAUjX,QACfilE,EAAStC,EAAGkpQ,EAAuB,oBAANlpQ,EAAmB,KAAOA,EAChDipQ,GAFuB3mQ,GAIhC2mQ,EAASx/S,OAAS,SAASu2C,GACzB,OAAK1rD,UAAUjX,QACfosB,EAASu2C,EAAGmpQ,EAAuB,oBAANnpQ,EAAmB,KAAOA,EAChDipQ,GAFuBx/S,GAIhCw/S,EAASnxR,UAAY,WACnB,OAAOxjC,UAAUjX,OAAS4rU,EAAW,GAEhCA,GAET7gU,EAAGkoB,IAAImkL,YAAc,SAASnyI,EAAQ74C,GACpC,OAAO29S,GAAmB9kQ,EAAO,GAAKunP,GAAYvnP,EAAO,GAAKunP,GAAYpgS,EAAO,GAAKogS,GAAYpgS,EAAO,GAAKogS,KAahHzhT,EAAGkoB,IAAIjzB,OAAS,SAASzC,GAGvB,OAFA0pU,GAAmB,EACnBl8T,EAAGkoB,IAAI24E,OAAOruG,EAAQwuU,IACf9E,IAGT,IAAI8E,GAAgB,CAClBnuF,OAAQqmE,EACR/iT,MAAO+iT,EACP9oE,UAAW6wF,GACX3wF,QAAS4oE,EACT1oE,aAAc0oE,EACdzoE,WAAYyoE,GAEd,SAAS+nB,KACP,IAAInuF,EAAIkgF,EAAOD,EAQf,SAASE,EAAUhhF,EAAGC,GACpB,IAAIiD,EAAOt+O,KAAKorD,IAAIiwL,GAAKuvE,IAAarvE,EAAOv7O,KAAKmrD,IAAIkwL,GAAIlgP,EAAI4W,GAAKqpO,GAAKwvE,IAAc3uE,GAAKktF,EAAQnpU,KAAKmrD,IAAIhwD,GAC5GkqU,IAAoBrlU,KAAKk0M,MAAMl0M,KAAKuD,MAAMpI,EAAIogP,EAAOv7O,KAAKorD,IAAIjwD,IAAMA,GAAKA,EAAI+gU,EAAQ59E,EAAO69E,EAAQ5gF,EAAO4tF,GAAShuU,GAAIghU,EAAQ79E,EAAO49E,EAAQ3gF,EAAO4tF,GACtJltF,EAAKb,EAAG+gF,EAAQ79E,EAAM49E,EAAQ3gF,EAVhC4uF,GAAc7qU,MAAQ,SAAS87O,EAAGC,GAChCY,EAAKb,EAAIwvE,GAAYuR,EAAQn8T,KAAKorD,IAAIiwL,GAAKuvE,IAAasR,EAAQl8T,KAAKmrD,IAAIkwL,GACzE8uF,GAAc7qU,MAAQ88T,GAExB+N,GAAc1wF,QAAU,WACtB0wF,GAAc7qU,MAAQ6qU,GAAc1wF,QAAU4oE,GAQlD,SAASgoB,GAAiBzqQ,EAAO9U,GAC/B,SAASw/Q,EAAUlvF,EAAGC,GACpB,IAAIkvF,EAAOvqU,KAAKmrD,IAAIiwL,GAAIG,EAAOv7O,KAAKmrD,IAAIkwL,GAAIr8O,EAAI4gE,EAAM2qQ,EAAOhvF,GAC7D,MAAO,CAAEv8O,EAAIu8O,EAAOv7O,KAAKorD,IAAIgwL,GAAIp8O,EAAIgB,KAAKorD,IAAIiwL,IAMhD,OAJAivF,EAAU5wT,OAAS,SAASjR,EAAG2F,GAC7B,IAAIk9S,EAAItrT,KAAKuD,KAAKkF,EAAIA,EAAI2F,EAAIA,GAAI9T,EAAIwwD,EAAMwgQ,GAAIkf,EAAOxqU,KAAKorD,IAAI9wD,GAAImwU,EAAOzqU,KAAKmrD,IAAI7wD,GACpF,MAAO,CAAE0F,KAAKk0M,MAAMzrM,EAAI+hU,EAAMlf,EAAImf,GAAOzqU,KAAKi7O,KAAKqwE,GAAKl9S,EAAIo8T,EAAOlf,KAE9Dgf,EAET,IAAII,GAA4BL,IAAiB,SAASM,GACxD,OAAO3qU,KAAKuD,KAAK,GAAK,EAAIonU,OACzB,SAASrf,GACV,OAAO,EAAItrT,KAAKi7O,KAAKqwE,EAAI,OAE1BniT,EAAGkoB,IAAIsrN,mBAAqB,WAC3B,OAAO8pF,GAAkBiE,MACxBjyM,IAAMiyM,GACT,IAAIE,GAA8BP,IAAiB,SAASM,GAC1D,IAAIrwU,EAAI0F,KAAKmuE,KAAKw8P,GAClB,OAAOrwU,GAAKA,EAAI0F,KAAKorD,IAAI9wD,KACxBknT,GAIH,SAASqpB,GAAsB3uF,EAAIC,GACjC,IAAI+/E,EAAQl8T,KAAKmrD,IAAI+wL,GAAK/gP,EAAI,SAASkgP,GACrC,OAAOr7O,KAAK+tE,IAAI6sK,GAAI,EAAIS,EAAI,IAC3B3/O,EAAIwgP,IAAOC,EAAKn8O,KAAKorD,IAAI8wL,GAAMl8O,KAAKomB,IAAI81S,EAAQl8T,KAAKmrD,IAAIgxL,IAAOn8O,KAAKomB,IAAIjrB,EAAEghP,GAAMhhP,EAAE+gP,IAAM5hB,EAAI4hG,EAAQl8T,KAAK85B,IAAI3+B,EAAE+gP,GAAKxgP,GAAKA,EAC7H,IAAKA,EAAG,OAAOovU,GACf,SAASpvF,EAAQN,EAAGC,GACd/gB,EAAI,EACF+gB,GAAKR,GAAQH,KAAGW,GAAKR,GAAQH,IAE7BW,EAAIR,GAAQH,KAAGW,EAAIR,GAAQH,IAEjC,IAAI4wE,EAAIhxF,EAAIt6N,KAAK85B,IAAI3+B,EAAEkgP,GAAI3/O,GAC3B,MAAO,CAAE4vT,EAAItrT,KAAKorD,IAAI1vD,EAAI0/O,GAAI9gB,EAAIgxF,EAAItrT,KAAKmrD,IAAIzvD,EAAI0/O,IAMrD,OAJAM,EAAQhiO,OAAS,SAASjR,EAAG2F,GAC3B,IAAIg1T,EAAO9oG,EAAIlsN,EAAGk9S,EAAIR,GAAOpvT,GAAKsE,KAAKuD,KAAKkF,EAAIA,EAAI26T,EAAOA,GAC3D,MAAO,CAAEpjU,KAAKk0M,MAAMzrM,EAAG26T,GAAQ1nU,EAAG,EAAIsE,KAAKmhH,KAAKnhH,KAAK85B,IAAIwgM,EAAIgxF,EAAG,EAAI5vT,IAAMm/O,KAErEa,EAKT,SAASqvF,GAAwB7uF,EAAIC,GACnC,IAAI+/E,EAAQl8T,KAAKmrD,IAAI+wL,GAAKxgP,EAAIwgP,IAAOC,EAAKn8O,KAAKorD,IAAI8wL,IAAOggF,EAAQl8T,KAAKmrD,IAAIgxL,KAAQA,EAAKD,GAAK3hB,EAAI2hG,EAAQxgU,EAAIwgP,EAC7G,GAAInqO,EAAIrW,GAAKg/O,GAAG,OAAO0sF,GACvB,SAAS1rF,EAAQN,EAAGC,GAClB,IAAIiwE,EAAI/wF,EAAI8gB,EACZ,MAAO,CAAEiwE,EAAItrT,KAAKorD,IAAI1vD,EAAI0/O,GAAI7gB,EAAI+wF,EAAItrT,KAAKmrD,IAAIzvD,EAAI0/O,IAMrD,OAJAM,EAAQhiO,OAAS,SAASjR,EAAG2F,GAC3B,IAAIg1T,EAAO7oG,EAAInsN,EACf,MAAO,CAAEpO,KAAKk0M,MAAMzrM,EAAG26T,GAAQ1nU,EAAG6+N,EAAIuwF,GAAOpvT,GAAKsE,KAAKuD,KAAKkF,EAAIA,EAAI26T,EAAOA,KAEtE1nF,GArCRvyO,EAAGkoB,IAAI25S,qBAAuB,WAC7B,OAAOvE,GAAkBmE,MACxBnyM,IAAMmyM,IAqBRzhU,EAAGkoB,IAAI45S,eAAiB,WACvB,OAAOlI,GAAa8H,MACnBpyM,IAAMoyM,IAcR1hU,EAAGkoB,IAAI65S,iBAAmB,WACzB,OAAOnI,GAAagI,MACnBtyM,IAAMsyM,GACT,IAAII,GAAkBd,IAAiB,SAASM,GAC9C,OAAO,EAAIA,IACV3qU,KAAKmhH,MAIR,SAAS2pN,GAAgB1vF,EAAGC,GAC1B,MAAO,CAAED,EAAGp7O,KAAKomB,IAAIpmB,KAAK+tE,IAAI6sK,GAAI,EAAIS,EAAI,KAK5C,SAAS+vF,GAA0BltT,GACjC,IAAyGmtT,EAArGhxU,EAAIosU,GAAkBvoT,GAAU0hD,EAAQvlE,EAAEulE,MAAOk0J,EAAYz5N,EAAEy5N,UAAWuvG,EAAahpU,EAAEgpU,WAqB7F,OApBAhpU,EAAEulE,MAAQ,WACR,IAAI7gE,EAAI6gE,EAAMphE,MAAMnE,EAAGgb,WACvB,OAAOtW,IAAM1E,EAAIgxU,EAAWhxU,EAAEgpU,WAAW,MAAQhpU,EAAI0E,GAEvD1E,EAAEy5N,UAAY,WACZ,IAAI/0N,EAAI+0N,EAAUt1N,MAAMnE,EAAGgb,WAC3B,OAAOtW,IAAM1E,EAAIgxU,EAAWhxU,EAAEgpU,WAAW,MAAQhpU,EAAI0E,GAEvD1E,EAAEgpU,WAAa,SAAStiQ,GACtB,IAAIhiE,EAAIskU,EAAW7kU,MAAMnE,EAAGgb,WAC5B,GAAItW,IAAM1E,GACR,GAAIgxU,EAAgB,MAALtqQ,EAAW,CACxB,IAAI/hE,EAAI47O,GAAIh7K,IAASzkE,EAAI24N,IACzBuvG,EAAW,CAAE,CAAEloU,EAAE,GAAK6D,EAAG7D,EAAE,GAAK6D,GAAK,CAAE7D,EAAE,GAAK6D,EAAG7D,EAAE,GAAK6D,WAEjDqsU,IACTtsU,EAAI,MAEN,OAAOA,GAEF1E,EAAEgpU,WAAW,OA/BrBl6T,EAAGkoB,IAAIi6S,SAAW,WACjB,OAAO7E,GAAkB0E,MACxB1yM,IAAM0yM,GAITL,GAAgBpxT,OAAS,SAASjR,EAAG2F,GACnC,MAAO,CAAE3F,EAAG,EAAIzI,KAAKmhH,KAAKnhH,KAAK6uD,IAAIzgD,IAAMysO,MA0B1C1xO,EAAGkoB,IAAIk6S,SAAW,WACjB,OAAOH,GAA0BN,MAChCryM,IAAMqyM,GACT,IAAIU,GAAsBnB,IAAiB,WACzC,OAAO,IACNrqU,KAAKi7O,OACP9xO,EAAGkoB,IAAIo6S,aAAe,WACrB,OAAOhF,GAAkB+E,MACxB/yM,IAAM+yM,GACT,IAAIE,GAAuBrB,IAAiB,SAASM,GACnD,OAAO,GAAK,EAAIA,MACf,SAASrf,GACV,OAAO,EAAItrT,KAAKmhH,KAAKmqM,MAKvB,SAASqgB,GAA0BvwF,EAAGC,GACpC,MAAO,CAAEr7O,KAAKomB,IAAIpmB,KAAK+tE,IAAI6sK,GAAI,EAAIS,EAAI,KAAMD,GAiB/C,SAASwwF,GAAerxU,GACtB,OAAOA,EAAE,GAEX,SAASsxU,GAAetxU,GACtB,OAAOA,EAAE,GA2BX,SAASuxU,GAAkB5tU,GAEzB,IADA,IAAIxC,EAAIwC,EAAOE,OAAQ02I,EAAO,CAAE,EAAG,GAAKi3L,EAAK,EACpC9xU,EAAI,EAAGA,EAAIyB,EAAGzB,IAAK,CAC1B,MAAO8xU,EAAK,GAAKhhB,GAAW7sT,EAAO42I,EAAKi3L,EAAK,IAAK7tU,EAAO42I,EAAKi3L,EAAK,IAAK7tU,EAAOjE,KAAO,IAAK8xU,EAC3Fj3L,EAAKi3L,KAAQ9xU,EAEf,OAAO66I,EAAKv2I,MAAM,EAAGwtU,GAEvB,SAASC,GAAkBlvU,EAAGC,GAC5B,OAAOD,EAAE,GAAKC,EAAE,IAAMD,EAAE,GAAKC,EAAE,IA7DhCoM,EAAGkoB,IAAI46S,cAAgB,WACtB,OAAOxF,GAAkBiF,MACxBjzM,IAAMizM,GAITC,GAA0BjyT,OAAS,SAASjR,EAAG2F,GAC7C,MAAO,EAAGA,EAAG,EAAIpO,KAAKmhH,KAAKnhH,KAAK6uD,IAAIpmD,IAAMoyO,MAE3C1xO,EAAGkoB,IAAI66S,mBAAqB,WAC3B,IAAI1lU,EAAa4kU,GAA0BO,IAA4B5wS,EAASv0B,EAAWu0B,OAAQxsB,EAAS/H,EAAW+H,OAQvH,OAPA/H,EAAWu0B,OAAS,SAASgmC,GAC3B,OAAOA,EAAIhmC,EAAO,EAAGgmC,EAAE,GAAIA,EAAE,MAASA,EAAIhmC,IAAU,CAAEgmC,EAAE,IAAKA,EAAE,MAEjEv6D,EAAW+H,OAAS,SAASwyD,GAC3B,OAAOA,EAAIxyD,EAAO,CAAEwyD,EAAE,GAAIA,EAAE,GAAIA,EAAE3iE,OAAS,EAAI2iE,EAAE,GAAK,GAAK,MAASA,EAAIxyD,IACxE,CAAEwyD,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAK,MAEhBxyD,EAAO,CAAE,EAAG,EAAG,OACrBkqH,IAAMkzM,GACTxiU,EAAGq3M,KAAO,GAOVr3M,EAAGq3M,KAAK1rE,KAAO,SAASx4I,GACtB,IAAImM,EAAImjU,GAAgBx9T,EAAIy9T,GAC5B,GAAIx2T,UAAUjX,OAAQ,OAAO02I,EAAKx4I,GAClC,SAASw4I,EAAKtvI,GACZ,GAAIA,EAAKpH,OAAS,EAAG,MAAO,GAC5B,IAA4CnE,EAAxCutE,EAAKgpP,GAAW/nT,GAAIg/D,EAAK+oP,GAAWpiT,GAAO1S,EAAI8J,EAAKpH,OAAQF,EAAS,GAAIiuU,EAAgB,GAC7F,IAAKlyU,EAAI,EAAGA,EAAIyB,EAAGzB,IACjBiE,EAAOhB,KAAK,EAAGsqE,EAAGptE,KAAKP,KAAM2L,EAAKvL,GAAIA,IAAKwtE,EAAGrtE,KAAKP,KAAM2L,EAAKvL,GAAIA,GAAIA,IAGxE,IADAiE,EAAO+C,KAAK+qU,IACP/xU,EAAI,EAAGA,EAAIyB,EAAGzB,IAAKkyU,EAAcjvU,KAAK,CAAEgB,EAAOjE,GAAG,IAAKiE,EAAOjE,GAAG,KACtE,IAAI06I,EAAQm3L,GAAkB5tU,GAAS64S,EAAQ+0B,GAAkBK,GAC7DC,EAAWr1B,EAAM,KAAOpiK,EAAM,GAAI03L,EAAYt1B,EAAMA,EAAM34S,OAAS,KAAOu2I,EAAMA,EAAMv2I,OAAS,GAAIs9D,EAAU,GACjH,IAAKzhE,EAAI06I,EAAMv2I,OAAS,EAAGnE,GAAK,IAAKA,EAAGyhE,EAAQx+D,KAAKsI,EAAKtH,EAAOy2I,EAAM16I,IAAI,KAC3E,IAAKA,GAAKmyU,EAAUnyU,EAAI88S,EAAM34S,OAASiuU,IAAapyU,EAAGyhE,EAAQx+D,KAAKsI,EAAKtH,EAAO64S,EAAM98S,IAAI,KAC1F,OAAOyhE,EAQT,OANAo5E,EAAKrsI,EAAI,SAASs4D,GAChB,OAAO1rD,UAAUjX,QAAUqK,EAAIs4D,EAAG+zE,GAAQrsI,GAE5CqsI,EAAK1mI,EAAI,SAAS2yD,GAChB,OAAO1rD,UAAUjX,QAAUgQ,EAAI2yD,EAAG+zE,GAAQ1mI,GAErC0mI,GAaT3rI,EAAGq3M,KAAK9kJ,QAAU,SAASmB,GAEzB,OADAumP,EAAYvmP,EAAayvQ,IAClBzvQ,GAET,IAAIyvQ,GAA2BnjU,EAAGq3M,KAAK9kJ,QAAQ7/D,UAAY,GA+C3D,SAAS0wU,GAAsBxwU,EAAGe,EAAGC,GACnC,OAAQA,EAAE,GAAKD,EAAE,KAAOf,EAAE,GAAKe,EAAE,KAAOC,EAAE,GAAKD,EAAE,KAAOf,EAAE,GAAKe,EAAE,IAEnE,SAAS0vU,GAAyBlyU,EAAGC,EAAGuC,EAAGC,GACzC,IAAI00B,EAAKn3B,EAAE,GAAI4nE,EAAKplE,EAAE,GAAIoqH,EAAM3sH,EAAE,GAAKk3B,EAAIg7S,EAAM1vU,EAAE,GAAKmlE,EAAIpwC,EAAKx3B,EAAE,GAAI6nE,EAAKrlE,EAAE,GAAIqqH,EAAM5sH,EAAE,GAAKu3B,EAAI46S,EAAM3vU,EAAE,GAAKolE,EAAIwqQ,GAAMF,GAAO36S,EAAKqwC,GAAMuqQ,GAAOj7S,EAAKywC,KAAQwqQ,EAAMxlN,EAAMulN,EAAMtlN,GAClL,MAAO,CAAE11F,EAAKk7S,EAAKzlN,EAAKp1F,EAAK66S,EAAKxlN,GAEpC,SAASylN,GAAsB/vQ,GAC7B,IAAI//D,EAAI+/D,EAAY,GAAI9/D,EAAI8/D,EAAYA,EAAYz+D,OAAS,GAC7D,QAAStB,EAAE,GAAKC,EAAE,IAAMD,EAAE,GAAKC,EAAE,IAvDnCuvU,GAAyBjuQ,KAAO,WAC9B,IAA6BvhE,EAAzB7C,GAAK,EAAGyB,EAAI7B,KAAKuE,OAAWrB,EAAIlD,KAAK6B,EAAI,GAAI2iE,EAAO,EACxD,QAASpkE,EAAIyB,EACXoB,EAAIC,EACJA,EAAIlD,KAAKI,GACTokE,GAAQvhE,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAEjC,MAAc,GAAPshE,GAETiuQ,GAAyBnO,SAAW,SAASn/T,GAC3C,IAA2ClC,EAAoBxC,EAA3DL,GAAK,EAAGyB,EAAI7B,KAAKuE,OAAQqK,EAAI,EAAG2F,EAAI,EAAMrR,EAAIlD,KAAK6B,EAAI,GACtD2Z,UAAUjX,SAAQY,GAAK,GAAK,EAAInF,KAAKwkE,SAC1C,QAASpkE,EAAIyB,EACXoB,EAAIC,EACJA,EAAIlD,KAAKI,GACTK,EAAIwC,EAAE,GAAKC,EAAE,GAAKA,EAAE,GAAKD,EAAE,GAC3B2L,IAAM3L,EAAE,GAAKC,EAAE,IAAMzC,EACrB8T,IAAMtR,EAAE,GAAKC,EAAE,IAAMzC,EAEvB,MAAO,CAAEmO,EAAIzJ,EAAGoP,EAAIpP,IAEtBstU,GAAyBvpN,KAAO,SAAS+mM,GACvC,IAAIt6R,EAAuG3wB,EAAGxE,EAAoB0C,EAAGzC,EAAGC,EAA7Hs6O,EAAS+3F,GAAsB9iB,GAAU7vT,GAAK,EAAGyB,EAAI7B,KAAKuE,OAASwuU,GAAsB/yU,MAAaiD,EAAIjD,KAAK6B,EAAI,GAC9H,QAASzB,EAAIyB,EAAG,CACd8zB,EAAQs6R,EAAQvrT,QAChBurT,EAAQ1rT,OAAS,EACjBrB,EAAIlD,KAAKI,GACTK,EAAIk1B,GAAOn1B,EAAIm1B,EAAMpxB,OAASy2O,GAAU,GACxCh2O,GAAK,EACL,QAASA,EAAIxE,EACXE,EAAIi1B,EAAM3wB,GACN0tU,GAAsBhyU,EAAGuC,EAAGC,IACzBwvU,GAAsBjyU,EAAGwC,EAAGC,IAC/B+sT,EAAQ5sT,KAAKsvU,GAAyBlyU,EAAGC,EAAGuC,EAAGC,IAEjD+sT,EAAQ5sT,KAAK3C,IACJgyU,GAAsBjyU,EAAGwC,EAAGC,IACrC+sT,EAAQ5sT,KAAKsvU,GAAyBlyU,EAAGC,EAAGuC,EAAGC,IAEjDzC,EAAIC,EAEFs6O,GAAQi1E,EAAQ5sT,KAAK4sT,EAAQ,IACjChtT,EAAIC,EAEN,OAAO+sT,GAaT,IAAI+iB,GAAsBC,GAAsBC,GAAuDC,GAA4BC,GAA3DC,GAA2B,GAAwDC,GAA4B,GACvL,SAASC,KACPC,GAA4BxzU,MAC5BA,KAAKosC,KAAOpsC,KAAKyzU,KAAOzzU,KAAKyW,OAAS,KAExC,SAASi9T,GAA2BD,GAClC,IAAIE,EAAQN,GAAyB1tU,OAAS,IAAI4tU,GAElD,OADAI,EAAMF,KAAOA,EACNE,EAET,SAASC,GAA2BD,GAClCE,GAA4BF,GAC5BT,GAAuBjiU,OAAO0iU,GAC9BN,GAAyBhwU,KAAKswU,GAC9BH,GAA4BG,GAE9B,SAASG,GAA2BH,GAClC,IAAIl9T,EAASk9T,EAAMl9T,OAAQ7H,EAAI6H,EAAO7H,EAAG2F,EAAIkC,EAAOg+D,GAAI1nC,EAAS,CAC/Dn+B,EAAGA,EACH2F,EAAGA,GACFo0D,EAAWgrQ,EAAMh7Q,EAAGvB,EAAOu8Q,EAAM16Q,EAAG86Q,EAAe,CAAEJ,GACxDC,GAA2BD,GAC3B,IAAIK,EAAOrrQ,EACX,MAAOqrQ,EAAKv9T,QAAUyB,EAAItJ,EAAIolU,EAAKv9T,OAAO7H,GAAKiyO,IAAK3oO,EAAI3D,EAAIy/T,EAAKv9T,OAAOg+D,IAAMosK,GAC5El4K,EAAWqrQ,EAAKr7Q,EAChBo7Q,EAAa3lU,QAAQ4lU,GACrBJ,GAA2BI,GAC3BA,EAAOrrQ,EAETorQ,EAAa3lU,QAAQ4lU,GACrBH,GAA4BG,GAC5B,IAAI7yL,EAAO/pF,EACX,MAAO+pF,EAAK1qI,QAAUyB,EAAItJ,EAAIuyI,EAAK1qI,OAAO7H,GAAKiyO,IAAK3oO,EAAI3D,EAAI4sI,EAAK1qI,OAAOg+D,IAAMosK,GAC5EzpL,EAAO+pF,EAAKloF,EACZ86Q,EAAa1wU,KAAK89I,GAClByyL,GAA2BzyL,GAC3BA,EAAO/pF,EAET28Q,EAAa1wU,KAAK89I,GAClB0yL,GAA4B1yL,GAC5B,IAAiC8yL,EAA7BC,EAAQH,EAAaxvU,OACzB,IAAK0vU,EAAO,EAAGA,EAAOC,IAASD,EAC7B9yL,EAAO4yL,EAAaE,GACpBD,EAAOD,EAAaE,EAAO,GAC3BE,GAA0BhzL,EAAK/0G,KAAM4nS,EAAKP,KAAMtyL,EAAKsyL,KAAM1mS,GAE7DinS,EAAOD,EAAa,GACpB5yL,EAAO4yL,EAAaG,EAAQ,GAC5B/yL,EAAK/0G,KAAOgoS,GAA0BJ,EAAKP,KAAMtyL,EAAKsyL,KAAM,KAAM1mS,GAClEsnS,GAA4BL,GAC5BK,GAA4BlzL,GAE9B,SAASmzL,GAAwBb,GAC/B,IAAoCO,EAAM7yL,EAAMozL,EAAKC,EAAjD5lU,EAAI6kU,EAAK7kU,EAAG6lU,EAAYhB,EAAKl/T,EAAyByT,EAAOkrT,GAAuBhsQ,EACxF,MAAOl/C,EAEL,GADAusT,EAAMG,GAA8B1sT,EAAMysT,GAAa7lU,EACnD2lU,EAAM1zF,GAAG74N,EAAOA,EAAKm1S,MAAQ,CAE/B,GADAqX,EAAM5lU,EAAI+lU,GAA+B3sT,EAAMysT,KAC3CD,EAAM3zF,IAMH,CACD0zF,GAAO1zF,IACTmzF,EAAOhsT,EAAK2wC,EACZwoF,EAAOn5H,GACEwsT,GAAO3zF,IAChBmzF,EAAOhsT,EACPm5H,EAAOn5H,EAAKixC,GAEZ+6Q,EAAO7yL,EAAOn5H,EAEhB,MAfA,IAAKA,EAAKqkF,EAAG,CACX2nO,EAAOhsT,EACP,MAEFA,EAAOA,EAAKqkF,EAelB,IAAIuoO,EAASlB,GAA2BD,GAExC,GADAP,GAAuB3tU,OAAOyuU,EAAMY,GAC/BZ,GAAS7yL,EAAd,CACA,GAAI6yL,IAAS7yL,EAOX,OANA0yL,GAA4BG,GAC5B7yL,EAAOuyL,GAA2BM,EAAKP,MACvCP,GAAuB3tU,OAAOqvU,EAAQzzL,GACtCyzL,EAAOxoS,KAAO+0G,EAAK/0G,KAAOgoS,GAA0BJ,EAAKP,KAAMmB,EAAOnB,MACtEY,GAA4BL,QAC5BK,GAA4BlzL,GAG9B,GAAKA,EAAL,CAIA0yL,GAA4BG,GAC5BH,GAA4B1yL,GAC5B,IAAI0zL,EAAQb,EAAKP,KAAMhtT,EAAKouT,EAAMjmU,EAAGo8F,EAAK6pO,EAAMtgU,EAAG0rJ,EAAKwzK,EAAK7kU,EAAI6X,EAAIy5I,EAAKuzK,EAAKl/T,EAAIy2F,EAAI8pO,EAAQ3zL,EAAKsyL,KAAMj/P,EAAKsgQ,EAAMlmU,EAAI6X,EAAIguD,EAAKqgQ,EAAMvgU,EAAIy2F,EAAItqG,EAAI,GAAKu/J,EAAKxrF,EAAKyrF,EAAK1rF,GAAKugQ,EAAK90K,EAAKA,EAAKC,EAAKA,EAAI80K,EAAKxgQ,EAAKA,EAAKC,EAAKA,EAAI1nC,EAAS,CACpOn+B,GAAI6lE,EAAKsgQ,EAAK70K,EAAK80K,GAAMt0U,EAAI+lB,EAC7BlS,GAAI0rJ,EAAK+0K,EAAKxgQ,EAAKugQ,GAAMr0U,EAAIsqG,GAE/BmpO,GAA0BhzL,EAAK/0G,KAAMyoS,EAAOC,EAAO/nS,GACnD6nS,EAAOxoS,KAAOgoS,GAA0BS,EAAOpB,EAAM,KAAM1mS,GAC3Do0G,EAAK/0G,KAAOgoS,GAA0BX,EAAMqB,EAAO,KAAM/nS,GACzDsnS,GAA4BL,GAC5BK,GAA4BlzL,QAb1ByzL,EAAOxoS,KAAOgoS,GAA0BJ,EAAKP,KAAMmB,EAAOnB,OAe9D,SAASiB,GAA8BxmN,EAAKumN,GAC1C,IAAIhB,EAAOvlN,EAAIulN,KAAMwB,EAAQxB,EAAK7kU,EAAGsmU,EAAQzB,EAAKl/T,EAAG4gU,EAAOD,EAAQT,EACpE,IAAKU,EAAM,OAAOF,EAClB,IAAIjB,EAAO9lN,EAAIv1D,EACf,IAAKq7Q,EAAM,OAAQrpU,IACnB8oU,EAAOO,EAAKP,KACZ,IAAI2B,EAAQ3B,EAAK7kU,EAAGymU,EAAQ5B,EAAKl/T,EAAG+gU,EAAQD,EAAQZ,EACpD,IAAKa,EAAO,OAAOF,EACnB,IAAIG,EAAKH,EAAQH,EAAOO,EAAO,EAAIL,EAAO,EAAIG,EAAOpyU,EAAIqyU,EAAKD,EAC9D,OAAIE,IAAetyU,EAAIiD,KAAKuD,KAAKxG,EAAIA,EAAI,EAAIsyU,GAAQD,EAAKA,IAAO,EAAID,GAASD,EAAQC,EAAQ,EAAIJ,EAAQC,EAAO,KAAOK,EAAOP,GACvHA,EAAQG,GAAS,EAE3B,SAAST,GAA+BzmN,EAAKumN,GAC3C,IAAItzL,EAAOjzB,EAAIj1D,EACf,GAAIkoF,EAAM,OAAOuzL,GAA8BvzL,EAAMszL,GACrD,IAAIhB,EAAOvlN,EAAIulN,KACf,OAAOA,EAAKl/T,IAAMkgU,EAAYhB,EAAK7kU,EAAIjE,IAEzC,SAAS8qU,GAAoBhC,GAC3BzzU,KAAKyzU,KAAOA,EACZzzU,KAAKqvJ,MAAQ,GAWf,SAASqmL,GAA0BjsQ,GACjC,IAAgF7pB,EAAIuoB,EAAIE,EAAIC,EAAwDxlE,EAAM6yU,EAAWC,EAAWC,EAAY5xT,EAAOE,EAA/LwT,EAAK8xC,EAAO,GAAG,GAAI7xC,EAAK6xC,EAAO,GAAG,GAAIzxC,EAAKyxC,EAAO,GAAG,GAAIxxC,EAAKwxC,EAAO,GAAG,GAAoBliE,EAAQ0rU,GAAsB6C,EAAQvuU,EAAMhD,OAC5I,MAAOuxU,IAEL,GADAhzU,EAAOyE,EAAMuuU,GACRhzU,GAASA,EAAKmnE,UAAnB,CACA2rQ,EAAY9yU,EAAKusJ,MACjBwmL,EAAaD,EAAUrxU,OACvBoxU,EAAY,EACZ,MAAOA,EAAYE,EACjB1xT,EAAMyxT,EAAUD,GAAWxxT,MAAOkkD,EAAKlkD,EAAIvV,EAAG05D,EAAKnkD,EAAI5P,EACvD0P,EAAQ2xT,IAAYD,EAAYE,GAAY5xT,QAAS27B,EAAK37B,EAAMrV,EAAGu5D,EAAKlkD,EAAM1P,GAC1E2D,EAAImwD,EAAKzoB,GAAMihM,IAAK3oO,EAAIowD,EAAKH,GAAM04K,MACrC+0F,EAAU5kU,OAAO2kU,EAAW,EAAG,IAAII,GAAwBC,GAAgClzU,EAAK2wU,KAAMtvT,EAAKjM,EAAImwD,EAAK1wC,GAAMkpN,IAAK5oN,EAAKqwC,EAAKu4K,GAAI,CAC3IjyO,EAAG+oB,EACHpjB,EAAG2D,EAAI0nC,EAAKjoB,GAAMkpN,GAAI14K,EAAKlwC,GACzB/f,EAAIowD,EAAKrwC,GAAM4oN,IAAKjpN,EAAKywC,EAAKw4K,GAAI,CACpCjyO,EAAGsJ,EAAIiwD,EAAKlwC,GAAM4oN,GAAIjhM,EAAKhoB,EAC3BrjB,EAAG0jB,GACD/f,EAAImwD,EAAKzwC,GAAMipN,IAAKv4K,EAAKtwC,EAAK6oN,GAAI,CACpCjyO,EAAGgpB,EACHrjB,EAAG2D,EAAI0nC,EAAKhoB,GAAMipN,GAAI14K,EAAKnwC,GACzB9f,EAAIowD,EAAKtwC,GAAM6oN,IAAKx4K,EAAK1wC,EAAKkpN,GAAI,CACpCjyO,EAAGsJ,EAAIiwD,EAAKnwC,GAAM6oN,GAAIjhM,EAAKjoB,EAC3BpjB,EAAGyjB,GACD,MAAOl1B,EAAK2wU,KAAM,SACpBoC,IAKV,SAASI,GAA6BhzU,EAAGC,GACvC,OAAOA,EAAE+tD,MAAQhuD,EAAEguD,MAErB,SAASilR,KACP1C,GAA4BxzU,MAC5BA,KAAK4O,EAAI5O,KAAKuU,EAAIvU,KAAKkuH,IAAMluH,KAAKyzU,KAAOzzU,KAAKy0E,GAAK,KAErD,SAAS4/P,GAA4BnmN,GACnC,IAAI8lN,EAAO9lN,EAAIv1D,EAAGwoF,EAAOjzB,EAAIj1D,EAC7B,GAAK+6Q,GAAS7yL,EAAd,CACA,IAAI0zL,EAAQb,EAAKP,KAAM0C,EAAQjoN,EAAIulN,KAAMqB,EAAQ3zL,EAAKsyL,KACtD,GAAIoB,IAAUC,EAAd,CACA,IAAI70K,EAAKk2K,EAAMvnU,EAAGsxJ,EAAKi2K,EAAM5hU,EAAGkS,EAAKouT,EAAMjmU,EAAIqxJ,EAAIj1D,EAAK6pO,EAAMtgU,EAAI2rJ,EAAI1rF,EAAKsgQ,EAAMlmU,EAAIqxJ,EAAIxrF,EAAKqgQ,EAAMvgU,EAAI2rJ,EACpGx/J,EAAI,GAAK+lB,EAAKguD,EAAKu2B,EAAKx2B,GAC5B,KAAI9zE,IAAMogP,IAAV,CACA,IAAIs1F,EAAK3vT,EAAKA,EAAKukF,EAAKA,EAAIgqO,EAAKxgQ,EAAKA,EAAKC,EAAKA,EAAI7lE,GAAK6lE,EAAK2hQ,EAAKprO,EAAKgqO,GAAMt0U,EAAG6T,GAAKkS,EAAKuuT,EAAKxgQ,EAAK4hQ,GAAM11U,EACvG+V,GAD0Gg+D,EAAKlgE,EAAI2rJ,EAC1GozK,GAA0B3tU,OAAS,IAAIuwU,IACpDz/T,EAAOy3G,IAAMA,EACbz3G,EAAOg9T,KAAO0C,EACd1/T,EAAO7H,EAAIA,EAAIqxJ,EACfxpJ,EAAOlC,EAAIkgE,EAAKtuE,KAAKuD,KAAKkF,EAAIA,EAAI2F,EAAIA,GACtCkC,EAAOg+D,GAAKA,EACZy5C,EAAIz3G,OAASA,EACb,IAAI42S,EAAS,KAAMrlS,EAAOorT,GAAuBlsQ,EACjD,MAAOl/C,EACL,GAAIvR,EAAOlC,EAAIyT,EAAKzT,GAAKkC,EAAOlC,IAAMyT,EAAKzT,GAAKkC,EAAO7H,GAAKoZ,EAAKpZ,EAAG,CAClE,IAAIoZ,EAAKm1S,EAAuB,CAC9B9P,EAASrlS,EAAK2wC,EACd,MAFU3wC,EAAOA,EAAKm1S,MAInB,CACL,IAAIn1S,EAAKqkF,EAAuB,CAC9BghN,EAASrlS,EACT,MAFUA,EAAOA,EAAKqkF,EAM5B+mO,GAAuB7tU,OAAO8nT,EAAQ52S,GACjC42S,IAAQ8lB,GAA6B18T,MAE5C,SAASo9T,GAA4B3lN,GACnC,IAAIz3G,EAASy3G,EAAIz3G,OACbA,IACGA,EAAOkiD,IAAGw6Q,GAA6B18T,EAAOwiD,GACnDm6Q,GAAuBniU,OAAOwF,GAC9B68T,GAA0BjwU,KAAKoT,GAC/B+8T,GAA4B/8T,GAC5By3G,EAAIz3G,OAAS,MAGjB,SAAS4/T,GAAyB5sQ,GAChC,IAAqIzrD,EAAjIqxI,EAAQ2jL,GAAsB9pN,EAAOi/M,GAAiB1+P,EAAO,GAAG,GAAIA,EAAO,GAAG,GAAIA,EAAO,GAAG,GAAIA,EAAO,GAAG,IAAKrpE,EAAIivJ,EAAM9qJ,OAC7H,MAAOnE,IACL4d,EAAIqxI,EAAMjvJ,KACLk2U,GAA2Bt4T,EAAGyrD,KAAYy/C,EAAKlrG,IAAM9F,EAAI8F,EAAE/a,EAAE2L,EAAIoP,EAAE9a,EAAE0L,GAAKiyO,IAAK3oO,EAAI8F,EAAE/a,EAAEsR,EAAIyJ,EAAE9a,EAAEqR,GAAKssO,MACvG7iO,EAAE/a,EAAI+a,EAAE9a,EAAI,KACZmsJ,EAAMr+I,OAAO5Q,EAAG,IAItB,SAASk2U,GAA2BlqS,EAAMq9B,GACxC,IAAI8sQ,EAAKnqS,EAAKlpC,EACd,GAAIqzU,EAAI,OAAO,EACf,IAA6NC,EAAIC,EAA7NC,EAAKtqS,EAAKnpC,EAAG00B,EAAK8xC,EAAO,GAAG,GAAI7xC,EAAK6xC,EAAO,GAAG,GAAIzxC,EAAKyxC,EAAO,GAAG,GAAIxxC,EAAKwxC,EAAO,GAAG,GAAIorQ,EAAQzoS,EAAK/rC,EAAGy0U,EAAQ1oS,EAAKlrC,EAAGusO,EAAKonG,EAAMjmU,EAAG8+N,EAAKmnG,EAAMtgU,EAAGk/D,EAAKqhQ,EAAMlmU,EAAG8kE,EAAKohQ,EAAMvgU,EAAGo5D,GAAM8/J,EAAKh6J,GAAM,EAAG7F,GAAM8/J,EAAKh6J,GAAM,EAC1N,GAAIA,IAAOg6J,EAAI,CACb,GAAI//J,EAAKh2C,GAAMg2C,GAAM/1C,EAAI,OACzB,GAAI61M,EAAKh6J,EAAI,CACX,GAAKijQ,GAGG,GAAIA,EAAGniU,GAAK0jB,EAAI,YAHfy+S,EAAK,CACZ9nU,EAAG++D,EACHp5D,EAAGyjB,GAELu+S,EAAK,CACH3nU,EAAG++D,EACHp5D,EAAG0jB,OAEA,CACL,GAAKy+S,GAGG,GAAIA,EAAGniU,EAAIyjB,EAAI,YAHd0+S,EAAK,CACZ9nU,EAAG++D,EACHp5D,EAAG0jB,GAELs+S,EAAK,CACH3nU,EAAG++D,EACHp5D,EAAGyjB,SAMP,GAFAw+S,GAAM/oG,EAAKh6J,IAAOC,EAAKg6J,GACvB+oG,EAAK7oQ,EAAK4oQ,EAAK7oQ,EACX6oQ,GAAM,GAAKA,EAAK,EAClB,GAAI/oG,EAAKh6J,EAAI,CACX,GAAKijQ,GAGG,GAAIA,EAAGniU,GAAK0jB,EAAI,YAHfy+S,EAAK,CACZ9nU,GAAIopB,EAAKy+S,GAAMD,EACfjiU,EAAGyjB,GAELu+S,EAAK,CACH3nU,GAAIqpB,EAAKw+S,GAAMD,EACfjiU,EAAG0jB,OAEA,CACL,GAAKy+S,GAGG,GAAIA,EAAGniU,EAAIyjB,EAAI,YAHd0+S,EAAK,CACZ9nU,GAAIqpB,EAAKw+S,GAAMD,EACfjiU,EAAG0jB,GAELs+S,EAAK,CACH3nU,GAAIopB,EAAKy+S,GAAMD,EACfjiU,EAAGyjB,QAIP,GAAI01M,EAAKh6J,EAAI,CACX,GAAKgjQ,GAGG,GAAIA,EAAG9nU,GAAKgpB,EAAI,YAHf8+S,EAAK,CACZ9nU,EAAG+oB,EACHpjB,EAAGiiU,EAAK7+S,EAAK8+S,GAEfF,EAAK,CACH3nU,EAAGgpB,EACHrjB,EAAGiiU,EAAK5+S,EAAK6+S,OAEV,CACL,GAAKC,GAGG,GAAIA,EAAG9nU,EAAI+oB,EAAI,YAHd++S,EAAK,CACZ9nU,EAAGgpB,EACHrjB,EAAGiiU,EAAK5+S,EAAK6+S,GAEfF,EAAK,CACH3nU,EAAG+oB,EACHpjB,EAAGiiU,EAAK7+S,EAAK8+S,GAOrB,OAFArqS,EAAKnpC,EAAIyzU,EACTtqS,EAAKlpC,EAAIqzU,GACF,EAET,SAASI,GAAoB9B,EAAOC,GAClC90U,KAAKK,EAAIw0U,EACT70U,KAAKkB,EAAI4zU,EACT90U,KAAKiD,EAAIjD,KAAKkD,EAAI,KAEpB,SAASkxU,GAA0BS,EAAOC,EAAO4B,EAAIH,GACnD,IAAInqS,EAAO,IAAIuqS,GAAoB9B,EAAOC,GAM1C,OALA9B,GAAqB3vU,KAAK+oC,GACtBsqS,GAAIvC,GAA0B/nS,EAAMyoS,EAAOC,EAAO4B,GAClDH,GAAIpC,GAA0B/nS,EAAM0oS,EAAOD,EAAO0B,GACtDtD,GAAqB4B,EAAMz0U,GAAGivJ,MAAMhsJ,KAAK,IAAI0yU,GAAwB3pS,EAAMyoS,EAAOC,IAClF7B,GAAqB6B,EAAM10U,GAAGivJ,MAAMhsJ,KAAK,IAAI0yU,GAAwB3pS,EAAM0oS,EAAOD,IAC3EzoS,EAET,SAAS4pS,GAAgCnB,EAAO6B,EAAIH,GAClD,IAAInqS,EAAO,IAAIuqS,GAAoB9B,EAAO,MAI1C,OAHAzoS,EAAKnpC,EAAIyzU,EACTtqS,EAAKlpC,EAAIqzU,EACTvD,GAAqB3vU,KAAK+oC,GACnBA,EAET,SAAS+nS,GAA0B/nS,EAAMyoS,EAAOC,EAAO/nS,GAChDX,EAAKnpC,GAAMmpC,EAAKlpC,EAIVkpC,EAAK/rC,IAAMy0U,EACpB1oS,EAAKlpC,EAAI6pC,EAETX,EAAKnpC,EAAI8pC,GANTX,EAAKnpC,EAAI8pC,EACTX,EAAK/rC,EAAIw0U,EACTzoS,EAAKlrC,EAAI4zU,GAOb,SAASiB,GAAwB3pS,EAAMyoS,EAAOC,GAC5C,IAAI4B,EAAKtqS,EAAKnpC,EAAGszU,EAAKnqS,EAAKlpC,EAC3BlD,KAAKosC,KAAOA,EACZpsC,KAAKyzU,KAAOoB,EACZ70U,KAAKixD,MAAQ6jR,EAAQ3uU,KAAKk0M,MAAMy6H,EAAMvgU,EAAIsgU,EAAMtgU,EAAGugU,EAAMlmU,EAAIimU,EAAMjmU,GAAKw9B,EAAK/rC,IAAMw0U,EAAQ1uU,KAAKk0M,MAAMk8H,EAAG3nU,EAAI8nU,EAAG9nU,EAAG8nU,EAAGniU,EAAIgiU,EAAGhiU,GAAKpO,KAAKk0M,MAAMq8H,EAAG9nU,EAAI2nU,EAAG3nU,EAAG2nU,EAAGhiU,EAAImiU,EAAGniU,GAUtK,SAASqiU,KACP52U,KAAKknE,EAAI,KAEX,SAASssQ,GAA4BxrT,GACnCA,EAAK64M,EAAI74M,EAAK0kL,EAAI1kL,EAAKm1S,EAAIn1S,EAAKqkF,EAAIrkF,EAAK2wC,EAAI3wC,EAAKixC,EAAI,KAkKxD,SAAS49Q,GAAkCzvQ,EAAMp/C,GAC/C,IAAI9lB,EAAI8lB,EAAMogD,EAAIpgD,EAAKqkF,EAAG3jF,EAASxmB,EAAE2+N,EACjCn4M,EACEA,EAAOy0S,IAAMj7T,EAAGwmB,EAAOy0S,EAAI/0P,EAAQ1/C,EAAO2jF,EAAIjkC,EAElDhB,EAAKF,EAAIkB,EAEXA,EAAEy4J,EAAIn4M,EACNxmB,EAAE2+N,EAAIz4J,EACNlmE,EAAEmqG,EAAIjkC,EAAE+0P,EACJj7T,EAAEmqG,IAAGnqG,EAAEmqG,EAAEw0H,EAAI3+N,GACjBkmE,EAAE+0P,EAAIj7T,EAER,SAAS40U,GAAmC1vQ,EAAMp/C,GAChD,IAAI9lB,EAAI8lB,EAAMogD,EAAIpgD,EAAKm1S,EAAGz0S,EAASxmB,EAAE2+N,EACjCn4M,EACEA,EAAOy0S,IAAMj7T,EAAGwmB,EAAOy0S,EAAI/0P,EAAQ1/C,EAAO2jF,EAAIjkC,EAElDhB,EAAKF,EAAIkB,EAEXA,EAAEy4J,EAAIn4M,EACNxmB,EAAE2+N,EAAIz4J,EACNlmE,EAAEi7T,EAAI/0P,EAAEikC,EACJnqG,EAAEi7T,IAAGj7T,EAAEi7T,EAAEt8F,EAAI3+N,GACjBkmE,EAAEikC,EAAInqG,EAER,SAAS60U,GAA6B/uT,GACpC,MAAOA,EAAKm1S,EAAGn1S,EAAOA,EAAKm1S,EAC3B,OAAOn1S,EAET,SAASgvT,GAAgBC,EAAOngL,GAC9B,IAAyDn/H,EAAIK,EAAIvhB,EAA7Dg9T,EAAOwD,EAAM7vU,KAAK8vU,IAA4BvxU,MAClDqtU,GAAuB,GACvBC,GAAuB,IAAI9uU,MAAM8yU,EAAM1yU,QACvC2uU,GAAyB,IAAI0D,GAC7BxD,GAAyB,IAAIwD,GAC7B,MAAO,EAEL,GADAngU,EAAS08T,GACLM,KAAUh9T,GAAUg9T,EAAKl/T,EAAIkC,EAAOlC,GAAKk/T,EAAKl/T,IAAMkC,EAAOlC,GAAKk/T,EAAK7kU,EAAI6H,EAAO7H,GAC9E6kU,EAAK7kU,IAAM+oB,GAAM87S,EAAKl/T,IAAMyjB,IAC9Bi7S,GAAqBQ,EAAKrzU,GAAK,IAAIq1U,GAAoBhC,GACvDa,GAAwBb,GACxB97S,EAAK87S,EAAK7kU,EAAGopB,EAAKy7S,EAAKl/T,GAEzBk/T,EAAOwD,EAAMtxU,UACR,KAAI8Q,EAGT,MAFAq9T,GAA2Br9T,EAAOy3G,KAKlC4oC,IAAMu/K,GAAyBv/K,GAAO4+K,GAA0B5+K,IACpE,IAAIqgL,EAAU,CACZ5vU,MAAO0rU,GACP5jL,MAAO2jL,IAGT,OADAE,GAAyBE,GAAyBJ,GAAuBC,GAAuB,KACzFkE,EAET,SAASD,GAA2Bj0U,EAAGC,GACrC,OAAOA,EAAEqR,EAAItR,EAAEsR,GAAKrR,EAAE0L,EAAI3L,EAAE2L,EA7b9B6mU,GAAoBzzU,UAAUioE,QAAU,WACtC,IAA0D79B,EAAtDwpS,EAAY51U,KAAKqvJ,MAAOsmL,EAAYC,EAAUrxU,OAClD,MAAOoxU,IACLvpS,EAAOwpS,EAAUD,GAAWvpS,KACvBA,EAAKlpC,GAAMkpC,EAAKnpC,GAAG2yU,EAAU5kU,OAAO2kU,EAAW,GAGtD,OADAC,EAAUxuU,KAAK6uU,IACRL,EAAUrxU,QA4MnBwxU,GAAwB/zU,UAAY,CAClCiiB,MAAO,WACL,OAAOjkB,KAAKosC,KAAK/rC,IAAML,KAAKyzU,KAAOzzU,KAAKosC,KAAKnpC,EAAIjD,KAAKosC,KAAKlpC,GAE7DihB,IAAK,WACH,OAAOnkB,KAAKosC,KAAK/rC,IAAML,KAAKyzU,KAAOzzU,KAAKosC,KAAKlpC,EAAIlD,KAAKosC,KAAKnpC,IAS/D2zU,GAA4B50U,UAAY,CACtCuD,OAAQ,SAASy1T,EAAOhzS,GACtB,IAAIU,EAAQ0uT,EAASC,EACrB,GAAIrc,EAAO,CAKT,GAJAhzS,EAAK2wC,EAAIqiQ,EACThzS,EAAKixC,EAAI+hQ,EAAM/hQ,EACX+hQ,EAAM/hQ,IAAG+hQ,EAAM/hQ,EAAEN,EAAI3wC,GACzBgzS,EAAM/hQ,EAAIjxC,EACNgzS,EAAM3uN,EAAG,CACX2uN,EAAQA,EAAM3uN,EACd,MAAO2uN,EAAMmC,EAAGnC,EAAQA,EAAMmC,EAC9BnC,EAAMmC,EAAIn1S,OAEVgzS,EAAM3uN,EAAIrkF,EAEZU,EAASsyS,OACAh7T,KAAKknE,GACd8zP,EAAQ+b,GAA6B/2U,KAAKknE,GAC1Cl/C,EAAK2wC,EAAI,KACT3wC,EAAKixC,EAAI+hQ,EACTA,EAAMriQ,EAAIqiQ,EAAMmC,EAAIn1S,EACpBU,EAASsyS,IAEThzS,EAAK2wC,EAAI3wC,EAAKixC,EAAI,KAClBj5D,KAAKknE,EAAIl/C,EACTU,EAAS,MAEXV,EAAKm1S,EAAIn1S,EAAKqkF,EAAI,KAClBrkF,EAAK64M,EAAIn4M,EACTV,EAAK0kL,GAAI,EACTsuH,EAAQhzS,EACR,MAAOU,GAAUA,EAAOgkL,EACtB0qI,EAAU1uT,EAAOm4M,EACbn4M,IAAW0uT,EAAQja,GACrBka,EAAQD,EAAQ/qO,EACZgrO,GAASA,EAAM3qI,GACjBhkL,EAAOgkL,EAAI2qI,EAAM3qI,GAAI,EACrB0qI,EAAQ1qI,GAAI,EACZsuH,EAAQoc,IAEJpc,IAAUtyS,EAAO2jF,IACnBwqO,GAAkC72U,KAAM0oB,GACxCsyS,EAAQtyS,EACRA,EAASsyS,EAAMn6F,GAEjBn4M,EAAOgkL,GAAI,EACX0qI,EAAQ1qI,GAAI,EACZoqI,GAAmC92U,KAAMo3U,MAG3CC,EAAQD,EAAQja,EACZka,GAASA,EAAM3qI,GACjBhkL,EAAOgkL,EAAI2qI,EAAM3qI,GAAI,EACrB0qI,EAAQ1qI,GAAI,EACZsuH,EAAQoc,IAEJpc,IAAUtyS,EAAOy0S,IACnB2Z,GAAmC92U,KAAM0oB,GACzCsyS,EAAQtyS,EACRA,EAASsyS,EAAMn6F,GAEjBn4M,EAAOgkL,GAAI,EACX0qI,EAAQ1qI,GAAI,EACZmqI,GAAkC72U,KAAMo3U,KAG5C1uT,EAASsyS,EAAMn6F,EAEjB7gO,KAAKknE,EAAEwlI,GAAI,GAEbz7L,OAAQ,SAAS+W,GACXA,EAAKixC,IAAGjxC,EAAKixC,EAAEN,EAAI3wC,EAAK2wC,GACxB3wC,EAAK2wC,IAAG3wC,EAAK2wC,EAAEM,EAAIjxC,EAAKixC,GAC5BjxC,EAAKixC,EAAIjxC,EAAK2wC,EAAI,KAClB,IAAqB2+Q,EAAwClgR,EAAMu9H,EAA/DjsK,EAASV,EAAK64M,EAAYzsN,EAAO4T,EAAKm1S,EAAG9oT,EAAQ2T,EAAKqkF,EA6B1D,GA5B4Dj1C,EAAvDhjD,EAA8BC,EAAgC0iU,GAA6B1iU,GAA/CD,EAA/BC,EACdqU,EACEA,EAAOy0S,IAAMn1S,EAAMU,EAAOy0S,EAAI/lQ,EAAW1uC,EAAO2jF,EAAIj1C,EAExDp3D,KAAKknE,EAAI9P,EAEPhjD,GAAQC,GACVsgL,EAAMv9H,EAAKs1I,EACXt1I,EAAKs1I,EAAI1kL,EAAK0kL,EACdt1I,EAAK+lQ,EAAI/oT,EACTA,EAAKysN,EAAIzpK,EACLA,IAAS/iD,GACXqU,EAAS0uC,EAAKypK,EACdzpK,EAAKypK,EAAI74M,EAAK64M,EACd74M,EAAOovC,EAAKi1C,EACZ3jF,EAAOy0S,EAAIn1S,EACXovC,EAAKi1C,EAAIh4F,EACTA,EAAMwsN,EAAIzpK,IAEVA,EAAKypK,EAAIn4M,EACTA,EAAS0uC,EACTpvC,EAAOovC,EAAKi1C,KAGdsoF,EAAM3sK,EAAK0kL,EACX1kL,EAAOovC,GAELpvC,IAAMA,EAAK64M,EAAIn4M,IACfisK,EACJ,GAAI3sK,GAAQA,EAAK0kL,EACf1kL,EAAK0kL,GAAI,MADX,CAIA,EAAG,CACD,GAAI1kL,IAAShoB,KAAKknE,EAAG,MACrB,GAAIl/C,IAASU,EAAOy0S,GAQlB,GAPAma,EAAU5uT,EAAO2jF,EACbirO,EAAQ5qI,IACV4qI,EAAQ5qI,GAAI,EACZhkL,EAAOgkL,GAAI,EACXmqI,GAAkC72U,KAAM0oB,GACxC4uT,EAAU5uT,EAAO2jF,GAEfirO,EAAQna,GAAKma,EAAQna,EAAEzwH,GAAK4qI,EAAQjrO,GAAKirO,EAAQjrO,EAAEqgG,EAAG,CACnD4qI,EAAQjrO,GAAMirO,EAAQjrO,EAAEqgG,IAC3B4qI,EAAQna,EAAEzwH,GAAI,EACd4qI,EAAQ5qI,GAAI,EACZoqI,GAAmC92U,KAAMs3U,GACzCA,EAAU5uT,EAAO2jF,GAEnBirO,EAAQ5qI,EAAIhkL,EAAOgkL,EACnBhkL,EAAOgkL,EAAI4qI,EAAQjrO,EAAEqgG,GAAI,EACzBmqI,GAAkC72U,KAAM0oB,GACxCV,EAAOhoB,KAAKknE,EACZ,YAUF,GAPAowQ,EAAU5uT,EAAOy0S,EACbma,EAAQ5qI,IACV4qI,EAAQ5qI,GAAI,EACZhkL,EAAOgkL,GAAI,EACXoqI,GAAmC92U,KAAM0oB,GACzC4uT,EAAU5uT,EAAOy0S,GAEfma,EAAQna,GAAKma,EAAQna,EAAEzwH,GAAK4qI,EAAQjrO,GAAKirO,EAAQjrO,EAAEqgG,EAAG,CACnD4qI,EAAQna,GAAMma,EAAQna,EAAEzwH,IAC3B4qI,EAAQjrO,EAAEqgG,GAAI,EACd4qI,EAAQ5qI,GAAI,EACZmqI,GAAkC72U,KAAMs3U,GACxCA,EAAU5uT,EAAOy0S,GAEnBma,EAAQ5qI,EAAIhkL,EAAOgkL,EACnBhkL,EAAOgkL,EAAI4qI,EAAQna,EAAEzwH,GAAI,EACzBoqI,GAAmC92U,KAAM0oB,GACzCV,EAAOhoB,KAAKknE,EACZ,MAGJowQ,EAAQ5qI,GAAI,EACZ1kL,EAAOU,EACPA,EAASA,EAAOm4M,SACR74M,EAAK0kL,GACX1kL,IAAMA,EAAK0kL,GAAI,MAiEvBp9L,EAAGq3M,KAAK4wH,QAAU,SAASlzU,GACzB,IAAIuK,EAAImjU,GAAgBx9T,EAAIy9T,GAAgBrkQ,EAAK/+D,EAAGg/D,EAAKr5D,EAAGi1T,EAAagO,GACzE,GAAInzU,EAAQ,OAAOkzU,EAAQlzU,GAC3B,SAASkzU,EAAQ5rU,GACf,IAAIs3D,EAAW,IAAI9+D,MAAMwH,EAAKpH,QAASozB,EAAK6xS,EAAW,GAAG,GAAIxxS,EAAKwxS,EAAW,GAAG,GAAI5xS,EAAK4xS,EAAW,GAAG,GAAIvxS,EAAKuxS,EAAW,GAAG,GAQ/H,OAPAwN,GAAgBC,EAAMtrU,GAAO69T,GAAYjiU,MAAMiwD,SAAQ,SAAS10D,EAAM1C,GACpE,IAAIivJ,EAAQvsJ,EAAKusJ,MAAOokL,EAAO3wU,EAAK2wU,KAAM5xQ,EAAUoB,EAAS7iE,GAAKivJ,EAAM9qJ,OAAS8qJ,EAAMrzG,KAAI,SAASh+B,GAClG,IAAI7b,EAAI6b,EAAEiG,QACV,MAAO,CAAE9hB,EAAEyM,EAAGzM,EAAEoS,MACbk/T,EAAK7kU,GAAK+oB,GAAM87S,EAAK7kU,GAAKgpB,GAAM67S,EAAKl/T,GAAKyjB,GAAMy7S,EAAKl/T,GAAK0jB,EAAK,CAAE,CAAEN,EAAIM,GAAM,CAAEL,EAAIK,GAAM,CAAEL,EAAII,GAAM,CAAEL,EAAIK,IAAS,GACzH6pC,EAAQp8D,MAAQkG,EAAKvL,MAEhB6iE,EAET,SAASg0Q,EAAMtrU,GACb,OAAOA,EAAKqwC,KAAI,SAASt7C,EAAGN,GAC1B,MAAO,CACLwO,EAAGzI,KAAK45B,MAAM4tC,EAAGjtE,EAAGN,GAAKygP,IAAKA,GAC9BtsO,EAAGpO,KAAK45B,MAAM6tC,EAAGltE,EAAGN,GAAKygP,IAAKA,GAC9BzgP,EAAGA,MA6CT,OAzCAm3U,EAAQxsQ,MAAQ,SAASp/D,GACvB,OAAOqrU,GAAgBC,EAAMtrU,IAAO0jJ,MAAMprJ,QAAO,SAASmoC,GACxD,OAAOA,EAAK/rC,GAAK+rC,EAAKlrC,KACrB86C,KAAI,SAAS5P,GACd,MAAO,CACLo9B,OAAQ79D,EAAKygC,EAAK/rC,EAAED,GACpBuwB,OAAQhlB,EAAKygC,EAAKlrC,EAAEd,QAI1Bm3U,EAAQlyU,UAAY,SAASsG,GAC3B,IAAItG,EAAY,GAahB,OAZA2xU,GAAgBC,EAAMtrU,IAAOpE,MAAMiwD,SAAQ,SAAS10D,EAAM1C,GACxD,IAA2GmlF,EAAvGkuP,EAAO3wU,EAAK2wU,KAAMpkL,EAAQvsJ,EAAKusJ,MAAMjoJ,KAAK6uU,IAA+BjxU,GAAK,EAAGxE,EAAI6uJ,EAAM9qJ,OAAgB6kT,EAAK/5J,EAAM7uJ,EAAI,GAAG4rC,KAAMo5C,EAAK4jO,EAAG/oT,IAAMozU,EAAOrqB,EAAGloT,EAAIkoT,EAAG/oT,EACtK,QAAS2E,EAAIxE,EACN4oT,EACL7jO,EAAKC,EACL4jO,EAAK/5J,EAAMrqJ,GAAGonC,KACdo5C,EAAK4jO,EAAG/oT,IAAMozU,EAAOrqB,EAAGloT,EAAIkoT,EAAG/oT,EAC3BD,EAAImlF,EAAGnlF,GAAKA,EAAIolF,EAAGplF,GAAKq3U,GAA4BhE,EAAMluP,EAAIC,GAAM,GACtEngF,EAAUhC,KAAK,CAAEsI,EAAKvL,GAAIuL,EAAK45E,EAAGnlF,GAAIuL,EAAK65E,EAAGplF,QAI7CiF,GAETkyU,EAAQ3oU,EAAI,SAASs4D,GACnB,OAAO1rD,UAAUjX,QAAUopE,EAAKgpP,GAAW/nT,EAAIs4D,GAAIqwQ,GAAW3oU,GAEhE2oU,EAAQhjU,EAAI,SAAS2yD,GACnB,OAAO1rD,UAAUjX,QAAUqpE,EAAK+oP,GAAWpiT,EAAI2yD,GAAIqwQ,GAAWhjU,GAEhEgjU,EAAQ/N,WAAa,SAAStiQ,GAC5B,OAAK1rD,UAAUjX,QACfilU,EAAkB,MAALtiQ,EAAYswQ,GAA4BtwQ,EAC9CqwQ,GAFuB/N,IAAegO,GAA4B,KAAOhO,GAIlF+N,EAAQnzT,KAAO,SAAS8iD,GACtB,OAAK1rD,UAAUjX,OACRgzU,EAAQ/N,WAAWtiQ,GAAK,CAAE,CAAE,EAAG,GAAKA,IADbsiQ,IAAegO,GAA4B,KAAOhO,GAAcA,EAAW,IAGpG+N,GAET,IAAIC,GAA4B,CAAE,EAAG,KAAM,KAAO,CAAE,IAAK,MACzD,SAASC,GAA4Bx0U,EAAGC,EAAGzC,GACzC,OAAQwC,EAAE2L,EAAInO,EAAEmO,IAAM1L,EAAEqR,EAAItR,EAAEsR,IAAMtR,EAAE2L,EAAI1L,EAAE0L,IAAMnO,EAAE8T,EAAItR,EAAEsR,GAgH5D,SAASmjU,GAAwBh3U,GAC/B,OAAOA,EAAEkO,EAEX,SAAS+oU,GAAwBj3U,GAC/B,OAAOA,EAAE6T,EAEX,SAASqjU,KACP,MAAO,CACLlwQ,MAAM,EACNb,MAAO,GACPphE,MAAO,KACPmJ,EAAG,KACH2F,EAAG,MAGP,SAASsjU,GAAsB/uS,EAAG9gB,EAAM4P,EAAIK,EAAI2nB,EAAIuoB,GAClD,IAAKr/B,EAAE9gB,EAAM4P,EAAIK,EAAI2nB,EAAIuoB,GAAK,CAC5B,IAAIpB,EAAiB,IAAXnvC,EAAKgoB,GAAUonB,EAAiB,IAAX/uC,EAAKkwC,GAAUu3B,EAAW13E,EAAK6+C,MAC1D64B,EAAS,IAAIm4O,GAAsB/uS,EAAG42D,EAAS,GAAI9nE,EAAIK,EAAI8uC,EAAIC,GAC/D04B,EAAS,IAAIm4O,GAAsB/uS,EAAG42D,EAAS,GAAI34B,EAAI9uC,EAAI2nB,EAAIonB,GAC/D04B,EAAS,IAAIm4O,GAAsB/uS,EAAG42D,EAAS,GAAI9nE,EAAIovC,EAAID,EAAIoB,GAC/Du3B,EAAS,IAAIm4O,GAAsB/uS,EAAG42D,EAAS,GAAI34B,EAAIC,EAAIpnB,EAAIuoB,IAGvE,SAAS2vQ,GAAqBr4U,EAAMmP,EAAG2F,EAAGojB,EAAIK,EAAIqwC,EAAIC,GACpD,IAA6BgvL,EAAzBygF,EAAeptU,IAiCnB,OAhCA,SAAU++D,EAAK1hD,EAAM4P,EAAIK,EAAI2nB,EAAIuoB,GAC/B,KAAIvwC,EAAKywC,GAAMpwC,EAAKqwC,GAAM1oB,EAAKjoB,GAAMwwC,EAAKnwC,GAA1C,CACA,GAAIvyB,EAAQuiB,EAAKviB,MAAO,CACtB,IAAIA,EAAO+zB,EAAK5qB,EAAIoZ,EAAKpZ,EAAG4b,EAAKjW,EAAIyT,EAAKzT,EAAGyjU,EAAYx+S,EAAKA,EAAKhP,EAAKA,EACxE,GAAIwtT,EAAYD,EAAc,CAC5B,IAAItuU,EAAWtD,KAAKuD,KAAKquU,EAAeC,GACxCrgT,EAAK/oB,EAAInF,EAAUuuB,EAAKzjB,EAAI9K,EAC5B4+D,EAAKz5D,EAAInF,EAAU6+D,EAAK/zD,EAAI9K,EAC5B6tP,EAAe7xP,GAInB,IADA,IAAIi6F,EAAW13E,EAAK6+C,MAAOQ,EAAiB,IAAXzvC,EAAKgoB,GAAU0nB,EAAiB,IAAXrvC,EAAKkwC,GAAU9zD,EAAQzF,GAAKy4D,EAAI4qB,EAAQ19E,GAAK+yD,EAC1FlnE,EAAI6xF,GAAS,EAAI59E,EAAOrP,EAAI5E,EAAI,EAAGA,EAAI4E,IAAK5E,EACnD,GAAI4nB,EAAO03E,EAAa,EAAJt/F,GAAQ,OAAY,EAAJA,GACnC,KAAK,EACJspE,EAAK1hD,EAAM4P,EAAIK,EAAIovC,EAAIC,GACvB,MAED,KAAK,EACJoC,EAAK1hD,EAAMq/C,EAAIpvC,EAAI2nB,EAAI0nB,GACvB,MAED,KAAK,EACJoC,EAAK1hD,EAAM4P,EAAI0vC,EAAID,EAAIc,GACvB,MAED,KAAK,EACJuB,EAAK1hD,EAAMq/C,EAAIC,EAAI1nB,EAAIuoB,GACvB,QA5BN,CA+BG1oE,EAAMk4B,EAAIK,EAAIqwC,EAAIC,GACdgvL,EAGT,SAAS2gF,GAAkBh1U,EAAGC,GAC5BD,EAAIqM,EAAGhH,IAAIrF,GACXC,EAAIoM,EAAGhH,IAAIpF,GACX,IAAIyjL,EAAK1jL,EAAE/B,EAAGg3U,EAAKj1U,EAAEgnB,EAAGg3J,EAAKh+K,EAAEC,EAAGi1U,EAAKj1U,EAAEhC,EAAIylL,EAAI0D,EAAKnnL,EAAE+mB,EAAIiuT,EAAIj1R,EAAK//C,EAAEA,EAAI+9K,EAC3E,OAAO,SAAS3/K,GACd,MAAO,IAAMi1T,GAAWpwT,KAAK45B,MAAM4mJ,EAAKwxJ,EAAK72U,IAAMi1T,GAAWpwT,KAAK45B,MAAMm4S,EAAK7tJ,EAAK/oL,IAAMi1T,GAAWpwT,KAAK45B,MAAMkhJ,EAAKh+H,EAAK3hD,KAI7H,SAAS82U,GAAqBn1U,EAAGC,GAC/B,IAAoBiC,EAAhB/E,EAAI,GAAIK,EAAI,GAChB,IAAK0E,KAAKlC,EACJkC,KAAKjC,EACP9C,EAAE+E,GAAKkzU,GAAep1U,EAAEkC,GAAIjC,EAAEiC,IAE9B1E,EAAE0E,GAAKlC,EAAEkC,GAGb,IAAKA,KAAKjC,EACFiC,KAAKlC,IACTxC,EAAE0E,GAAKjC,EAAEiC,IAGb,OAAO,SAAS7D,GACd,IAAK6D,KAAK/E,EAAGK,EAAE0E,GAAK/E,EAAE+E,GAAG7D,GACzB,OAAOb,GAIX,SAAS63U,GAAqBr1U,EAAGC,GAE/B,OADAD,GAAKA,EAAGC,GAAKA,EACN,SAAS5B,GACd,OAAO2B,GAAK,EAAI3B,GAAK4B,EAAI5B,GAI7B,SAASi3U,GAAqBt1U,EAAGC,GAC/B,IAAkFkxQ,EAAIokE,EAAInwL,EAAtF/gJ,EAAKmxU,GAAuBn2J,UAAYo2J,GAAuBp2J,UAAY,EAAeliL,GAAK,EAAG+B,EAAI,GAAIimE,EAAI,GAClHnlE,GAAQ,GAAIC,GAAQ,GACpB,OAAQkxQ,EAAKqkE,GAAuBnsO,KAAKrpG,MAAQu1U,EAAKE,GAAuBpsO,KAAKppG,KAC3EmlJ,EAAKmwL,EAAGz1U,OAASuE,IACpB+gJ,EAAKnlJ,EAAEwB,MAAM4C,EAAI+gJ,GACblmJ,EAAE/B,GAAI+B,EAAE/B,IAAMioJ,EAASlmJ,IAAI/B,GAAKioJ,IAEjC+rH,EAAKA,EAAG,OAASokE,EAAKA,EAAG,IACxBr2U,EAAE/B,GAAI+B,EAAE/B,IAAMo4U,EAASr2U,IAAI/B,GAAKo4U,GAEpCr2U,IAAI/B,GAAK,KACTgoE,EAAE/kE,KAAK,CACLjD,EAAGA,EACHwO,EAAG0pU,GAAqBlkE,EAAIokE,MAGhClxU,EAAKoxU,GAAuBp2J,UAM9B,OAJIh7K,EAAKpE,EAAEqB,SACT8jJ,EAAKnlJ,EAAEwB,MAAM4C,GACTnF,EAAE/B,GAAI+B,EAAE/B,IAAMioJ,EAASlmJ,IAAI/B,GAAKioJ,GAE/BlmJ,EAAEoC,OAAS,EAAI6jE,EAAE,IAAMllE,EAAIklE,EAAE,GAAGx5D,EAAG,SAAStN,GACjD,OAAO4B,EAAE5B,GAAK,KACX,WACH,OAAO4B,IACJA,EAAIklE,EAAE7jE,OAAQ,SAASjD,GAC1B,IAAK,IAAWT,EAAPT,EAAI,EAAMA,EAAI8C,IAAK9C,EAAG+B,GAAGtB,EAAIunE,EAAEhoE,IAAIA,GAAKS,EAAE+N,EAAEtN,GACrD,OAAOa,EAAEqB,KAAK,MA5OlB8L,EAAGq3M,KAAKgyH,SAAW,SAASl2U,GAC1B,OAAO6M,EAAGq3M,KAAK4wH,UAAUlyU,UAAU5C,IAErC6M,EAAGq3M,KAAK19I,SAAW,SAAS5kE,EAAQuzB,EAAIK,EAAI2nB,EAAIuoB,GAC9C,IAA4CywQ,EAAxChqU,EAAImjU,GAAgBx9T,EAAIy9T,GAC5B,GAAI4G,EAASp9T,UAAUjX,OAQrB,OAPAqK,EAAI8oU,GACJnjU,EAAIojU,GACW,IAAXiB,IACFzwQ,EAAKlwC,EACL2nB,EAAKhoB,EACLK,EAAKL,EAAK,GAELqxC,EAAS5kE,GAElB,SAAS4kE,EAASt9D,GAChB,IAAIjL,EAA2C6zG,EAAIG,EAAIt0G,EAAGyB,EAAGg3U,EAAKC,EAAKC,EAAKC,EAArErrQ,EAAKgpP,GAAW/nT,GAAIg/D,EAAK+oP,GAAWpiT,GAC3C,GAAU,MAANqjB,EACFihT,EAAMjhT,EAAIkhT,EAAM7gT,EAAI8gT,EAAMn5R,EAAIo5R,EAAM7wQ,OAKpC,GAHA4wQ,EAAMC,IAAQH,EAAMC,EAAMnuU,KAC1B4pG,EAAK,GAAIG,EAAK,GACd7yG,EAAI8J,EAAKpH,OACLq0U,EAAQ,IAAKx4U,EAAI,EAAGA,EAAIyB,IAAKzB,EAC/BM,EAAIiL,EAAKvL,GACLM,EAAEkO,EAAIiqU,IAAKA,EAAMn4U,EAAEkO,GACnBlO,EAAE6T,EAAIukU,IAAKA,EAAMp4U,EAAE6T,GACnB7T,EAAEkO,EAAImqU,IAAKA,EAAMr4U,EAAEkO,GACnBlO,EAAE6T,EAAIykU,IAAKA,EAAMt4U,EAAE6T,GACvBggG,EAAGlxG,KAAK3C,EAAEkO,GACV8lG,EAAGrxG,KAAK3C,EAAE6T,QACL,IAAKnU,EAAI,EAAGA,EAAIyB,IAAKzB,EAAG,CAC7B,IAAIqoU,GAAM96P,EAAGjtE,EAAIiL,EAAKvL,GAAIA,GAAIsoU,GAAM96P,EAAGltE,EAAGN,GACtCqoU,EAAKoQ,IAAKA,EAAMpQ,GAChBC,EAAKoQ,IAAKA,EAAMpQ,GAChBD,EAAKsQ,IAAKA,EAAMtQ,GAChBC,EAAKsQ,IAAKA,EAAMtQ,GACpBn0N,EAAGlxG,KAAKolU,GACR/zN,EAAGrxG,KAAKqlU,GAGZ,IAAIlvS,EAAKu/S,EAAMF,EAAKruT,EAAKwuT,EAAMF,EAE/B,SAASvzU,EAAO1D,EAAGnB,EAAGkO,EAAG2F,EAAGqjB,EAAIK,EAAI2nB,EAAIuoB,GACtC,IAAIt6D,MAAMe,KAAMf,MAAM0G,GACtB,GAAI1S,EAAE6lE,KAAM,CACV,IAAIuxQ,EAAKp3U,EAAE+M,EAAGsqU,EAAKr3U,EAAE0S,EACrB,GAAU,MAAN0kU,EACF,GAAI/gU,EAAI+gU,EAAKrqU,GAAKsJ,EAAIghU,EAAK3kU,GAAK,IAC9B4kU,EAAYt3U,EAAGnB,EAAGkO,EAAG2F,EAAGqjB,EAAIK,EAAI2nB,EAAIuoB,OAC/B,CACL,IAAIixQ,EAASv3U,EAAE4D,MACf5D,EAAE+M,EAAI/M,EAAE0S,EAAI1S,EAAE4D,MAAQ,KACtB0zU,EAAYt3U,EAAGu3U,EAAQH,EAAIC,EAAIthT,EAAIK,EAAI2nB,EAAIuoB,GAC3CgxQ,EAAYt3U,EAAGnB,EAAGkO,EAAG2F,EAAGqjB,EAAIK,EAAI2nB,EAAIuoB,QAGtCtmE,EAAE+M,EAAIA,EAAG/M,EAAE0S,EAAIA,EAAG1S,EAAE4D,MAAQ/E,OAG9By4U,EAAYt3U,EAAGnB,EAAGkO,EAAG2F,EAAGqjB,EAAIK,EAAI2nB,EAAIuoB,GAGxC,SAASgxQ,EAAYt3U,EAAGnB,EAAGkO,EAAG2F,EAAGqjB,EAAIK,EAAI2nB,EAAIuoB,GAC3C,IAAId,EAAiB,IAAXzvC,EAAKgoB,GAAU0nB,EAAiB,IAAXrvC,EAAKkwC,GAAU9zD,EAAQzF,GAAKy4D,EAAI4qB,EAAQ19E,GAAK+yD,EAAIlnE,EAAI6xF,GAAS,EAAI59E,EACjGxS,EAAE6lE,MAAO,EACT7lE,EAAIA,EAAEglE,MAAMzmE,KAAOyB,EAAEglE,MAAMzmE,GAAKw3U,MAC5BvjU,EAAOujB,EAAKyvC,EAASznB,EAAKynB,EAC1B4qB,EAAOh6D,EAAKqvC,EAASa,EAAKb,EAC9B/hE,EAAO1D,EAAGnB,EAAGkO,EAAG2F,EAAGqjB,EAAIK,EAAI2nB,EAAIuoB,GA3B7B3uC,EAAKhP,EAAIwuT,EAAMF,EAAMt/S,EAASu/S,EAAMF,EAAMruT,EA6B9C,IAAI/qB,EAAOm4U,KAWX,GAVAn4U,EAAK4c,IAAM,SAAS3b,GAClB6E,EAAO9F,EAAMiB,GAAIitE,EAAGjtE,IAAKN,IAAKwtE,EAAGltE,EAAGN,GAAIy4U,EAAKC,EAAKC,EAAKC,IAEzDv5U,EAAKyoE,MAAQ,SAASp/B,GACpB+uS,GAAsB/uS,EAAGrpC,EAAMo5U,EAAKC,EAAKC,EAAKC,IAEhDv5U,EAAKiqE,KAAO,SAASjkE,GACnB,OAAOqyU,GAAqBr4U,EAAMgG,EAAM,GAAIA,EAAM,GAAIozU,EAAKC,EAAKC,EAAKC,IAEvE54U,GAAK,EACK,MAANw3B,EAAY,CACd,QAASx3B,EAAIyB,EACX0D,EAAO9F,EAAMkM,EAAKvL,GAAIm0G,EAAGn0G,GAAIs0G,EAAGt0G,GAAIy4U,EAAKC,EAAKC,EAAKC,KAEnD54U,OACGuL,EAAK6rD,QAAQ/3D,EAAK4c,KAEzB,OADAk4F,EAAKG,EAAK/oG,EAAOjL,EAAI,KACdjB,EAmBT,OAjBAwpE,EAASr6D,EAAI,SAASs4D,GACpB,OAAO1rD,UAAUjX,QAAUqK,EAAIs4D,EAAG+B,GAAYr6D,GAEhDq6D,EAAS10D,EAAI,SAAS2yD,GACpB,OAAO1rD,UAAUjX,QAAUgQ,EAAI2yD,EAAG+B,GAAY10D,GAEhD00D,EAASQ,OAAS,SAASvC,GACzB,OAAK1rD,UAAUjX,QACN,MAAL2iE,EAAWtvC,EAAKK,EAAK2nB,EAAKuoB,EAAK,MAAWvwC,GAAMsvC,EAAE,GAAG,GAAIjvC,GAAMivC,EAAE,GAAG,GAAItnB,GAAMsnB,EAAE,GAAG,GACvFiB,GAAMjB,EAAE,GAAG,IACJ+B,GAH6B,MAANrxC,EAAa,KAAO,CAAE,CAAEA,EAAIK,GAAM,CAAE2nB,EAAIuoB,KAKxEc,EAAS7kD,KAAO,SAAS8iD,GACvB,OAAK1rD,UAAUjX,QACN,MAAL2iE,EAAWtvC,EAAKK,EAAK2nB,EAAKuoB,EAAK,MAAWvwC,EAAKK,EAAK,EAAG2nB,GAAMsnB,EAAE,GAAIiB,GAAMjB,EAAE,IACxE+B,GAF6B,MAANrxC,EAAa,KAAO,CAAEgoB,EAAKhoB,EAAIuwC,EAAKlwC,IAI7DgxC,GA8DT35D,EAAG+pU,eAAiBpB,GASpB3oU,EAAGgqU,kBAAoBlB,GAoBvB9oU,EAAGiqU,kBAAoBjB,GAOvBhpU,EAAGkqU,kBAAoBjB,GAiCvB,IAAIE,GAAyB,8CAA+CC,GAAyB,IAAI/vS,OAAO8vS,GAAuBjvQ,OAAQ,KAE/I,SAAS6uQ,GAAep1U,EAAGC,GACzB,IAAiC4lC,EAA7B1oC,EAAIkP,EAAGmqU,cAAcl1U,OACzB,QAASnE,GAAK,KAAO0oC,EAAIx5B,EAAGmqU,cAAcr5U,GAAG6C,EAAGC,KAChD,OAAO4lC,EAOT,SAAS4wS,GAAoBz2U,EAAGC,GAC9B,IAAqF9C,EAAjFwO,EAAI,GAAInO,EAAI,GAAImG,EAAK3D,EAAEsB,OAAQslP,EAAK3mP,EAAEqB,OAAQ0P,EAAK9N,KAAKoC,IAAItF,EAAEsB,OAAQrB,EAAEqB,QAC5E,IAAKnE,EAAI,EAAGA,EAAI6T,IAAM7T,EAAGwO,EAAEvL,KAAKg1U,GAAep1U,EAAE7C,GAAI8C,EAAE9C,KACvD,KAAMA,EAAIwG,IAAMxG,EAAGK,EAAEL,GAAK6C,EAAE7C,GAC5B,KAAMA,EAAIypP,IAAMzpP,EAAGK,EAAEL,GAAK8C,EAAE9C,GAC5B,OAAO,SAASkB,GACd,IAAKlB,EAAI,EAAGA,EAAI6T,IAAM7T,EAAGK,EAAEL,GAAKwO,EAAExO,GAAGkB,GACrC,OAAOb,GAlBX6O,EAAGqsM,YAAc08H,GAMjB/oU,EAAGmqU,cAAgB,CAAE,SAASx2U,EAAGC,GAC/B,IAAI5B,SAAW4B,EACf,OAAc,WAAN5B,EAAiBm1T,GAAan+P,IAAIp1D,EAAE2X,gBAAkB,oBAAoBpX,KAAKP,GAAK+0U,GAAoBM,GAAuBr1U,aAAawxT,GAAWujB,GAAoB9zU,MAAM4J,QAAQ7K,GAAKw2U,GAA4B,WAANp4U,GAAkBuM,MAAM3K,GAAKk1U,GAAuBE,IAAsBr1U,EAAGC,KAE3SoM,EAAGqqU,iBAAmBD,GAWtB,IAAIE,GAAkB,WACpB,OAAOjyB,GAELkyB,GAAUvqU,EAAG0sC,IAAI,CACnB8zF,OAAQ8pM,GACRv1Q,KAAMy1Q,GACN5vQ,KAAM,WACJ,OAAO6vQ,IAETC,MAAO,WACL,OAAOC,IAET1oR,IAAK,WACH,OAAO2oR,IAETllR,IAAK,WACH,OAAOmlR,IAET1jU,OAAQ,WACN,OAAO2jU,IAETC,QAASC,GACTC,KAAMC,GACNC,OAAQ,WACN,OAAOC,MAGPC,GAAerrU,EAAG0sC,IAAI,CACxB,GAAM2rQ,EACNrnS,IAAKs6T,GACL,SAAUC,GACV,SAAU,SAAS/xS,GACjB,OAAO+xS,GAAgBD,GAAgB9xS,OAS3C,SAASgyS,GAAchyS,GACrB,OAAO,SAASxnC,GACd,OAAOA,GAAK,EAAI,EAAIA,GAAK,EAAI,EAAIwnC,EAAExnC,IAGvC,SAASs5U,GAAgB9xS,GACvB,OAAO,SAASxnC,GACd,OAAO,EAAIwnC,EAAE,EAAIxnC,IAGrB,SAASu5U,GAAgB/xS,GACvB,OAAO,SAASxnC,GACd,MAAO,IAAMA,EAAI,GAAKwnC,EAAE,EAAIxnC,GAAK,EAAIwnC,EAAE,EAAI,EAAIxnC,KAGnD,SAASy4U,GAAaz4U,GACpB,OAAOA,EAAIA,EAEb,SAAS24U,GAAc34U,GACrB,OAAOA,EAAIA,EAAIA,EAEjB,SAASy5U,GAAmBz5U,GAC1B,GAAIA,GAAK,EAAG,OAAO,EACnB,GAAIA,GAAK,EAAG,OAAO,EACnB,IAAIi5B,EAAKj5B,EAAIA,EAAG4gG,EAAK3nE,EAAKj5B,EAC1B,OAAO,GAAKA,EAAI,GAAK4gG,EAAK,GAAK5gG,EAAIi5B,GAAM2nE,EAAK,KAEhD,SAAS43O,GAAa97T,GACpB,OAAO,SAAS1c,GACd,OAAO6E,KAAK85B,IAAI3+B,EAAG0c,IAGvB,SAASk8T,GAAY54U,GACnB,OAAO,EAAI6E,KAAKmrD,IAAIhwD,EAAI0/O,IAE1B,SAASm5F,GAAY74U,GACnB,OAAO6E,KAAK85B,IAAI,EAAG,IAAM3+B,EAAI,IAE/B,SAAS84U,GAAe94U,GACtB,OAAO,EAAI6E,KAAKuD,KAAK,EAAIpI,EAAIA,GAE/B,SAASg5U,GAAgBr3U,EAAGf,GAC1B,IAAIC,EAGJ,OAFIqZ,UAAUjX,OAAS,IAAGrC,EAAI,KAC1BsZ,UAAUjX,OAAQpC,EAAID,EAAI2uT,GAAI1qT,KAAKi7O,KAAK,EAAIn+O,IAASA,EAAI,EAAGd,EAAID,EAAI,GACjE,SAASZ,GACd,OAAO,EAAI2B,EAAIkD,KAAK85B,IAAI,GAAI,GAAK3+B,GAAK6E,KAAKorD,KAAKjwD,EAAIa,GAAK0uT,GAAI3uT,IAGjE,SAASs4U,GAAar4U,GAEpB,OADKA,IAAGA,EAAI,SACL,SAASb,GACd,OAAOA,EAAIA,IAAMa,EAAI,GAAKb,EAAIa,IAGlC,SAASu4U,GAAep5U,GACtB,OAAOA,EAAI,EAAI,KAAO,OAASA,EAAIA,EAAIA,EAAI,EAAI,KAAO,QAAUA,GAAK,IAAM,MAAQA,EAAI,IAAMA,EAAI,IAAM,KAAO,QAAUA,GAAK,KAAO,MAAQA,EAAI,MAAQ,QAAUA,GAAK,MAAQ,MAAQA,EAAI,QAG7L,SAAS05U,GAAkB/3U,EAAGC,GAC5BD,EAAIqM,EAAGimT,IAAItyT,GACXC,EAAIoM,EAAGimT,IAAIryT,GACX,IAAI2+C,EAAK5+C,EAAE6uD,EAAGg3H,EAAK7lL,EAAExC,EAAGwsR,EAAKhqR,EAAE5C,EAAG46U,EAAK/3U,EAAE4uD,EAAIjQ,EAAIirF,EAAK5pI,EAAEzC,EAAIqoL,EAAI3iC,EAAKjjJ,EAAE7C,EAAI4sR,EAG3E,OAFIp/Q,MAAMi/H,KAAKA,EAAK,EAAGg8C,EAAKj7K,MAAMi7K,GAAM5lL,EAAEzC,EAAIqoL,GAC1Cj7K,MAAMotU,IAAKA,EAAK,EAAGp5R,EAAKh0C,MAAMg0C,GAAM3+C,EAAE4uD,EAAIjQ,GAAao5R,EAAK,IAAKA,GAAM,IAAcA,GAAM,MAAKA,GAAM,KACnG,SAAS35U,GACd,OAAOm0T,GAAW5zQ,EAAKo5R,EAAK35U,EAAGwnL,EAAKh8C,EAAKxrI,EAAG2rR,EAAK9mI,EAAK7kJ,GAAK,IAI/D,SAAS45U,GAAkBj4U,EAAGC,GAC5BD,EAAIqM,EAAG1G,IAAI3F,GACXC,EAAIoM,EAAG1G,IAAI1F,GACX,IAAI2+C,EAAK5+C,EAAE6uD,EAAGs2F,EAAKnlJ,EAAEd,EAAG8qR,EAAKhqR,EAAE5C,EAAG46U,EAAK/3U,EAAE4uD,EAAIjQ,EAAIwmG,EAAKnlJ,EAAEf,EAAIimJ,EAAIjC,EAAKjjJ,EAAE7C,EAAI4sR,EAG3E,OAFIp/Q,MAAMw6I,KAAKA,EAAK,EAAGD,EAAKv6I,MAAMu6I,GAAMllJ,EAAEf,EAAIimJ,GAC1Cv6I,MAAMotU,IAAKA,EAAK,EAAGp5R,EAAKh0C,MAAMg0C,GAAM3+C,EAAE4uD,EAAIjQ,GAAao5R,EAAK,IAAKA,GAAM,IAAcA,GAAM,MAAKA,GAAM,KACnG,SAAS35U,GACd,OAAOyzT,GAAWlzQ,EAAKo5R,EAAK35U,EAAG8mJ,EAAKC,EAAK/mJ,EAAG2rR,EAAK9mI,EAAK7kJ,GAAK,IAI/D,SAAS65U,GAAkBl4U,EAAGC,GAC5BD,EAAIqM,EAAGqmT,IAAI1yT,GACXC,EAAIoM,EAAGqmT,IAAIzyT,GACX,IAAI+pR,EAAKhqR,EAAE5C,EAAG+6U,EAAKn4U,EAAEA,EAAGg+K,EAAKh+K,EAAEC,EAAGijJ,EAAKjjJ,EAAE7C,EAAI4sR,EAAItkG,EAAKzlL,EAAED,EAAIm4U,EAAIn4R,EAAK//C,EAAEA,EAAI+9K,EAC3E,OAAO,SAAS3/K,GACd,OAAO00T,GAAW/oC,EAAK9mI,EAAK7kJ,EAAG85U,EAAKzyJ,EAAKrnL,EAAG2/K,EAAKh+H,EAAK3hD,GAAK,IAI/D,SAAS+5U,GAAoBp4U,EAAGC,GAE9B,OADAA,GAAKD,EACE,SAAS3B,GACd,OAAO6E,KAAK45B,MAAM98B,EAAIC,EAAI5B,IAa9B,SAASg6U,GAAa96U,GACpB,IAAIs/C,EAAK,CAAEt/C,EAAEyC,EAAGzC,EAAE0C,GAAK0/F,EAAK,CAAEpiG,EAAEC,EAAGD,EAAEE,GAAK66U,EAAKC,GAAsB17R,GAAK27R,EAAKC,GAAgB57R,EAAI8iD,GAAK01E,EAAKkjK,GAAsBG,GAAoB/4O,EAAI9iD,GAAK27R,KAAQ,EACpK37R,EAAG,GAAK8iD,EAAG,GAAKA,EAAG,GAAK9iD,EAAG,KAC7BA,EAAG,KAAO,EACVA,EAAG,KAAO,EACVy7R,IAAO,EACPE,IAAO,GAETz7U,KAAK0U,QAAU6mU,EAAKp1U,KAAKk0M,MAAMv6J,EAAG,GAAIA,EAAG,IAAM35C,KAAKk0M,OAAOz3G,EAAG,GAAIA,EAAG,KAAOouN,GAC5EhxT,KAAKi6N,UAAY,CAAEz5N,EAAEwd,EAAGxd,EAAEsoC,GAC1B9oC,KAAK+lE,MAAQ,CAAEw1Q,EAAIjjK,GACnBt4K,KAAK47U,KAAOtjK,EAAKnyK,KAAKk0M,MAAMohI,EAAInjK,GAAM04I,GAAa,EAKrD,SAAS0qB,GAAgBz4U,EAAGC,GAC1B,OAAOD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAEhC,SAASs4U,GAAsBv4U,GAC7B,IAAIkC,EAAIgB,KAAKuD,KAAKgyU,GAAgBz4U,EAAGA,IAKrC,OAJIkC,IACFlC,EAAE,IAAMkC,EACRlC,EAAE,IAAMkC,GAEHA,EAET,SAASw2U,GAAoB14U,EAAGC,EAAGiC,GAGjC,OAFAlC,EAAE,IAAMkC,EAAIjC,EAAE,GACdD,EAAE,IAAMkC,EAAIjC,EAAE,GACPD,EA9ITqM,EAAGorB,KAAO,SAAS/5B,GACjB,IAAIP,EAAIO,EAAKyE,QAAQ,KAAM9D,EAAIlB,GAAK,EAAIO,EAAK+D,MAAM,EAAGtE,GAAKO,EAAMH,EAAIJ,GAAK,EAAIO,EAAK+D,MAAMtE,EAAI,GAAK,KAGlG,OAFAkB,EAAIu4U,GAAQ54U,IAAIK,IAAMs4U,GACtBp5U,EAAIm6U,GAAa15U,IAAIT,IAAMmnT,EACpBmzB,GAAct6U,EAAEc,EAAEqD,MAAM,KAAMigT,EAAcrkT,KAAKib,UAAW,OA4DrElM,EAAGusU,eAAiBb,GAWpB1rU,EAAGwsU,eAAiBZ,GAWpB5rU,EAAGysU,eAAiBZ,GASpB7rU,EAAG0sU,iBAAmBX,GAOtB/rU,EAAGmb,UAAY,SAAS6qQ,GACtB,IAAIrrQ,EAAI66R,EAAY30R,gBAAgB7gB,EAAG7N,GAAG68D,OAAOluC,IAAK,KACtD,OAAQ9gB,EAAGmb,UAAY,SAAS6qQ,GAC9B,GAAc,MAAVA,EAAgB,CAClBrrQ,EAAEi5E,aAAa,YAAaoyL,GAC5B,IAAIh0R,EAAI2oB,EAAEQ,UAAUozI,QAAQC,cAE9B,OAAO,IAAIw9K,GAAah6U,EAAIA,EAAE80B,OAAS6lT,MACtC3mD,IAeLgmD,GAAat5U,UAAU+a,SAAW,WAChC,MAAO,aAAe/c,KAAKi6N,UAAY,WAAaj6N,KAAK0U,OAAS,UAAY1U,KAAK47U,KAAO,UAAY57U,KAAK+lE,MAAQ,KAkBrH,IAAIk2Q,GAAuB,CACzBh5U,EAAG,EACHC,EAAG,EACHzC,EAAG,EACHC,EAAG,EACHsd,EAAG,EACH8qB,EAAG,GAGL,SAASozS,GAA2B/5U,GAClC,OAAOA,EAAEoC,OAASpC,EAAEwD,MAAQ,IAAM,GAEpC,SAASw2U,GAAwBC,EAAIC,EAAIl6U,EAAGimE,GAC1C,GAAIg0Q,EAAG,KAAOC,EAAG,IAAMD,EAAG,KAAOC,EAAG,GAAI,CACtC,IAAIj8U,EAAI+B,EAAEkB,KAAK,aAAc,KAAM,IAAK,KAAM,KAC9C+kE,EAAE/kE,KAAK,CACLjD,EAAGA,EAAI,EACPwO,EAAG0pU,GAAqB8D,EAAG,GAAIC,EAAG,KACjC,CACDj8U,EAAGA,EAAI,EACPwO,EAAG0pU,GAAqB8D,EAAG,GAAIC,EAAG,WAE3BA,EAAG,IAAMA,EAAG,KACrBl6U,EAAEkB,KAAK,aAAeg5U,EAAK,KAG/B,SAASC,GAAqBC,EAAI5zI,EAAIxmM,EAAGimE,GACnCm0Q,IAAO5zI,GACL4zI,EAAK5zI,EAAK,IAAKA,GAAM,IAAcA,EAAK4zI,EAAK,MAAKA,GAAM,KAC5Dn0Q,EAAE/kE,KAAK,CACLjD,EAAG+B,EAAEkB,KAAK64U,GAA2B/5U,GAAK,UAAW,KAAM,KAAO,EAClEyM,EAAG0pU,GAAqBiE,EAAI5zI,MAErBA,GACTxmM,EAAEkB,KAAK64U,GAA2B/5U,GAAK,UAAYwmM,EAAK,KAG5D,SAAS6zI,GAAmBvkO,EAAIC,EAAI/1G,EAAGimE,GACjC6vC,IAAOC,EACT9vC,EAAE/kE,KAAK,CACLjD,EAAG+B,EAAEkB,KAAK64U,GAA2B/5U,GAAK,SAAU,KAAM,KAAO,EACjEyM,EAAG0pU,GAAqBrgO,EAAIC,KAErBA,GACT/1G,EAAEkB,KAAK64U,GAA2B/5U,GAAK,SAAW+1G,EAAK,KAG3D,SAASukO,GAAoBC,EAAIC,EAAIx6U,EAAGimE,GACtC,GAAIs0Q,EAAG,KAAOC,EAAG,IAAMD,EAAG,KAAOC,EAAG,GAAI,CACtC,IAAIv8U,EAAI+B,EAAEkB,KAAK64U,GAA2B/5U,GAAK,SAAU,KAAM,IAAK,KAAM,KAC1EimE,EAAE/kE,KAAK,CACLjD,EAAGA,EAAI,EACPwO,EAAG0pU,GAAqBoE,EAAG,GAAIC,EAAG,KACjC,CACDv8U,EAAGA,EAAI,EACPwO,EAAG0pU,GAAqBoE,EAAG,GAAIC,EAAG,WAEjB,IAAVA,EAAG,IAAsB,IAAVA,EAAG,IAC3Bx6U,EAAEkB,KAAK64U,GAA2B/5U,GAAK,SAAWw6U,EAAK,KAG3D,SAASC,GAAwB35U,EAAGC,GAClC,IAAIf,EAAI,GAAIimE,EAAI,GAOhB,OANAnlE,EAAIqM,EAAGmb,UAAUxnB,GAAIC,EAAIoM,EAAGmb,UAAUvnB,GACtCi5U,GAAwBl5U,EAAEg3N,UAAW/2N,EAAE+2N,UAAW93N,EAAGimE,GACrDk0Q,GAAqBr5U,EAAEyR,OAAQxR,EAAEwR,OAAQvS,EAAGimE,GAC5Co0Q,GAAmBv5U,EAAE24U,KAAM14U,EAAE04U,KAAMz5U,EAAGimE,GACtCq0Q,GAAoBx5U,EAAE8iE,MAAO7iE,EAAE6iE,MAAO5jE,EAAGimE,GACzCnlE,EAAIC,EAAI,KACD,SAAS5B,GACd,IAA0BT,EAAtBT,GAAK,EAAGyB,EAAIumE,EAAE7jE,OAClB,QAASnE,EAAIyB,EAAGM,GAAGtB,EAAIunE,EAAEhoE,IAAIA,GAAKS,EAAE+N,EAAEtN,GACtC,OAAOa,EAAEqB,KAAK,KAGlB,SAASq5U,GAAuB55U,EAAGC,GAEjC,OADAA,GAAKA,GAAKD,GAAKA,IAAM,EAAIC,EAClB,SAAS0L,GACd,OAAQA,EAAI3L,GAAKC,GAGrB,SAAS45U,GAAsB75U,EAAGC,GAEhC,OADAA,GAAKA,GAAKD,GAAKA,IAAM,EAAIC,EAClB,SAAS0L,GACd,OAAOzI,KAAKqC,IAAI,EAAGrC,KAAKoC,IAAI,GAAIqG,EAAI3L,GAAKC,KAW7C,SAAS65U,GAAqBlyQ,GAC5B,IAAI5mD,EAAQ4mD,EAAKrB,OAAQrlD,EAAM0mD,EAAKl6C,OAAQqsT,EAAMC,GAAoCh5T,EAAOE,GAAM9f,EAAS,CAAE4f,GAC9G,MAAOA,IAAU+4T,EACf/4T,EAAQA,EAAMyE,OACdrkB,EAAOhB,KAAK4gB,GAEd,IAAI9e,EAAId,EAAOE,OACf,MAAO4f,IAAQ64T,EACb34U,EAAO2M,OAAO7L,EAAG,EAAGgf,GACpBA,EAAMA,EAAIuE,OAEZ,OAAOrkB,EAET,SAAS64U,GAA0Bl1T,GACjC,IAAIm1T,EAAY,GAAIz0T,EAASV,EAAKU,OAClC,MAAiB,MAAVA,EACLy0T,EAAU95U,KAAK2kB,GACfA,EAAOU,EACPA,EAASA,EAAOA,OAGlB,OADAy0T,EAAU95U,KAAK2kB,GACRm1T,EAET,SAASF,GAAoCh6U,EAAGC,GAC9C,GAAID,IAAMC,EAAG,OAAOD,EACpB,IAAIm6U,EAASF,GAA0Bj6U,GAAIo6U,EAASH,GAA0Bh6U,GAAIo6U,EAAQF,EAAOz3U,MAAO43U,EAAQF,EAAO13U,MAAO63U,EAAa,KAC3I,MAAOF,IAAUC,EACfC,EAAaF,EACbA,EAAQF,EAAOz3U,MACf43U,EAAQF,EAAO13U,MAEjB,OAAO63U,EA6UT,SAASC,GAAyB/8U,GAChCA,EAAEg9U,OAAS,EAEb,SAASC,GAAuBj9U,GAC9BA,EAAEg9U,QAAS,EAEb,SAASE,GAAyBl9U,GAChCA,EAAEg9U,OAAS,EACXh9U,EAAEkU,GAAKlU,EAAEkO,EAAGlO,EAAEmU,GAAKnU,EAAE6T,EAEvB,SAASspU,GAAwBn9U,GAC/BA,EAAEg9U,QAAS,EAEb,SAASI,GAA0B5zQ,EAAMY,EAAOizQ,GAC9C,IAAIvpQ,EAAK,EAAGC,EAAK,EAEjB,GADAvK,EAAK8zQ,OAAS,GACT9zQ,EAAKxC,KAAM,CACd,IAAkDjnE,EAA9ComE,EAAQqD,EAAKrD,MAAOhlE,EAAIglE,EAAMtiE,OAAQnE,GAAK,EAC/C,QAASA,EAAIyB,EACXpB,EAAIomE,EAAMzmE,GACD,MAALK,IACJq9U,GAA0Br9U,EAAGqqE,EAAOizQ,GACpC7zQ,EAAK8zQ,QAAUv9U,EAAEu9U,OACjBxpQ,GAAM/zE,EAAEu9U,OAASv9U,EAAE+zE,GACnBC,GAAMh0E,EAAEu9U,OAASv9U,EAAEg0E,IAGvB,GAAIvK,EAAKzkE,MAAO,CACTykE,EAAKxC,OACRwC,EAAKzkE,MAAMmJ,GAAKzI,KAAKF,SAAW,GAChCikE,EAAKzkE,MAAM8O,GAAKpO,KAAKF,SAAW,IAElC,IAAId,EAAI2lE,EAAQizQ,EAAQ7zQ,EAAKzkE,MAAM1C,OACnCmnE,EAAK8zQ,QAAU9zQ,EAAK+zQ,YAAc94U,EAClCqvE,GAAMrvE,EAAI+kE,EAAKzkE,MAAMmJ,EACrB6lE,GAAMtvE,EAAI+kE,EAAKzkE,MAAM8O,EAEvB21D,EAAKsK,GAAKA,EAAKtK,EAAK8zQ,OACpB9zQ,EAAKuK,GAAKA,EAAKvK,EAAK8zQ,OAzetB1uU,EAAG4uU,qBAAuBtB,GA+E1BttU,EAAG64C,OAAS,GACZ74C,EAAG64C,OAAOg2R,OAAS,WACjB,OAAO,SAASpzQ,GACd,IAAI40C,EAAQ,GAAIv/G,GAAK,EAAGyB,EAAIkpE,EAAMxmE,OAClC,QAASnE,EAAIyB,EAAG89G,EAAMt8G,KAAK05U,GAAqBhyQ,EAAM3qE,KACtD,OAAOu/G,IAoCXrwG,EAAG64C,OAAOi2R,MAAQ,WAChB,IAAgBC,EAAQh3R,EAAQjxB,EAAQv0B,EAAgBy8U,EAAYC,EAAeC,EAA/EJ,EAAQ,GAA+BppT,EAAU,EACrD,SAASq6M,IACP,IAAkFlqO,EAAGyJ,EAAG+oB,EAAIv3B,EAAG4E,EAA3FslT,EAAY,GAAIm0B,EAAY,GAAI/sU,EAAapC,EAAG8I,MAAMvW,GAAI68U,EAAgB,GAC9EL,EAAS,GACTh3R,EAAS,GACTliD,EAAI,EAAG/E,GAAK,EACZ,QAASA,EAAIyB,EAAG,CACd+M,EAAI,EAAG5J,GAAK,EACZ,QAASA,EAAInD,EACX+M,GAAKwnB,EAAOh2B,GAAG4E,GAEjBy5U,EAAUp7U,KAAKuL,GACf8vU,EAAcr7U,KAAKiM,EAAG8I,MAAMvW,IAC5BsD,GAAKyJ,EAEH0vU,GACF5sU,EAAWtK,MAAK,SAASnE,EAAGC,GAC1B,OAAOo7U,EAAWG,EAAUx7U,GAAIw7U,EAAUv7U,OAG1Cq7U,GACFG,EAAclnR,SAAQ,SAAS92D,EAAGN,GAChCM,EAAE0G,MAAK,SAASnE,EAAGC,GACjB,OAAOq7U,EAAcnoT,EAAOh2B,GAAG6C,GAAImzB,EAAOh2B,GAAG8C,UAInDiC,GAAK0rT,GAAI77R,EAAUnzB,GAAKsD,EACxByJ,EAAI,EAAGxO,GAAK,EACZ,QAASA,EAAIyB,EAAG,CACd81B,EAAK/oB,EAAG5J,GAAK,EACb,QAASA,EAAInD,EAAG,CACd,IAAI42B,EAAK/mB,EAAWtR,GAAIu+U,EAAKD,EAAcjmT,GAAIzzB,GAAIE,EAAIkxB,EAAOqC,GAAIkmT,GAAKhwQ,EAAK//D,EAAGuiG,EAAKviG,GAAK1J,EAAIC,EAC7FmlT,EAAU7xR,EAAK,IAAMkmT,GAAM,CACzB57U,MAAO01B,EACPmmT,SAAUD,EACVziI,WAAYvtI,EACZwtI,SAAUhrG,EACV9vG,MAAO6D,GAGXmiD,EAAO5uB,GAAM,CACX11B,MAAO01B,EACPyjL,WAAYvkL,EACZwkL,SAAUvtM,EACVvN,MAAOo9U,EAAUhmT,IAEnB7pB,GAAKomB,EAEP50B,GAAK,EACL,QAASA,EAAIyB,EAAG,CACdmD,EAAI5E,EAAI,EACR,QAAS4E,EAAInD,EAAG,CACd,IAAI2nE,EAAS8gP,EAAUlqT,EAAI,IAAM4E,GAAI2rB,EAAS25R,EAAUtlT,EAAI,IAAM5E,IAC9DopE,EAAOnoE,OAASsvB,EAAOtvB,QACzBg9U,EAAOh7U,KAAKmmE,EAAOnoE,MAAQsvB,EAAOtvB,MAAQ,CACxCmoE,OAAQ74C,EACRA,OAAQ64C,GACN,CACFA,OAAQA,EACR74C,OAAQA,KAKZ6tT,GAAYK,IAElB,SAASA,IACPR,EAAOj3U,MAAK,SAASnE,EAAGC,GACtB,OAAOs7U,GAAYv7U,EAAEumE,OAAOnoE,MAAQ4B,EAAE0tB,OAAOtvB,OAAS,GAAI6B,EAAEsmE,OAAOnoE,MAAQ6B,EAAEytB,OAAOtvB,OAAS,MAyCjG,OAtCA+8U,EAAMhoT,OAAS,SAASxnB,GACtB,OAAK4M,UAAUjX,QACf1C,GAAKu0B,EAASxnB,IAAMwnB,EAAO7xB,OAC3B85U,EAASh3R,EAAS,KACX+2R,GAHuBhoT,GAKhCgoT,EAAMppT,QAAU,SAASpmB,GACvB,OAAK4M,UAAUjX,QACfywB,EAAUpmB,EACVyvU,EAASh3R,EAAS,KACX+2R,GAHuBppT,GAKhCopT,EAAME,WAAa,SAAS1vU,GAC1B,OAAK4M,UAAUjX,QACf+5U,EAAa1vU,EACbyvU,EAASh3R,EAAS,KACX+2R,GAHuBE,GAKhCF,EAAMG,cAAgB,SAAS3vU,GAC7B,OAAK4M,UAAUjX,QACfg6U,EAAgB3vU,EAChByvU,EAAS,KACFD,GAHuBG,GAKhCH,EAAMI,WAAa,SAAS5vU,GAC1B,OAAK4M,UAAUjX,QACfi6U,EAAa5vU,EACTyvU,GAAQQ,IACLT,GAHuBI,GAKhCJ,EAAMC,OAAS,WAEb,OADKA,GAAQhvG,IACNgvG,GAETD,EAAM/2R,OAAS,WAEb,OADKA,GAAQgoL,IACNhoL,GAEF+2R,GAET9uU,EAAG64C,OAAO2e,MAAQ,WAChB,IAA6D0F,EAAwBs4D,EAAMh6D,EAAkOL,EAAWD,EAAWuzQ,EAA/Uj3Q,EAAQ,GAAIxxC,EAAQhmB,EAAGikB,SAAS,QAAS,OAAQ,OAAenP,EAAO,CAAE,EAAG,GAAkB06T,EAAW,GAAIC,EAAeC,GAA6BC,EAAeC,GAA6BlB,GAAU,GAAImB,EAAkBC,GAAgCz4O,EAAU,GAAIz4B,EAAS,IAAKrH,EAAQ,GAAIkE,EAAQ,GACzT,SAASs0Q,EAAQr3T,GACf,OAAO,SAASkiD,EAAMtyC,EAAIsvC,EAAGtnB,GAC3B,GAAIsqB,EAAKzkE,QAAUuiB,EAAM,CACvB,IAAIwR,EAAK0wC,EAAKsK,GAAKxsD,EAAKpZ,EAAG4b,EAAK0/C,EAAKuK,GAAKzsD,EAAKzT,EAAG+qU,EAAK1/R,EAAKhoB,EAAI2nT,EAAK/lT,EAAKA,EAAKhP,EAAKA,EACpF,GAAI80T,EAAKA,EAAKpxQ,EAASqxQ,EAAI,CACzB,GAAIA,EAAKJ,EAAiB,CACxB,IAAIh6U,EAAI+kE,EAAK8zQ,OAASuB,EACtBv3T,EAAKpT,IAAM4kB,EAAKr0B,EAChB6iB,EAAKnT,IAAM2V,EAAKrlB,EAElB,OAAO,EAET,GAAI+kE,EAAKzkE,OAAS85U,GAAMA,EAAKJ,EAAiB,CACxCh6U,EAAI+kE,EAAK+zQ,YAAcsB,EAC3Bv3T,EAAKpT,IAAM4kB,EAAKr0B,EAChB6iB,EAAKnT,IAAM2V,EAAKrlB,GAGpB,OAAQ+kE,EAAK8zQ,QAgMjB,SAASwB,EAAS9+U,GAChBA,EAAEkU,GAAKtF,EAAGgmB,MAAM1mB,EAAGlO,EAAEmU,GAAKvF,EAAGgmB,MAAM/gB,EACnCuyD,EAAM24Q,SAER,OAjMA34Q,EAAMpgC,KAAO,WACX,IAAKokC,GAAS,KAAO,KAMnB,OALA0B,EAAQ,KACRl3C,EAAMnR,IAAI,CACRzQ,KAAM,MACNo3D,MAAOA,EAAQ,KAEV,EAET,IAAwC1C,EAAGhoE,EAAGS,EAAGsB,EAAGb,EAAGjB,EAAG8E,EAAGyJ,EAAG2F,EAA5D1S,EAAIglE,EAAMtiE,OAAQ/D,EAAIuqE,EAAMxmE,OAChC,IAAKnE,EAAI,EAAGA,EAAII,IAAKJ,EACnBS,EAAIkqE,EAAM3qE,GACV+B,EAAItB,EAAE2oE,OACNloE,EAAIT,EAAE8vB,OACN/hB,EAAItN,EAAEsN,EAAIzM,EAAEyM,EACZ2F,EAAIjT,EAAEiT,EAAIpS,EAAEoS,GACRlU,EAAIuO,EAAIA,EAAI2F,EAAIA,KAClBlU,EAAIyqE,EAAQN,EAAUpqE,KAAOC,EAAI8F,KAAKuD,KAAKrJ,IAAMoqE,EAAUrqE,IAAMC,EACjEuO,GAAKvO,EACLkU,GAAKlU,EACLiB,EAAEsN,GAAKA,GAAKzJ,EAAIhD,EAAEisE,OAAS9sE,EAAE8sE,OAASjsE,EAAEisE,QAAUjsE,EAAEisE,OAAS9sE,EAAE8sE,QAAU,IACzE9sE,EAAEiT,GAAKA,EAAIpP,EACXhD,EAAEyM,GAAKA,GAAKzJ,EAAI,EAAIA,GACpBhD,EAAEoS,GAAKA,EAAIpP,GAGf,IAAIA,EAAI2lE,EAAQ67B,KACd/3F,EAAIwV,EAAK,GAAK,EACd7P,EAAI6P,EAAK,GAAK,EACdhkB,GAAK,EACD+E,GAAG,QAAS/E,EAAIyB,EAClBhB,EAAIgmE,EAAMzmE,GACVS,EAAE+N,IAAMA,EAAI/N,EAAE+N,GAAKzJ,EACnBtE,EAAE0T,IAAMA,EAAI1T,EAAE0T,GAAKpP,EAGvB,GAAI64U,EAAQ,CACVF,GAA0B11Q,EAAI94D,EAAGq3M,KAAK19I,SAASpC,GAAQiE,EAAOizQ,GAC9D39U,GAAK,EACL,QAASA,EAAIyB,GACLhB,EAAIgmE,EAAMzmE,IAAIs9U,OAClBt1Q,EAAEF,MAAMm3Q,EAAQx+U,IAItBT,GAAK,EACL,QAASA,EAAIyB,EACXhB,EAAIgmE,EAAMzmE,GACNS,EAAE68U,OACJ78U,EAAE+N,EAAI/N,EAAE+T,GACR/T,EAAE0T,EAAI1T,EAAEgU,KAERhU,EAAE+N,IAAM/N,EAAE+T,IAAM/T,EAAE+T,GAAK/T,EAAE+N,IAAMkwU,EAC/Bj+U,EAAE0T,IAAM1T,EAAEgU,IAAMhU,EAAEgU,GAAKhU,EAAE0T,IAAMuqU,GAGnCxpT,EAAMoR,KAAK,CACThzB,KAAM,OACNo3D,MAAOA,KAGXhE,EAAMD,MAAQ,SAASj4D,GACrB,OAAK4M,UAAUjX,QACfsiE,EAAQj4D,EACDk4D,GAFuBD,GAIhCC,EAAMiE,MAAQ,SAASn8D,GACrB,OAAK4M,UAAUjX,QACfwmE,EAAQn8D,EACDk4D,GAFuBiE,GAIhCjE,EAAM1iD,KAAO,SAASxV,GACpB,OAAK4M,UAAUjX,QACf6f,EAAOxV,EACAk4D,GAFuB1iD,GAIhC0iD,EAAMi4Q,aAAe,SAASnwU,GAC5B,OAAK4M,UAAUjX,QACfw6U,EAA4B,oBAANnwU,EAAmBA,GAAKA,EACvCk4D,GAFuBi4Q,GAIhCj4Q,EAAMr9D,SAAWq9D,EAAMi4Q,aACvBj4Q,EAAMm4Q,aAAe,SAASrwU,GAC5B,OAAK4M,UAAUjX,QACf06U,EAA4B,oBAANrwU,EAAmBA,GAAKA,EACvCk4D,GAFuBm4Q,GAIhCn4Q,EAAMg4Q,SAAW,SAASlwU,GACxB,OAAK4M,UAAUjX,QACfu6U,GAAYlwU,EACLk4D,GAFuBg4Q,GAIhCh4Q,EAAMk3Q,OAAS,SAASpvU,GACtB,OAAK4M,UAAUjX,QACfy5U,EAAsB,oBAANpvU,EAAmBA,GAAKA,EACjCk4D,GAFuBk3Q,GAIhCl3Q,EAAM44Q,eAAiB,SAAS9wU,GAC9B,OAAK4M,UAAUjX,QACf46U,EAAkBvwU,EAAIA,EACfk4D,GAFuB3gE,KAAKuD,KAAKy1U,IAI1Cr4Q,EAAM6/B,QAAU,SAAS/3F,GACvB,OAAK4M,UAAUjX,QACfoiG,GAAW/3F,EACJk4D,GAFuB6/B,GAIhC7/B,EAAMjkD,MAAQ,SAASjU,GACrB,OAAK4M,UAAUjX,QACf2pE,EAASt/D,EAAIA,EACNk4D,GAFuB3gE,KAAKuD,KAAKwkE,IAI1CpH,EAAMgE,MAAQ,SAASl8D,GACrB,OAAK4M,UAAUjX,QACfqK,GAAKA,EACDk8D,EACEl8D,EAAI,EACNk8D,EAAQl8D,GAER49D,EAAM/rE,EAAI,KAAM+rE,EAAMlrE,EAAIs/D,IAAK4L,EAAQ,KACvCl3C,EAAMnR,IAAI,CACRzQ,KAAM,MACNo3D,MAAOA,EAAQ,KAGVl8D,EAAI,IACb0mB,EAAMrR,MAAM,CACVvQ,KAAM,QACNo3D,MAAOA,EAAQl8D,IAEjB49D,EAAQktP,GAAS5yP,EAAMpgC,OAElBogC,GAnBuBgE,GAqBhChE,EAAM7iD,MAAQ,WACZ,IAAI7jB,EAAiEu/U,EAAW9+U,EAAzEgB,EAAIglE,EAAMtiE,OAAQ/D,EAAIuqE,EAAMxmE,OAAQ2Z,EAAIkG,EAAK,GAAI0tC,EAAI1tC,EAAK,GACjE,IAAKhkB,EAAI,EAAGA,EAAIyB,IAAKzB,GAClBS,EAAIgmE,EAAMzmE,IAAI2C,MAAQ3C,EACvBS,EAAEutE,OAAS,EAEb,IAAKhuE,EAAI,EAAGA,EAAII,IAAKJ,EACnBS,EAAIkqE,EAAM3qE,GACa,iBAAZS,EAAE2oE,SAAoB3oE,EAAE2oE,OAAS3C,EAAMhmE,EAAE2oE,SAC7B,iBAAZ3oE,EAAE8vB,SAAoB9vB,EAAE8vB,OAASk2C,EAAMhmE,EAAE8vB,WAClD9vB,EAAE2oE,OAAO4E,SACTvtE,EAAE8vB,OAAOy9C,OAEb,IAAKhuE,EAAI,EAAGA,EAAIyB,IAAKzB,EACnBS,EAAIgmE,EAAMzmE,GACNyN,MAAMhN,EAAE+N,KAAI/N,EAAE+N,EAAI5E,EAAS,IAAKkU,IAChCrQ,MAAMhN,EAAE0T,KAAI1T,EAAE0T,EAAIvK,EAAS,IAAK8nD,IAChCjkD,MAAMhN,EAAE+T,MAAK/T,EAAE+T,GAAK/T,EAAE+N,GACtBf,MAAMhN,EAAEgU,MAAKhU,EAAEgU,GAAKhU,EAAE0T,GAG5B,GADAk2D,EAAY,GACgB,oBAAjBs0Q,EAA6B,IAAK3+U,EAAI,EAAGA,EAAII,IAAKJ,EAAGqqE,EAAUrqE,IAAM2+U,EAAax+U,KAAKP,KAAM+qE,EAAM3qE,GAAIA,QAAS,IAAKA,EAAI,EAAGA,EAAII,IAAKJ,EAAGqqE,EAAUrqE,GAAK2+U,EAElK,GADAv0Q,EAAY,GACgB,oBAAjBy0Q,EAA6B,IAAK7+U,EAAI,EAAGA,EAAII,IAAKJ,EAAGoqE,EAAUpqE,IAAM6+U,EAAa1+U,KAAKP,KAAM+qE,EAAM3qE,GAAIA,QAAS,IAAKA,EAAI,EAAGA,EAAII,IAAKJ,EAAGoqE,EAAUpqE,GAAK6+U,EAElK,GADAlB,EAAU,GACY,oBAAXC,EAAuB,IAAK59U,EAAI,EAAGA,EAAIyB,IAAKzB,EAAG29U,EAAQ39U,IAAM49U,EAAOz9U,KAAKP,KAAM6mE,EAAMzmE,GAAIA,QAAS,IAAKA,EAAI,EAAGA,EAAIyB,IAAKzB,EAAG29U,EAAQ39U,GAAK49U,EAClJ,SAASh0U,EAASlG,EAAWsgB,GAC3B,IAAKu7T,EAAW,CAEd,IADAA,EAAY,IAAIx7U,MAAMtC,GACjBmD,EAAI,EAAGA,EAAInD,IAAKmD,EACnB26U,EAAU36U,GAAK,GAEjB,IAAKA,EAAI,EAAGA,EAAIxE,IAAKwE,EAAG,CACtB,IAAInE,EAAIkqE,EAAM/lE,GACd26U,EAAU9+U,EAAE2oE,OAAOzmE,OAAOM,KAAKxC,EAAE8vB,QACjCgvT,EAAU9+U,EAAE8vB,OAAO5tB,OAAOM,KAAKxC,EAAE2oE,SAGrC,IAA8D56D,EAA1DgxU,EAAaD,EAAUv/U,GAAI4E,GAAK,EAAG3E,EAAIu/U,EAAWr7U,OACtD,QAASS,EAAI3E,EAAG,IAAKwN,MAAMe,EAAIgxU,EAAW56U,GAAGlB,IAAa,OAAO8K,EACjE,OAAOzI,KAAKF,SAAWme,EAEzB,OAAO0iD,EAAM24Q,UAEf34Q,EAAM24Q,OAAS,WACb,OAAO34Q,EAAMgE,MAAM,KAErBhE,EAAMmG,KAAO,WACX,OAAOnG,EAAMgE,MAAM,IAErBhE,EAAMg+D,KAAO,WAEX,GADKA,IAAMA,EAAOx1H,EAAGo2H,SAASZ,OAAOoyB,OAAOywJ,GAAan3S,GAAG,kBAAmBitU,IAA0BjtU,GAAG,aAAcgvU,GAAUhvU,GAAG,gBAAiBmtU,MACnJniU,UAAUjX,OAAQ,OAAOugI,EAC9B9kI,KAAKwQ,GAAG,kBAAmBotU,IAA0BptU,GAAG,iBAAkBqtU,IAAyBt9U,KAAKukI,IAMnGx1H,EAAGumB,OAAOixC,EAAOxxC,EAAO,OA0CjC,IAAI0pT,GAA8B,GAAIE,GAA8B,EAAGE,GAAiCz0U,IA2DxG,SAASk1U,GAA0B/9U,EAAQk/F,GAIzC,OAHA1xF,EAAGumB,OAAO/zB,EAAQk/F,EAAW,OAAQ,WAAY,SACjDl/F,EAAO+kE,MAAQ/kE,EACfA,EAAOipE,MAAQ+0Q,GACRh+U,EAET,SAASi+U,GAA+B/3T,EAAM8gD,GAC5C,IAAIjC,EAAQ,CAAE7+C,GACd,MAA+B,OAAvBA,EAAO6+C,EAAMlhE,OAAgB,CAGjC,IAAI9D,EAAG69F,EADT,GADA52B,EAAS9gD,IACJ03E,EAAW13E,EAAK03E,YAAc79F,EAAI69F,EAASn7F,QAE9C,QAAS1C,GAAK,EAAGglE,EAAMxjE,KAAKq8F,EAAS79F,KAI3C,SAASm+U,GAA8Bh4T,EAAM8gD,GAC3C,IAAIjC,EAAQ,CAAE7+C,GAAQi4T,EAAS,GAC/B,MAA+B,OAAvBj4T,EAAO6+C,EAAMlhE,OAEnB,GADAs6U,EAAO58U,KAAK2kB,IACP03E,EAAW13E,EAAK03E,YAAc79F,EAAI69F,EAASn7F,QAAS,CACvD,IAAY1C,EAAG69F,EAAXt/F,GAAK,EACT,QAASA,EAAIyB,EAAGglE,EAAMxjE,KAAKq8F,EAASt/F,IAGxC,MAAgC,OAAxB4nB,EAAOi4T,EAAOt6U,OACpBmjE,EAAS9gD,GAGb,SAASk4T,GAA4Bx/U,GACnC,OAAOA,EAAEg/F,SAEX,SAASygP,GAAyBz/U,GAChC,OAAOA,EAAEW,MAEX,SAAS++U,GAAwBn9U,EAAGC,GAClC,OAAOA,EAAE7B,MAAQ4B,EAAE5B,MAErB,SAASy+U,GAAyBj5Q,GAChC,OAAOv3D,EAAGm+K,MAAM5mH,EAAM7qB,KAAI,SAAStzB,GACjC,OAAQA,EAAOg3E,UAAY,IAAI1jD,KAAI,SAAS6sB,GAC1C,MAAO,CACLW,OAAQ9gD,EACRiI,OAAQk4C,UArGhBv5D,EAAG64C,OAAO64C,UAAY,WACpB,IAAI55F,EAAOg5U,GAAyB1gP,EAAWwgP,GAA6B7+U,EAAQ8+U,GACpF,SAASn/O,EAAUvhG,GACjB,IAAkCuoB,EAA9BmwN,EAAQ,CAAE14O,GAAQonE,EAAQ,GAC9BpnE,EAAKq1K,MAAQ,EACb,MAA+B,OAAvB9sJ,EAAOmwN,EAAMxyO,OAEnB,GADAkhE,EAAMxjE,KAAK2kB,IACNq4T,EAAS3gP,EAASn/F,KAAKygG,EAAWh5E,EAAMA,EAAK8sJ,UAAYjzK,EAAIw+U,EAAO97U,QAAS,CAChF,IAAI1C,EAAGw+U,EAAQx3Q,EACf,QAAShnE,GAAK,EACZs2O,EAAM90O,KAAKwlE,EAAQw3Q,EAAOx+U,IAC1BgnE,EAAMngD,OAASV,EACf6gD,EAAMisG,MAAQ9sJ,EAAK8sJ,MAAQ,EAEzBzzK,IAAO2mB,EAAK3mB,MAAQ,GACxB2mB,EAAK03E,SAAW2gP,OAEZh/U,IAAO2mB,EAAK3mB,OAASA,EAAMd,KAAKygG,EAAWh5E,EAAMA,EAAK8sJ,QAAU,UAC7D9sJ,EAAK03E,SAQhB,OALAsgP,GAA8BvgV,GAAM,SAASuoB,GAC3C,IAAIq4T,EAAQ33T,EACRthB,IAASi5U,EAASr4T,EAAK03E,WAAW2gP,EAAOj5U,KAAKA,GAC9C/F,IAAUqnB,EAASV,EAAKU,UAASA,EAAOrnB,OAAS2mB,EAAK3mB,UAErDwlE,EA8BT,OA5BAm6B,EAAU55F,KAAO,SAASwH,GACxB,OAAK4M,UAAUjX,QACf6C,EAAOwH,EACAoyF,GAFuB55F,GAIhC45F,EAAUtB,SAAW,SAAS9wF,GAC5B,OAAK4M,UAAUjX,QACfm7F,EAAW9wF,EACJoyF,GAFuBtB,GAIhCsB,EAAU3/F,MAAQ,SAASuN,GACzB,OAAK4M,UAAUjX,QACflD,EAAQuN,EACDoyF,GAFuB3/F,GAIhC2/F,EAAUs/O,QAAU,SAAS7gV,GAW3B,OAVI4B,IACF0+U,GAA+BtgV,GAAM,SAASuoB,GACxCA,EAAK03E,WAAU13E,EAAK3mB,MAAQ,MAElC2+U,GAA8BvgV,GAAM,SAASuoB,GAC3C,IAAIU,EACCV,EAAK03E,WAAU13E,EAAK3mB,OAASA,EAAMd,KAAKygG,EAAWh5E,EAAMA,EAAK8sJ,QAAU,IACzEpsJ,EAASV,EAAKU,UAAQA,EAAOrnB,OAAS2mB,EAAK3mB,WAG5C5B,GAEFuhG,GAkDT1xF,EAAG64C,OAAOsqC,UAAY,WACpB,IAAIuO,EAAY1xF,EAAG64C,OAAO64C,YAAa58E,EAAO,CAAE,EAAG,GACnD,SAASpa,EAASge,EAAMpZ,EAAG4qB,EAAIhP,GAC7B,IAAIk1E,EAAW13E,EAAK03E,SAKpB,GAJA13E,EAAKpZ,EAAIA,EACToZ,EAAKzT,EAAIyT,EAAK8sJ,MAAQtqJ,EACtBxC,EAAKwR,GAAKA,EACVxR,EAAKwC,GAAKA,EACNk1E,IAAa79F,EAAI69F,EAASn7F,QAAS,CACrC,IAAY1C,EAAGpB,EAAGC,EAAdN,GAAK,EACTo5B,EAAKxR,EAAK3mB,MAAQm4B,EAAKxR,EAAK3mB,MAAQ,EACpC,QAASjB,EAAIyB,EACXmI,EAASvJ,EAAIi/F,EAASt/F,GAAIwO,EAAGlO,EAAID,EAAEY,MAAQm4B,EAAIhP,GAC/C5b,GAAKlO,GAIX,SAASo0K,EAAM9sJ,GACb,IAAI03E,EAAW13E,EAAK03E,SAAUh/F,EAAI,EAClC,GAAIg/F,IAAa79F,EAAI69F,EAASn7F,QAAS,CACrC,IAAY1C,EAARzB,GAAK,EACT,QAASA,EAAIyB,EAAGnB,EAAIyF,KAAKqC,IAAI9H,EAAGo0K,EAAMp1E,EAASt/F,KAEjD,OAAO,EAAIM,EAEb,SAAS+xF,EAAU/xF,EAAGN,GACpB,IAAIymE,EAAQm6B,EAAUzgG,KAAKP,KAAMU,EAAGN,GAEpC,OADA4J,EAAS68D,EAAM,GAAI,EAAGziD,EAAK,GAAIA,EAAK,GAAK0wJ,EAAMjuG,EAAM,KAC9CA,EAOT,OALA4rB,EAAUruE,KAAO,SAASxV,GACxB,OAAK4M,UAAUjX,QACf6f,EAAOxV,EACA6jF,GAFuBruE,GAIzBy7T,GAA0BptP,EAAWuO,IAE9C1xF,EAAG64C,OAAOo4R,IAAM,WACd,IAAIl/U,EAAQ60C,OAAQ9uC,EAAOo5U,GAA0BtkI,EAAa,EAAGC,EAAW00G,GAAG4vB,EAAW,EAC9F,SAASF,EAAI50U,GACX,IAE2ZzG,EAFvZrD,EAAI8J,EAAKpH,OAAQo1B,EAAShuB,EAAKqwC,KAAI,SAASt7C,EAAGN,GACjD,OAAQiB,EAAMd,KAAKggV,EAAK7/U,EAAGN,MACzB6C,IAA4B,oBAAfi5M,EAA4BA,EAAWv3M,MAAM3E,KAAMwb,WAAa0gM,GAAatpJ,GAA0B,oBAAbupJ,EAA0BA,EAASx3M,MAAM3E,KAAMwb,WAAa2gM,GAAYl5M,EAAGf,EAAIiE,KAAKoC,IAAIpC,KAAK+R,IAAI06C,GAAM/wD,IAAyB,oBAAb4+U,EAA0BA,EAAS97U,MAAM3E,KAAMwb,WAAailU,IAAY1pQ,EAAK70E,GAAK0wD,EAAK,GAAK,EAAI,GAAI0C,EAAMhmD,EAAGgmD,IAAI37B,GAASx0B,EAAImwD,GAAO1C,EAAK/wD,EAAIk1E,GAAMzhB,EAAM,EAAGvyD,EAAQuM,EAAG8I,MAAMvW,GAAI6+U,EAAO,GAevZ,OAdY,MAARt5U,GAAcrE,EAAMqE,KAAKA,IAASo5U,GAA2B,SAASpgV,EAAG4E,GAC3E,OAAO20B,EAAO30B,GAAK20B,EAAOv5B,IACxB,SAASA,EAAG4E,GACd,OAAOoC,EAAKuE,EAAKvL,GAAIuL,EAAK3G,MAE5BjC,EAAMy0D,SAAQ,SAASp3D,GACrBsgV,EAAKtgV,GAAK,CACRuL,KAAMA,EAAKvL,GACXiB,MAAO6D,EAAIy0B,EAAOv5B,GAClB87M,WAAYj5M,EACZk5M,SAAUl5M,GAAKiC,EAAIC,EAAI4xE,EACvB0pQ,SAAUv+U,MAGPw+U,EA2BT,OAzBAH,EAAIl/U,MAAQ,SAAS6lE,GACnB,OAAK1rD,UAAUjX,QACflD,EAAQ6lE,EACDq5Q,GAFuBl/U,GAIhCk/U,EAAIn5U,KAAO,SAAS8/D,GAClB,OAAK1rD,UAAUjX,QACf6C,EAAO8/D,EACAq5Q,GAFuBn5U,GAIhCm5U,EAAIrkI,WAAa,SAASh1I,GACxB,OAAK1rD,UAAUjX,QACf23M,EAAah1I,EACNq5Q,GAFuBrkI,GAIhCqkI,EAAIpkI,SAAW,SAASj1I,GACtB,OAAK1rD,UAAUjX,QACf43M,EAAWj1I,EACJq5Q,GAFuBpkI,GAIhCokI,EAAIE,SAAW,SAASv5Q,GACtB,OAAK1rD,UAAUjX,QACfk8U,EAAWv5Q,EACJq5Q,GAFuBE,GAIzBF,GAET,IAAIC,GAA2B,GA0D/B,SAASG,GAAiBjgV,GACxB,OAAOA,EAAEkO,EAEX,SAASgyU,GAAiBlgV,GACxB,OAAOA,EAAE6T,EAEX,SAASssU,GAAmBngV,EAAGs3B,EAAIzjB,GACjC7T,EAAEs3B,GAAKA,EACPt3B,EAAE6T,EAAIA,EAjERjF,EAAG64C,OAAOgwL,MAAQ,WAChB,IAAIx+M,EAASguR,EAAal9Q,EAAQq2S,GAA6BxkU,EAASykU,GAA2BzgU,EAAMugU,GAAoBjyU,EAAI+xU,GAAkBpsU,EAAIqsU,GACvJ,SAASzoG,EAAMxsO,EAAM5I,GACnB,KAAMlB,EAAI8J,EAAKpH,QAAS,OAAOoH,EAC/B,IAAIq1U,EAASr1U,EAAKqwC,KAAI,SAASt7C,EAAGN,GAChC,OAAOu5B,EAAOp5B,KAAK43O,EAAOz3O,EAAGN,MAE3BiE,EAAS28U,EAAOhlS,KAAI,SAASt7C,GAC/B,OAAOA,EAAEs7C,KAAI,SAAS92C,EAAG9E,GACvB,MAAO,CAAEwO,EAAErO,KAAK43O,EAAOjzO,EAAG9E,GAAImU,EAAEhU,KAAK43O,EAAOjzO,EAAG9E,UAG/C0lP,EAASr7M,EAAMlqC,KAAK43O,EAAO9zO,EAAQtB,GACvCi+U,EAAS1xU,EAAGs5L,QAAQo4I,EAAQl7F,GAC5BzhP,EAASiL,EAAGs5L,QAAQvkM,EAAQyhP,GAC5B,IAC0BjkP,EAAGzB,EAAG4E,EAAGnE,EAD/B8yJ,EAAUr3I,EAAO/b,KAAK43O,EAAO9zO,EAAQtB,GACrCvC,EAAIwgV,EAAO,GAAGz8U,OAClB,IAAKS,EAAI,EAAGA,EAAIxE,IAAKwE,EAEnB,IADAsb,EAAI/f,KAAK43O,EAAO6oG,EAAO,GAAGh8U,GAAInE,EAAI8yJ,EAAQ3uJ,GAAIX,EAAO,GAAGW,GAAG,IACtD5E,EAAI,EAAGA,EAAIyB,IAAKzB,EACnBkgB,EAAI/f,KAAK43O,EAAO6oG,EAAO5gV,GAAG4E,GAAInE,GAAKwD,EAAOjE,EAAI,GAAG4E,GAAG,GAAIX,EAAOjE,GAAG4E,GAAG,IAGzE,OAAO2G,EAgCT,OA9BAwsO,EAAMx+M,OAAS,SAAS/qB,GACtB,OAAK4M,UAAUjX,QACfo1B,EAAS/qB,EACFupO,GAFuBx+M,GAIhCw+M,EAAM1tM,MAAQ,SAAS77B,GACrB,OAAK4M,UAAUjX,QACfkmC,EAAqB,oBAAN77B,EAAmBA,EAAIqyU,GAAsBhgV,IAAI2N,IAAMkyU,GAC/D3oG,GAFuB1tM,GAIhC0tM,EAAM77N,OAAS,SAAS1N,GACtB,OAAK4M,UAAUjX,QACf+X,EAAsB,oBAAN1N,EAAmBA,EAAIsyU,GAAuBjgV,IAAI2N,IAAMmyU,GACjE5oG,GAFuB77N,GAIhC67N,EAAMvpO,EAAI,SAASS,GACjB,OAAKmM,UAAUjX,QACfqK,EAAIS,EACG8oO,GAFuBvpO,GAIhCupO,EAAM5jO,EAAI,SAASlF,GACjB,OAAKmM,UAAUjX,QACfgQ,EAAIlF,EACG8oO,GAFuB5jO,GAIhC4jO,EAAM73N,IAAM,SAASjR,GACnB,OAAKmM,UAAUjX,QACf+b,EAAMjR,EACC8oO,GAFuB73N,GAIzB63N,GAYT,IAAI8oG,GAAwB3xU,EAAG0sC,IAAI,CACjC,aAAc,SAASrwC,GACrB,IAAqBvL,EAAG4E,EAApBnD,EAAI8J,EAAKpH,OAAciE,EAAMmD,EAAKqwC,IAAImlS,IAA0BC,EAAOz1U,EAAKqwC,IAAIqlS,IAA2Bt+U,EAAQuM,EAAG8I,MAAMvW,GAAGuF,MAAK,SAASnE,EAAGC,GAClJ,OAAOsF,EAAIvF,GAAKuF,EAAItF,MAClB0vB,EAAM,EAAGD,EAAS,EAAG2uT,EAAO,GAAIC,EAAU,GAC9C,IAAKnhV,EAAI,EAAGA,EAAIyB,IAAKzB,EACnB4E,EAAIjC,EAAM3C,GACNwyB,EAAMD,GACRC,GAAOwuT,EAAKp8U,GACZs8U,EAAKj+U,KAAK2B,KAEV2tB,GAAUyuT,EAAKp8U,GACfu8U,EAAQl+U,KAAK2B,IAGjB,OAAOu8U,EAAQxxR,UAAU5nD,OAAOm5U,IAElCvxR,QAAS,SAASpkD,GAChB,OAAO2D,EAAG8I,MAAMzM,EAAKpH,QAAQwrD,WAE/B,QAAW+wR,KAETI,GAAyB5xU,EAAG0sC,IAAI,CAClCwlS,WAAY,SAAS71U,GACnB,IAA6DvL,EAAG4E,EAAGnE,EAA/DgB,EAAI8J,EAAKpH,OAAQ/D,EAAImL,EAAK,GAAGpH,OAAQ68U,EAAO,GAAI54U,EAAM,EAAYwvB,EAAK,GAC3E,IAAKhzB,EAAI,EAAGA,EAAIxE,IAAKwE,EAAG,CACtB,IAAK5E,EAAI,EAAGS,EAAI,EAAGT,EAAIyB,EAAGzB,IAAKS,GAAK8K,EAAKvL,GAAG4E,GAAG,GAC3CnE,EAAI2H,IAAKA,EAAM3H,GACnBugV,EAAK/9U,KAAKxC,GAEZ,IAAKmE,EAAI,EAAGA,EAAIxE,IAAKwE,EACnBgzB,EAAGhzB,IAAMwD,EAAM44U,EAAKp8U,IAAM,EAE5B,OAAOgzB,GAETypT,OAAQ,SAAS91U,GACf,IAAgDvL,EAAG4E,EAAGG,EAAGqgF,EAAIk8P,EAAIC,EAAInoT,EAAI34B,EAAG+gV,EAAxE//U,EAAI8J,EAAKpH,OAAQqK,EAAIjD,EAAK,GAAInL,EAAIoO,EAAErK,OAAwCyzB,EAAK,GAErF,IADAA,EAAG,GAAKn3B,EAAI+gV,EAAK,EACZ58U,EAAI,EAAGA,EAAIxE,IAAKwE,EAAG,CACtB,IAAK5E,EAAI,EAAGolF,EAAK,EAAGplF,EAAIyB,IAAKzB,EAAGolF,GAAM75E,EAAKvL,GAAG4E,GAAG,GACjD,IAAK5E,EAAI,EAAGshV,EAAK,EAAGloT,EAAK5qB,EAAE5J,GAAG,GAAK4J,EAAE5J,EAAI,GAAG,GAAI5E,EAAIyB,IAAKzB,EAAG,CAC1D,IAAK+E,EAAI,EAAGw8U,GAAMh2U,EAAKvL,GAAG4E,GAAG,GAAK2G,EAAKvL,GAAG4E,EAAI,GAAG,KAAO,EAAIw0B,GAAKr0B,EAAI/E,IAAK+E,EACxEw8U,IAAOh2U,EAAKxG,GAAGH,GAAG,GAAK2G,EAAKxG,GAAGH,EAAI,GAAG,IAAMw0B,EAE9CkoT,GAAMC,EAAKh2U,EAAKvL,GAAG4E,GAAG,GAExBgzB,EAAGhzB,GAAKnE,GAAK2kF,EAAKk8P,EAAKl8P,EAAKhsD,EAAK,EAC7B34B,EAAI+gV,IAAIA,EAAK/gV,GAEnB,IAAKmE,EAAI,EAAGA,EAAIxE,IAAKwE,EAAGgzB,EAAGhzB,IAAM48U,EACjC,OAAO5pT,GAETiyI,OAAQ,SAASt+J,GACf,IAAoDvL,EAAG4E,EAAGnE,EAAtDgB,EAAI8J,EAAKpH,OAAQ/D,EAAImL,EAAK,GAAGpH,OAAQY,EAAI,EAAItD,EAAYm2B,EAAK,GAClE,IAAKhzB,EAAI,EAAGA,EAAIxE,IAAKwE,EAAG,CACtB,IAAK5E,EAAI,EAAGS,EAAI,EAAGT,EAAIyB,EAAGzB,IAAKS,GAAK8K,EAAKvL,GAAG4E,GAAG,GAC/C,GAAInE,EAAG,IAAKT,EAAI,EAAGA,EAAIyB,EAAGzB,IAAKuL,EAAKvL,GAAG4E,GAAG,IAAMnE,OAAQ,IAAKT,EAAI,EAAGA,EAAIyB,EAAGzB,IAAKuL,EAAKvL,GAAG4E,GAAG,GAAKG,EAElG,IAAKH,EAAI,EAAGA,EAAIxE,IAAKwE,EAAGgzB,EAAGhzB,GAAK,EAChC,OAAOgzB,GAET6pT,KAAMd,KAER,SAASD,GAA4Bn1U,GACnC,OAAO2D,EAAG8I,MAAMzM,EAAKpH,QAEvB,SAASw8U,GAA0Bp1U,GACjC,IAAI3G,GAAK,EAAGxE,EAAImL,EAAK,GAAGpH,OAAQyzB,EAAK,GACrC,QAAShzB,EAAIxE,EAAGw3B,EAAGhzB,GAAK,EACxB,OAAOgzB,EAET,SAASmpT,GAAwB/3S,GAE/B,IADA,IAAmCjkC,EAA/B/E,EAAI,EAAG4E,EAAI,EAAGE,EAAIkkC,EAAM,GAAG,GAAOvnC,EAAIunC,EAAM7kC,OAC1CnE,EAAIyB,IAAKzB,GACR+E,EAAIikC,EAAMhpC,GAAG,IAAM8E,IACtBF,EAAI5E,EACJ8E,EAAIC,GAGR,OAAOH,EAET,SAASq8U,GAAyB3gV,GAChC,OAAOA,EAAEygG,OAAO2gP,GAAoB,GAEtC,SAASA,GAAmB5/U,EAAGxB,GAC7B,OAAOwB,EAAIxB,EAAE,GAgDf,SAASqhV,GAA8B3pU,EAAOuhB,GAC5C,OAAOqoT,GAA4B5pU,EAAOjS,KAAK+5B,KAAK/5B,KAAKomB,IAAIoN,EAAOp1B,QAAU4B,KAAK8tT,IAAM,IAE3F,SAAS+tB,GAA4B5pU,EAAOvW,GAC1C,IAAI+M,GAAK,EAAG1L,GAAKkV,EAAM,GAAI5X,GAAK4X,EAAM,GAAKlV,GAAKrB,EAAGinC,EAAI,GACvD,QAASl6B,GAAK/M,EAAGinC,EAAEl6B,GAAKpO,EAAIoO,EAAI1L,EAChC,OAAO4lC,EAET,SAASm5S,GAAyBtoT,GAChC,MAAO,CAAErqB,EAAG/G,IAAIoxB,GAASrqB,EAAG9G,IAAImxB,IA2ClC,SAASuoT,GAAmBj/U,EAAGC,GAC7B,OAAOD,EAAE5B,MAAQ6B,EAAE7B,MAErB,SAAS8gV,GAAqBl/U,EAAGC,GAC/B,IAAIzC,EAAIwC,EAAEm/U,WACVn/U,EAAEm/U,WAAal/U,EACfA,EAAEm/U,WAAap/U,EACfC,EAAEk/U,WAAa3hV,EACfA,EAAE4hV,WAAan/U,EAEjB,SAASo/U,GAAqBr/U,EAAGC,GAC/BD,EAAEm/U,WAAal/U,EACfA,EAAEm/U,WAAap/U,EAEjB,SAASs/U,GAAyBt/U,EAAGC,GACnC,IAAIs2B,EAAKt2B,EAAE0L,EAAI3L,EAAE2L,EAAG4b,EAAKtnB,EAAEqR,EAAItR,EAAEsR,EAAGmjQ,EAAKz0Q,EAAE/B,EAAIgC,EAAEhC,EACjD,MAAO,KAAOw2Q,EAAKA,EAAKl+O,EAAKA,EAAKhP,EAAKA,EAEzC,SAASg4T,GAAuBx6T,GAC9B,IAAM6+C,EAAQ7+C,EAAK03E,YAAe79F,EAAIglE,EAAMtiE,QAA5C,CACA,IAAIsiE,EAA6E5jE,EAAGC,EAAGzC,EAAGL,EAAG4E,EAAGG,EAAGtD,EAAxF2tS,EAAO7kS,IAAU8kS,GAAQ9kS,IAAU+kS,EAAO/kS,IAAUglS,GAAQhlS,IAYvE,GALAk8D,EAAMrP,QAAQirR,IACdx/U,EAAI4jE,EAAM,GACV5jE,EAAE2L,GAAK3L,EAAE/B,EACT+B,EAAEsR,EAAI,EACNkvT,EAAMxgU,GACFpB,EAAI,IACNqB,EAAI2jE,EAAM,GACV3jE,EAAE0L,EAAI1L,EAAEhC,EACRgC,EAAEqR,EAAI,EACNkvT,EAAMvgU,GACFrB,EAAI,GAQN,IAPApB,EAAIomE,EAAM,GACV67Q,GAAoBz/U,EAAGC,EAAGzC,GAC1BgjU,EAAMhjU,GACN0hV,GAAqBl/U,EAAGxC,GACxBwC,EAAEo/U,WAAa5hV,EACf0hV,GAAqB1hV,EAAGyC,GACxBA,EAAID,EAAEm/U,WACDhiV,EAAI,EAAGA,EAAIyB,EAAGzB,IAAK,CACtBsiV,GAAoBz/U,EAAGC,EAAGzC,EAAIomE,EAAMzmE,IACpC,IAAIuiV,EAAQ,EAAGn9P,EAAK,EAAGk8P,EAAK,EAC5B,IAAK18U,EAAI9B,EAAEk/U,WAAYp9U,IAAM9B,EAAG8B,EAAIA,EAAEo9U,WAAY58P,IAChD,GAAI+8P,GAAyBv9U,EAAGvE,GAAI,CAClCkiV,EAAQ,EACR,MAGJ,GAAa,GAATA,EACF,IAAKx9U,EAAIlC,EAAEo/U,WAAYl9U,IAAMH,EAAEq9U,WAAYl9U,EAAIA,EAAEk9U,WAAYX,IAC3D,GAAIa,GAAyBp9U,EAAG1E,GAC9B,MAIFkiV,GACEn9P,EAAKk8P,GAAMl8P,GAAMk8P,GAAMx+U,EAAEhC,EAAI+B,EAAE/B,EAAGohV,GAAqBr/U,EAAGC,EAAI8B,GAASs9U,GAAqBr/U,EAAIkC,EAAGjC,GACvG9C,MAEA+hV,GAAqBl/U,EAAGxC,GACxByC,EAAIzC,EACJgjU,EAAMhjU,IAKd,IAAI+zE,GAAMg7N,EAAOC,GAAQ,EAAGh7N,GAAMi7N,EAAOC,GAAQ,EAAG03B,EAAK,EACzD,IAAKjnU,EAAI,EAAGA,EAAIyB,EAAGzB,IACjBK,EAAIomE,EAAMzmE,GACVK,EAAEmO,GAAK4lE,EACP/zE,EAAE8T,GAAKkgE,EACP4yP,EAAKlhU,KAAKqC,IAAI6+T,EAAI5mU,EAAES,EAAIiF,KAAKuD,KAAKjJ,EAAEmO,EAAInO,EAAEmO,EAAInO,EAAE8T,EAAI9T,EAAE8T,IAExDyT,EAAK9mB,EAAImmU,EACTxgQ,EAAMrP,QAAQorR,IA3Dd,SAASnf,EAAMz7S,GACbwnR,EAAOrpS,KAAKoC,IAAIyf,EAAKpZ,EAAIoZ,EAAK9mB,EAAGsuS,GACjCC,EAAOtpS,KAAKqC,IAAIwf,EAAKpZ,EAAIoZ,EAAK9mB,EAAGuuS,GACjCC,EAAOvpS,KAAKoC,IAAIyf,EAAKzT,EAAIyT,EAAK9mB,EAAGwuS,GACjCC,EAAOxpS,KAAKqC,IAAIwf,EAAKzT,EAAIyT,EAAK9mB,EAAGyuS,IAyDrC,SAAS8yC,GAAmBz6T,GAC1BA,EAAKo6T,WAAap6T,EAAKq6T,WAAar6T,EAEtC,SAAS46T,GAAqB56T,UACrBA,EAAKo6T,kBACLp6T,EAAKq6T,WAEd,SAASQ,GAAwB76T,EAAMpZ,EAAG2F,EAAGpP,GAC3C,IAAIu6F,EAAW13E,EAAK03E,SAIpB,GAHA13E,EAAKpZ,EAAIA,GAAKzJ,EAAI6iB,EAAKpZ,EACvBoZ,EAAKzT,EAAIA,GAAKpP,EAAI6iB,EAAKzT,EACvByT,EAAK9mB,GAAKiE,EACNu6F,EAAU,CACZ,IAAIt/F,GAAK,EAAGyB,EAAI69F,EAASn7F,OACzB,QAASnE,EAAIyB,EAAGghV,GAAwBnjP,EAASt/F,GAAIwO,EAAG2F,EAAGpP,IAG/D,SAASu9U,GAAoBz/U,EAAGC,EAAGzC,GACjC,IAAIoyD,EAAK5vD,EAAE/B,EAAIT,EAAES,EAAGs4B,EAAKt2B,EAAE0L,EAAI3L,EAAE2L,EAAG4b,EAAKtnB,EAAEqR,EAAItR,EAAEsR,EACjD,GAAIs+C,IAAOr5B,GAAMhP,GAAK,CACpB,IAAIooC,EAAK1vD,EAAEhC,EAAIT,EAAES,EAAG0nL,EAAKpvJ,EAAKA,EAAKhP,EAAKA,EACxCooC,GAAMA,EACNC,GAAMA,EACN,IAAIjkD,EAAI,IAAMikD,EAAKD,IAAO,EAAIg2H,GAAKr0K,EAAIpO,KAAKuD,KAAKvD,KAAKqC,IAAI,EAAG,EAAIoqD,GAAMC,EAAK+1H,IAAO/1H,GAAM+1H,GAAM/1H,EAAKD,EAAKA,KAAQ,EAAIg2H,GACrHnoL,EAAEmO,EAAI3L,EAAE2L,EAAIA,EAAI4qB,EAAKjlB,EAAIiW,EACzB/pB,EAAE8T,EAAItR,EAAEsR,EAAI3F,EAAI4b,EAAKjW,EAAIilB,OAEzB/4B,EAAEmO,EAAI3L,EAAE2L,EAAIikD,EACZpyD,EAAE8T,EAAItR,EAAEsR,EAuHZ,SAASuuU,GAAyB7/U,EAAGC,GACnC,OAAOD,EAAEylB,QAAUxlB,EAAEwlB,OAAS,EAAI,EAEpC,SAASq6T,GAAmB79U,GAC1B,IAAIw6F,EAAWx6F,EAAEw6F,SACjB,OAAOA,EAASn7F,OAASm7F,EAAS,GAAKx6F,EAAE5D,EAE3C,SAAS0hV,GAAoB99U,GAC3B,IAA2BrD,EAAvB69F,EAAWx6F,EAAEw6F,SACjB,OAAQ79F,EAAI69F,EAASn7F,QAAUm7F,EAAS79F,EAAI,GAAKqD,EAAE5D,EAErD,SAAS2hV,GAAmBC,EAAIC,EAAIpyR,GAClC,IAAI7qB,EAAS6qB,GAASoyR,EAAG/iV,EAAI8iV,EAAG9iV,GAChC+iV,EAAG1iV,GAAKylC,EACRi9S,EAAGhhV,GAAK4uD,EACRmyR,EAAGziV,GAAKylC,EACRi9S,EAAG9zU,GAAK0hD,EACRoyR,EAAG3iV,GAAKuwD,EAEV,SAASqyR,GAAoBl+U,GAC3B,IAAuEgZ,EAAnE6yC,EAAQ,EAAG7qB,EAAS,EAAGw5D,EAAWx6F,EAAEw6F,SAAUt/F,EAAIs/F,EAASn7F,OAC/D,QAASnE,GAAK,EACZ8d,EAAIwhF,EAASt/F,GACb8d,EAAE7O,GAAK0hD,EACP7yC,EAAE1d,GAAKuwD,EACPA,GAAS7yC,EAAE/b,GAAK+jC,GAAUhoB,EAAEzd,GAGhC,SAAS4iV,GAAuBC,EAAKp+U,EAAGq+U,GACtC,OAAOD,EAAIrgV,EAAEylB,SAAWxjB,EAAEwjB,OAAS46T,EAAIrgV,EAAIsgV,EA4C7C,SAASC,GAAmB9jP,GAC1B,OAAO,EAAIpwF,EAAG9G,IAAIk3F,GAAU,SAAS72B,GACnC,OAAOA,EAAMt0D,KAGjB,SAASkvU,GAAmB/jP,GAC1B,OAAOA,EAASyB,QAAO,SAASvyF,EAAGi6D,GACjC,OAAOj6D,EAAIi6D,EAAMj6D,IAChB,GAAK8wF,EAASn7F,OAEnB,SAASm/U,GAAsB17T,GAC7B,IAAI03E,EAAW13E,EAAK03E,SACpB,OAAOA,GAAYA,EAASn7F,OAASm/U,GAAsBhkP,EAAS,IAAM13E,EAE5E,SAAS27T,GAAuB37T,GAC9B,IAA8BnmB,EAA1B69F,EAAW13E,EAAK03E,SACpB,OAAOA,IAAa79F,EAAI69F,EAASn7F,QAAUo/U,GAAuBjkP,EAAS79F,EAAI,IAAMmmB,EAoJvF,SAAS47T,GAAyB57T,GAChC,MAAO,CACLpZ,EAAGoZ,EAAKpZ,EACR2F,EAAGyT,EAAKzT,EACRilB,GAAIxR,EAAKwR,GACThP,GAAIxC,EAAKwC,IAGb,SAASq5T,GAAqB77T,EAAMgN,GAClC,IAAIpmB,EAAIoZ,EAAKpZ,EAAIomB,EAAQ,GAAIzgB,EAAIyT,EAAKzT,EAAIygB,EAAQ,GAAIwE,EAAKxR,EAAKwR,GAAKxE,EAAQ,GAAKA,EAAQ,GAAIxK,EAAKxC,EAAKwC,GAAKwK,EAAQ,GAAKA,EAAQ,GASlI,OARIwE,EAAK,IACP5qB,GAAK4qB,EAAK,EACVA,EAAK,GAEHhP,EAAK,IACPjW,GAAKiW,EAAK,EACVA,EAAK,GAEA,CACL5b,EAAGA,EACH2F,EAAGA,EACHilB,GAAIA,EACJhP,GAAIA,GAsCR,SAASs5T,GAAerzR,GACtB,IAAIxsC,EAAQwsC,EAAO,GAAIwc,EAAOxc,EAAOA,EAAOlsD,OAAS,GACrD,OAAO0f,EAAQgpD,EAAO,CAAEhpD,EAAOgpD,GAAS,CAAEA,EAAMhpD,GAElD,SAAS8/T,GAAch+Q,GACrB,OAAOA,EAAMi+Q,YAAcj+Q,EAAMi+Q,cAAgBF,GAAe/9Q,EAAM3tD,SAExE,SAAS6rU,GAAkBxzR,EAAQr4C,EAAO8rU,EAAevoI,GACvD,IAAIh4M,EAAIugV,EAAczzR,EAAO,GAAIA,EAAO,IAAKrwD,EAAIu7M,EAAYvjM,EAAM,GAAIA,EAAM,IAC7E,OAAO,SAASxJ,GACd,OAAOxO,EAAEuD,EAAEiL,KAGf,SAASu1U,GAAc1zR,EAAQ2zR,GAC7B,IAAsE5qT,EAAlEk8G,EAAK,EAAGl/H,EAAKi6C,EAAOlsD,OAAS,EAAGozB,EAAK84B,EAAOilF,GAAK99G,EAAK64B,EAAOj6C,GAOjE,OANIohB,EAAKD,IACP6B,EAAKk8G,EAAIA,EAAKl/H,EAAIA,EAAKgjB,EACvBA,EAAK7B,EAAIA,EAAKC,EAAIA,EAAK4B,GAEzBi3B,EAAOilF,GAAM0uM,EAAKtwU,MAAM6jB,GACxB84B,EAAOj6C,GAAM4tU,EAAKlkT,KAAKtI,GAChB64B,EAET,SAAS4zR,GAAkB16S,GACzB,OAAOA,EAAO,CACZ71B,MAAO,SAASlF,GACd,OAAOzI,KAAK2N,MAAMlF,EAAI+6B,GAAQA,GAEhCzJ,KAAM,SAAStxB,GACb,OAAOzI,KAAK+5B,KAAKtxB,EAAI+6B,GAAQA,IAE7B26S,GA/oBNh1U,EAAG64C,OAAOo8R,UAAY,WACpB,IAAIC,GAAY,EAAMC,EAASvuS,OAAQwuS,EAASzC,GAA0B0C,EAAS5C,GACnF,SAASwC,EAAU54U,EAAMvL,GACvB,IAAwIwkV,EAAsFh2U,EAA1N8oE,EAAO,GAAI/9C,EAAShuB,EAAKqwC,IAAIyoS,EAAQzkV,MAAOoY,EAAQssU,EAAOnkV,KAAKP,KAAM25B,EAAQv5B,GAAIshO,EAAaijH,EAAOpkV,KAAKP,KAAMoY,EAAOuhB,EAAQv5B,GAAiByB,GAARzB,GAAK,EAAOu5B,EAAOp1B,QAAQ/D,EAAIkhO,EAAWn9N,OAAS,EAAGY,EAAIq/U,EAAY,EAAI,EAAI3iV,EAC3N,QAASzB,EAAII,EACXokV,EAAMltQ,EAAKt3E,GAAK,GAChBwkV,EAAIprT,GAAKkoM,EAAWthO,EAAI,IAAMwkV,EAAIh2U,EAAI8yN,EAAWthO,IACjDwkV,EAAIrwU,EAAI,EAEV,GAAI/T,EAAI,EAAG,CACTJ,GAAK,EACL,QAASA,EAAIyB,EACX+M,EAAI+qB,EAAOv5B,GACPwO,GAAKwJ,EAAM,IAAMxJ,GAAKwJ,EAAM,KAC9BwsU,EAAMltQ,EAAKpoE,EAAGi3S,OAAO7kF,EAAY9yN,EAAG,EAAGpO,GAAK,GAC5CokV,EAAIrwU,GAAKpP,EACTy/U,EAAIvhV,KAAKsI,EAAKvL,KAIpB,OAAOs3E,EAwBT,OAtBA6sQ,EAAUljV,MAAQ,SAASuN,GACzB,OAAK4M,UAAUjX,QACfkgV,EAAS71U,EACF21U,GAFuBE,GAIhCF,EAAUnsU,MAAQ,SAASxJ,GACzB,OAAK4M,UAAUjX,QACfmgV,EAAS/tB,GAAW/nT,GACb21U,GAFuBG,GAIhCH,EAAU7sQ,KAAO,SAAS9oE,GACxB,OAAK4M,UAAUjX,QACfogV,EAAsB,kBAAN/1U,EAAiB,SAASwJ,GACxC,OAAO4pU,GAA4B5pU,EAAOxJ,IACxC+nT,GAAW/nT,GACR21U,GAJuBI,GAMhCJ,EAAUC,UAAY,SAAS51U,GAC7B,OAAK4M,UAAUjX,QACfigV,IAAc51U,EACP21U,GAFuBC,GAIzBD,GAaTj1U,EAAG64C,OAAO0Y,KAAO,WACf,IAA8F2H,EAA1Fw4B,EAAY1xF,EAAG64C,OAAO64C,YAAY55F,KAAK86U,IAAqBltT,EAAU,EAAG5Q,EAAO,CAAE,EAAG,GACzF,SAASy8C,EAAKngE,EAAGN,GACf,IAAIymE,EAAQm6B,EAAUzgG,KAAKP,KAAMU,EAAGN,GAAIX,EAAOonE,EAAM,GAAI3oD,EAAIkG,EAAK,GAAI0tC,EAAI1tC,EAAK,GAAIljB,EAAc,MAAVsnE,EAAiBriE,KAAKuD,KAAyB,oBAAX8+D,EAAwBA,EAAS,WAC1J,OAAOA,GAOT,GALA/oE,EAAKmP,EAAInP,EAAK8U,EAAI,EAClByrU,GAA8BvgV,GAAM,SAASiB,GAC3CA,EAAEQ,GAAKA,EAAER,EAAEW,UAEb2+U,GAA8BvgV,EAAM+iV,IAChCxtT,EAAS,CACX,IAAI0iP,EAAK1iP,GAAWwzC,EAAS,EAAIriE,KAAKqC,IAAI,EAAI/I,EAAKyB,EAAIgd,EAAG,EAAIze,EAAKyB,EAAI4wD,IAAM,EAC7EkuR,GAA8BvgV,GAAM,SAASiB,GAC3CA,EAAEQ,GAAKw2Q,KAETsoE,GAA8BvgV,EAAM+iV,IACpCxC,GAA8BvgV,GAAM,SAASiB,GAC3CA,EAAEQ,GAAKw2Q,KAIX,OADAmrE,GAAwBpjV,EAAMye,EAAI,EAAG4zC,EAAI,EAAG0W,EAAS,EAAI,EAAIriE,KAAKqC,IAAI,EAAI/I,EAAKyB,EAAIgd,EAAG,EAAIze,EAAKyB,EAAI4wD,IAC5F+U,EAiBT,OAfAhG,EAAKz8C,KAAO,SAAS8iD,GACnB,OAAK1rD,UAAUjX,QACf6f,EAAO8iD,EACArG,GAFuBz8C,GAIhCy8C,EAAK2H,OAAS,SAAStB,GACrB,OAAK1rD,UAAUjX,QACfikE,EAAc,MAALtB,GAA0B,oBAANA,EAAmBA,GAAKA,EAC9CrG,GAFuB2H,GAIhC3H,EAAK7rC,QAAU,SAASkyC,GACtB,OAAK1rD,UAAUjX,QACfywB,GAAWkyC,EACJrG,GAFuB7rC,GAIzB6qT,GAA0Bh/Q,EAAMmgC,IAmHzC1xF,EAAG64C,OAAOif,KAAO,WACf,IAAI45B,EAAY1xF,EAAG64C,OAAO64C,YAAY55F,KAAK,MAAM/F,MAAM,MAAOwjV,EAAa/B,GAA0B1+T,EAAO,CAAE,EAAG,GAAK0gU,EAAW,KACjI,SAAS19Q,EAAK1mE,EAAGN,GACf,IAAIymE,EAAQm6B,EAAUzgG,KAAKP,KAAMU,EAAGN,GAAI2kV,EAAQl+Q,EAAM,GAAIm+Q,EAAQC,EAASF,GAG3E,GAFA/E,GAA8BgF,EAAOE,GAAYF,EAAMt8T,OAAOloB,GAAKwkV,EAAM31U,EACzE0wU,GAA+BiF,EAAOG,GAClCL,EAAU/E,GAA+BgF,EAAOK,OAAgB,CAClE,IAAIhxU,EAAO2wU,EAAO1wU,EAAQ0wU,EAAOpyT,EAASoyT,EAC1ChF,GAA+BgF,GAAO,SAAS/8T,GACzCA,EAAKpZ,EAAIwF,EAAKxF,IAAGwF,EAAO4T,GACxBA,EAAKpZ,EAAIyF,EAAMzF,IAAGyF,EAAQ2T,GAC1BA,EAAK8sJ,MAAQniJ,EAAOmiJ,QAAOniJ,EAAS3K,MAE1C,IAAIu5B,EAAKsjS,EAAWzwU,EAAMC,GAAS,EAAID,EAAKxF,EAAG2sU,EAAKn3T,EAAK,IAAM/P,EAAMzF,EAAIi2U,EAAWxwU,EAAOD,GAAQ,EAAImtC,GAAK+2H,EAAKl0J,EAAK,IAAMuO,EAAOmiJ,OAAS,GAC5IirK,GAA+BgF,GAAO,SAAS/8T,GAC7CA,EAAKpZ,GAAKoZ,EAAKpZ,EAAI2yC,GAAMg6R,EACzBvzT,EAAKzT,EAAIyT,EAAK8sJ,MAAQwD,KAG1B,OAAOzxG,EAET,SAASo+Q,EAASF,GAChB,IAGsBM,EAHlBL,EAAQ,CACVpuJ,EAAG,KACHl3F,SAAU,CAAEqlP,IACX3sP,EAAQ,CAAE4sP,GACb,MAAgC,OAAxBK,EAAQjtP,EAAMzyF,OACpB,IAAK,IAA+BkjE,EAA3B62B,EAAW2lP,EAAM3lP,SAAiBt/F,EAAI,EAAGyB,EAAI69F,EAASn7F,OAAQnE,EAAIyB,IAAKzB,EAC9Eg4F,EAAM/0F,MAAMq8F,EAASt/F,GAAKyoE,EAAQ,CAChC3B,EAAGw4B,EAASt/F,GACZsoB,OAAQ28T,EACR3lP,UAAW72B,EAAQ62B,EAASt/F,GAAGs/F,WAAa72B,EAAMnkE,SAAW,GAC7DkyL,EAAG,KACH3zL,EAAG,KACHoM,EAAG,EACH7O,EAAG,EACHC,EAAG,EACH0B,EAAG,EACHb,EAAG,KACHlB,EAAGA,IACF6C,EAAI4lE,GAGX,OAAOm8Q,EAAMtlP,SAAS,GAExB,SAASwlP,EAAUhgV,GACjB,IAAIw6F,EAAWx6F,EAAEw6F,SAAU4lP,EAAWpgV,EAAEwjB,OAAOg3E,SAAUxhF,EAAIhZ,EAAE9E,EAAIklV,EAASpgV,EAAE9E,EAAI,GAAK,KACvF,GAAIs/F,EAASn7F,OAAQ,CACnB6+U,GAAoBl+U,GACpB,IAAIqgV,GAAY7lP,EAAS,GAAGrwF,EAAIqwF,EAASA,EAASn7F,OAAS,GAAG8K,GAAK,EAC/D6O,GACFhZ,EAAEmK,EAAI6O,EAAE7O,EAAIw1U,EAAW3/U,EAAEgiE,EAAGhpD,EAAEgpD,GAC9BhiE,EAAE1E,EAAI0E,EAAEmK,EAAIk2U,GAEZrgV,EAAEmK,EAAIk2U,OAECrnU,IACThZ,EAAEmK,EAAI6O,EAAE7O,EAAIw1U,EAAW3/U,EAAEgiE,EAAGhpD,EAAEgpD,IAEhChiE,EAAEwjB,OAAOkuK,EAAI4uJ,EAAUtgV,EAAGgZ,EAAGhZ,EAAEwjB,OAAOkuK,GAAK0uJ,EAAS,IAEtD,SAASH,EAAWjgV,GAClBA,EAAEgiE,EAAEt4D,EAAI1J,EAAEmK,EAAInK,EAAEwjB,OAAOloB,EACvB0E,EAAE1E,GAAK0E,EAAEwjB,OAAOloB,EAElB,SAASglV,EAAUtgV,EAAGgZ,EAAGqlU,GACvB,GAAIrlU,EAAG,CACL,IAAiH6yC,EAA7G00R,EAAMvgV,EAAGwgV,EAAMxgV,EAAGo+U,EAAMplU,EAAGynU,EAAMF,EAAI/8T,OAAOg3E,SAAS,GAAIkmP,EAAMH,EAAIjlV,EAAGqlV,EAAMH,EAAIllV,EAAGslV,EAAMxC,EAAI9iV,EAAGulV,EAAMJ,EAAInlV,EAC9G,MAAO8iV,EAAMN,GAAoBM,GAAMmC,EAAM1C,GAAmB0C,GAAMnC,GAAOmC,EAC3EE,EAAM5C,GAAmB4C,GACzBD,EAAM1C,GAAoB0C,GAC1BA,EAAIziV,EAAIiC,EACR6rD,EAAQuyR,EAAIj0U,EAAIy2U,EAAML,EAAIp2U,EAAIu2U,EAAMf,EAAWvB,EAAIp8Q,EAAGu+Q,EAAIv+Q,GACtDnW,EAAQ,IACVkyR,GAAmBI,GAAuBC,EAAKp+U,EAAGq+U,GAAWr+U,EAAG6rD,GAChE60R,GAAO70R,EACP80R,GAAO90R,GAET+0R,GAAOxC,EAAI9iV,EACXolV,GAAOH,EAAIjlV,EACXulV,GAAOJ,EAAInlV,EACXqlV,GAAOH,EAAIllV,EAET8iV,IAAQN,GAAoB0C,KAC9BA,EAAIpkV,EAAIgiV,EACRoC,EAAIllV,GAAKslV,EAAMD,GAEbJ,IAAQ1C,GAAmB4C,KAC7BA,EAAIrkV,EAAImkV,EACRE,EAAInlV,GAAKolV,EAAMG,EACfxC,EAAWr+U,GAGf,OAAOq+U,EAET,SAAS6B,EAASp9T,GAChBA,EAAKpZ,GAAKwV,EAAK,GACf4D,EAAKzT,EAAIyT,EAAK8sJ,MAAQ1wJ,EAAK,GAiB7B,OAfAgjD,EAAKy9Q,WAAa,SAASj2U,GACzB,OAAK4M,UAAUjX,QACfsgV,EAAaj2U,EACNw4D,GAFuBy9Q,GAIhCz9Q,EAAKhjD,KAAO,SAASxV,GACnB,OAAK4M,UAAUjX,QACfugV,EAAyB,OAAb1gU,EAAOxV,GAAaw2U,EAAW,KACpCh+Q,GAFuB09Q,EAAW,KAAO1gU,GAIlDgjD,EAAK09Q,SAAW,SAASl2U,GACvB,OAAK4M,UAAUjX,QACfugV,EAAyB,OAAb1gU,EAAOxV,GAAa,KAAOw2U,EAChCh+Q,GAFuB09Q,EAAW1gU,EAAO,MAI3Cy7T,GAA0Bz4Q,EAAM45B,IAiCzC1xF,EAAG64C,OAAO69R,QAAU,WAClB,IAAIhlP,EAAY1xF,EAAG64C,OAAO64C,YAAY55F,KAAK,MAAM/F,MAAM,MAAOwjV,EAAa/B,GAA0B1+T,EAAO,CAAE,EAAG,GAAK0gU,GAAW,EACjI,SAASkB,EAAQtlV,EAAGN,GAClB,IAAyD6lV,EAArDp/Q,EAAQm6B,EAAUzgG,KAAKP,KAAMU,EAAGN,GAAIX,EAAOonE,EAAM,GAAkBj4D,EAAI,EAC3EoxU,GAA8BvgV,GAAM,SAASuoB,GAC3C,IAAI03E,EAAW13E,EAAK03E,SAChBA,GAAYA,EAASn7F,QACvByjB,EAAKpZ,EAAI60U,GAAmB/jP,GAC5B13E,EAAKzT,EAAIivU,GAAmB9jP,KAE5B13E,EAAKpZ,EAAIq3U,EAAer3U,GAAKi2U,EAAW78T,EAAMi+T,GAAgB,EAC9Dj+T,EAAKzT,EAAI,EACT0xU,EAAej+T,MAGnB,IAAI5T,EAAOsvU,GAAsBjkV,GAAO4U,EAAQsvU,GAAuBlkV,GAAOk4B,EAAKvjB,EAAKxF,EAAIi2U,EAAWzwU,EAAMC,GAAS,EAAGujB,EAAKvjB,EAAMzF,EAAIi2U,EAAWxwU,EAAOD,GAAQ,EAQlK,OAPA4rU,GAA8BvgV,EAAMqlV,EAAW,SAAS98T,GACtDA,EAAKpZ,GAAKoZ,EAAKpZ,EAAInP,EAAKmP,GAAKwV,EAAK,GAClC4D,EAAKzT,GAAK9U,EAAK8U,EAAIyT,EAAKzT,GAAK6P,EAAK,IAChC,SAAS4D,GACXA,EAAKpZ,GAAKoZ,EAAKpZ,EAAI+oB,IAAOC,EAAKD,GAAMvT,EAAK,GAC1C4D,EAAKzT,GAAK,GAAK9U,EAAK8U,EAAIyT,EAAKzT,EAAI9U,EAAK8U,EAAI,IAAM6P,EAAK,KAEhDyiD,EAiBT,OAfAm/Q,EAAQnB,WAAa,SAASj2U,GAC5B,OAAK4M,UAAUjX,QACfsgV,EAAaj2U,EACNo3U,GAFuBnB,GAIhCmB,EAAQ5hU,KAAO,SAASxV,GACtB,OAAK4M,UAAUjX,QACfugV,EAAyB,OAAb1gU,EAAOxV,GACZo3U,GAFuBlB,EAAW,KAAO1gU,GAIlD4hU,EAAQlB,SAAW,SAASl2U,GAC1B,OAAK4M,UAAUjX,QACfugV,EAAyB,OAAb1gU,EAAOxV,GACZo3U,GAFuBlB,EAAW1gU,EAAO,MAI3Cy7T,GAA0BmG,EAAShlP,IAoB5C1xF,EAAG64C,OAAO+9R,QAAU,WAClB,IAA4IC,EAAxInlP,EAAY1xF,EAAG64C,OAAO64C,YAAajhE,EAAQ55B,KAAK45B,MAAO3b,EAAO,CAAE,EAAG,GAAK4Q,EAAU,KAAM1a,EAAMspU,GAA0BwC,GAAS,EAAiB7kV,EAAO,WAAY40E,EAAQ,IAAM,EAAIhwE,KAAKuD,KAAK,IACrM,SAASq8D,EAAM25B,EAAUv6F,GACvB,IAAiC0jE,EAAOrE,EAApCpkE,GAAK,EAAGyB,EAAI69F,EAASn7F,OACzB,QAASnE,EAAIyB,EACX2iE,GAAQqE,EAAQ62B,EAASt/F,IAAIiB,OAAS8D,EAAI,EAAI,EAAIA,GAClD0jE,EAAMrE,KAAO32D,MAAM22D,IAASA,GAAQ,EAAI,EAAIA,EAGhD,SAAS6hR,EAASr+T,GAChB,IAAI03E,EAAW13E,EAAK03E,SACpB,GAAIA,GAAYA,EAASn7F,OAAQ,CAC/B,IAA8DskE,EAAwBy9Q,EAA6JzkV,EAA/OwsH,EAAO/zG,EAAI0N,GAAOw1D,EAAM,GAAI+oQ,EAAY7mP,EAASh7F,QAAgB2/T,EAAO15T,IAAiBhH,EAAa,UAATpC,EAAmB8sH,EAAK70F,GAAc,SAATj4B,EAAkB8sH,EAAK7jG,GAAc,eAATjpB,EAAqC,EAAbymB,EAAK8sJ,MAAYzmD,EAAK7jG,GAAK6jG,EAAK70F,GAAKrzB,KAAKoC,IAAI8lH,EAAK70F,GAAI60F,EAAK7jG,IAC9Ou7C,EAAMwgR,EAAWl4N,EAAK70F,GAAK60F,EAAK7jG,GAAKxC,EAAK3mB,OAC1Cm8E,EAAIhZ,KAAO,EACX,OAAQ3iE,EAAI0kV,EAAUhiV,QAAU,EAC9Bi5E,EAAIn6E,KAAKwlE,EAAQ09Q,EAAU1kV,EAAI,IAC/B27E,EAAIhZ,MAAQqE,EAAMrE,KACL,aAATjjE,IAAwB+kV,EAAQE,EAAMhpQ,EAAK75E,KAAO0gU,GACpDkiB,EAAU5gV,MACV0+T,EAAOiiB,IAEP9oQ,EAAIhZ,MAAQgZ,EAAI73E,MAAM6+D,KACtBx6D,EAASwzE,EAAK75E,EAAG0qH,GAAM,GACvB1qH,EAAIwC,KAAKoC,IAAI8lH,EAAK70F,GAAI60F,EAAK7jG,IAC3BgzD,EAAIj5E,OAASi5E,EAAIhZ,KAAO,EACxB6/P,EAAO15T,KAGP6yE,EAAIj5E,SACNyF,EAASwzE,EAAK75E,EAAG0qH,GAAM,GACvB7wC,EAAIj5E,OAASi5E,EAAIhZ,KAAO,GAE1Bk7B,EAASloC,QAAQ6uR,IAGrB,SAASI,EAASz+T,GAChB,IAAI03E,EAAW13E,EAAK03E,SACpB,GAAIA,GAAYA,EAASn7F,OAAQ,CAC/B,IAAoDskE,EAAhDwlD,EAAO/zG,EAAI0N,GAAOu+T,EAAY7mP,EAASh7F,QAAgB84E,EAAM,GACjEzX,EAAMwgR,EAAWl4N,EAAK70F,GAAK60F,EAAK7jG,GAAKxC,EAAK3mB,OAC1Cm8E,EAAIhZ,KAAO,EACX,MAAOqE,EAAQ09Q,EAAU5gV,MACvB63E,EAAIn6E,KAAKwlE,GACT2U,EAAIhZ,MAAQqE,EAAMrE,KACH,MAAXqE,EAAMx5D,IACRrF,EAASwzE,EAAK3U,EAAMx5D,EAAIg/G,EAAK70F,GAAK60F,EAAK7jG,GAAI6jG,GAAOk4N,EAAUhiV,QAC5Di5E,EAAIj5E,OAASi5E,EAAIhZ,KAAO,GAG5Bk7B,EAASloC,QAAQivR,IAGrB,SAASD,EAAMhpQ,EAAK75E,GAClB,IAAkBzC,EAAdiB,EAAIq7E,EAAIhZ,KAASkiR,EAAO,EAAGC,EAAOh8U,IAAUvK,GAAK,EAAGyB,EAAI27E,EAAIj5E,OAChE,QAASnE,EAAIyB,GACLX,EAAIs8E,EAAIp9E,GAAGokE,QACbtjE,EAAIylV,IAAMA,EAAOzlV,GACjBA,EAAIwlV,IAAMA,EAAOxlV,IAIvB,OAFAiB,GAAKA,EACLwB,GAAKA,EACExB,EAAIgE,KAAKqC,IAAI7E,EAAI+iV,EAAOvwQ,EAAQh0E,EAAGA,GAAKwB,EAAIgjV,EAAOxwQ,IAAUxrE,IAEtE,SAASX,EAASwzE,EAAK75E,EAAG0qH,EAAMh2B,GAC9B,IAAqFx3F,EAAjFT,GAAK,EAAGyB,EAAI27E,EAAIj5E,OAAQqK,EAAIy/G,EAAKz/G,EAAG2F,EAAI85G,EAAK95G,EAAGrP,EAAIvB,EAAIo8B,EAAMy9C,EAAIhZ,KAAO7gE,GAAK,EAClF,GAAIA,GAAK0qH,EAAK70F,GAAI,EACZ6+D,GAASnzF,EAAImpH,EAAK7jG,MAAItlB,EAAImpH,EAAK7jG,IACnC,QAASpqB,EAAIyB,EACXhB,EAAI28E,EAAIp9E,GACRS,EAAE+N,EAAIA,EACN/N,EAAE0T,EAAIA,EACN1T,EAAE2pB,GAAKtlB,EACP0J,GAAK/N,EAAE24B,GAAKrzB,KAAKoC,IAAI8lH,EAAKz/G,EAAIy/G,EAAK70F,GAAK5qB,EAAG1J,EAAI66B,EAAMl/B,EAAE2jE,KAAOt/D,GAAK,GAErErE,EAAEwO,GAAI,EACNxO,EAAE24B,IAAM60F,EAAKz/G,EAAIy/G,EAAK70F,GAAK5qB,EAC3By/G,EAAK95G,GAAKrP,EACVmpH,EAAK7jG,IAAMtlB,MACN,EACDmzF,GAASnzF,EAAImpH,EAAK70F,MAAIt0B,EAAImpH,EAAK70F,IACnC,QAASp5B,EAAIyB,EACXhB,EAAI28E,EAAIp9E,GACRS,EAAE+N,EAAIA,EACN/N,EAAE0T,EAAIA,EACN1T,EAAE24B,GAAKt0B,EACPqP,GAAK1T,EAAE2pB,GAAKrkB,KAAKoC,IAAI8lH,EAAK95G,EAAI85G,EAAK7jG,GAAKjW,EAAGrP,EAAI66B,EAAMl/B,EAAE2jE,KAAOt/D,GAAK,GAErErE,EAAEwO,GAAI,EACNxO,EAAE2pB,IAAM6jG,EAAK95G,EAAI85G,EAAK7jG,GAAKjW,EAC3B85G,EAAKz/G,GAAK1J,EACVmpH,EAAK70F,IAAMt0B,GAGf,SAASghV,EAAQxlV,GACf,IAAImmE,EAAQs/Q,GAAYnlP,EAAUtgG,GAAIjB,EAAOonE,EAAM,GAOnD,OANApnE,EAAKmP,EAAInP,EAAK8U,EAAI,EACd9U,EAAK4B,OAAO5B,EAAK+5B,GAAKpV,EAAK,GAAI3kB,EAAK+qB,GAAKpG,EAAK,IAAS3kB,EAAK+5B,GAAK/5B,EAAK+qB,GAAK,EAC3E27T,GAAUnlP,EAAUs/O,QAAQ7gV,GAChCsmE,EAAM,CAAEtmE,GAAQA,EAAK+5B,GAAK/5B,EAAK+qB,GAAK/qB,EAAK4B,QACxC8kV,EAAWM,EAAWJ,GAAU5mV,GAC7B2mV,IAAQD,EAAWt/Q,GAChBA,EA0CT,OAxCAq/Q,EAAQ9hU,KAAO,SAASxV,GACtB,OAAK4M,UAAUjX,QACf6f,EAAOxV,EACAs3U,GAFuB9hU,GAIhC8hU,EAAQlxT,QAAU,SAASpmB,GACzB,IAAK4M,UAAUjX,OAAQ,OAAOywB,EAC9B,SAAS4xT,EAAY5+T,GACnB,IAAI9lB,EAAI0M,EAAErO,KAAK2lV,EAASl+T,EAAMA,EAAK8sJ,OACnC,OAAY,MAAL5yK,EAAY0hV,GAAyB57T,GAAQ67T,GAAqB77T,EAAmB,kBAAN9lB,EAAiB,CAAEA,EAAGA,EAAGA,EAAGA,GAAMA,GAE1H,SAAS2kV,EAAY7+T,GACnB,OAAO67T,GAAqB77T,EAAMpZ,GAEpC,IAAI8E,EAGJ,OAFA4G,EAAuB,OAAhB0a,EAAUpmB,GAAag1U,GAAiD,cAArBlwU,SAAc9E,GAAoBg4U,EAAuB,WAATlzU,GAAqB9E,EAAI,CAAEA,EAAGA,EAAGA,EAAGA,GAC9Ii4U,GAAeA,EACRX,GAETA,EAAQnmT,MAAQ,SAASnxB,GACvB,OAAK4M,UAAUjX,QACfw7B,EAAQnxB,EAAIzI,KAAK45B,MAAQmW,OAClBgwS,GAFuBnmT,GAASmW,QAIzCgwS,EAAQE,OAAS,SAASx3U,GACxB,OAAK4M,UAAUjX,QACf6hV,EAASx3U,EACTu3U,EAAW,KACJD,GAHuBE,GAKhCF,EAAQ/vQ,MAAQ,SAASvnE,GACvB,OAAK4M,UAAUjX,QACf4xE,EAAQvnE,EACDs3U,GAFuB/vQ,GAIhC+vQ,EAAQ3kV,KAAO,SAASqN,GACtB,OAAK4M,UAAUjX,QACfhD,EAAOqN,EAAI,GACJs3U,GAFuB3kV,GAIzBs+U,GAA0BqG,EAASllP,IA2B5C1xF,EAAGrJ,OAAS,CACVwkL,OAAQ,SAAS6mB,EAAGw1I,GAClB,IAAIjlV,EAAI2Z,UAAUjX,OAGlB,OAFI1C,EAAI,IAAGilV,EAAI,GACXjlV,EAAI,IAAGyvM,EAAI,GACR,WACL,IAAI1iM,EAAG2F,EAAGrT,EACV,GACE0N,EAAoB,EAAhBzI,KAAKF,SAAe,EACxBsO,EAAoB,EAAhBpO,KAAKF,SAAe,EACxB/E,EAAI0N,EAAIA,EAAI2F,EAAIA,SACRrT,GAAKA,EAAI,GACnB,OAAOowM,EAAIw1I,EAAIl4U,EAAIzI,KAAKuD,MAAM,EAAIvD,KAAKomB,IAAIrrB,GAAKA,KAGpD6lV,UAAW,WACT,IAAI9gV,EAASqJ,EAAGrJ,OAAOwkL,OAAO9lL,MAAM2K,EAAIkM,WACxC,OAAO,WACL,OAAOrV,KAAK6uD,IAAI/uD,OAGpB+gV,MAAO,SAASxmV,GACd,IAAIyF,EAASqJ,EAAGrJ,OAAOghV,UAAUzmV,GACjC,OAAO,WACL,OAAOyF,IAAWzF,IAGtBymV,UAAW,SAASzmV,GAClB,OAAO,WACL,IAAK,IAAI2B,EAAI,EAAG6C,EAAI,EAAGA,EAAIxE,EAAGwE,IAAK7C,GAAKgE,KAAKF,SAC7C,OAAO9D,KAIbmN,EAAGy2D,MAAQ,GAkCX,IAAIu+Q,GAAwB,CAC1BxwU,MAAO6zS,EACPznR,KAAMynR,GAER,SAASu/B,GAAoBz2R,EAAQr4C,EAAO8rU,EAAevoI,GACzD,IAAIh4M,EAAI,GAAIvD,EAAI,GAAI4E,EAAI,EAAGG,EAAIgB,KAAKoC,IAAIkoD,EAAOlsD,OAAQ6T,EAAM7T,QAAU,EACnEksD,EAAOtrD,GAAKsrD,EAAO,KACrBA,EAASA,EAAO/rD,QAAQqrD,UACxB33C,EAAQA,EAAM1T,QAAQqrD,WAExB,QAAS/qD,GAAKG,EACZxB,EAAEN,KAAK6gV,EAAczzR,EAAOzrD,EAAI,GAAIyrD,EAAOzrD,KAC3C5E,EAAEiD,KAAKs4M,EAAYvjM,EAAMpT,EAAI,GAAIoT,EAAMpT,KAEzC,OAAO,SAAS4J,GACd,IAAI5J,EAAIsK,EAAGi3S,OAAO91P,EAAQ7hD,EAAG,EAAGzJ,GAAK,EACrC,OAAO/E,EAAE4E,GAAGrB,EAAEqB,GAAG4J,KAMrB,SAASu4U,GAAgB12R,EAAQr4C,EAAOujM,EAAatoM,GACnD,IAAIO,EAAQ+hB,EACZ,SAASw9R,IACP,IAAIrjL,EAAS3pI,KAAKoC,IAAIkoD,EAAOlsD,OAAQ6T,EAAM7T,QAAU,EAAI2iV,GAAsBjD,GAAmBC,EAAgB7wU,EAAQypU,GAAwBD,GAGlJ,OAFAjpU,EAASk8H,EAAOr/E,EAAQr4C,EAAO8rU,EAAevoI,GAC9ChmL,EAAQm6G,EAAO13H,EAAOq4C,EAAQyzR,EAAe7L,IACtCtyQ,EAET,SAASA,EAAMn3D,GACb,OAAOgF,EAAOhF,GAyChB,OAvCAm3D,EAAMlmD,OAAS,SAAStL,GACtB,OAAOohB,EAAMphB,IAEfwxD,EAAMtV,OAAS,SAAS7hD,GACtB,OAAK4M,UAAUjX,QACfksD,EAAS7hD,EAAEotC,IAAI9F,QACRi9Q,KAFuB1iQ,GAIhCsV,EAAM3tD,MAAQ,SAASxJ,GACrB,OAAK4M,UAAUjX,QACf6T,EAAQxJ,EACDukT,KAFuB/6S,GAIhC2tD,EAAMqhR,WAAa,SAASx4U,GAC1B,OAAOm3D,EAAM3tD,MAAMxJ,GAAG+sM,YAAY0/H,KAEpCt1Q,EAAM1yD,MAAQ,SAASzE,GACrB,OAAK4M,UAAUjX,QACf8O,EAAQzE,EACDukT,KAFuB9/S,GAIhC0yD,EAAM41I,YAAc,SAAS/sM,GAC3B,OAAK4M,UAAUjX,QACfo3M,EAAc/sM,EACPukT,KAFuBx3G,GAIhC51I,EAAM5uD,MAAQ,SAAS3W,GACrB,OAAO6mV,GAAqB52R,EAAQjwD,IAEtCulE,EAAM0mL,WAAa,SAASjsP,EAAGskG,GAC7B,OAAOwiP,GAA0B72R,EAAQjwD,EAAGskG,IAE9C/+B,EAAMq+Q,KAAO,SAAS5jV,GAEpB,OADA+mV,GAAoB92R,EAAQjwD,GACrB2yT,KAETptP,EAAMqD,KAAO,WACX,OAAO+9Q,GAAgB12R,EAAQr4C,EAAOujM,EAAatoM,IAE9C8/S,IAET,SAASq0B,GAAsBzhR,EAAO+pE,GACpC,OAAOxgI,EAAGumB,OAAOkwC,EAAO+pE,EAAQ,QAAS,aAAc,cAAe,SAExE,SAASy3M,GAAoB92R,EAAQjwD,GAGnC,OAFA2jV,GAAc1zR,EAAQ4zR,GAAkBoD,GAAyBh3R,EAAQjwD,GAAG,KAC5E2jV,GAAc1zR,EAAQ4zR,GAAkBoD,GAAyBh3R,EAAQjwD,GAAG,KACrEiwD,EAET,SAASg3R,GAAyBh3R,EAAQjwD,GAC/B,MAALA,IAAWA,EAAI,IACnB,IAAIipE,EAASq6Q,GAAerzR,GAAS7jC,EAAO68C,EAAO,GAAKA,EAAO,GAAI9/B,EAAOxjC,KAAK85B,IAAI,GAAI95B,KAAK2N,MAAM3N,KAAKomB,IAAIK,EAAOpsB,GAAK2F,KAAKmzC,OAAQ2rB,EAAMzkE,EAAIosB,EAAO+c,EAKrJ,OAJIs7B,GAAO,IAAKt7B,GAAQ,GAAas7B,GAAO,IAAKt7B,GAAQ,EAAYs7B,GAAO,MAAKt7B,GAAQ,GACzF8/B,EAAO,GAAKtjE,KAAK+5B,KAAKupC,EAAO,GAAK9/B,GAAQA,EAC1C8/B,EAAO,GAAKtjE,KAAK2N,MAAM21D,EAAO,GAAK9/B,GAAQA,EAAc,GAAPA,EAClD8/B,EAAO,GAAK9/B,EACL8/B,EAET,SAAS49Q,GAAqB52R,EAAQjwD,GACpC,OAAO8O,EAAG8I,MAAMzT,MAAM2K,EAAIm4U,GAAyBh3R,EAAQjwD,IAE7D,SAAS8mV,GAA0B72R,EAAQjwD,EAAGskG,GAC5C,IAAI1sF,EAAQqvU,GAAyBh3R,EAAQjwD,GAC7C,GAAIskG,EAAQ,CACV,IAAIr8E,EAAQ+xS,GAAaluN,KAAKxH,GAE9B,GADAr8E,EAAMsoC,QACW,MAAbtoC,EAAM,GAAY,CACpB,IAAI61C,EAAShvD,EAAGyrT,aAAa50T,KAAKqC,IAAI0P,EAAIE,EAAM,IAAKF,EAAIE,EAAM,MAI/D,OAHKqQ,EAAM,KAAIA,EAAM,GAAK,IAAMi/T,GAAyBppR,EAAOyH,MAAM3tD,EAAM,MAC5EqQ,EAAM,GAAK,IACXq8E,EAASx1F,EAAGw1F,OAAOr8E,EAAMjlB,KAAK,KACvB,SAAS9C,GACd,OAAOokG,EAAOxmC,EAAOyH,MAAMrlE,IAAM49D,EAAOiuB,QAGvC9jE,EAAM,KAAIA,EAAM,GAAK,IAAMk/T,GAA+Bl/T,EAAM,GAAIrQ,IACzE0sF,EAASr8E,EAAMjlB,KAAK,SAEpBshG,EAAS,KAAO4iP,GAAyBtvU,EAAM,IAAM,IAEvD,OAAO9I,EAAGw1F,OAAOA,GA9FnBx1F,EAAGy2D,MAAM+pE,OAAS,WAChB,OAAOq3M,GAAgB,CAAE,EAAG,GAAK,CAAE,EAAG,GAAK9O,IAAgB,IA+F7D,IAAIuP,GAAmC,CACrCzlV,EAAG,EACH8nB,EAAG,EACH/nB,EAAG,EACHhB,EAAG,EACH8c,EAAG,GAEL,SAAS0pU,GAAyBrmV,GAChC,OAAQ8E,KAAK2N,MAAM3N,KAAKomB,IAAIlrB,GAAS8E,KAAKmzC,KAAO,KAEnD,SAASquS,GAA+Bj0U,EAAM0E,GAC5C,IAAIlW,EAAIwlV,GAAyBtvU,EAAM,IACvC,OAAO1E,KAAQk0U,GAAmCzhV,KAAK+R,IAAIhW,EAAIwlV,GAAyBvhV,KAAKqC,IAAI0P,EAAIE,EAAM,IAAKF,EAAIE,EAAM,UAAoB,MAAT1E,GAAgBxR,EAAqB,GAAP,MAATwR,GAK5J,SAASm0U,GAAa/3M,EAAQ9vG,EAAM6vE,EAAUp/C,GAC5C,SAASlkC,EAAI3d,GACX,OAAQihG,EAAW1pG,KAAKomB,IAAI3d,EAAI,EAAI,EAAIA,IAAMzI,KAAKomB,IAAI3d,EAAI,EAAI,GAAKA,IAAMzI,KAAKomB,IAAIyT,GAErF,SAASC,EAAIrxB,GACX,OAAOihG,EAAW1pG,KAAK85B,IAAID,EAAMpxB,IAAMzI,KAAK85B,IAAID,GAAOpxB,GAEzD,SAASm3D,EAAMn3D,GACb,OAAOkhI,EAAOvjH,EAAI3d,IAoDpB,OAlDAm3D,EAAMlmD,OAAS,SAASjR,GACtB,OAAOqxB,EAAI6vG,EAAOjwH,OAAOjR,KAE3Bm3D,EAAMtV,OAAS,SAAS7hD,GACtB,OAAK4M,UAAUjX,QACfsrG,EAAWjhG,EAAE,IAAM,EACnBkhI,EAAOr/E,QAAQA,EAAS7hD,EAAEotC,IAAI9F,SAAS8F,IAAIzvB,IACpCw5C,GAHuBtV,GAKhCsV,EAAM/lC,KAAO,SAASknC,GACpB,OAAK1rD,UAAUjX,QACfy7B,GAAQknC,EACR4oE,EAAOr/E,OAAOA,EAAOzU,IAAIzvB,IAClBw5C,GAHuB/lC,GAKhC+lC,EAAMq+Q,KAAO,WACX,IAAI0D,EAAQ3D,GAAc1zR,EAAOzU,IAAIzvB,GAAMsjF,EAAW1pG,KAAO4hV,IAG7D,OAFAj4M,EAAOr/E,OAAOq3R,GACdr3R,EAASq3R,EAAM9rS,IAAI/b,GACZ8lC,GAETA,EAAM5uD,MAAQ,WACZ,IAAIsyD,EAASq6Q,GAAerzR,GAASt5C,EAAQ,GAAIxT,EAAI8lE,EAAO,GAAIvkE,EAAIukE,EAAO,GAAIrpE,EAAI+F,KAAK2N,MAAMyY,EAAI5oB,IAAKqB,EAAImB,KAAK+5B,KAAK3T,EAAIrnB,IAAKrD,EAAIm+B,EAAO,EAAI,EAAIA,EACjJ,GAAIlyB,SAAS9I,EAAI5E,GAAI,CACnB,GAAIyvG,EAAU,CACZ,KAAMzvG,EAAI4E,EAAG5E,IAAK,IAAK,IAAI+E,EAAI,EAAGA,EAAItD,EAAGsD,IAAKgS,EAAM9T,KAAK48B,EAAI7/B,GAAK+E,GAClEgS,EAAM9T,KAAK48B,EAAI7/B,SAGf,IADA+W,EAAM9T,KAAK48B,EAAI7/B,IACTA,IAAM4E,GAAK,IAASG,EAAItD,EAAI,EAAGsD,EAAI,EAAGA,IAAKgS,EAAM9T,KAAK48B,EAAI7/B,GAAK+E,GAEvE,IAAK/E,EAAI,EAAG+W,EAAM/W,GAAKuD,EAAGvD,KAC1B,IAAK4E,EAAImS,EAAM5S,OAAQ4S,EAAMnS,EAAI,GAAKE,EAAGF,KACzCmS,EAAQA,EAAMzS,MAAMtE,EAAG4E,GAEzB,OAAOmS,GAET4uD,EAAM0mL,WAAa,SAAS5qP,EAAGijG,GAC7B,IAAKtpF,UAAUjX,OAAQ,OAAOyjV,GAC1BxsU,UAAUjX,OAAS,EAAGugG,EAASkjP,GAA+C,oBAAXljP,IAAuBA,EAASx1F,EAAGw1F,OAAOA,IACjH,IAAI3/F,EAAIgB,KAAKqC,IAAI,EAAGw3B,EAAOn+B,EAAIkkE,EAAM5uD,QAAQ5S,QAC7C,OAAO,SAAS7D,GACd,IAAIN,EAAIM,EAAIu/B,EAAI95B,KAAK45B,MAAMxT,EAAI7rB,KAE/B,OADIN,EAAI4/B,EAAOA,EAAO,KAAI5/B,GAAK4/B,GACxB5/B,GAAK+E,EAAI2/F,EAAOpkG,GAAK,KAGhCqlE,EAAMqD,KAAO,WACX,OAAOy+Q,GAAa/3M,EAAO1mE,OAAQppC,EAAM6vE,EAAUp/C,IAE9C+2R,GAAsBzhR,EAAO+pE,GA/DtCxgI,EAAGy2D,MAAMx5C,IAAM,WACb,OAAOs7T,GAAav4U,EAAGy2D,MAAM+pE,SAASr/E,OAAO,CAAE,EAAG,IAAM,IAAI,EAAM,CAAE,EAAG,MAgEzE,IAAIu3R,GAAqB14U,EAAGw1F,OAAO,OAAQijP,GAA2B,CACpEj0U,MAAO,SAASlF,GACd,OAAQzI,KAAK+5B,MAAMtxB,IAErBsxB,KAAM,SAAStxB,GACb,OAAQzI,KAAK2N,OAAOlF,KAMxB,SAASq5U,GAAan4M,EAAQruF,EAAUgP,GACtC,IAAIy3R,EAAOC,GAAgB1mS,GAAW2mS,EAAOD,GAAgB,EAAI1mS,GACjE,SAASskB,EAAMn3D,GACb,OAAOkhI,EAAOo4M,EAAKt5U,IA6BrB,OA3BAm3D,EAAMlmD,OAAS,SAASjR,GACtB,OAAOw5U,EAAKt4M,EAAOjwH,OAAOjR,KAE5Bm3D,EAAMtV,OAAS,SAAS7hD,GACtB,OAAK4M,UAAUjX,QACfurI,EAAOr/E,QAAQA,EAAS7hD,EAAEotC,IAAI9F,SAAS8F,IAAIksS,IACpCniR,GAFuBtV,GAIhCsV,EAAM5uD,MAAQ,SAAS3W,GACrB,OAAO6mV,GAAqB52R,EAAQjwD,IAEtCulE,EAAM0mL,WAAa,SAASjsP,EAAGskG,GAC7B,OAAOwiP,GAA0B72R,EAAQjwD,EAAGskG,IAE9C/+B,EAAMq+Q,KAAO,SAAS5jV,GACpB,OAAOulE,EAAMtV,OAAO82R,GAAoB92R,EAAQjwD,KAElDulE,EAAMtkB,SAAW,SAAS7yC,GACxB,OAAK4M,UAAUjX,QACf2jV,EAAOC,GAAgB1mS,EAAW7yC,GAClCw5U,EAAOD,GAAgB,EAAI1mS,GAC3BquF,EAAOr/E,OAAOA,EAAOzU,IAAIksS,IAClBniR,GAJuBtkB,GAMhCskB,EAAMqD,KAAO,WACX,OAAO6+Q,GAAan4M,EAAO1mE,OAAQ3nB,EAAUgP,IAExC+2R,GAAsBzhR,EAAO+pE,GAEtC,SAASq4M,GAAgBnqU,GACvB,OAAO,SAASpP,GACd,OAAOA,EAAI,GAAKzI,KAAK85B,KAAKrxB,EAAGoP,GAAK7X,KAAK85B,IAAIrxB,EAAGoP,IAYlD,SAASqqU,GAAiB53R,EAAQi0R,GAChC,IAAI3hV,EAAOqV,EAAOkwU,EAClB,SAASviR,EAAMn3D,GACb,OAAOwJ,IAAQrV,EAAM9B,IAAI2N,KAAoB,UAAb81U,EAAOpjV,EAAgByB,EAAMsL,IAAIO,EAAG6hD,EAAOptD,KAAKuL,IAAMgyD,MAAQ,GAAKxoD,EAAM7T,QAE3G,SAAS0+G,EAAMh/F,EAAO0lB,GACpB,OAAOr6B,EAAG8I,MAAMq4C,EAAOlsD,QAAQy3C,KAAI,SAAS57C,GAC1C,OAAO6jB,EAAQ0lB,EAAOvpC,KAgF1B,OA7EA2lE,EAAMtV,OAAS,SAAS7hD,GACtB,IAAK4M,UAAUjX,OAAQ,OAAOksD,EAC9BA,EAAS,GACT1tD,EAAQ,IAAIikT,EACZ,IAA0Bz/P,EAAtBnnD,GAAK,EAAGyB,EAAI+M,EAAErK,OAClB,QAASnE,EAAIyB,EAAQkB,EAAMu1D,IAAI/Q,EAAK34C,EAAExO,KAAK2C,EAAMsL,IAAIk5C,EAAIkJ,EAAOptD,KAAKkkD,IACrE,OAAOwe,EAAM2+Q,EAAOpjV,GAAGqD,MAAMohE,EAAO2+Q,EAAOzhV,IAE7C8iE,EAAM3tD,MAAQ,SAASxJ,GACrB,OAAK4M,UAAUjX,QACf6T,EAAQxJ,EACR05U,EAAY,EACZ5D,EAAS,CACPpjV,EAAG,QACH2B,EAAGuY,WAEEuqD,GAPuB3tD,GAShC2tD,EAAMwiR,YAAc,SAAS35U,EAAGomB,GAC1BxZ,UAAUjX,OAAS,IAAGywB,EAAU,GACpC,IAAI/Q,EAAQrV,EAAE,GAAIq+D,EAAOr+D,EAAE,GAAI+6B,EAAO8mB,EAAOlsD,OAAS,GAAK0f,GAASA,EAAQgpD,GAAQ,EACpF,IAAMA,EAAOhpD,IAAUwsC,EAAOlsD,OAAS,EAAIywB,GAO3C,OANA5c,EAAQ6qG,EAAMh/F,EAAQ0lB,EAAO3U,EAAU,EAAG2U,GAC1C2+S,EAAY,EACZ5D,EAAS,CACPpjV,EAAG,cACH2B,EAAGuY,WAEEuqD,GAETA,EAAMyiR,iBAAmB,SAAS55U,EAAGomB,GAC/BxZ,UAAUjX,OAAS,IAAGywB,EAAU,GACpC,IAAI/Q,EAAQrV,EAAE,GAAIq+D,EAAOr+D,EAAE,GAAI+6B,EAAO8mB,EAAOlsD,OAAS,GAAK0f,EAAQgpD,EAAO9mE,KAAK45B,OAAO9b,EAAQgpD,GAAQ,GACtG,IAAMA,EAAOhpD,IAAUwsC,EAAOlsD,OAAS,EAAIywB,GAAW,EAOtD,OANA5c,EAAQ6qG,EAAMh/F,EAAQ9d,KAAK45B,MAAM4J,EAAO3U,EAAU,GAAKi4C,EAAOhpD,GAASwsC,EAAOlsD,OAAS,EAAIywB,GAAW2U,GAAQ,GAAIA,GAClH2+S,EAAY,EACZ5D,EAAS,CACPpjV,EAAG,mBACH2B,EAAGuY,WAEEuqD,GAETA,EAAM0iR,WAAa,SAAS75U,EAAGomB,EAAS0zT,GAClCltU,UAAUjX,OAAS,IAAGywB,EAAU,GAChCxZ,UAAUjX,OAAS,IAAGmkV,EAAe1zT,GACzC,IAAI+6B,EAAUnhD,EAAE,GAAKA,EAAE,GAAIqV,EAAQrV,EAAEmhD,EAAU,GAAIkd,EAAOr+D,EAAE,EAAImhD,GAAUpmB,GAAQsjC,EAAOhpD,IAAUwsC,EAAOlsD,OAASywB,EAAU,EAAI0zT,GAQjI,OAPAtwU,EAAQ6qG,EAAMh/F,EAAQ0lB,EAAO++S,EAAc/+S,GACvComB,GAAS33C,EAAM23C,UACnBu4R,EAAY3+S,GAAQ,EAAI3U,GACxB0vT,EAAS,CACPpjV,EAAG,aACH2B,EAAGuY,WAEEuqD,GAETA,EAAM4iR,gBAAkB,SAAS/5U,EAAGomB,EAAS0zT,GACvCltU,UAAUjX,OAAS,IAAGywB,EAAU,GAChCxZ,UAAUjX,OAAS,IAAGmkV,EAAe1zT,GACzC,IAAI+6B,EAAUnhD,EAAE,GAAKA,EAAE,GAAIqV,EAAQrV,EAAEmhD,EAAU,GAAIkd,EAAOr+D,EAAE,EAAImhD,GAAUpmB,EAAOxjC,KAAK2N,OAAOm5D,EAAOhpD,IAAUwsC,EAAOlsD,OAASywB,EAAU,EAAI0zT,IAQ5I,OAPAtwU,EAAQ6qG,EAAMh/F,EAAQ9d,KAAK45B,OAAOktC,EAAOhpD,GAASwsC,EAAOlsD,OAASywB,GAAW2U,GAAQ,GAAIA,GACrFomB,GAAS33C,EAAM23C,UACnBu4R,EAAYniV,KAAK45B,MAAM4J,GAAQ,EAAI3U,IACnC0vT,EAAS,CACPpjV,EAAG,kBACH2B,EAAGuY,WAEEuqD,GAETA,EAAMuiR,UAAY,WAChB,OAAOA,GAETviR,EAAMi+Q,YAAc,WAClB,OAAOF,GAAeY,EAAOzhV,EAAE,KAEjC8iE,EAAMqD,KAAO,WACX,OAAOi/Q,GAAiB53R,EAAQi0R,IAE3B3+Q,EAAMtV,OAAOA,GA1ItBnhD,EAAGy2D,MAAM9lC,IAAM,WACb,OAAOgoT,GAAa34U,EAAGy2D,MAAM+pE,SAAU,EAAG,CAAE,EAAG,KAyCjDxgI,EAAGy2D,MAAMr8D,KAAO,WACd,OAAO4F,EAAGy2D,MAAM9lC,MAAMwhB,SAAS,KAEjCnyC,EAAGy2D,MAAMu9D,QAAU,WACjB,OAAO+kN,GAAiB,GAAI,CAC1B/mV,EAAG,QACH2B,EAAG,CAAE,OA4FTqM,EAAGy2D,MAAMuyI,WAAa,WACpB,OAAOhpM,EAAGy2D,MAAMu9D,UAAUlrH,MAAMwwU,KAElCt5U,EAAGy2D,MAAM22I,WAAa,WACpB,OAAOptM,EAAGy2D,MAAMu9D,UAAUlrH,MAAMywU,KAElCv5U,EAAGy2D,MAAM+iR,YAAc,WACrB,OAAOx5U,EAAGy2D,MAAMu9D,UAAUlrH,MAAM2wU,KAElCz5U,EAAGy2D,MAAMijR,YAAc,WACrB,OAAO15U,EAAGy2D,MAAMu9D,UAAUlrH,MAAM6wU,KAElC,IAAIL,GAAgB,CAAE,QAAS,SAAU,QAAS,SAAU,QAAS,QAAS,SAAU,QAAS,SAAU,SAAU5sS,IAAIq6Q,IACrHwyB,GAAgB,CAAE,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,UAAW7sS,IAAIq6Q,IACzN0yB,GAAiB,CAAE,QAAS,QAAS,QAAS,SAAU,QAAS,QAAS,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,UAAW/sS,IAAIq6Q,IACxN4yB,GAAiB,CAAE,QAAS,QAAS,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,QAAS,QAAS,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,QAAS,SAAU,UAAWjtS,IAAIq6Q,IAI7N,SAAS6yB,GAAkBz4R,EAAQr4C,GACjC,IAAIspN,EACJ,SAASyxF,IACP,IAAIhuT,EAAI,EAAGijE,EAAIhwD,EAAM7T,OACrBm9N,EAAa,GACb,QAASv8N,EAAIijE,EAAGs5J,EAAWv8N,EAAI,GAAKmK,EAAG22S,SAASx1P,EAAQtrD,EAAIijE,GAC5D,OAAOrC,EAET,SAASA,EAAMn3D,GACb,IAAKf,MAAMe,GAAKA,GAAI,OAAOwJ,EAAM9I,EAAGi3S,OAAO7kF,EAAY9yN,IAsBzD,OApBAm3D,EAAMtV,OAAS,SAAS7hD,GACtB,OAAK4M,UAAUjX,QACfksD,EAAS7hD,EAAEotC,IAAI6pQ,GAAW5hT,OAAO6hT,GAAY1+S,KAAKw+S,GAC3CuN,KAFuB1iQ,GAIhCsV,EAAM3tD,MAAQ,SAASxJ,GACrB,OAAK4M,UAAUjX,QACf6T,EAAQxJ,EACDukT,KAFuB/6S,GAIhC2tD,EAAMojR,UAAY,WAChB,OAAOznH,GAET37J,EAAMqjR,aAAe,SAAS70U,GAE5B,OADAA,EAAI6D,EAAMhT,QAAQmP,GACXA,EAAI,EAAI,CAAEqsD,IAAKA,KAAQ,CAAErsD,EAAI,EAAImtN,EAAWntN,EAAI,GAAKk8C,EAAO,GAAIl8C,EAAImtN,EAAWn9N,OAASm9N,EAAWntN,GAAKk8C,EAAOA,EAAOlsD,OAAS,KAExIwhE,EAAMqD,KAAO,WACX,OAAO8/Q,GAAkBz4R,EAAQr4C,IAE5B+6S,IAKT,SAASk2B,GAAkB1xT,EAAIC,EAAIxf,GACjC,IAAImjU,EAAIn7U,EACR,SAAS2lE,EAAMn3D,GACb,OAAOwJ,EAAMjS,KAAKqC,IAAI,EAAGrC,KAAKoC,IAAInI,EAAG+F,KAAK2N,MAAMynU,GAAM3sU,EAAI+oB,OAE5D,SAASw7R,IAGP,OAFAooB,EAAKnjU,EAAM7T,QAAUqzB,EAAKD,GAC1Bv3B,EAAIgY,EAAM7T,OAAS,EACZwhE,EAqBT,OAnBAA,EAAMtV,OAAS,SAAS7hD,GACtB,OAAK4M,UAAUjX,QACfozB,GAAM/oB,EAAE,GACRgpB,GAAMhpB,EAAEA,EAAErK,OAAS,GACZ4uT,KAHuB,CAAEx7R,EAAIC,IAKtCmuC,EAAM3tD,MAAQ,SAASxJ,GACrB,OAAK4M,UAAUjX,QACf6T,EAAQxJ,EACDukT,KAFuB/6S,GAIhC2tD,EAAMqjR,aAAe,SAAS70U,GAG5B,OAFAA,EAAI6D,EAAMhT,QAAQmP,GAClBA,EAAIA,EAAI,EAAIqsD,IAAMrsD,EAAIgnU,EAAK5jT,EACpB,CAAEpjB,EAAGA,EAAI,EAAIgnU,IAEtBx1Q,EAAMqD,KAAO,WACX,OAAOigR,GAAkB1xT,EAAIC,EAAIxf,IAE5B+6S,IAKT,SAASm2B,GAAmB74R,EAAQr4C,GAClC,SAAS2tD,EAAMn3D,GACb,GAAIA,GAAKA,EAAG,OAAOwJ,EAAM9I,EAAGi3S,OAAO91P,EAAQ7hD,IAmB7C,OAjBAm3D,EAAMtV,OAAS,SAASyW,GACtB,OAAK1rD,UAAUjX,QACfksD,EAASyW,EACFnB,GAFuBtV,GAIhCsV,EAAM3tD,MAAQ,SAAS8uD,GACrB,OAAK1rD,UAAUjX,QACf6T,EAAQ8uD,EACDnB,GAFuB3tD,GAIhC2tD,EAAMqjR,aAAe,SAAS70U,GAE5B,OADAA,EAAI6D,EAAMhT,QAAQmP,GACX,CAAEk8C,EAAOl8C,EAAI,GAAIk8C,EAAOl8C,KAEjCwxD,EAAMqD,KAAO,WACX,OAAOkgR,GAAmB74R,EAAQr4C,IAE7B2tD,EAKT,SAASwjR,GAAkB94R,GACzB,SAASjnD,EAASoF,GAChB,OAAQA,EAiBV,OAfApF,EAASqW,OAASrW,EAClBA,EAASinD,OAASjnD,EAAS4O,MAAQ,SAASxJ,GAC1C,OAAK4M,UAAUjX,QACfksD,EAAS7hD,EAAEotC,IAAIxyC,GACRA,GAFuBinD,GAIhCjnD,EAAS2N,MAAQ,SAAS3W,GACxB,OAAO6mV,GAAqB52R,EAAQjwD,IAEtCgJ,EAASijP,WAAa,SAASjsP,EAAGskG,GAChC,OAAOwiP,GAA0B72R,EAAQjwD,EAAGskG,IAE9Ct7F,EAAS4/D,KAAO,WACd,OAAOmgR,GAAkB94R,IAEpBjnD,EAGT,SAASggV,KACP,OAAO,EA1HTl6U,EAAGy2D,MAAMkgP,SAAW,WAClB,OAAOijC,GAAkB,GAAI,KAmC/B55U,EAAGy2D,MAAM0jR,SAAW,WAClB,OAAOJ,GAAkB,EAAG,EAAG,CAAE,EAAG,KAiCtC/5U,EAAGy2D,MAAMxkD,UAAY,WACnB,OAAO+nU,GAAmB,CAAE,IAAM,CAAE,EAAG,KAyBzCh6U,EAAGy2D,MAAMv8D,SAAW,WAClB,OAAO+/U,GAAkB,CAAE,EAAG,KAuBhCj6U,EAAG8gB,IAAM,GAIT9gB,EAAG8gB,IAAI89F,IAAM,WACX,IAAIkuF,EAAcstI,GAAuBrtI,EAAcstI,GAAuBC,EAAeJ,GAASK,EAAYC,GAAgB5tI,EAAa6tI,GAAsB5tI,EAAW6tI,GAAoBvJ,EAAWwJ,GAC/M,SAAS/7N,IACP,IAAIpuE,EAAK35C,KAAKqC,IAAI,GAAI4zM,EAAYz3M,MAAM3E,KAAMwb,YAAaonF,EAAKz8F,KAAKqC,IAAI,GAAI6zM,EAAY13M,MAAM3E,KAAMwb,YAAamzD,EAAKutI,EAAWv3M,MAAM3E,KAAMwb,WAAawlO,GAAO7vI,EAAKgrG,EAASx3M,MAAM3E,KAAMwb,WAAawlO,GAAOpuL,EAAKzsD,KAAK+R,IAAIi5F,EAAKxiC,GAAKy/C,EAAKz/C,EAAKwiC,EAAK,EAAI,EAE3P,GADIvO,EAAK9iD,IAAIgsI,EAAKlpF,EAAIA,EAAK9iD,EAAIA,EAAKgsI,GAChCl5H,GAAMk+P,GAAI,OAAOo5B,EAActnP,EAAIwrB,IAAOtuE,EAAKoqS,EAAcpqS,EAAI,EAAIsuE,GAAM,IAAM,IACrF,IAAI09D,EAAIu7I,EAAIv6I,EAAItyC,EAAoB7iH,EAAIK,EAAIJ,EAAIK,EAAI2nB,EAAIuoB,EAAIE,EAAIC,EAA5C8c,EAAK,EAAGC,EAAK,EAAmCxhC,EAAO,GAO3E,IANI22F,IAAOimM,EAAS97U,MAAM3E,KAAMwb,YAAc,GAAK,KACjDsxK,EAAK+8J,IAAcC,GAAiB3jV,KAAKuD,KAAKo2C,EAAKA,EAAK8iD,EAAKA,IAAOinP,EAAUllV,MAAM3E,KAAMwb,WACrF4yG,IAAI/oC,IAAO,GACZud,IAAIvd,EAAK+rO,GAAQtkI,EAAKlqF,EAAKz8F,KAAKorD,IAAIipF,KACpC16F,IAAIslC,EAAKgsO,GAAQtkI,EAAKhtI,EAAK35C,KAAKorD,IAAIipF,MAEtC53C,EAAI,CACNjrE,EAAKirE,EAAKz8F,KAAKmrD,IAAIqd,EAAK0W,GACxBrtD,EAAK4qE,EAAKz8F,KAAKorD,IAAIod,EAAK0W,GACxBztD,EAAKgrE,EAAKz8F,KAAKmrD,IAAI6/C,EAAK9rB,GACxBptD,EAAK2qE,EAAKz8F,KAAKorD,IAAI4/C,EAAK9rB,GACxB,IAAI2iE,EAAK7hJ,KAAK+R,IAAIi5F,EAAKxiC,EAAK,EAAI0W,IAAO07J,GAAI,EAAI,EAC/C,GAAI17J,GAAM8kQ,GAAgBxyT,EAAIK,EAAIJ,EAAIK,KAAQm2F,EAAK45B,EAAI,CACrD,IAAI+gG,GAAMp6K,EAAKwiC,GAAM,EACrBx5E,EAAKirE,EAAKz8F,KAAKmrD,IAAIy3L,GACnB/wN,EAAK4qE,EAAKz8F,KAAKorD,IAAIw3L,GACnBnxN,EAAKK,EAAK,WAGZN,EAAKK,EAAK,EAEZ,GAAI8nB,EAAI,CACNF,EAAKE,EAAK35C,KAAKmrD,IAAI6/C,EAAK/rB,GACxBjd,EAAKroB,EAAK35C,KAAKorD,IAAI4/C,EAAK/rB,GACxB/c,EAAKvoB,EAAK35C,KAAKmrD,IAAIqd,EAAKyW,GACxB9c,EAAKxoB,EAAK35C,KAAKorD,IAAIod,EAAKyW,GACxB,IAAI8iE,EAAK/hJ,KAAK+R,IAAIy2D,EAAKwiC,EAAK,EAAI/rB,IAAO27J,GAAI,EAAI,EAC/C,GAAI37J,GAAM+kQ,GAAgBvqS,EAAIuoB,EAAIE,EAAIC,KAAQ,EAAI8lD,EAAK85B,EAAI,CACzD,IAAI4gG,GAAMn6K,EAAKwiC,GAAM,EACrBvxD,EAAKE,EAAK35C,KAAKmrD,IAAIw3L,GACnB3gL,EAAKroB,EAAK35C,KAAKorD,IAAIu3L,GACnBzgL,EAAKC,EAAK,WAGZ1oB,EAAKuoB,EAAK,EAEZ,GAAIvV,EAAKiuL,KAAM/0D,EAAK3lL,KAAKoC,IAAIpC,KAAK+R,IAAI0qF,EAAK9iD,GAAM,GAAI8pS,EAAajlV,MAAM3E,KAAMwb,aAAe,KAAM,CACjG6rT,EAAKvnR,EAAK8iD,EAAKwrB,EAAK,EAAI,EACxB,IAAIg8N,EAAMt+J,EAAIu+J,EAAMv+J,EACpB,GAAIl5H,EAAKmuL,GAAG,CACV,IAAIupG,EAAW,MAANjiR,EAAa,CAAEzoB,EAAIuoB,GAAa,MAANvwC,EAAa,CAAED,EAAIK,GAAO26S,GAAyB,CAAEh7S,EAAIK,GAAM,CAAEqwC,EAAIC,GAAM,CAAE1wC,EAAIK,GAAM,CAAE2nB,EAAIuoB,IAAO1hD,EAAKkR,EAAK2yT,EAAG,GAAIt/O,EAAKhzE,EAAKsyT,EAAG,GAAIrqL,EAAKroI,EAAK0yT,EAAG,GAAIpqL,EAAKjoI,EAAKqyT,EAAG,GAAIC,EAAK,EAAIpkV,KAAKorD,IAAIprD,KAAKmuE,MAAM7tD,EAAKw5I,EAAKj1D,EAAKk1D,IAAO/5J,KAAKuD,KAAK+c,EAAKA,EAAKukF,EAAKA,GAAM7kG,KAAKuD,KAAKu2J,EAAKA,EAAKC,EAAKA,KAAQ,GAAIsqL,EAAKrkV,KAAKuD,KAAK4gV,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,IAC5WD,EAAMlkV,KAAKoC,IAAIujL,GAAKhsI,EAAK0qS,IAAOD,EAAK,IACrCH,EAAMjkV,KAAKoC,IAAIujL,GAAKlpF,EAAK4nP,IAAOD,EAAK,IAEvC,GAAU,MAAN3yT,EAAY,CACd,IAAI6yT,EAAMC,GAA+B,MAANriR,EAAa,CAAEzoB,EAAIuoB,GAAO,CAAEE,EAAIC,GAAM,CAAE3wC,EAAIK,GAAM4qE,EAAIwnP,EAAKh8N,GAAKu8N,EAAMD,GAAyB,CAAE9yT,EAAIK,GAAM,CAAE2nB,EAAIuoB,GAAMy6B,EAAIwnP,EAAKh8N,GAC/J09D,IAAOs+J,EACTvmS,EAAKxgD,KAAK,IAAKonV,EAAI,GAAI,IAAKL,EAAK,IAAKA,EAAK,QAAS/iB,EAAI,IAAKojB,EAAI,GAAI,IAAK7nP,EAAI,IAAKA,EAAI,MAAO,EAAIwrB,EAAK+7N,GAAgBM,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAIE,EAAI,GAAG,GAAIA,EAAI,GAAG,IAAK,IAAKv8N,EAAI,IAAKu8N,EAAI,GAAI,IAAKP,EAAK,IAAKA,EAAK,QAAS/iB,EAAI,IAAKsjB,EAAI,IAEpO9mS,EAAKxgD,KAAK,IAAKonV,EAAI,GAAI,IAAKL,EAAK,IAAKA,EAAK,QAAS/iB,EAAI,IAAKsjB,EAAI,SAGnE9mS,EAAKxgD,KAAK,IAAKs0B,EAAI,IAAKK,GAE1B,GAAU,MAANqwC,EAAY,CACd,IAAIuiR,EAAMF,GAAyB,CAAE/yT,EAAIK,GAAM,CAAEqwC,EAAIC,GAAMxoB,GAAKuqS,EAAKj8N,GAAKH,EAAMy8N,GAAyB,CAAE9qS,EAAIuoB,GAAY,MAANvwC,EAAa,CAAED,EAAIK,GAAO,CAAEJ,EAAIK,GAAM6nB,GAAKuqS,EAAKj8N,GACjK09D,IAAOu+J,EACTxmS,EAAKxgD,KAAK,IAAK4qH,EAAI,GAAI,IAAKo8N,EAAK,IAAKA,EAAK,QAAShjB,EAAI,IAAKp5M,EAAI,GAAI,IAAKnuE,EAAI,IAAKA,EAAI,MAAOsuE,EAAK+7N,GAAgBl8N,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAI28N,EAAI,GAAG,GAAIA,EAAI,GAAG,IAAK,IAAK,EAAIx8N,EAAI,IAAKw8N,EAAI,GAAI,IAAKP,EAAK,IAAKA,EAAK,QAAShjB,EAAI,IAAKujB,EAAI,IAEpO/mS,EAAKxgD,KAAK,IAAK4qH,EAAI,GAAI,IAAKo8N,EAAK,IAAKA,EAAK,QAAShjB,EAAI,IAAKujB,EAAI,SAGnE/mS,EAAKxgD,KAAK,IAAKu8C,EAAI,IAAKuoB,QAG1BtkB,EAAKxgD,KAAK,IAAKs0B,EAAI,IAAKK,GACd,MAANJ,GAAYisB,EAAKxgD,KAAK,IAAKu/F,EAAI,IAAKA,EAAI,MAAOolD,EAAI,IAAK55B,EAAI,IAAKx2F,EAAI,IAAKK,GAC9E4rB,EAAKxgD,KAAK,IAAKu8C,EAAI,IAAKuoB,GACd,MAANE,GAAYxkB,EAAKxgD,KAAK,IAAKy8C,EAAI,IAAKA,EAAI,MAAOooG,EAAI,IAAK,EAAI95B,EAAI,IAAK/lD,EAAI,IAAKC,GAGpF,OADAzkB,EAAKxgD,KAAK,KACHwgD,EAAKrgD,KAAK,IAEnB,SAAS0mV,EAActnP,EAAIwrB,GACzB,MAAO,MAAQxrB,EAAK,IAAMA,EAAK,IAAMA,EAAK,QAAUwrB,EAAK,OAASxrB,EAAK,IAAMA,EAAK,IAAMA,EAAK,QAAUwrB,EAAK,MAAQxrB,EAyCtH,OAvCAsrB,EAAIkuF,YAAc,SAASl3M,GACzB,OAAKsW,UAAUjX,QACf63M,EAAcu6G,GAAWzxT,GAClBgpH,GAFuBkuF,GAIhCluF,EAAImuF,YAAc,SAASn3M,GACzB,OAAKsW,UAAUjX,QACf83M,EAAcs6G,GAAWzxT,GAClBgpH,GAFuBmuF,GAIhCnuF,EAAI07N,aAAe,SAAS1kV,GAC1B,OAAKsW,UAAUjX,QACfqlV,EAAejzB,GAAWzxT,GACnBgpH,GAFuB07N,GAIhC17N,EAAI27N,UAAY,SAAS3kV,GACvB,OAAKsW,UAAUjX,QACfslV,EAAY3kV,GAAK4kV,GAAiBA,GAAiBnzB,GAAWzxT,GACvDgpH,GAFuB27N,GAIhC37N,EAAIguF,WAAa,SAASh3M,GACxB,OAAKsW,UAAUjX,QACf23M,EAAay6G,GAAWzxT,GACjBgpH,GAFuBguF,GAIhChuF,EAAIiuF,SAAW,SAASj3M,GACtB,OAAKsW,UAAUjX,QACf43M,EAAWw6G,GAAWzxT,GACfgpH,GAFuBiuF,GAIhCjuF,EAAIuyN,SAAW,SAASv7U,GACtB,OAAKsW,UAAUjX,QACfk8U,EAAW9pB,GAAWzxT,GACfgpH,GAFuBuyN,GAIhCvyN,EAAIo2M,SAAW,WACb,IAAIpjU,IAAMk7M,EAAYz3M,MAAM3E,KAAMwb,aAAc6gM,EAAY13M,MAAM3E,KAAMwb,YAAc,EAAGvY,IAAMi5M,EAAWv3M,MAAM3E,KAAMwb,aAAc2gM,EAASx3M,MAAM3E,KAAMwb,YAAc,EAAIwlO,GAC3K,MAAO,CAAE76O,KAAKmrD,IAAIruD,GAAK/B,EAAGiF,KAAKorD,IAAItuD,GAAK/B,IAEnCgtH,GAET,IAAI47N,GAAiB,OACrB,SAASJ,GAAsBhpV,GAC7B,OAAOA,EAAE07M,YAEX,SAASutI,GAAsBjpV,GAC7B,OAAOA,EAAE27M,YAEX,SAAS0tI,GAAqBrpV,GAC5B,OAAOA,EAAEw7M,WAEX,SAAS8tI,GAAmBtpV,GAC1B,OAAOA,EAAEy7M,SAEX,SAAS8tI,GAAmBvpV,GAC1B,OAAOA,GAAKA,EAAE+/U,SAEhB,SAAS0J,GAAgBxyT,EAAIK,EAAIJ,EAAIK,GACnC,OAAQN,EAAKC,GAAMI,GAAMA,EAAKC,GAAMN,EAAK,EAAI,EAAI,EAEnD,SAAS+yT,GAAyBtlQ,EAAIC,EAAIud,EAAIkpF,EAAI19D,GAChD,IAAIb,EAAMnoC,EAAG,GAAKC,EAAG,GAAImoC,EAAMpoC,EAAG,GAAKC,EAAG,GAAIttE,GAAMq2G,EAAK09D,GAAMA,GAAM3lL,KAAKuD,KAAK6jH,EAAMA,EAAMC,EAAMA,GAAMq9N,EAAK9yU,EAAKy1G,EAAKs9N,GAAM/yU,EAAKw1G,EAAK31F,EAAKwtD,EAAG,GAAKylQ,EAAI5yT,EAAKmtD,EAAG,GAAK0lQ,EAAIlrS,EAAKylC,EAAG,GAAKwlQ,EAAI1iR,EAAKkd,EAAG,GAAKylQ,EAAIziR,GAAMzwC,EAAKgoB,GAAM,EAAG0oB,GAAMrwC,EAAKkwC,GAAM,EAAG3uC,EAAKomB,EAAKhoB,EAAIpN,EAAK29C,EAAKlwC,EAAIwwC,EAAKjvC,EAAKA,EAAKhP,EAAKA,EAAItpB,EAAI0hG,EAAKkpF,EAAI6gB,EAAI/0K,EAAKuwC,EAAKvoB,EAAK3nB,EAAIv3B,GAAK8pB,EAAK,GAAK,EAAI,GAAKrkB,KAAKuD,KAAKvD,KAAKqC,IAAI,EAAGtH,EAAIA,EAAIunE,EAAKkkI,EAAIA,IAAKo+I,GAAOp+I,EAAIniL,EAAKgP,EAAK94B,GAAK+nE,EAAI8lQ,IAAQ5hI,EAAInzK,EAAKhP,EAAK9pB,GAAK+nE,EAAIuiR,GAAOr+I,EAAIniL,EAAKgP,EAAK94B,GAAK+nE,EAAIgmQ,IAAQ9hI,EAAInzK,EAAKhP,EAAK9pB,GAAK+nE,EAAIhsC,EAAMsuT,EAAM1iR,EAAIxrC,EAAM0xS,EAAMjmQ,EAAI5rC,EAAMsuT,EAAM3iR,EAAIvrC,EAAM2xS,EAAMnmQ,EAEpkB,OADI7rC,EAAMA,EAAMI,EAAMA,EAAMH,EAAMA,EAAMI,EAAMA,IAAKiuT,EAAMC,EAAKzc,EAAME,GAC7D,CAAE,CAAEsc,EAAMF,EAAItc,EAAMuc,GAAM,CAAEC,EAAMnoP,EAAK1hG,EAAGqtU,EAAM3rO,EAAK1hG,IAE9D,SAAS+pV,GAAYt+U,GACnB,IAAIiC,EAAImjU,GAAgBx9T,EAAIy9T,GAAgBkZ,EAAUnmB,GAASppH,EAAcwvI,GAAmBC,EAAiBzvI,EAAYh6M,IAAK0pV,EAAU,GAC5I,SAASxyT,EAAKltB,GACZ,IAAyDjL,EAArD01E,EAAW,GAAI/xE,EAAS,GAAIjE,GAAK,EAAGyB,EAAI8J,EAAKpH,OAAWopE,EAAKgpP,GAAW/nT,GAAIg/D,EAAK+oP,GAAWpiT,GAChG,SAASktI,IACPrrE,EAAS/yE,KAAK,IAAKs4M,EAAYhvM,EAAWtI,GAASgnV,IAErD,QAASjrV,EAAIyB,EACPqpV,EAAQ3qV,KAAKP,KAAMU,EAAIiL,EAAKvL,GAAIA,GAClCiE,EAAOhB,KAAK,EAAGsqE,EAAGptE,KAAKP,KAAMU,EAAGN,IAAKwtE,EAAGrtE,KAAKP,KAAMU,EAAGN,KAC7CiE,EAAOE,SAChBk9I,IACAp9I,EAAS,IAIb,OADIA,EAAOE,QAAQk9I,IACZrrE,EAAS7xE,OAAS6xE,EAAS5yE,KAAK,IAAM,KA2B/C,OAzBAq1B,EAAKjqB,EAAI,SAASs4D,GAChB,OAAK1rD,UAAUjX,QACfqK,EAAIs4D,EACGruC,GAFuBjqB,GAIhCiqB,EAAKtkB,EAAI,SAAS2yD,GAChB,OAAK1rD,UAAUjX,QACfgQ,EAAI2yD,EACGruC,GAFuBtkB,GAIhCskB,EAAKqyT,QAAU,SAAShkR,GACtB,OAAK1rD,UAAUjX,QACf2mV,EAAUhkR,EACHruC,GAFuBqyT,GAIhCryT,EAAK8iL,YAAc,SAASz0I,GAC1B,OAAK1rD,UAAUjX,QACc6mV,EAAZ,oBAANlkR,EAAmCy0I,EAAcz0I,GAA0By0I,EAAc2vI,GAAyBrqV,IAAIimE,IAAMikR,IAAmBxpV,IACnJk3B,GAFuBuyT,GAIhCvyT,EAAKwyT,QAAU,SAASnkR,GACtB,OAAK1rD,UAAUjX,QACf8mV,EAAUnkR,EACHruC,GAFuBwyT,GAIzBxyT,EAETvpB,EAAG8gB,IAAIyI,KAAO,WACZ,OAAOoyT,GAAYtjC,IAErB,IAAI2jC,GAA2Bh8U,EAAG0sC,IAAI,CACpC8zF,OAAQq7M,GACR,gBAAiBI,GACjB5hT,KAAM6hT,GACN,cAAeC,GACf,aAAcC,GACdC,MAAOC,GACP,aAAcC,GACd,eAAgBC,GAChB3N,OAAQ4N,GACRC,SAAUC,GACV,gBAAiBC,GACjB,kBAAmBC,GACnBC,SAAUC,KAMZ,SAASlB,GAAkB9mV,GACzB,OAAOA,EAAOE,OAAS,EAAIF,EAAOb,KAAK,KAAOa,EAAS,IAEzD,SAASknV,GAAwBlnV,GAC/B,OAAOA,EAAOb,KAAK,KAAO,IAE5B,SAASgoV,GAAgBnnV,GACvB,IAAIjE,EAAI,EAAGyB,EAAIwC,EAAOE,OAAQrC,EAAImC,EAAO,GAAIw/C,EAAO,CAAE3hD,EAAE,GAAI,IAAKA,EAAE,IACnE,QAAS9B,EAAIyB,EAAGgiD,EAAKxgD,KAAK,KAAMnB,EAAE,IAAMA,EAAImC,EAAOjE,IAAI,IAAM,EAAG,IAAK8B,EAAE,IAEvE,OADIL,EAAI,GAAGgiD,EAAKxgD,KAAK,IAAKnB,EAAE,IACrB2hD,EAAKrgD,KAAK,IAEnB,SAASioV,GAAsBpnV,GAC7B,IAAIjE,EAAI,EAAGyB,EAAIwC,EAAOE,OAAQrC,EAAImC,EAAO,GAAIw/C,EAAO,CAAE3hD,EAAE,GAAI,IAAKA,EAAE,IACnE,QAAS9B,EAAIyB,EAAGgiD,EAAKxgD,KAAK,KAAMnB,EAAImC,EAAOjE,IAAI,GAAI,IAAK8B,EAAE,IAC1D,OAAO2hD,EAAKrgD,KAAK,IAEnB,SAASkoV,GAAqBrnV,GAC5B,IAAIjE,EAAI,EAAGyB,EAAIwC,EAAOE,OAAQrC,EAAImC,EAAO,GAAIw/C,EAAO,CAAE3hD,EAAE,GAAI,IAAKA,EAAE,IACnE,QAAS9B,EAAIyB,EAAGgiD,EAAKxgD,KAAK,KAAMnB,EAAImC,EAAOjE,IAAI,GAAI,IAAK8B,EAAE,IAC1D,OAAO2hD,EAAKrgD,KAAK,IAEnB,SAAS0oV,GAAwB7nV,EAAQgnV,GACvC,OAAOhnV,EAAOE,OAAS,EAAI4mV,GAAkB9mV,GAAUA,EAAO,GAAKioV,GAAmBjoV,EAAOK,MAAM,GAAI,GAAI6nV,GAA4BloV,EAAQgnV,IAEjJ,SAASc,GAA0B9nV,EAAQgnV,GACzC,OAAOhnV,EAAOE,OAAS,EAAIgnV,GAAwBlnV,GAAUA,EAAO,GAAKioV,IAAoBjoV,EAAOhB,KAAKgB,EAAO,IAChHA,GAASkoV,GAA4B,CAAEloV,EAAOA,EAAOE,OAAS,IAAK4D,OAAO9D,EAAQ,CAAEA,EAAO,KAAOgnV,IAEpG,SAASY,GAAoB5nV,EAAQgnV,GACnC,OAAOhnV,EAAOE,OAAS,EAAI4mV,GAAkB9mV,GAAUA,EAAO,GAAKioV,GAAmBjoV,EAAQkoV,GAA4BloV,EAAQgnV,IAEpI,SAASiB,GAAmBjoV,EAAQmoV,GAClC,GAAIA,EAASjoV,OAAS,GAAKF,EAAOE,QAAUioV,EAASjoV,QAAUF,EAAOE,QAAUioV,EAASjoV,OAAS,EAChG,OAAO4mV,GAAkB9mV,GAE3B,IAAI6lE,EAAO7lE,EAAOE,QAAUioV,EAASjoV,OAAQs/C,EAAO,GAAIuhC,EAAK/gF,EAAO,GAAInC,EAAImC,EAAO,GAAI2J,EAAKw+U,EAAS,GAAIlrV,EAAI0M,EAAI4+G,EAAK,EAMtH,GALI1iD,IACFrmB,GAAQ,KAAO3hD,EAAE,GAAa,EAAR8L,EAAG,GAAS,GAAK,KAAO9L,EAAE,GAAa,EAAR8L,EAAG,GAAS,GAAK,IAAM9L,EAAE,GAAK,IAAMA,EAAE,GAC3FkjF,EAAK/gF,EAAO,GACZuoH,EAAK,GAEH4/N,EAASjoV,OAAS,EAAG,CACvBjD,EAAIkrV,EAAS,GACbtqV,EAAImC,EAAOuoH,GACXA,IACA/oE,GAAQ,KAAOuhC,EAAG,GAAKp3E,EAAG,IAAM,KAAOo3E,EAAG,GAAKp3E,EAAG,IAAM,KAAO9L,EAAE,GAAKZ,EAAE,IAAM,KAAOY,EAAE,GAAKZ,EAAE,IAAM,IAAMY,EAAE,GAAK,IAAMA,EAAE,GACzH,IAAK,IAAI9B,EAAI,EAAGA,EAAIosV,EAASjoV,OAAQnE,IAAKwsH,IACxC1qH,EAAImC,EAAOuoH,GACXtrH,EAAIkrV,EAASpsV,GACbyjD,GAAQ,KAAO3hD,EAAE,GAAKZ,EAAE,IAAM,KAAOY,EAAE,GAAKZ,EAAE,IAAM,IAAMY,EAAE,GAAK,IAAMA,EAAE,GAG7E,GAAIgoE,EAAM,CACR,IAAIuiR,EAAKpoV,EAAOuoH,GAChB/oE,GAAQ,KAAO3hD,EAAE,GAAY,EAAPZ,EAAE,GAAS,GAAK,KAAOY,EAAE,GAAY,EAAPZ,EAAE,GAAS,GAAK,IAAMmrV,EAAG,GAAK,IAAMA,EAAG,GAE7F,OAAO5oS,EAET,SAAS0oS,GAA4BloV,EAAQgnV,GAC3C,IAA0CjmQ,EAAtConQ,EAAW,GAAIvpV,GAAK,EAAIooV,GAAW,EAAOhmQ,EAAKhhF,EAAO,GAAIs/J,EAAKt/J,EAAO,GAAIjE,EAAI,EAAGyB,EAAIwC,EAAOE,OAChG,QAASnE,EAAIyB,EACXujF,EAAKC,EACLA,EAAKs+E,EACLA,EAAKt/J,EAAOjE,GACZosV,EAASnpV,KAAK,CAAEJ,GAAK0gK,EAAG,GAAKv+E,EAAG,IAAKniF,GAAK0gK,EAAG,GAAKv+E,EAAG,MAEvD,OAAOonQ,EAET,SAASZ,GAAiBvnV,GACxB,GAAIA,EAAOE,OAAS,EAAG,OAAO4mV,GAAkB9mV,GAChD,IAAIjE,EAAI,EAAGyB,EAAIwC,EAAOE,OAAQqoH,EAAKvoH,EAAO,GAAIszB,EAAKi1F,EAAG,GAAI50F,EAAK40F,EAAG,GAAIh4G,EAAK,CAAE+iB,EAAIA,EAAIA,GAAKi1F,EAAKvoH,EAAO,IAAI,IAAMwQ,EAAK,CAAEmjB,EAAIA,EAAIA,EAAI40F,EAAG,IAAM/oE,EAAO,CAAElsB,EAAI,IAAKK,EAAI,IAAK00T,GAAgBC,GAAyB/3U,GAAK,IAAK83U,GAAgBC,GAAyB93U,IACnQxQ,EAAOhB,KAAKgB,EAAOxC,EAAI,IACvB,QAASzB,GAAKyB,EACZ+qH,EAAKvoH,EAAOjE,GACZwU,EAAGm8C,QACHn8C,EAAGvR,KAAKupH,EAAG,IACX/3G,EAAGk8C,QACHl8C,EAAGxR,KAAKupH,EAAG,IACXggO,GAAuB/oS,EAAMjvC,EAAIC,GAInC,OAFAxQ,EAAOsB,MACPk+C,EAAKxgD,KAAK,IAAKupH,GACR/oE,EAAKrgD,KAAK,IAEnB,SAASqoV,GAAqBxnV,GAC5B,GAAIA,EAAOE,OAAS,EAAG,OAAO4mV,GAAkB9mV,GAChD,IAA0CuoH,EAAtC/oE,EAAO,GAAIzjD,GAAK,EAAGyB,EAAIwC,EAAOE,OAAYqQ,EAAK,CAAE,GAAKC,EAAK,CAAE,GACjE,QAASzU,EAAI,EACXwsH,EAAKvoH,EAAOjE,GACZwU,EAAGvR,KAAKupH,EAAG,IACX/3G,EAAGxR,KAAKupH,EAAG,IAEb/oE,EAAKxgD,KAAKqpV,GAAgBC,GAAyB/3U,GAAM,IAAM83U,GAAgBC,GAAyB93U,MACtGzU,EACF,QAASA,EAAIyB,EACX+qH,EAAKvoH,EAAOjE,GACZwU,EAAGm8C,QACHn8C,EAAGvR,KAAKupH,EAAG,IACX/3G,EAAGk8C,QACHl8C,EAAGxR,KAAKupH,EAAG,IACXggO,GAAuB/oS,EAAMjvC,EAAIC,GAEnC,OAAOgvC,EAAKrgD,KAAK,IAEnB,SAASsoV,GAAuBznV,GAC9B,IAAIw/C,EAA4C+oE,EAAtCxsH,GAAK,EAAGyB,EAAIwC,EAAOE,OAAQ/D,EAAIqB,EAAI,EAAO+S,EAAK,GAAIC,EAAK,GAClE,QAASzU,EAAI,EACXwsH,EAAKvoH,EAAOjE,EAAIyB,GAChB+S,EAAGvR,KAAKupH,EAAG,IACX/3G,EAAGxR,KAAKupH,EAAG,IAEb/oE,EAAO,CAAE6oS,GAAgBC,GAAyB/3U,GAAK,IAAK83U,GAAgBC,GAAyB93U,MACnGzU,EACF,QAASA,EAAII,EACXosH,EAAKvoH,EAAOjE,EAAIyB,GAChB+S,EAAGm8C,QACHn8C,EAAGvR,KAAKupH,EAAG,IACX/3G,EAAGk8C,QACHl8C,EAAGxR,KAAKupH,EAAG,IACXggO,GAAuB/oS,EAAMjvC,EAAIC,GAEnC,OAAOgvC,EAAKrgD,KAAK,IAEnB,SAASuoV,GAAkB1nV,EAAQgnV,GACjC,IAAIxpV,EAAIwC,EAAOE,OAAS,EACxB,GAAI1C,EAAG,CACL,IAAkGK,EAAGZ,EAAjGq2B,EAAKtzB,EAAO,GAAG,GAAI2zB,EAAK3zB,EAAO,GAAG,GAAIm1B,EAAKn1B,EAAOxC,GAAG,GAAK81B,EAAInN,EAAKnmB,EAAOxC,GAAG,GAAKm2B,EAAI53B,GAAK,EAC/F,QAASA,GAAKyB,EACZK,EAAImC,EAAOjE,GACXkB,EAAIlB,EAAIyB,EACRK,EAAE,GAAKmpV,EAAUnpV,EAAE,IAAM,EAAImpV,IAAY1zT,EAAKr2B,EAAIk4B,GAClDt3B,EAAE,GAAKmpV,EAAUnpV,EAAE,IAAM,EAAImpV,IAAYrzT,EAAK12B,EAAIkpB,GAGtD,OAAOohU,GAAiBvnV,GAE1B,SAASqoV,GAAgBzpV,EAAGC,GAC1B,OAAOD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GA9I5DooV,GAAyB9zR,SAAQ,SAAS71D,EAAKN,GAC7CA,EAAMM,IAAMA,EACZN,EAAM25O,OAAS,WAAWv3O,KAAK9B,MA8IjC,IAAIkrV,GAA0B,CAAE,EAAG,EAAI,EAAG,EAAI,EAAG,GAAKC,GAA0B,CAAE,EAAG,EAAI,EAAG,EAAI,EAAG,GAAKH,GAA0B,CAAE,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,GACzJ,SAASC,GAAuB/oS,EAAMj1C,EAAG2F,GACvCsvC,EAAKxgD,KAAK,IAAKqpV,GAAgBG,GAAyBj+U,GAAI,IAAK89U,GAAgBG,GAAyBt4U,GAAI,IAAKm4U,GAAgBI,GAAyBl+U,GAAI,IAAK89U,GAAgBI,GAAyBv4U,GAAI,IAAKm4U,GAAgBC,GAAyB/9U,GAAI,IAAK89U,GAAgBC,GAAyBp4U,IAEpT,SAASw4U,GAAiB3nQ,EAAIC,GAC5B,OAAQA,EAAG,GAAKD,EAAG,KAAOC,EAAG,GAAKD,EAAG,IAEvC,SAAS4nQ,GAA6B3oV,GACpC,IAAIjE,EAAI,EAAG4E,EAAIX,EAAOE,OAAS,EAAG/D,EAAI,GAAI4kF,EAAK/gF,EAAO,GAAIghF,EAAKhhF,EAAO,GAAI3D,EAAIF,EAAE,GAAKusV,GAAiB3nQ,EAAIC,GAC1G,QAASjlF,EAAI4E,EACXxE,EAAEJ,IAAMM,GAAKA,EAAIqsV,GAAiB3nQ,EAAKC,EAAIA,EAAKhhF,EAAOjE,EAAI,MAAQ,EAGrE,OADAI,EAAEJ,GAAKM,EACAF,EAET,SAASysV,GAA4B5oV,GACnC,IAAmB3D,EAAGuC,EAAGC,EAAGf,EAAxBqqV,EAAW,GAAgBhsV,EAAIwsV,GAA6B3oV,GAASjE,GAAK,EAAG4E,EAAIX,EAAOE,OAAS,EACrG,QAASnE,EAAI4E,EACXtE,EAAIqsV,GAAiB1oV,EAAOjE,GAAIiE,EAAOjE,EAAI,IACvC8X,EAAIxX,GAAKmgP,GACXrgP,EAAEJ,GAAKI,EAAEJ,EAAI,GAAK,GAElB6C,EAAIzC,EAAEJ,GAAKM,EACXwC,EAAI1C,EAAEJ,EAAI,GAAKM,EACfyB,EAAIc,EAAIA,EAAIC,EAAIA,EACZf,EAAI,IACNA,EAAQ,EAAJzB,EAAQyF,KAAKuD,KAAKvH,GACtB3B,EAAEJ,GAAK+B,EAAIc,EACXzC,EAAEJ,EAAI,GAAK+B,EAAIe,IAIrB9C,GAAK,EACL,QAASA,GAAK4E,EACZ7C,GAAKkC,EAAO8B,KAAKoC,IAAIvD,EAAG5E,EAAI,IAAI,GAAKiE,EAAO8B,KAAKqC,IAAI,EAAGpI,EAAI,IAAI,KAAO,GAAK,EAAII,EAAEJ,GAAKI,EAAEJ,KACzFosV,EAASnpV,KAAK,CAAElB,GAAK,EAAG3B,EAAEJ,GAAK+B,GAAK,IAEtC,OAAOqqV,EAET,SAASH,GAAoBhoV,GAC3B,OAAOA,EAAOE,OAAS,EAAI4mV,GAAkB9mV,GAAUA,EAAO,GAAKioV,GAAmBjoV,EAAQ4oV,GAA4B5oV,IAQ5H,SAAS6oV,GAAkB7oV,GACzB,IAAIoB,EAAkCvE,EAAG+B,EAA9B7C,GAAK,EAAGyB,EAAIwC,EAAOE,OAC9B,QAASnE,EAAIyB,EACX4D,EAAQpB,EAAOjE,GACfc,EAAIuE,EAAM,GACVxC,EAAIwC,EAAM,GAAKu7O,GACfv7O,EAAM,GAAKvE,EAAIiF,KAAKmrD,IAAIruD,GACxBwC,EAAM,GAAKvE,EAAIiF,KAAKorD,IAAItuD,GAE1B,OAAOoB,EAET,SAAS8oV,GAAYxgV,GACnB,IAAIgrB,EAAKo6S,GAAgBn6S,EAAKm6S,GAAgB/5S,EAAK,EAAGC,EAAK+5S,GAAgBkZ,EAAUnmB,GAASppH,EAAcwvI,GAAmBC,EAAiBzvI,EAAYh6M,IAAKyrV,EAAqBzxI,EAAawhH,EAAI,IAAKkuB,EAAU,GACtN,SAAS7mR,EAAK74D,GACZ,IAAwEjL,EAIpDkO,EAAG2F,EAJnB6hE,EAAW,GAAIi3Q,EAAU,GAAIC,EAAU,GAAIltV,GAAK,EAAGyB,EAAI8J,EAAKpH,OAAWgpV,EAAM52B,GAAWh/R,GAAK61T,EAAM72B,GAAW3+R,GAAKy1T,EAAM91T,IAAOC,EAAK,WACvI,OAAOhpB,GACL+nT,GAAW/+R,GAAK81T,EAAM11T,IAAOC,EAAK,WACpC,OAAO1jB,GACLoiT,GAAW1+R,GACf,SAASwpH,IACPrrE,EAAS/yE,KAAK,IAAKs4M,EAAYhvM,EAAW2gV,GAAUjC,GAAUluB,EAAGiwB,EAAmBzgV,EAAW0gV,EAAQt9R,WAAYs7R,GAAU,KAE/H,QAASjrV,EAAIyB,EACPqpV,EAAQ3qV,KAAKP,KAAMU,EAAIiL,EAAKvL,GAAIA,IAClCitV,EAAQhqV,KAAK,CAAEuL,GAAK2+U,EAAIhtV,KAAKP,KAAMU,EAAGN,GAAImU,GAAKi5U,EAAIjtV,KAAKP,KAAMU,EAAGN,KACjEktV,EAAQjqV,KAAK,EAAGoqV,EAAIltV,KAAKP,KAAMU,EAAGN,IAAKstV,EAAIntV,KAAKP,KAAMU,EAAGN,MAChDitV,EAAQ9oV,SACjBk9I,IACA4rM,EAAU,GACVC,EAAU,IAId,OADID,EAAQ9oV,QAAQk9I,IACbrrE,EAAS7xE,OAAS6xE,EAAS5yE,KAAK,IAAM,KAiD/C,OA/CAghE,EAAK51D,EAAI,SAASs4D,GAChB,OAAK1rD,UAAUjX,QACfozB,EAAKC,EAAKsvC,EACH1C,GAFuB5sC,GAIhC4sC,EAAK7sC,GAAK,SAASuvC,GACjB,OAAK1rD,UAAUjX,QACfozB,EAAKuvC,EACE1C,GAFuB7sC,GAIhC6sC,EAAK5sC,GAAK,SAASsvC,GACjB,OAAK1rD,UAAUjX,QACfqzB,EAAKsvC,EACE1C,GAFuB5sC,GAIhC4sC,EAAKjwD,EAAI,SAAS2yD,GAChB,OAAK1rD,UAAUjX,QACfyzB,EAAKC,EAAKivC,EACH1C,GAFuBvsC,GAIhCusC,EAAKxsC,GAAK,SAASkvC,GACjB,OAAK1rD,UAAUjX,QACfyzB,EAAKkvC,EACE1C,GAFuBxsC,GAIhCwsC,EAAKvsC,GAAK,SAASivC,GACjB,OAAK1rD,UAAUjX,QACf0zB,EAAKivC,EACE1C,GAFuBvsC,GAIhCusC,EAAK0mR,QAAU,SAAShkR,GACtB,OAAK1rD,UAAUjX,QACf2mV,EAAUhkR,EACH1C,GAFuB0mR,GAIhC1mR,EAAKm3I,YAAc,SAASz0I,GAC1B,OAAK1rD,UAAUjX,QACc6mV,EAAZ,oBAANlkR,EAAmCy0I,EAAcz0I,GAA0By0I,EAAc2vI,GAAyBrqV,IAAIimE,IAAMikR,IAAmBxpV,IAC1JyrV,EAAqBzxI,EAAY5rJ,SAAW4rJ,EAC5CwhH,EAAIxhH,EAAYq/B,OAAS,IAAM,IACxBx2K,GAJuB4mR,GAMhC5mR,EAAK6mR,QAAU,SAASnkR,GACtB,OAAK1rD,UAAUjX,QACf8mV,EAAUnkR,EACH1C,GAFuB6mR,GAIzB7mR,EAqET,SAASmpR,GAAmBjtV,GAC1B,OAAOA,EAAE8nE,OAgCX,SAASolR,GAA0BltV,GACjC,MAAO,CAAEA,EAAEkO,EAAGlO,EAAE6T,GASlB,SAASs5U,GAAgClhV,GACvC,OAAO,WACL,IAAIjM,EAAIiM,EAAWhI,MAAM3E,KAAMwb,WAAYta,EAAIR,EAAE,GAAIuC,EAAIvC,EAAE,GAAKsgP,GAChE,MAAO,CAAE9/O,EAAIiF,KAAKmrD,IAAIruD,GAAI/B,EAAIiF,KAAKorD,IAAItuD,KAoB3C,SAAS6qV,KACP,OAAO,GAET,SAASC,KACP,MAAO,SAET,SAASC,GAAoB5pU,GAC3B,IAAIljB,EAAIiF,KAAKuD,KAAK0a,EAAO28N,IACzB,MAAO,MAAQ7/O,EAAI,IAAMA,EAAI,IAAMA,EAAI,aAAeA,EAAI,IAAMA,EAAI,IAAMA,EAAI,YAAcA,EAAI,IAvOlGoO,EAAG8gB,IAAIyI,KAAK6iL,OAAS,WACnB,IAAI7iL,EAAOoyT,GAAYiC,IAGvB,OAFAr0T,EAAK2vC,OAAS3vC,EAAKjqB,SAAUiqB,EAAKjqB,EAClCiqB,EAAKo4B,MAAQp4B,EAAKtkB,SAAUskB,EAAKtkB,EAC1BskB,GAsFT4yT,GAAsB17R,QAAU27R,GAChCA,GAAqB37R,QAAU07R,GAC/Bn8U,EAAG8gB,IAAIo0C,KAAO,WACZ,OAAO2oR,GAAYxlC,IAErBr4S,EAAG8gB,IAAIo0C,KAAKk3I,OAAS,WACnB,IAAIl3I,EAAO2oR,GAAYD,IAOvB,OANA1oR,EAAKgE,OAAShE,EAAK51D,SAAU41D,EAAK51D,EAClC41D,EAAK43I,YAAc53I,EAAK7sC,UAAW6sC,EAAK7sC,GACxC6sC,EAAK63I,YAAc73I,EAAK5sC,UAAW4sC,EAAK5sC,GACxC4sC,EAAKvT,MAAQuT,EAAKjwD,SAAUiwD,EAAKjwD,EACjCiwD,EAAK03I,WAAa13I,EAAKxsC,UAAWwsC,EAAKxsC,GACvCwsC,EAAK23I,SAAW33I,EAAKvsC,UAAWusC,EAAKvsC,GAC9BusC,GAETl1D,EAAG8gB,IAAIguT,MAAQ,WACb,IAAI50Q,EAAS4kQ,GAAWz9S,EAAS09S,GAAW7lQ,EAASmlR,GAAoBzxI,EAAa6tI,GAAsB5tI,EAAW6tI,GACvH,SAAS5L,EAAM19U,EAAGN,GAChB,IAAI+B,EAAIioT,EAASpqT,KAAMwpE,EAAQ9oE,EAAGN,GAAIkB,EAAI8oT,EAASpqT,KAAM2wB,EAAQjwB,EAAGN,GACpE,MAAO,IAAM+B,EAAEijF,GAAK8oC,EAAI/rH,EAAEjB,EAAGiB,EAAEkjF,GAAIljF,EAAEgvG,GAAKhvG,EAAEwsE,KAAOiwL,EAAOz8P,EAAGb,GAAK+0E,EAAMl0E,EAAEjB,EAAGiB,EAAEkjF,GAAIljF,EAAEjB,EAAGiB,EAAEijF,IAAM/O,EAAMl0E,EAAEjB,EAAGiB,EAAEkjF,GAAI/jF,EAAEJ,EAAGI,EAAE8jF,IAAM8oC,EAAI5sH,EAAEJ,EAAGI,EAAE+jF,GAAI/jF,EAAE6vG,GAAK7vG,EAAEqtE,IAAM0H,EAAM/0E,EAAEJ,EAAGI,EAAE+jF,GAAIljF,EAAEjB,EAAGiB,EAAEijF,KAAO,IAE7L,SAASglO,EAASrqT,EAAM+oC,EAAGpoC,EAAGN,GAC5B,IAAIgqT,EAAWthR,EAAEvoC,KAAKR,EAAMW,EAAGN,GAAIc,EAAIsnE,EAAOjoE,KAAKR,EAAMqqT,EAAUhqT,GAAIuuE,EAAKutI,EAAW37M,KAAKR,EAAMqqT,EAAUhqT,GAAK4gP,GAAO7vI,EAAKgrG,EAAS57M,KAAKR,EAAMqqT,EAAUhqT,GAAK4gP,GAChK,MAAO,CACL9/O,EAAGA,EACHytE,GAAIA,EACJwiC,GAAIA,EACJ/rB,GAAI,CAAElkF,EAAIiF,KAAKmrD,IAAIqd,GAAKztE,EAAIiF,KAAKorD,IAAIod,IACrC0W,GAAI,CAAEnkF,EAAIiF,KAAKmrD,IAAI6/C,GAAKjwG,EAAIiF,KAAKorD,IAAI4/C,KAGzC,SAASytJ,EAAO37P,EAAGC,GACjB,OAAOD,EAAE0rE,IAAMzrE,EAAEyrE,IAAM1rE,EAAEkuG,IAAMjuG,EAAEiuG,GAEnC,SAAS+c,EAAIhtH,EAAGgB,EAAGe,GACjB,MAAO,IAAM/B,EAAI,IAAMA,EAAI,SAAU+B,EAAI89O,IAAK,MAAQ7+O,EAExD,SAASm0E,EAAMv2B,EAAIslC,EAAIwd,EAAIvd,GACzB,MAAO,SAAWA,EA2BpB,OAzBA+4P,EAAM51Q,OAAS,SAAStjE,GACtB,OAAKsW,UAAUjX,QACfikE,EAASmuP,GAAWzxT,GACbk5U,GAFuB51Q,GAIhC41Q,EAAM50Q,OAAS,SAAStkE,GACtB,OAAKsW,UAAUjX,QACfilE,EAASmtP,GAAWzxT,GACbk5U,GAFuB50Q,GAIhC40Q,EAAMztT,OAAS,SAASzrB,GACtB,OAAKsW,UAAUjX,QACfosB,EAASgmS,GAAWzxT,GACbk5U,GAFuBztT,GAIhCytT,EAAMliI,WAAa,SAASh3M,GAC1B,OAAKsW,UAAUjX,QACf23M,EAAay6G,GAAWzxT,GACjBk5U,GAFuBliI,GAIhCkiI,EAAMjiI,SAAW,SAASj3M,GACxB,OAAKsW,UAAUjX,QACf43M,EAAWw6G,GAAWzxT,GACfk5U,GAFuBjiI,GAIzBiiI,GAKT9uU,EAAG8gB,IAAIwkH,SAAW,WAChB,IAAIprE,EAAS4kQ,GAAWz9S,EAAS09S,GAAW1hU,EAAaihV,GACzD,SAASh5M,EAASl0I,EAAGN,GACnB,IAAIglF,EAAK5b,EAAOjpE,KAAKP,KAAMU,EAAGN,GAAI2mN,EAAKp2L,EAAOpwB,KAAKP,KAAMU,EAAGN,GAAII,GAAK4kF,EAAG7wE,EAAIwyM,EAAGxyM,GAAK,EAAGrS,EAAI,CAAEkjF,EAAI,CAC/Fx2E,EAAGw2E,EAAGx2E,EACN2F,EAAG/T,GACF,CACDoO,EAAGm4M,EAAGn4M,EACN2F,EAAG/T,GACFumN,GAEH,OADA7kN,EAAIA,EAAE85C,IAAIrvC,GACH,IAAMzK,EAAE,GAAK,IAAMA,EAAE,GAAK,IAAMA,EAAE,GAAK,IAAMA,EAAE,GAiBxD,OAfA0yI,EAASprE,OAAS,SAAS56D,GACzB,OAAK4M,UAAUjX,QACfilE,EAASmtP,GAAW/nT,GACbgmI,GAFuBprE,GAIhCorE,EAASjkH,OAAS,SAAS/hB,GACzB,OAAK4M,UAAUjX,QACfosB,EAASgmS,GAAW/nT,GACbgmI,GAFuBjkH,GAIhCikH,EAASjoI,WAAa,SAASiC,GAC7B,OAAK4M,UAAUjX,QACfoI,EAAaiC,EACNgmI,GAFuBjoI,GAIzBioI,GAKTtlI,EAAG8gB,IAAIwkH,SAAS8mE,OAAS,WACvB,IAAI9mE,EAAWtlI,EAAG8gB,IAAIwkH,WAAYjoI,EAAaihV,GAA2BK,EAAcr5M,EAASjoI,WAIjG,OAHAioI,EAASjoI,WAAa,SAASiC,GAC7B,OAAO4M,UAAUjX,OAAS0pV,EAAYJ,GAAgClhV,EAAaiC,IAAMjC,GAEpFioI,GAQTtlI,EAAG8gB,IAAIm8D,OAAS,WACd,IAAI74E,EAAOq6U,GAAmB3pU,EAAO0pU,GACrC,SAASvhQ,EAAO7rF,EAAGN,GACjB,OAAQ8tV,GAAejtV,IAAIyS,EAAKnT,KAAKP,KAAMU,EAAGN,KAAO4tV,IAAqB5pU,EAAK7jB,KAAKP,KAAMU,EAAGN,IAY/F,OAVAmsF,EAAO74E,KAAO,SAAS9E,GACrB,OAAK4M,UAAUjX,QACfmP,EAAOijT,GAAW/nT,GACX29E,GAFuB74E,GAIhC64E,EAAOnoE,KAAO,SAASxV,GACrB,OAAK4M,UAAUjX,QACf6f,EAAOuyS,GAAW/nT,GACX29E,GAFuBnoE,GAIzBmoE,GAYT,IAAI2hQ,GAAiB5+U,EAAG0sC,IAAI,CAC1BvlC,OAAQu3U,GACRp3U,MAAO,SAASwN,GACd,IAAIljB,EAAIiF,KAAKuD,KAAK0a,EAAO,GAAK,EAC9B,MAAO,KAAO,EAAIljB,EAAI,KAAOA,EAAI,KAAOA,EAAI,KAAO,EAAIA,EAAI,IAAMA,EAAI,KAAOA,EAAI,IAAM,EAAIA,EAAI,IAAMA,EAAI,IAAMA,EAAI,IAAM,EAAIA,EAAI,KAAOA,EAAI,IAAMA,EAAI,KAAO,EAAIA,EAAI,KAEtKyV,QAAS,SAASyN,GAChB,IAAIsvD,EAAKvtE,KAAKuD,KAAK0a,GAAQ,EAAI+pU,KAAsB16Q,EAAKC,EAAKy6Q,GAC/D,MAAO,OAASz6Q,EAAK,IAAMD,EAAK,QAAeC,EAAK,KAAOD,EAAK,OAElE/8D,OAAQ,SAAS0N,GACf,IAAIljB,EAAIiF,KAAKuD,KAAK0a,GAAQ,EAC1B,MAAO,KAAOljB,EAAI,KAAOA,EAAI,IAAMA,EAAI,KAAOA,EAAI,IAAMA,EAAI,IAAMA,EAAI,KAAOA,EAAI,IAAMA,EAAI,KAE7F,gBAAiB,SAASkjB,GACxB,IAAIqvD,EAAKttE,KAAKuD,KAAK0a,EAAOgqU,IAAqB16Q,EAAKD,EAAK26Q,GAAqB,EAC9E,MAAO,MAAQ16Q,EAAK,IAAMD,EAAK,KAAOC,EAAK,KAAOD,EAAK,KAAOC,EAAK,KAErE,cAAe,SAAStvD,GACtB,IAAIqvD,EAAKttE,KAAKuD,KAAK0a,EAAOgqU,IAAqB16Q,EAAKD,EAAK26Q,GAAqB,EAC9E,MAAO,OAAS16Q,EAAK,IAAMD,EAAK,IAAMC,EAAK,KAAOD,EAAK,IAAMC,EAAK,OAGtEpkE,EAAG8gB,IAAIktL,YAAc4wI,GAAe7lS,OACpC,IAAI+lS,GAAqBjoV,KAAKuD,KAAK,GAAIykV,GAAqBhoV,KAAK+tE,IAAI,GAAK68O,IAC1ErH,EAAsBj5S,WAAa,SAAS9P,GAO1C,IANA,IAAyGypT,EAAUpiS,EAA/G5b,EAAKooT,MAA4B65B,GAAiB5sV,EAAK6sV,GAAuB3tV,GAAO2pT,EAAY,GAAoB75S,EAAa89U,IAAwB,CAC5J9hR,KAAMvvD,KAAK8d,MACXN,KAAMqgT,GACNjqU,MAAO,EACPD,SAAU,KAEH7L,GAAK,EAAGxE,EAAIR,KAAKuE,SAAUS,EAAIxE,GAAK,CAC3C8pT,EAAUjnT,KAAK+mT,EAAW,IAC1B,IAAK,IAAI54S,EAAQxR,KAAKgF,GAAI5E,GAAK,EAAGyB,EAAI2P,EAAMjN,SAAUnE,EAAIyB,IACpDmmB,EAAOxW,EAAMpR,KAAIouV,GAAkBxmU,EAAM5nB,EAAGqB,EAAI2K,EAAIqE,GACxD25S,EAAS/mT,KAAK2kB,GAGlB,OAAOymU,GAAcnkC,EAAW7oT,EAAI2K,IAEtCs9S,EAAsB/nE,UAAY,SAAShhP,GACzC,OAAOX,KAAKoQ,KAAa,MAARzP,EAAe6yT,GAAyBk7B,GAAyBJ,GAAuB3tV,MAE3G,IAAI6yT,GAAyBk7B,GAAyBJ,MACtD,SAASI,GAAyBjtV,GAChC,OAAO,WACL,IAAIktV,EAAMC,EAAU/rN,GACf8rN,EAAO3uV,KAAKyB,MAASohI,EAAS8rN,EAAKC,EAAWD,EAAK9rN,WACtDA,EAAOr2D,MAAM/rE,EAAI,KACjBoiI,EAAOr2D,MAAMlrE,EAAIs/D,MACX+tR,EAAKjkR,aAAcikR,EAAKC,UAAuB5uV,KAAKyB,GAC1DktV,EAAK9rN,QAAU,GACfA,EAAOvtG,OAASutG,EAAOvtG,MAAMqsN,UAAUphP,KAAKP,KAAMA,KAAKw1J,SAAU3yB,EAAO9/H,SAI9E,SAAS0rV,GAAcpnS,EAAQ5lD,EAAI2K,GAIjC,OAHAm9S,EAAYliQ,EAAQwnS,IACpBxnS,EAAOmlQ,UAAY/qT,EACnB4lD,EAAOj7C,GAAKA,EACLi7C,EAET,IAAsDmtQ,GAAwB+5B,GAA1EM,GAAyB,GAAIR,GAAkB,EAkEnD,SAASS,GAAoBznS,EAAQ1mD,EAAMU,EAAOozT,GAChD,IAAIroT,EAAKi7C,EAAOj7C,GAAI3K,EAAK4lD,EAAOmlQ,UAChC,OAAOQ,GAAkB3lQ,EAAyB,oBAAVhmD,EAAuB,SAAS2mB,EAAM5nB,EAAG4E,GAC/EgjB,EAAKvmB,GAAI2K,GAAIqoT,MAAMpmT,IAAI1N,EAAM8zT,EAAMpzT,EAAMd,KAAKynB,EAAMA,EAAKwtI,SAAUp1J,EAAG4E,OACnE3D,EAAQozT,EAAMpzT,GAAQ,SAAS2mB,GAClCA,EAAKvmB,GAAI2K,GAAIqoT,MAAMpmT,IAAI1N,EAAMU,MAqFjC,SAAS0tV,GAAmB7rV,GAE1B,OADS,MAALA,IAAWA,EAAI,IACZ,WACLlD,KAAKm1B,YAAcjyB,GA6EvB,SAASorV,GAAuB3tV,GAC9B,OAAe,MAARA,EAAe,iBAAmB,gBAAkBA,EAAO,KAEpE,SAAS6tV,GAAkBxmU,EAAM5nB,EAAGqB,EAAI2K,EAAI2/E,GAC1C,IAG2Btf,EAAMD,EAAO37D,EAAU6pB,EAAMs0T,EAHpDL,EAAO3mU,EAAKvmB,KAAQumB,EAAKvmB,GAAM,CACjCohI,OAAQ,EACRn4D,MAAO,IACLj6D,EAAak+U,EAAKviV,GACtB,SAAS6iV,EAASC,GAChB,IAAIp+U,EAAQL,EAAWK,MAEvB,GADA07D,EAAMlrE,EAAIwP,EAAQ27D,EACd37D,GAASo+U,EAAS,OAAOjrU,EAAMirU,EAAUp+U,GAC7C07D,EAAM/rE,EAAIwjB,EAEZ,SAASA,EAAMirU,GACb,IAAIN,EAAWD,EAAK9rN,OAAQA,EAAS8rN,EAAKC,GAQ1C,IAAK,IAAIO,KAPLtsN,IACFA,EAAOr2D,MAAM/rE,EAAI,KACjBoiI,EAAOr2D,MAAMlrE,EAAIs/D,MACf+tR,EAAKjkR,aACAikR,EAAKC,GACZ/rN,EAAOvtG,OAASutG,EAAOvtG,MAAMqsN,UAAUphP,KAAKynB,EAAMA,EAAKwtI,SAAU3yB,EAAO9/H,QAErD4rV,EACnB,IAAKQ,EAAW/iV,EAAI,CAClB,IAAIspB,EAASi5T,EAAKQ,GAClBz5T,EAAO82C,MAAM/rE,EAAI,KACjBi1B,EAAO82C,MAAMlrE,EAAIs/D,MACf+tR,EAAKjkR,aACAikR,EAAKQ,GAGhB3iR,EAAM/rE,EAAIimC,EACVgzR,IAAS,WAKP,OAJIltP,EAAM/rE,GAAKimC,EAAKwoT,GAAW,KAC7B1iR,EAAM/rE,EAAI,KACV+rE,EAAMlrE,EAAIs/D,KAEL,IACN,EAAG6L,GACNkiR,EAAK9rN,OAASz2H,EACdqE,EAAW6kB,OAAS7kB,EAAW6kB,MAAMrR,MAAM1jB,KAAKynB,EAAMA,EAAKwtI,SAAUp1J,GACrE4uV,EAAS,GACTv+U,EAAWgkT,MAAMj9P,SAAQ,SAAS71D,EAAKN,IACjCA,EAAQA,EAAMd,KAAKynB,EAAMA,EAAKwtI,SAAUp1J,KAC1C4uV,EAAO3rV,KAAKhC,MAGhBq5B,EAAOjqB,EAAWiqB,KAClB7pB,EAAWJ,EAAWI,SAExB,SAAS61B,EAAKwoT,GACZ,IAAI5tV,EAAI4tV,EAAUr+U,EAAUmN,EAAI0c,EAAKp5B,GAAIO,EAAImtV,EAAOzqV,OACpD,MAAO1C,EAAI,EACTmtV,IAASntV,GAAGtB,KAAKynB,EAAMhK,GAEzB,GAAI1c,GAAK,EAGP,OAFAmP,EAAW6kB,OAAS7kB,EAAW6kB,MAAMnR,IAAI5jB,KAAKynB,EAAMA,EAAKwtI,SAAUp1J,KAC7DuuV,EAAKjkR,aAAcikR,EAAKviV,UAAiB4b,EAAKvmB,GAC7C,EAGNgP,IACHg8D,EAAOsf,EAAQtf,KACfD,EAAQktP,GAASu1B,EAAU,EAAGxiR,GAC9Bh8D,EAAak+U,EAAKviV,GAAM,CACtBqoT,MAAO,IAAIzN,EACXv6O,KAAMA,EACND,MAAOA,EACP17D,MAAOi7E,EAAQj7E,MACfD,SAAUk7E,EAAQl7E,SAClB6pB,KAAMqxD,EAAQrxD,KACd33B,MAAO3C,GAET2rF,EAAU,OACR4iQ,EAAKjkR,OAtTXmkR,GAAuBtuV,KAAOmpT,EAAsBnpT,KACpDsuV,GAAuBjmU,MAAQ8gS,EAAsB9gS,MACrDimU,GAAuB7mU,KAAO0hS,EAAsB1hS,KACpD6mU,GAAuBzqU,KAAOslS,EAAsBtlS,KACpD9U,EAAGmB,WAAa,SAAS/B,EAAW/N,GAClC,OAAO+N,GAAaA,EAAU+B,WAAa+jT,GAAyB9lT,EAAU+B,WAAW9P,GAAQ+N,EAAYY,EAAGZ,YAAY+B,WAAW/B,IAEzIY,EAAGmB,WAAWzO,UAAY6sV,GAC1BA,GAAuBh/U,OAAS,SAAS8uB,GACvC,IAAuDyrR,EAAUC,EAASriS,EAAtE5b,EAAKpM,KAAKoM,GAAI3K,EAAKzB,KAAKwsT,UAAWlC,EAAY,GACnD3rR,EAAWurR,EAAsBvrR,GACjC,IAAK,IAAI35B,GAAK,EAAGxE,EAAIR,KAAKuE,SAAUS,EAAIxE,GAAK,CAC3C8pT,EAAUjnT,KAAK+mT,EAAW,IAC1B,IAAK,IAAI54S,EAAQxR,KAAKgF,GAAI5E,GAAK,EAAGyB,EAAI2P,EAAMjN,SAAUnE,EAAIyB,IACnDmmB,EAAOxW,EAAMpR,MAAQiqT,EAAU1rR,EAASp+B,KAAKynB,EAAMA,EAAKwtI,SAAUp1J,EAAG4E,KACpE,aAAcgjB,IAAMqiS,EAAQ70J,SAAWxtI,EAAKwtI,UAChDg5L,GAAkBnkC,EAASjqT,EAAGqB,EAAI2K,EAAI4b,EAAKvmB,GAAI2K,IAC/Cg+S,EAAS/mT,KAAKgnT,IAEdD,EAAS/mT,KAAK,MAIpB,OAAOorV,GAAcnkC,EAAW7oT,EAAI2K,IAEtCyiV,GAAuB/+U,UAAY,SAAS6uB,GAC1C,IAAuDyrR,EAAUglC,EAAUpnU,EAAMqiS,EAAS55S,EAAtFrE,EAAKpM,KAAKoM,GAAI3K,EAAKzB,KAAKwsT,UAAWlC,EAAY,GACnD3rR,EAAWwrR,GAAyBxrR,GACpC,IAAK,IAAI35B,GAAK,EAAGxE,EAAIR,KAAKuE,SAAUS,EAAIxE,GACtC,IAAK,IAAIgR,EAAQxR,KAAKgF,GAAI5E,GAAK,EAAGyB,EAAI2P,EAAMjN,SAAUnE,EAAIyB,GACxD,GAAImmB,EAAOxW,EAAMpR,GAAI,CACnBqQ,EAAauX,EAAKvmB,GAAI2K,GACtBgjV,EAAWzwT,EAASp+B,KAAKynB,EAAMA,EAAKwtI,SAAUp1J,EAAG4E,GACjDslT,EAAUjnT,KAAK+mT,EAAW,IAC1B,IAAK,IAAIjlT,GAAK,EAAGtE,EAAIuuV,EAAS7qV,SAAUY,EAAItE,IACtCwpT,EAAU+kC,EAASjqV,KAAIqpV,GAAkBnkC,EAASllT,EAAG1D,EAAI2K,EAAIqE,GACjE25S,EAAS/mT,KAAKgnT,GAKtB,OAAOokC,GAAcnkC,EAAW7oT,EAAI2K,IAEtCyiV,GAAuB5qV,OAAS,SAASA,GACvC,IAAoBmmT,EAAiBpiS,EAAjCsiS,EAAY,GACM,oBAAXrmT,IAAuBA,EAAS4oT,GAAoB5oT,IAC/D,IAAK,IAAIe,EAAI,EAAGxE,EAAIR,KAAKuE,OAAQS,EAAIxE,EAAGwE,IAAK,CAC3CslT,EAAUjnT,KAAK+mT,EAAW,IAC1B,IAAK,IAAI54S,EAAQxR,KAAKgF,GAAI5E,EAAI,EAAGyB,EAAI2P,EAAMjN,OAAQnE,EAAIyB,EAAGzB,KACnD4nB,EAAOxW,EAAMpR,KAAO6D,EAAO1D,KAAKynB,EAAMA,EAAKwtI,SAAUp1J,EAAG4E,IAC3DolT,EAAS/mT,KAAK2kB,GAIpB,OAAOymU,GAAcnkC,EAAWtqT,KAAKwsT,UAAWxsT,KAAKoM,KAEvDyiV,GAAuBp6B,MAAQ,SAAS9zT,EAAM8zT,GAC5C,IAAIroT,EAAKpM,KAAKoM,GAAI3K,EAAKzB,KAAKwsT,UAC5B,OAAIhxS,UAAUjX,OAAS,EAAUvE,KAAKgoB,OAAOvmB,GAAI2K,GAAIqoT,MAAMxzT,IAAIN,GACxDqsT,GAAkBhtT,KAAe,MAATy0T,EAAgB,SAASzsS,GACtDA,EAAKvmB,GAAI2K,GAAIqoT,MAAMxjT,OAAOtQ,IACxB,SAASqnB,GACXA,EAAKvmB,GAAI2K,GAAIqoT,MAAMpmT,IAAI1N,EAAM8zT,MAWjCo6B,GAAuBtmU,KAAO,SAAS8mU,EAAQhuV,GAC7C,GAAIma,UAAUjX,OAAS,EAAG,CACxB,IAAKlD,KAASguV,EAAQrvV,KAAKuoB,KAAKlnB,EAAOguV,EAAOhuV,IAC9C,OAAOrB,KAET,IAAI27M,EAAwB,aAAV0zI,EAAwBzS,GAA0BvE,GAAgB13U,EAAO2O,EAAG7N,GAAG4pT,QAAQgkC,GACzG,SAASxkC,IACP7qT,KAAK8qT,gBAAgBnqT,GAEvB,SAASoqT,IACP/qT,KAAKgrT,kBAAkBrqT,EAAKglT,MAAOhlT,EAAK4Y,OAE1C,SAASy5H,EAAU9vI,GACjB,OAAY,MAALA,EAAY2nT,GAAY3nT,GAAK,GAAI,WACtC,IAAiC9C,EAA7B6C,EAAIjD,KAAK0iG,aAAa/hG,GAC1B,OAAOsC,IAAMC,IAAM9C,EAAIu7M,EAAY14M,EAAGC,GAAI,SAAS5B,GACjDtB,KAAKkjG,aAAaviG,EAAMP,EAAEkB,QAIhC,SAASguV,EAAYpsV,GACnB,OAAY,MAALA,EAAY6nT,GAAc7nT,GAAK,GAAI,WACxC,IAAqD9C,EAAjD6C,EAAIjD,KAAKmtT,eAAexsT,EAAKglT,MAAOhlT,EAAK4Y,OAC7C,OAAOtW,IAAMC,IAAM9C,EAAIu7M,EAAY14M,EAAGC,GAAI,SAAS5B,GACjDtB,KAAKulT,eAAe5kT,EAAKglT,MAAOhlT,EAAK4Y,MAAOnZ,EAAEkB,QAIpD,OAAOwtV,GAAoB9uV,KAAM,QAAUqvV,EAAQhuV,EAAOV,EAAK4Y,MAAQ+1U,EAAct8M,IAEvF67M,GAAuB77M,UAAY,SAASq8M,EAAQ56B,GAClD,IAAI9zT,EAAO2O,EAAG7N,GAAG4pT,QAAQgkC,GACzB,SAASr8M,EAAUtyI,EAAGN,GACpB,IAAI0oC,EAAI2rR,EAAMl0T,KAAKP,KAAMU,EAAGN,EAAGJ,KAAK0iG,aAAa/hG,IACjD,OAAOmoC,GAAK,SAASxnC,GACnBtB,KAAKkjG,aAAaviG,EAAMmoC,EAAExnC,KAG9B,SAASguV,EAAY5uV,EAAGN,GACtB,IAAI0oC,EAAI2rR,EAAMl0T,KAAKP,KAAMU,EAAGN,EAAGJ,KAAKmtT,eAAexsT,EAAKglT,MAAOhlT,EAAK4Y,QACpE,OAAOuvB,GAAK,SAASxnC,GACnBtB,KAAKulT,eAAe5kT,EAAKglT,MAAOhlT,EAAK4Y,MAAOuvB,EAAExnC,KAGlD,OAAOtB,KAAKy0T,MAAM,QAAU46B,EAAQ1uV,EAAK4Y,MAAQ+1U,EAAct8M,IAEjE67M,GAAuB1+U,MAAQ,SAASxP,EAAMU,EAAOwoD,GACnD,IAAIhoD,EAAI2Z,UAAUjX,OAClB,GAAI1C,EAAI,EAAG,CACT,GAAoB,kBAATlB,EAAmB,CAE5B,IAAKkpD,KADDhoD,EAAI,IAAGR,EAAQ,IACFV,EAAMX,KAAKmQ,MAAM05C,EAAUlpD,EAAKkpD,GAAWxoD,GAC5D,OAAOrB,KAET6pD,EAAW,GAEb,SAASkiQ,IACP/rT,KAAKmQ,MAAM67S,eAAerrT,GAE5B,SAAS0wH,EAAYnuH,GACnB,OAAY,MAALA,EAAY6oT,GAAa7oT,GAAK,GAAI,WACvC,IAA6E9C,EAAzE6C,EAAI+hT,EAAUhlT,MAAMuqK,iBAAiBvqK,KAAM,MAAMwqK,iBAAiB7pK,GACtE,OAAOsC,IAAMC,IAAM9C,EAAIi4U,GAAep1U,EAAGC,GAAI,SAAS5B,GACpDtB,KAAKmQ,MAAM+0S,YAAYvkT,EAAMP,EAAEkB,GAAIuoD,OAIzC,OAAOilS,GAAoB9uV,KAAM,SAAWW,EAAMU,EAAOgwH,IAE3Dw9N,GAAuBU,WAAa,SAAS5uV,EAAM8zT,EAAO5qQ,GAExD,SAAS0lS,EAAW7uV,EAAGN,GACrB,IAAI0oC,EAAI2rR,EAAMl0T,KAAKP,KAAMU,EAAGN,EAAG4kT,EAAUhlT,MAAMuqK,iBAAiBvqK,KAAM,MAAMwqK,iBAAiB7pK,IAC7F,OAAOmoC,GAAK,SAASxnC,GACnBtB,KAAKmQ,MAAM+0S,YAAYvkT,EAAMmoC,EAAExnC,GAAIuoD,IAGvC,OAPIruC,UAAUjX,OAAS,IAAGslD,EAAW,IAO9B7pD,KAAKy0T,MAAM,SAAW9zT,EAAM4uV,IAErCV,GAAuBp/U,KAAO,SAASpO,GACrC,OAAOytV,GAAoB9uV,KAAM,OAAQqB,EAAO0tV,KAQlDF,GAAuB59U,OAAS,WAC9B,IAAIxP,EAAKzB,KAAKwsT,UACd,OAAOxsT,KAAKoQ,KAAK,kBAAkB,WACjC,IAAIlO,EACAlC,KAAKyB,GAAIipE,MAAQ,IAAMxoE,EAAIlC,KAAK2oB,aAAazmB,EAAEkvH,YAAYpxH,UAGnE6uV,GAAuBn0T,KAAO,SAASr5B,GACrC,IAAI+K,EAAKpM,KAAKoM,GAAI3K,EAAKzB,KAAKwsT,UAC5B,OAAIhxS,UAAUjX,OAAS,EAAUvE,KAAKgoB,OAAOvmB,GAAI2K,GAAIsuB,MAChC,oBAAVr5B,IAAsBA,EAAQiO,EAAGorB,KAAK/1B,MAAM2K,EAAIkM,YACpDwxS,GAAkBhtT,MAAM,SAASgoB,GACtCA,EAAKvmB,GAAI2K,GAAIsuB,KAAOr5B,OAGxBwtV,GAAuB/9U,MAAQ,SAASzP,GACtC,IAAI+K,EAAKpM,KAAKoM,GAAI3K,EAAKzB,KAAKwsT,UAC5B,OAAIhxS,UAAUjX,OAAS,EAAUvE,KAAKgoB,OAAOvmB,GAAI2K,GAAI0E,MAC9Ck8S,GAAkBhtT,KAAuB,oBAAVqB,EAAuB,SAAS2mB,EAAM5nB,EAAG4E,GAC7EgjB,EAAKvmB,GAAI2K,GAAI0E,OAASzP,EAAMd,KAAKynB,EAAMA,EAAKwtI,SAAUp1J,EAAG4E,KACtD3D,GAASA,EAAO,SAAS2mB,GAC5BA,EAAKvmB,GAAI2K,GAAI0E,MAAQzP,MAGzBwtV,GAAuBh+U,SAAW,SAASxP,GACzC,IAAI+K,EAAKpM,KAAKoM,GAAI3K,EAAKzB,KAAKwsT,UAC5B,OAAIhxS,UAAUjX,OAAS,EAAUvE,KAAKgoB,OAAOvmB,GAAI2K,GAAIyE,SAC9Cm8S,GAAkBhtT,KAAuB,oBAAVqB,EAAuB,SAAS2mB,EAAM5nB,EAAG4E,GAC7EgjB,EAAKvmB,GAAI2K,GAAIyE,SAAW1K,KAAKqC,IAAI,EAAGnH,EAAMd,KAAKynB,EAAMA,EAAKwtI,SAAUp1J,EAAG4E,MACpE3D,EAAQ8E,KAAKqC,IAAI,EAAGnH,GAAQ,SAAS2mB,GACxCA,EAAKvmB,GAAI2K,GAAIyE,SAAWxP,MAG5BwtV,GAAuBz+U,KAAO,SAASsD,EAAMm1S,GAC3C,IAAIz8S,EAAKpM,KAAKoM,GAAI3K,EAAKzB,KAAKwsT,UAC5B,GAAIhxS,UAAUjX,OAAS,EAAG,CACxB,IAAIwnF,EAAUwiQ,GAAsBiB,EAAYh7B,GAChD,IACEA,GAAyBpoT,EACzB4gT,GAAkBhtT,MAAM,SAASgoB,EAAM5nB,EAAG4E,GACxCupV,GAAuBvmU,EAAKvmB,GAAI2K,GAChCsH,EAAKnT,KAAKynB,EAAMA,EAAKwtI,SAAUp1J,EAAG4E,MAEpC,QACAupV,GAAuBxiQ,EACvByoO,GAAyBg7B,QAG3BxiC,GAAkBhtT,MAAM,SAASgoB,GAC/B,IAAIvX,EAAauX,EAAKvmB,GAAI2K,IACzBqE,EAAW6kB,QAAU7kB,EAAW6kB,MAAQhmB,EAAGikB,SAAS,QAAS,MAAO,eAAe/iB,GAAGkD,EAAMm1S,MAGjG,OAAO7oT,MAET6uV,GAAuBp+U,WAAa,WAElC,IADA,IAAiF25S,EAAiBpiS,EAAMvX,EAApGg/U,EAAMzvV,KAAKoM,GAAIy7M,IAAQwmI,GAAiB5sV,EAAKzB,KAAKwsT,UAAWlC,EAAY,GACpEtlT,EAAI,EAAGxE,EAAIR,KAAKuE,OAAQS,EAAIxE,EAAGwE,IAAK,CAC3CslT,EAAUjnT,KAAK+mT,EAAW,IAC1B,IAAK,IAAI54S,EAAQxR,KAAKgF,GAAI5E,EAAI,EAAGyB,EAAI2P,EAAMjN,OAAQnE,EAAIyB,EAAGzB,KACpD4nB,EAAOxW,EAAMpR,MACfqQ,EAAauX,EAAKvmB,GAAIguV,GACtBjB,GAAkBxmU,EAAM5nB,EAAGqB,EAAIomN,EAAK,CAClCp7I,KAAMh8D,EAAWg8D,KACjB/xC,KAAMjqB,EAAWiqB,KACjB5pB,MAAOL,EAAWK,MAAQL,EAAWI,SACrCA,SAAUJ,EAAWI,YAGzBu5S,EAAS/mT,KAAK2kB,GAGlB,OAAOymU,GAAcnkC,EAAW7oT,EAAIomN,IAgFtCv4M,EAAG8gB,IAAI07D,KAAO,WACZ,IAAqK4jQ,EAAjK3pR,EAAQz2D,EAAGy2D,MAAM+pE,SAAUztI,EAASstV,GAA0BC,EAAgB,EAAGC,EAAgB,EAAGC,EAAc,EAAGC,EAAiB,CAAE,IAAMC,EAAa,KAC/J,SAASlkQ,EAAK7hE,GACZA,EAAE7Z,MAAK,WACL,IAEqkB6/U,EAFjkBhmU,EAAI3a,EAAGO,OAAO7P,MACdyzT,EAASzzT,KAAKkzT,WAAantP,EAAOouP,EAASn0T,KAAKkzT,UAAYntP,EAAMqD,OAClEjyD,EAAsB,MAAd64U,EAAqB77B,EAAOh9S,MAAQg9S,EAAOh9S,MAAMxS,MAAMwvT,EAAQ47B,GAAkB57B,EAAO1jQ,SAAWu/R,EAAYvjG,EAA4B,MAAfijG,EAAsBv7B,EAAO1nE,WAAa0nE,EAAO1nE,WAAW9nP,MAAMwvT,EAAQ47B,GAAkBpoC,EAAc+nC,EAAahpT,EAAOzc,EAAEna,UAAU,SAASnE,KAAKwL,EAAOg9S,GAAS+7B,EAAYxpT,EAAK32B,QAAQxK,OAAO,IAAK,WAAWgjB,KAAK,QAAS,QAAQpY,MAAM,UAAW0wO,IAAIsvG,EAAW7gV,EAAGmB,WAAWi2B,EAAK8c,QAAQrzC,MAAM,UAAW0wO,IAAG5vO,SAAUm/U,EAAa9gV,EAAGmB,WAAWi2B,EAAK+D,SAASt6B,MAAM,UAAW,GAAI42B,EAAc5gC,KAAKqC,IAAIonV,EAAe,GAAKE,EACpjB13U,EAAQ2rU,GAAc5vB,GAAStwQ,EAAO55B,EAAEna,UAAU,WAAWnE,KAAK,CAAE,IAAM0kV,GAAcxsS,EAAK9zC,QAAQC,OAAO,QAAQuY,KAAK,QAAS,UACtIjZ,EAAGmB,WAAWozC,IACdqsS,EAAUlgV,OAAO,QACjBkgV,EAAUlgV,OAAO,QACjB,IAAoQ4nB,EAAIgoB,EAAI3nB,EAAIkwC,EAA5QmoR,EAAYJ,EAAUrgV,OAAO,QAAS0gV,EAAaH,EAAWvgV,OAAO,QAASJ,EAAOi3B,EAAK72B,OAAO,QAAQJ,KAAKg9O,GAAa+jG,EAAYN,EAAUrgV,OAAO,QAAS4gV,EAAaL,EAAWvgV,OAAO,QAAS81D,EAAkB,QAAXtjE,GAA+B,SAAXA,GAAqB,EAAI,EAcjQ,GAbe,WAAXA,GAAkC,QAAXA,GACzB4tV,EAAgBS,GAAc94T,EAAK,IAAKK,EAAK,IAAK2nB,EAAK,KAAMuoB,EAAK,KAClE14D,EAAK8Y,KAAK,KAAMo9C,EAAO,EAAI,MAAQ,SAASx1D,MAAM,cAAe,UACjEkgV,EAAW9nU,KAAK,IAAK,IAAMnQ,EAAM,GAAK,IAAMutD,EAAOkqR,EAAgB,MAAQz3U,EAAM,GAAK,IAAMutD,EAAOkqR,KAEnGI,EAAgBU,GAAc/4T,EAAK,IAAKK,EAAK,IAAK2nB,EAAK,KAAMuoB,EAAK,KAClE14D,EAAK8Y,KAAK,KAAM,SAASpY,MAAM,cAAew1D,EAAO,EAAI,MAAQ,SACjE0qR,EAAW9nU,KAAK,IAAK,IAAMo9C,EAAOkqR,EAAgB,IAAMz3U,EAAM,GAAK,MAAQA,EAAM,GAAK,IAAMutD,EAAOkqR,IAErGS,EAAU/nU,KAAK4/C,EAAIxC,EAAOiqR,GAC1BY,EAAUjoU,KAAK0P,EAAI0tC,EAAO5+B,GAC1BwpT,EAAWhoU,KAAKq3B,EAAI,GAAGr3B,KAAK4/C,EAAIxC,EAAOiqR,GACvCa,EAAWloU,KAAKqP,EAAI,GAAGrP,KAAK0P,EAAI0tC,EAAO5+B,GACnCotR,EAAOm0B,UAAW,CACpB,IAAI15U,EAAIulT,EAAQ36R,EAAK5qB,EAAE05U,YAAc,EACrC70B,EAASU,EAAS,SAASzzT,GACzB,OAAOkO,EAAElO,GAAK84B,QAEPi6R,EAAO60B,UAChB70B,EAASU,EAETg8B,EAAS5vV,KAAK0vV,EAAe97B,EAAQV,GAEvCy8B,EAAU3vV,KAAK0vV,EAAex8B,EAAQU,GACtCi8B,EAAW7vV,KAAK0vV,EAAe97B,EAAQA,MAqD3C,OAlDAroO,EAAK/lB,MAAQ,SAASn3D,GACpB,OAAK4M,UAAUjX,QACfwhE,EAAQn3D,EACDk9E,GAFuB/lB,GAIhC+lB,EAAKzpF,OAAS,SAASuM,GACrB,OAAK4M,UAAUjX,QACflC,EAASuM,KAAKgiV,GAAqBhiV,EAAI,GAAK+gV,GACrC7jQ,GAFuBzpF,GAIhCypF,EAAK30E,MAAQ,WACX,OAAKqE,UAAUjX,QACfwrV,EAAiBlrC,EAASrpS,WACnBswE,GAFuBikQ,GAIhCjkQ,EAAKkkQ,WAAa,SAASphV,GACzB,OAAK4M,UAAUjX,QACfyrV,EAAaphV,EACNk9E,GAFuBkkQ,GAIhClkQ,EAAK2gK,WAAa,SAAS79O,GACzB,OAAK4M,UAAUjX,QACfmrV,EAAc9gV,EACPk9E,GAFuB4jQ,GAIhC5jQ,EAAK+pH,SAAW,SAASjnM,GACvB,IAAI/M,EAAI2Z,UAAUjX,OAClB,OAAK1C,GACL+tV,GAAiBhhV,EACjBihV,GAAiBr0U,UAAU3Z,EAAI,GACxBiqF,GAHQ8jQ,GAKjB9jQ,EAAK8jQ,cAAgB,SAAShhV,GAC5B,OAAK4M,UAAUjX,QACfqrV,GAAiBhhV,EACVk9E,GAFuB8jQ,GAIhC9jQ,EAAK+jQ,cAAgB,SAASjhV,GAC5B,OAAK4M,UAAUjX,QACfsrV,GAAiBjhV,EACVk9E,GAFuB+jQ,GAIhC/jQ,EAAKgkQ,YAAc,SAASlhV,GAC1B,OAAK4M,UAAUjX,QACfurV,GAAelhV,EACRk9E,GAFuBgkQ,GAIhChkQ,EAAK+kQ,cAAgB,WACnB,OAAOr1U,UAAUjX,QAAUunF,GAEtBA,GAET,IAAI6jQ,GAA2B,SAAUiB,GAAqB,CAC5Dh+T,IAAK,EACLve,MAAO,EACPse,OAAQ,EACRve,KAAM,GAER,SAASs8U,GAAahiV,EAAWipB,EAAIC,GACnClpB,EAAU6Z,KAAK,aAAa,SAAS7nB,GACnC,IAAI04D,EAAKzhC,EAAGj3B,GACZ,MAAO,cAAgBoN,SAASsrD,GAAMA,EAAKxhC,EAAGl3B,IAAM,SAGxD,SAASiwV,GAAajiV,EAAWspB,EAAIC,GACnCvpB,EAAU6Z,KAAK,aAAa,SAAS7nB,GACnC,IAAI04D,EAAKphC,EAAGt3B,GACZ,MAAO,gBAAkBoN,SAASsrD,GAAMA,EAAKnhC,EAAGv3B,IAAM,OAG1D4O,EAAG8gB,IAAIqxG,MAAQ,WACb,IAAoIqvN,EAAeC,EAA/Iz7T,EAAQ0zR,EAAiBvnL,EAAO,aAAc,QAAS,YAAa7yH,EAAI,KAAM2F,EAAI,KAAMy8U,EAAU,CAAE,EAAG,GAAKC,EAAU,CAAE,EAAG,GAAmCC,GAAS,EAAMC,GAAS,EAAMC,EAAUC,GAAoB,GAC9N,SAAS5vN,EAAMx3G,GACbA,EAAE7Z,MAAK,WACL,IAAI6Z,EAAI3a,EAAGO,OAAO7P,MAAMmQ,MAAM,iBAAkB,OAAOA,MAAM,8BAA+B,iBAAiBK,GAAG,kBAAmB8gV,GAAY9gV,GAAG,mBAAoB8gV,GAClKz8T,EAAa5K,EAAEna,UAAU,eAAenE,KAAK,CAAE,IACnDkpB,EAAW9kB,QAAQC,OAAO,QAAQuY,KAAK,QAAS,cAAcpY,MAAM,aAAc,UAAUA,MAAM,SAAU,aAC5G8Z,EAAEna,UAAU,WAAWnE,KAAK,CAAE,IAAKoE,QAAQC,OAAO,QAAQuY,KAAK,QAAS,UAAUpY,MAAM,SAAU,QAClG,IAAI+gN,EAASjnM,EAAEna,UAAU,WAAWnE,KAAKylV,EAASzpC,GAClDz2F,EAAO1tK,OAAOvyC,SACdigN,EAAOnhN,QAAQC,OAAO,KAAKuY,KAAK,SAAS,SAAS7nB,GAChD,MAAO,UAAYA,KAClByP,MAAM,UAAU,SAASzP,GAC1B,OAAO6wV,GAAmB7wV,MACzBsP,OAAO,QAAQuY,KAAK,KAAK,SAAS7nB,GACnC,MAAO,QAAQ+C,KAAK/C,IAAM,EAAI,QAC7B6nB,KAAK,KAAK,SAAS7nB,GACpB,MAAO,QAAQ+C,KAAK/C,IAAM,EAAI,QAC7B6nB,KAAK,QAAS,GAAGA,KAAK,SAAU,GAAGpY,MAAM,aAAc,UAC1D+gN,EAAO/gN,MAAM,UAAWsxH,EAAM74G,QAAU,OAAS,MACjD,IAA8ExQ,EAA1Eo5U,EAAUliV,EAAGmB,WAAWwZ,GAAIwnU,EAAmBniV,EAAGmB,WAAWokB,GAC7DjmB,IACFwJ,EAAQ2rU,GAAcn1U,GACtB6iV,EAAiBlpU,KAAK,IAAKnQ,EAAM,IAAImQ,KAAK,QAASnQ,EAAM,GAAKA,EAAM,IACpEs5U,EAAQF,IAENj9U,IACF6D,EAAQ2rU,GAAcxvU,GACtBk9U,EAAiBlpU,KAAK,IAAKnQ,EAAM,IAAImQ,KAAK,SAAUnQ,EAAM,GAAKA,EAAM,IACrEu5U,EAAQH,IAEVhrT,EAAOgrT,MAyDX,SAAShrT,EAAOvc,GACdA,EAAEna,UAAU,WAAWyY,KAAK,aAAa,SAAS7nB,GAChD,MAAO,aAAeswV,GAAS,KAAKvtV,KAAK/C,IAAM,IAAMuwV,GAAS,KAAKxtV,KAAK/C,IAAM,OAGlF,SAASgxV,EAAQznU,GACfA,EAAEpa,OAAO,WAAW0Y,KAAK,IAAKyoU,EAAQ,IACtC/mU,EAAEna,UAAU,2BAA2ByY,KAAK,QAASyoU,EAAQ,GAAKA,EAAQ,IAE5E,SAASW,EAAQ1nU,GACfA,EAAEpa,OAAO,WAAW0Y,KAAK,IAAK0oU,EAAQ,IACtChnU,EAAEna,UAAU,2BAA2ByY,KAAK,SAAU0oU,EAAQ,GAAKA,EAAQ,IAE7E,SAASK,IACP,IAAyUpwT,EAAmC5kB,EAAxWqU,EAAS3wB,KAAM4xV,EAActiV,EAAGO,OAAOP,EAAGgmB,MAAM3E,QAASkhU,EAASv8T,EAAM2zR,GAAGt4R,EAAQnV,WAAYyO,EAAI3a,EAAGO,OAAO8gB,GAASmhU,EAAWF,EAAYlgJ,QAASqgJ,GAAa,UAAUtuV,KAAKquV,IAAaljV,EAAGojV,GAAa,UAAUvuV,KAAKquV,IAAav9U,EAAG65M,EAAWwjI,EAAY3hV,QAAQ,UAAWygT,EAAc9B,GAAsBj+R,GAAiBumI,EAAS5nJ,EAAGqwB,MAAMhP,GAC/VzS,EAAI5O,EAAGO,OAAOm1S,EAAUr0R,IAASngB,GAAG,gBAAiByhV,GAASzhV,GAAG,cAAe0hV,GAOpF,GANI5iV,EAAGgmB,MAAMw5M,eACX5wN,EAAE1N,GAAG,kBAAmB2hV,GAAW3hV,GAAG,iBAAkB4hV,GAExDl0U,EAAE1N,GAAG,kBAAmB2hV,GAAW3hV,GAAG,gBAAiB4hV,GAEzDnoU,EAAE03N,YAAY7xO,UAAU,KAAK6xO,YACzBvzB,EACFl3D,EAAO,GAAK85L,EAAQ,GAAK95L,EAAO,GAChCA,EAAO,GAAK+5L,EAAQ,GAAK/5L,EAAO,QAC3B,GAAI46L,EAAU,CACnB,IAAIO,GAAM,KAAK5uV,KAAKquV,GAAWQ,GAAM,KAAK7uV,KAAKquV,GAC/Cx1U,EAAS,CAAE00U,EAAQ,EAAIqB,GAAMn7L,EAAO,GAAI+5L,EAAQ,EAAIqB,GAAMp7L,EAAO,IACjEA,EAAO,GAAK85L,EAAQqB,GACpBn7L,EAAO,GAAK+5L,EAAQqB,QACXhjV,EAAGgmB,MAAMilF,SAAQr5E,EAASg2H,EAAOxyJ,SAO5C,SAASutV,IACiB,IAApB3iV,EAAGgmB,MAAMi9T,UACNnkI,IACHltL,EAAS,KACTg2H,EAAO,IAAM85L,EAAQ,GACrB95L,EAAO,IAAM+5L,EAAQ,GACrB7iI,EAAW,GAEb06F,KAGJ,SAASopC,IACiB,IAApB5iV,EAAGgmB,MAAMi9T,SAA6B,GAAZnkI,IAC5Bl3D,EAAO,IAAM85L,EAAQ,GACrB95L,EAAO,IAAM+5L,EAAQ,GACrB7iI,EAAW,EACX06F,KAGJ,SAASqpC,IACP,IAAI1sV,EAAQ6J,EAAGqwB,MAAMhP,GAAS6/R,GAAQ,EAClCl0S,IACF7W,EAAM,IAAM6W,EAAO,GACnB7W,EAAM,IAAM6W,EAAO,IAEhB8xM,IACC9+M,EAAGgmB,MAAMilF,QACNr5E,IAAQA,EAAS,EAAG8vT,EAAQ,GAAKA,EAAQ,IAAM,GAAIC,EAAQ,GAAKA,EAAQ,IAAM,IACnF/5L,EAAO,GAAK85L,IAAUvrV,EAAM,GAAKy7B,EAAO,KACxCg2H,EAAO,GAAK+5L,IAAUxrV,EAAM,GAAKy7B,EAAO,MACnCA,EAAS,MAEd6wT,GAAaS,EAAM/sV,EAAOmJ,EAAG,KAC/B8iV,EAAQznU,GACRumS,GAAQ,GAENwhC,GAAaQ,EAAM/sV,EAAO8O,EAAG,KAC/Bo9U,EAAQ1nU,GACRumS,GAAQ,GAENA,IACFhqR,EAAOvc,GACP4nU,EAAO,CACLn+U,KAAM,QACNnS,KAAM6sN,EAAW,OAAS,YAIhC,SAASokI,EAAM/sV,EAAOsgE,EAAO3lE,GAC3B,IAAoJmI,EAAKC,EAArJ4P,EAAQ2rU,GAAch+Q,GAAQjmB,EAAK1nC,EAAM,GAAIwqF,EAAKxqF,EAAM,GAAIpO,EAAWktJ,EAAO92J,GAAIqpE,EAASrpE,EAAI6wV,EAAUD,EAAS5sU,EAAOqlD,EAAO,GAAKA,EAAO,GAiBhJ,GAhBI2kJ,IACFtuK,GAAM91C,EACN44F,GAAMx+E,EAAOpa,GAEfzB,GAAOnI,EAAI+wV,EAASD,GAAU/qV,KAAKqC,IAAIs3C,EAAI35C,KAAKoC,IAAIq6F,EAAIn9F,EAAMrF,KAAOqF,EAAMrF,GACvEguN,EACF5lN,GAAOD,GAAOyB,GAAYoa,GAEtB8c,IAAQl3B,EAAW7D,KAAKqC,IAAIs3C,EAAI35C,KAAKoC,IAAIq6F,EAAI,EAAI1hE,EAAO9gC,GAAKmI,KAC7DyB,EAAWzB,GACbC,EAAMD,EACNA,EAAMyB,GAENxB,EAAMwB,GAGNy/D,EAAO,IAAMlhE,GAAOkhE,EAAO,IAAMjhE,EAInC,OAHIpI,EAAG2wV,EAAgB,KAAWD,EAAgB,KAClDrnR,EAAO,GAAKlhE,EACZkhE,EAAO,GAAKjhE,GACL,EAGX,SAAS4pV,IACPD,IACAloU,EAAE9Z,MAAM,iBAAkB,OAAOL,UAAU,WAAWK,MAAM,UAAWsxH,EAAM74G,QAAU,OAAS,MAChGtZ,EAAGO,OAAO,QAAQM,MAAM,SAAU,MAClC+N,EAAE1N,GAAG,kBAAmB,MAAMA,GAAG,gBAAiB,MAAMA,GAAG,kBAAmB,MAAMA,GAAG,iBAAkB,MAAMA,GAAG,gBAAiB,MAAMA,GAAG,cAAe,MAC3JkgT,IACAmhC,EAAO,CACLn+U,KAAM,aAtFVuW,EAAE9Z,MAAM,iBAAkB,QAAQL,UAAU,WAAWK,MAAM,UAAW,MACxEb,EAAGO,OAAO,QAAQM,MAAM,SAAUyhV,EAAYzhV,MAAM,WACpD0hV,EAAO,CACLn+U,KAAM,eAERy+U,IAyJF,OAnPA1wN,EAAMnsG,MAAQ,SAASrL,GACrBA,EAAE7Z,MAAK,WACL,IAAIyhV,EAASv8T,EAAM2zR,GAAGjpT,KAAMwb,WAAYi3U,EAAU,CAChD7jV,EAAGoiV,EACHz8U,EAAG08U,EACH7wV,EAAG0wV,EACH9rV,EAAG+rV,GACF2B,EAAU1yV,KAAKkzT,WAAau/B,EAC/BzyV,KAAKkzT,UAAYu/B,EACbj+B,GACFllT,EAAGO,OAAO7P,MAAMyQ,aAAaL,KAAK,eAAe,WAC/C0gV,EAAgB4B,EAAQtyV,EACxB2wV,EAAgB2B,EAAQ1tV,EACxBgsV,EAAU0B,EAAQ9jV,EAClBqiV,EAAUyB,EAAQn+U,EAClBs9U,EAAO,CACLn+U,KAAM,kBAEP+gT,MAAM,eAAe,WACtB,IAAIltQ,EAAKmyR,GAAoBsX,EAASyB,EAAQ7jV,GAAI44C,EAAKkyR,GAAoBuX,EAASwB,EAAQl+U,GAE5F,OADAu8U,EAAgBC,EAAgB,KACzB,SAASzvV,GACd0vV,EAAUyB,EAAQ7jV,EAAI24C,EAAGjmD,GACzB2vV,EAAUwB,EAAQl+U,EAAIizC,EAAGlmD,GACzBuwV,EAAO,CACLn+U,KAAM,QACNnS,KAAM,eAGT6O,KAAK,aAAa,WACnB0gV,EAAgB2B,EAAQryV,EACxB2wV,EAAgB0B,EAAQztV,EACxB6sV,EAAO,CACLn+U,KAAM,QACNnS,KAAM,WAERswV,EAAO,CACLn+U,KAAM,iBAIVm+U,EAAO,CACLn+U,KAAM,eAERm+U,EAAO,CACLn+U,KAAM,QACNnS,KAAM,WAERswV,EAAO,CACLn+U,KAAM,kBA8Hd+tH,EAAM7yH,EAAI,SAASS,GACjB,OAAKmM,UAAUjX,QACfqK,EAAIS,EACJ+hV,EAAUC,IAAqBziV,GAAK,GAAK2F,GAClCktH,GAHuB7yH,GAKhC6yH,EAAMltH,EAAI,SAASlF,GACjB,OAAKmM,UAAUjX,QACfgQ,EAAIlF,EACJ+hV,EAAUC,IAAqBziV,GAAK,GAAK2F,GAClCktH,GAHuBltH,GAKhCktH,EAAMpuH,MAAQ,SAAShE,GACrB,OAAKmM,UAAUjX,QACXqK,GAAK2F,GAAG28U,IAAW7hV,EAAE,GAAI8hV,IAAW9hV,EAAE,IAAaT,EAAGsiV,IAAW7hV,EAAYkF,IAAG48U,IAAW9hV,GACxFoyH,GAFuB7yH,GAAK2F,EAAI,CAAE28U,EAAQC,GAAWviV,EAAIsiV,EAAS38U,EAAI48U,EAAS,MAIxF1vN,EAAMh4D,OAAS,SAASp6D,GACtB,IAAIsoB,EAAIC,EAAII,EAAIC,EAAI32B,EACpB,OAAKka,UAAUjX,QAqBXqK,IACF+oB,EAAKtoB,EAAE,GAAIuoB,EAAKvoB,EAAE,GACdkF,IAAGojB,EAAKA,EAAG,GAAIC,EAAKA,EAAG,IAC3Bk5T,EAAgB,CAAEn5T,EAAIC,GAClBhpB,EAAEiR,SAAQ8X,EAAK/oB,EAAE+oB,GAAKC,EAAKhpB,EAAEgpB,IAC7BA,EAAKD,IAAIr2B,EAAIq2B,EAAIA,EAAKC,EAAIA,EAAKt2B,GAC/Bq2B,GAAMq5T,EAAQ,IAAMp5T,GAAMo5T,EAAQ,KAAIA,EAAU,CAAEr5T,EAAIC,KAExDrjB,IACFyjB,EAAK3oB,EAAE,GAAI4oB,EAAK5oB,EAAE,GACdT,IAAGopB,EAAKA,EAAG,GAAIC,EAAKA,EAAG,IAC3B84T,EAAgB,CAAE/4T,EAAIC,GAClB1jB,EAAEsL,SAAQmY,EAAKzjB,EAAEyjB,GAAKC,EAAK1jB,EAAE0jB,IAC7BA,EAAKD,IAAI12B,EAAI02B,EAAIA,EAAKC,EAAIA,EAAK32B,GAC/B02B,GAAMi5T,EAAQ,IAAMh5T,GAAMg5T,EAAQ,KAAIA,EAAU,CAAEj5T,EAAIC,KAErDwpG,IApCD7yH,IACEkiV,GACFn5T,EAAKm5T,EAAc,GAAIl5T,EAAKk5T,EAAc,KAE1Cn5T,EAAKq5T,EAAQ,GAAIp5T,EAAKo5T,EAAQ,GAC1BpiV,EAAEiR,SAAQ8X,EAAK/oB,EAAEiR,OAAO8X,GAAKC,EAAKhpB,EAAEiR,OAAO+X,IAC3CA,EAAKD,IAAIr2B,EAAIq2B,EAAIA,EAAKC,EAAIA,EAAKt2B,KAGnCiT,IACEw8U,GACF/4T,EAAK+4T,EAAc,GAAI94T,EAAK84T,EAAc,KAE1C/4T,EAAKi5T,EAAQ,GAAIh5T,EAAKg5T,EAAQ,GAC1B18U,EAAEsL,SAAQmY,EAAKzjB,EAAEsL,OAAOmY,GAAKC,EAAK1jB,EAAEsL,OAAOoY,IAC3CA,EAAKD,IAAI12B,EAAI02B,EAAIA,EAAKC,EAAIA,EAAK32B,KAGhCsN,GAAK2F,EAAI,CAAE,CAAEojB,EAAIK,GAAM,CAAEJ,EAAIK,IAASrpB,EAAI,CAAE+oB,EAAIC,GAAOrjB,GAAK,CAAEyjB,EAAIC,KAoB7EwpG,EAAM59F,MAAQ,WAKZ,OAJK49F,EAAM74G,UACTooU,EAAU,CAAE,EAAG,GAAKC,EAAU,CAAE,EAAG,GACnCH,EAAgBC,EAAgB,MAE3BtvN,GAETA,EAAM74G,MAAQ,WACZ,QAASha,GAAKoiV,EAAQ,IAAMA,EAAQ,MAAQz8U,GAAK08U,EAAQ,IAAMA,EAAQ,IAElE3hV,EAAGumB,OAAO4rG,EAAOnsG,EAAO,OAEjC,IAAIi8T,GAAqB,CACvB1vV,EAAG,YACHmc,EAAG,YACH7b,EAAG,YACH+b,EAAG,YACHiuK,GAAI,cACJH,GAAI,cACJC,GAAI,cACJC,GAAI,eAEFmlK,GAAsB,CAAE,CAAE,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,MAAQ,CAAE,IAAK,KAAO,CAAE,IAAK,KAAO,IACpGr0B,GAAiB9B,GAAQp2N,OAAS07N,GAAej0M,WACjDomO,GAAoB31B,GAAexwM,IACnComO,GAAoBD,GAAkB,yBAE1C,SAASE,GAAwBp3U,GAC/B,OAAOA,EAAKq3U,cA8Cd,SAASC,GAAcjjN,EAAQo/L,EAASpqO,GACtC,SAAS/+B,EAAMn3D,GACb,OAAOkhI,EAAOlhI,GAUhB,SAASokV,EAAWvpR,EAAQiB,GAC1B,IAAI99C,EAAO68C,EAAO,GAAKA,EAAO,GAAI94C,EAAS/D,EAAO89C,EAAOtqE,EAAIkP,EAAGi3S,OAAO0sC,GAAoBtiU,GAC3F,OAAOvwB,GAAK6yV,GAAmB1uV,OAAS,CAAE2qU,EAAQt1T,KAAM6tU,GAAyBh+Q,EAAOztB,KAAI,SAASt7C,GACnG,OAAOA,EAAI,WACTgqE,GAAO,IAAQtqE,EAAgF8uU,EAAQv+S,EAASsiU,GAAmB7yV,EAAI,GAAK6yV,GAAmB7yV,GAAKuwB,EAASvwB,EAAI,EAAIA,GAAlK,CAAE8yV,GAA2BzL,GAAyBh+Q,EAAQiB,GAAO,IAgC9F,OA5CA3E,EAAMlmD,OAAS,SAASjR,GACtB,OAAOukV,GAAkBrjN,EAAOjwH,OAAOjR,KAEzCm3D,EAAMtV,OAAS,SAAS7hD,GACtB,OAAK4M,UAAUjX,QACfurI,EAAOr/E,OAAO7hD,GACPm3D,GAFuB+pE,EAAOr/E,SAASzU,IAAIm3S,KAUpDptR,EAAMq+Q,KAAO,SAASh/Q,EAAUguR,GAC9B,IAAI3iS,EAASsV,EAAMtV,SAAUgZ,EAASq6Q,GAAerzR,GAASnc,EAAqB,MAAZ8wB,EAAmB4tR,EAAWvpR,EAAQ,IAA0B,kBAAbrE,GAAyB4tR,EAAWvpR,EAAQrE,GAEtK,SAASiuR,EAAQ53U,GACf,OAAQ5N,MAAM4N,KAAU2pD,EAAShtD,MAAMqD,EAAM03U,IAAmB13U,EAAO,GAAI23U,GAAM7uV,OAEnF,OAJI+vC,IAAQ8wB,EAAW9wB,EAAO,GAAI8+S,EAAO9+S,EAAO,IAIzCyxB,EAAMtV,OAAO0zR,GAAc1zR,EAAQ2iS,EAAO,EAAI,CACnDt/U,MAAO,SAAS2H,GACd,MAAO43U,EAAQ53U,EAAO2pD,EAAStxD,MAAM2H,IAAQA,EAAO03U,GAAkB13U,EAAO,GAC7E,OAAOA,GAETykB,KAAM,SAASzkB,GACb,MAAO43U,EAAQ53U,EAAO2pD,EAASllC,KAAKzkB,IAAQA,EAAO03U,IAAmB13U,EAAO,GAC7E,OAAOA,IAEP2pD,KAENW,EAAM5uD,MAAQ,SAASiuD,EAAUguR,GAC/B,IAAI3pR,EAASq6Q,GAAe/9Q,EAAMtV,UAAWnc,EAAqB,MAAZ8wB,EAAmB4tR,EAAWvpR,EAAQ,IAA0B,kBAAbrE,EAAwB4tR,EAAWvpR,EAAQrE,IAAaA,EAAShtD,OAAS,CAAE,CACnLA,MAAOgtD,GACNguR,GAEH,OADI9+S,IAAQ8wB,EAAW9wB,EAAO,GAAI8+S,EAAO9+S,EAAO,IACzC8wB,EAAShtD,MAAMqxD,EAAO,GAAI0pR,IAAmB1pR,EAAO,GAAK,GAAI2pR,EAAO,EAAI,EAAIA,IAErFrtR,EAAM0mL,WAAa,WACjB,OAAO3nJ,GAET/+B,EAAMqD,KAAO,WACX,OAAO2pR,GAAcjjN,EAAO1mE,OAAQ8lQ,EAASpqO,IAExC0iP,GAAsBzhR,EAAO+pE,GAEtC,SAASqjN,GAAkB7xV,GACzB,OAAO,IAAI4b,KAAK5b,GAnGlB07T,GAAes2B,IAAMp2U,KAAKlb,UAAU8wV,cAAgB,IAAI51U,KAAK,4BAA8B21U,GAA0BD,GAIrHC,GAAwBp5I,MAAQ,SAAS67E,GACvC,IAAI75Q,EAAO,IAAIyB,KAAKo4Q,GACpB,OAAOznR,MAAM4N,GAAQ,KAAOA,GAE9Bo3U,GAAwB91U,SAAW61U,GAAkB71U,SACrDm+S,GAAQhqC,OAASkrC,IAAiB,SAAS3gT,GACzC,OAAO,IAAI0/S,GAAiC,IAAzBh1T,KAAK2N,MAAM2H,EAAO,SACpC,SAASA,EAAMa,GAChBb,EAAK0gT,QAAQ1gT,EAAKmuN,UAAiC,IAArBzjO,KAAK2N,MAAMwI,OACxC,SAASb,GACV,OAAOA,EAAK4rK,gBAEd6zI,GAAQq4B,QAAUr4B,GAAQhqC,OAAO94Q,MACjC8iT,GAAQq4B,QAAQ/mO,IAAM0uM,GAAQhqC,OAAO1kK,IAAIp0G,MACzC8iT,GAAQs4B,OAASp3B,IAAiB,SAAS3gT,GACzC,OAAO,IAAI0/S,GAAiC,IAAzBh1T,KAAK2N,MAAM2H,EAAO,SACpC,SAASA,EAAMa,GAChBb,EAAK0gT,QAAQ1gT,EAAKmuN,UAAiC,IAArBzjO,KAAK2N,MAAMwI,OACxC,SAASb,GACV,OAAOA,EAAK2rK,gBAEd8zI,GAAQu4B,QAAUv4B,GAAQs4B,OAAOp7U,MACjC8iT,GAAQu4B,QAAQjnO,IAAM0uM,GAAQs4B,OAAOhnO,IAAIp0G,MACzC8iT,GAAQw4B,KAAOt3B,IAAiB,SAAS3gT,GACvC,IAAIk4U,EAAWl4U,EAAKu2Q,oBAAsB,GAC1C,OAAO,IAAImpC,GAA0D,MAAjDh1T,KAAK2N,MAAM2H,EAAO,KAAOk4U,GAAYA,OACxD,SAASl4U,EAAMa,GAChBb,EAAK0gT,QAAQ1gT,EAAKmuN,UAAiC,KAArBzjO,KAAK2N,MAAMwI,OACxC,SAASb,GACV,OAAOA,EAAK4D,cAEd67S,GAAQ04B,MAAQ14B,GAAQw4B,KAAKt7U,MAC7B8iT,GAAQ04B,MAAMpnO,IAAM0uM,GAAQw4B,KAAKlnO,IAAIp0G,MACrC8iT,GAAQrhT,MAAQuiT,IAAiB,SAAS3gT,GAGxC,OAFAA,EAAOy/S,GAAQphT,IAAI2B,GACnBA,EAAK+/S,QAAQ,GACN//S,KACN,SAASA,EAAMa,GAChBb,EAAKwgT,SAASxgT,EAAK8D,WAAajD,MAC/B,SAASb,GACV,OAAOA,EAAK8D,cAEd27S,GAAQpyL,OAASoyL,GAAQrhT,MAAMzB,MAC/B8iT,GAAQpyL,OAAOtc,IAAM0uM,GAAQrhT,MAAM2yG,IAAIp0G,MAsDvC,IAAI66U,GAAqB,CAAE,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,SACnIY,GAA4B,CAAE,CAAE34B,GAAQhqC,OAAQ,GAAK,CAAEgqC,GAAQhqC,OAAQ,GAAK,CAAEgqC,GAAQhqC,OAAQ,IAAM,CAAEgqC,GAAQhqC,OAAQ,IAAM,CAAEgqC,GAAQs4B,OAAQ,GAAK,CAAEt4B,GAAQs4B,OAAQ,GAAK,CAAEt4B,GAAQs4B,OAAQ,IAAM,CAAEt4B,GAAQs4B,OAAQ,IAAM,CAAEt4B,GAAQw4B,KAAM,GAAK,CAAEx4B,GAAQw4B,KAAM,GAAK,CAAEx4B,GAAQw4B,KAAM,GAAK,CAAEx4B,GAAQw4B,KAAM,IAAM,CAAEx4B,GAAQphT,IAAK,GAAK,CAAEohT,GAAQphT,IAAK,GAAK,CAAEohT,GAAQ8E,KAAM,GAAK,CAAE9E,GAAQrhT,MAAO,GAAK,CAAEqhT,GAAQrhT,MAAO,GAAK,CAAEqhT,GAAQthT,KAAM,IACxak6U,GAA2B92B,GAAeQ,MAAM,CAAE,CAAE,MAAO,SAAS98T,GACtE,OAAOA,EAAE2xR,oBACN,CAAE,MAAO,SAAS3xR,GACrB,OAAOA,EAAE2mL,eACN,CAAE,QAAS,SAAS3mL,GACvB,OAAOA,EAAE0mL,eACN,CAAE,QAAS,SAAS1mL,GACvB,OAAOA,EAAE2e,aACN,CAAE,QAAS,SAAS3e,GACvB,OAAOA,EAAE26T,UAA2B,GAAf36T,EAAE8e,YACpB,CAAE,QAAS,SAAS9e,GACvB,OAAsB,GAAfA,EAAE8e,YACN,CAAE,KAAM,SAAS9e,GACpB,OAAOA,EAAE6e,aACN,CAAE,KAAMwlT,MACTmuB,GAA4B,CAC9B96U,MAAO,SAAS6L,EAAOgpD,EAAMtjC,GAC3B,OAAOr6B,EAAG8I,MAAMjS,KAAK+5B,KAAKjc,EAAQ0lB,GAAQA,GAAOsjC,EAAMtjC,GAAMqS,IAAIm3S,KAEnEr/U,MAAO6zS,EACPznR,KAAMynR,GAERksC,GAA0Bj6U,KAAOshT,GAAQthT,KACzCshT,GAAQn1P,MAAQ,WACd,OAAOgtR,GAAczjV,EAAGy2D,MAAM+pE,SAAU+jN,GAA2BC,KAErE,IAAIC,GAA0BF,GAA0B73S,KAAI,SAASx7C,GACnE,MAAO,CAAEA,EAAE,GAAGgsH,IAAKhsH,EAAE,OAEnBwzV,GAAyBrB,GAAkBn1B,MAAM,CAAE,CAAE,MAAO,SAAS98T,GACvE,OAAOA,EAAE0xR,uBACN,CAAE,MAAO,SAAS1xR,GACrB,OAAOA,EAAEyxR,kBACN,CAAE,QAAS,SAASzxR,GACvB,OAAOA,EAAEwxR,kBACN,CAAE,QAAS,SAASxxR,GACvB,OAAOA,EAAE8yR,gBACN,CAAE,QAAS,SAAS9yR,GACvB,OAAOA,EAAE46T,aAAiC,GAAlB56T,EAAEsyR,eACvB,CAAE,QAAS,SAAStyR,GACvB,OAAyB,GAAlBA,EAAEsyR,eACN,CAAE,KAAM,SAAStyR,GACpB,OAAOA,EAAEqyR,gBACN,CAAE,KAAMgyC,MAWb,SAASkvB,GAAQ/8B,GACf,OAAOnzI,KAAK01B,MAAMy9G,EAAQgB,cAK5B,SAASg8B,GAAQh9B,GACf,IAAI9+S,EAAQ0sS,EAAY/wR,cAExB,OADA3b,EAAM+7U,WAAWrvC,EAAYzkR,MACtBjoB,EAAMg8U,yBAAyBl9B,EAAQgB,cAnBhD67B,GAAwBn6U,KAAOshT,GAAQthT,KAAK4yG,IAC5C0uM,GAAQn1P,MAAMymD,IAAM,WAClB,OAAOumO,GAAczjV,EAAGy2D,MAAM+pE,SAAUikN,GAAyBC,KAEnE1kV,EAAGG,KAAOmnT,IAAW,SAASM,GAC5B,OAAOA,EAAQgB,gBAEjB5oT,EAAG01D,KAAO,SAASF,EAAKgE,GACtB,OAAOiuP,GAAOjyP,EAAK,mBAAoBmvR,GAASnrR,IAKlDx5D,EAAGiB,KAAO,SAASu0D,EAAKgE,GACtB,OAAOiuP,GAAOjyP,EAAK,YAAaovR,GAASprR,IAO3Cx5D,EAAGq7S,IAAMiM,IAAW,SAASM,GAC3B,OAAOA,EAAQm9B,eAE+Br0V,KAAKsP,GAAKA,EAAI,IAAS,oEAh1SzE,I,uBCAA,IAAIuoF,EAAS,EAAQ,QACjB0W,EAA8B,EAAQ,QACtCj2C,EAAM,EAAQ,QACd8rF,EAAY,EAAQ,QACpBkwM,EAAgB,EAAQ,QACxBC,EAAsB,EAAQ,QAE9BC,EAAmBD,EAAoBtzV,IACvCwzV,EAAuBF,EAAoB/9C,QAC3Ck+C,EAAW1yU,OAAOA,QAAQpR,MAAM,WAEnChR,EAAOD,QAAU,SAAU+4D,EAAG/2D,EAAKN,EAAO+J,GACzC,IAAIupV,IAASvpV,KAAYA,EAAQupV,OAC7BruK,IAASl7K,KAAYA,EAAQpK,WAC7B+jJ,IAAc35I,KAAYA,EAAQ25I,YAClB,mBAAT1jJ,IACS,iBAAPM,GAAoB22D,EAAIj3D,EAAO,SAASktG,EAA4BltG,EAAO,OAAQM,GAC9F8yV,EAAqBpzV,GAAOmoE,OAASkrR,EAASlxV,KAAmB,iBAAP7B,EAAkBA,EAAM,KAEhF+2D,IAAMm/B,GAIE88P,GAEA5vM,GAAersF,EAAE/2D,KAC3B2kL,GAAS,UAFF5tH,EAAE/2D,GAIP2kL,EAAQ5tH,EAAE/2D,GAAON,EAChBktG,EAA4B71C,EAAG/2D,EAAKN,IATnCilL,EAAQ5tH,EAAE/2D,GAAON,EAChB+iJ,EAAUziJ,EAAKN,KAUrBkC,SAASvB,UAAW,YAAY,WACjC,MAAsB,mBAARhC,MAAsBw0V,EAAiBx0V,MAAMwpE,QAAU8qR,EAAct0V,U,oCChC9E,IAAIs+D,EAAS,IAEpB,SAASmwJ,KAkDT,SAASzyK,EAAIl6C,EAAQgnC,GACnB,IAAIkT,EAAM,IAAIyyK,EAGd,GAAI3sN,aAAkB2sN,EAAK3sN,EAAOsO,MAAK,SAAS/O,EAAOM,GAAOq6C,EAAI3tC,IAAI1M,EAAKN,WAGtE,GAAI8C,MAAM4J,QAAQjM,GAAS,CAC9B,IAEIjB,EAFAT,GAAK,EACLyB,EAAIC,EAAOyC,OAGf,GAAS,MAALukC,EAAW,QAAS1oC,EAAIyB,EAAGm6C,EAAI3tC,IAAIjO,EAAG0B,EAAO1B,SAC5C,QAASA,EAAIyB,EAAGm6C,EAAI3tC,IAAIy6B,EAAEjoC,EAAIiB,EAAO1B,GAAIA,EAAG0B,GAASjB,QAIvD,GAAIiB,EAAQ,IAAK,IAAIH,KAAOG,EAAQk6C,EAAI3tC,IAAI1M,EAAKG,EAAOH,IAE7D,OAAOq6C,EAnETyyK,EAAIzsN,UAAYg6C,EAAIh6C,UAAY,CAC9Bq8B,YAAaowL,EACbn2J,IAAK,SAAS32D,GACZ,OAAQ28D,EAAS38D,KAAQ3B,MAE3BiB,IAAK,SAASU,GACZ,OAAO3B,KAAKs+D,EAAS38D,IAEvB0M,IAAK,SAAS1M,EAAKN,GAEjB,OADArB,KAAKs+D,EAAS38D,GAAON,EACdrB,MAETiR,OAAQ,SAAStP,GACf,IAAII,EAAWu8D,EAAS38D,EACxB,OAAOI,KAAY/B,aAAeA,KAAK+B,IAEzC8hC,MAAO,WACL,IAAK,IAAI9hC,KAAY/B,KAAU+B,EAAS,KAAOu8D,UAAet+D,KAAK+B,IAErEsmD,KAAM,WACJ,IAAIA,EAAO,GACX,IAAK,IAAItmD,KAAY/B,KAAU+B,EAAS,KAAOu8D,GAAQjW,EAAKhlD,KAAKtB,EAAS2C,MAAM,IAChF,OAAO2jD,GAET1uB,OAAQ,WACN,IAAIA,EAAS,GACb,IAAK,IAAI53B,KAAY/B,KAAU+B,EAAS,KAAOu8D,GAAQ3kC,EAAOt2B,KAAKrD,KAAK+B,IACxE,OAAO43B,GAETkkE,QAAS,WACP,IAAIA,EAAU,GACd,IAAK,IAAI97F,KAAY/B,KAAU+B,EAAS,KAAOu8D,GAAQu/B,EAAQx6F,KAAK,CAAC1B,IAAKI,EAAS2C,MAAM,GAAIrD,MAAOrB,KAAK+B,KACzG,OAAO87F,GAETz5E,KAAM,WACJ,IAAIA,EAAO,EACX,IAAK,IAAIriB,KAAY/B,KAAU+B,EAAS,KAAOu8D,KAAUl6C,EACzD,OAAOA,GAETwE,MAAO,WACL,IAAK,IAAI7mB,KAAY/B,KAAM,GAAI+B,EAAS,KAAOu8D,EAAQ,OAAO,EAC9D,OAAO,GAETluD,KAAM,SAAS04B,GACb,IAAK,IAAI/mC,KAAY/B,KAAU+B,EAAS,KAAOu8D,GAAQx1B,EAAE9oC,KAAK+B,GAAWA,EAAS2C,MAAM,GAAI1E,QA0BjF,QCxEA,aACb,IAEIgoT,EACAC,EACA31G,EAJAjqJ,EAAO,GACP4vH,EAAW,GAKf,SAAStzK,EAAMykC,EAAO0rI,EAAO8/K,EAAcC,GACzC,GAAI//K,GAASzsH,EAAK9jD,OAEhB,OADkB,MAAdyjT,GAAoB5+Q,EAAMhiC,KAAK4gT,GAClB,MAAVC,EAAiBA,EAAO7+Q,GAASA,EAG1C,IAGI++Q,EACA9mT,EAEAs4B,EANAv5B,GAAK,EACLyB,EAAIunC,EAAM7kC,OACV5C,EAAM0mD,EAAKysH,KAGXuzI,EAAc,IAEdx+S,EAAS+qV,IAEb,QAASx0V,EAAIyB,GACP83B,EAAS0uR,EAAYpnT,IAAIknT,EAAWxmT,EAAIN,EAAQ+nC,EAAMhpC,IAAM,KAC9Du5B,EAAOt2B,KAAKhC,GAEZgnT,EAAYh6S,IAAI85S,EAAU,CAAC9mT,IAQ/B,OAJAgnT,EAAYj4S,MAAK,SAASupB,EAAQh4B,GAChCkzV,EAAUhrV,EAAQlI,EAAKgD,EAAMg1B,EAAQm7I,EAAO8/K,EAAcC,OAGrDhrV,EAGT,SAASg0F,EAAQ7hD,EAAK84H,GACpB,KAAMA,EAAQzsH,EAAK9jD,OAAQ,OAAOy3C,EAClC,IAAI5S,EAAOk/Q,EAAUrwI,EAASnD,EAAQ,GAGtC,OAFc,MAAVmzI,GAAkBnzI,GAASzsH,EAAK9jD,OAAQ6kC,EAAQ4S,EAAI6hD,WACnDz0D,EAAQ,GAAI4S,EAAI5rC,MAAK,SAASlL,EAAGC,GAAKikC,EAAM/lC,KAAK,CAAC1B,IAAKwD,EAAGw0B,OAAQkkE,EAAQ34F,EAAG4vK,SAChE,MAAXwzI,EAAkBl/Q,EAAMhiC,MAAK,SAASnE,EAAGC,GAAK,OAAOolT,EAAQrlT,EAAEtB,IAAKuB,EAAEvB,QAAWynC,EAG1F,OAAOkpK,EAAO,CACZxwM,OAAQ,SAASsnC,GAAS,OAAOzkC,EAAMykC,EAAO,EAAG0rT,EAAcC,IAC/D/4S,IAAK,SAAS5S,GAAS,OAAOzkC,EAAMykC,EAAO,EAAGmlL,EAAWymI,IACzDn3P,QAAS,SAASz0D,GAAS,OAAOy0D,EAAQl5F,EAAMykC,EAAO,EAAGmlL,EAAWymI,GAAS,IAC9ErzV,IAAK,SAASjB,GAAmB,OAAd2nD,EAAKhlD,KAAK3C,GAAW4xM,GACxCr6B,SAAU,SAASxtI,GAA4C,OAAnCwtI,EAAS5vH,EAAK9jD,OAAS,GAAKkmC,EAAc6nK,GACtE01G,WAAY,SAASv9Q,GAA6B,OAApBu9Q,EAAav9Q,EAAc6nK,GACzD21G,OAAQ,SAASn/Q,GAAiB,OAAZm/Q,EAASn/Q,EAAUwpK,KAI7C,SAASwiJ,IACP,MAAO,GAGT,SAASC,EAAUjzV,EAAQH,EAAKN,GAC9BS,EAAOH,GAAON,EAGhB,SAASktN,IACP,OAAO,IAGT,SAASymI,EAAOh5S,EAAKr6C,EAAKN,GACxB26C,EAAI3tC,IAAI1M,EAAKN,GCrEf,SAAS4zV,KAET,IAAI7wV,EAAQ,EAAIpC,UAkBhB,SAASqM,EAAIvM,EAAQgnC,GACnB,IAAIz6B,EAAM,IAAI4mV,EAGd,GAAInzV,aAAkBmzV,EAAKnzV,EAAOsO,MAAK,SAAS/O,GAASgN,EAAIgO,IAAIhb,WAG5D,GAAIS,EAAQ,CACf,IAAI1B,GAAK,EAAGyB,EAAIC,EAAOyC,OACvB,GAAS,MAALukC,EAAW,QAAS1oC,EAAIyB,EAAGwM,EAAIgO,IAAIva,EAAO1B,SACzC,QAASA,EAAIyB,EAAGwM,EAAIgO,IAAIysB,EAAEhnC,EAAO1B,GAAIA,EAAG0B,IAG/C,OAAOuM,EA7BT4mV,EAAIjzV,UAAYqM,EAAIrM,UAAY,CAC9Bq8B,YAAa42T,EACb38R,IAAKl0D,EAAMk0D,IACXj8C,IAAK,SAAShb,GAGZ,OAFAA,GAAS,GACTrB,KAAKs+D,EAASj9D,GAASA,EAChBrB,MAETiR,OAAQ7M,EAAM6M,OACd4yB,MAAOz/B,EAAMy/B,MACblK,OAAQv1B,EAAMikD,KACdjkC,KAAMhgB,EAAMggB,KACZwE,MAAOxkB,EAAMwkB,MACbxY,KAAMhM,EAAMgM,MCnBd,qE,oCCUAxQ,EAAOD,QAAU,SAAmB2gB,EAAKC,EAAIvR,EAAOwR,EAAIC,GAYpD,GAVAH,EAAI1R,EAAI,SAAU2R,EAAKA,EAAGkoC,KAAOloC,EAAG3R,EACpC0R,EAAI/L,EAAI,SAAUgM,EAAKA,EAAGmoC,KAAOnoC,EAAGhM,EAGjC,cAAegM,IAAID,EAAIjR,EAAIkR,EAAG20U,WAE9B30U,EAAGsX,KAAIvX,EAAI8G,MAAQ7G,EAAGsX,IACtBtX,EAAG2X,KAAI5X,EAAI+G,MAAQ9G,EAAG2X,MAGpBlpB,EAAMmoE,YAAc,IAAInyC,QAAS,CAClC,IASI07E,EATA7vE,EAAM1sC,MAAM4J,QAAQ0S,GACpBD,EAAG,GAAGqwB,IAAIpwB,EAAY,IAAIA,EAAY,IACtCD,EAAGC,GAAaowB,IAQpB,GANAvwB,EAAIy9F,aAAeltE,EACnBvwB,EAAIy/F,UAAYz/F,EAAIG,mBACbH,EAAIG,mBACJH,EAAIqgG,WAGR3xG,EAAMmmV,eAAgB,CACrBz0O,EAAe,GACf,IAAI,IAAItgH,EAAI,EAAGA,EAAIywC,EAAItsC,OAAQnE,IAC3BsgH,EAAeA,EAAav4G,OAAO6G,EAAMmmV,eAAetkT,EAAIzwC,UAGhEsgH,EAAe7vE,EAGnBvwB,EAAIogG,aAAeA,EAGvB,OAAOpgG,I,qBCnCX,SAAS25M,EAAU35M,EAAKrd,EAAGiC,GACvB,IACI6jG,EAAKC,EAAKC,EAAKC,EACfC,EAAKC,EAAKC,EAAKC,EACfC,EAAKC,EAAKC,EAAKC,EAHf96F,EAAI1J,EAAE,GAAIqP,EAAIrP,EAAE,GAAImK,EAAInK,EAAE,GAyB9B,OApBIjC,IAAMqd,GACNA,EAAI,IAAMrd,EAAE,GAAK2L,EAAI3L,EAAE,GAAKsR,EAAItR,EAAE,GAAKoM,EAAIpM,EAAE,IAC7Cqd,EAAI,IAAMrd,EAAE,GAAK2L,EAAI3L,EAAE,GAAKsR,EAAItR,EAAE,GAAKoM,EAAIpM,EAAE,IAC7Cqd,EAAI,IAAMrd,EAAE,GAAK2L,EAAI3L,EAAE,GAAKsR,EAAItR,EAAE,IAAMoM,EAAIpM,EAAE,IAC9Cqd,EAAI,IAAMrd,EAAE,GAAK2L,EAAI3L,EAAE,GAAKsR,EAAItR,EAAE,IAAMoM,EAAIpM,EAAE,MAE9C8lG,EAAM9lG,EAAE,GAAI+lG,EAAM/lG,EAAE,GAAIgmG,EAAMhmG,EAAE,GAAIimG,EAAMjmG,EAAE,GAC5CkmG,EAAMlmG,EAAE,GAAImmG,EAAMnmG,EAAE,GAAIomG,EAAMpmG,EAAE,GAAIqmG,EAAMrmG,EAAE,GAC5CsmG,EAAMtmG,EAAE,GAAIumG,EAAMvmG,EAAE,GAAIwmG,EAAMxmG,EAAE,IAAKymG,EAAMzmG,EAAE,IAE7Cqd,EAAI,GAAKyoF,EAAKzoF,EAAI,GAAK0oF,EAAK1oF,EAAI,GAAK2oF,EAAK3oF,EAAI,GAAK4oF,EACnD5oF,EAAI,GAAK6oF,EAAK7oF,EAAI,GAAK8oF,EAAK9oF,EAAI,GAAK+oF,EAAK/oF,EAAI,GAAKgpF,EACnDhpF,EAAI,GAAKipF,EAAKjpF,EAAI,GAAKkpF,EAAKlpF,EAAI,IAAMmpF,EAAKnpF,EAAI,IAAMopF,EAErDppF,EAAI,IAAMyoF,EAAMn6F,EAAIu6F,EAAM50F,EAAIg1F,EAAMl6F,EAAIpM,EAAE,IAC1Cqd,EAAI,IAAM0oF,EAAMp6F,EAAIw6F,EAAM70F,EAAIi1F,EAAMn6F,EAAIpM,EAAE,IAC1Cqd,EAAI,IAAM2oF,EAAMr6F,EAAIy6F,EAAM90F,EAAIk1F,EAAMp6F,EAAIpM,EAAE,IAC1Cqd,EAAI,IAAM4oF,EAAMt6F,EAAI06F,EAAM/0F,EAAIm1F,EAAMr6F,EAAIpM,EAAE,KAGvCqd,EApCX1gB,EAAOD,QAAUs6N,G,oCCUjBr6N,EAAOD,QAAU,SAAmB2gB,EAAKC,GAarC,OAXAD,EAAI1R,EAAI,SAAU2R,EAAKA,EAAGkoC,KAAOloC,EAAG3R,EACpC0R,EAAI/L,EAAI,SAAUgM,EAAKA,EAAGmoC,KAAOnoC,EAAGhM,EAGjC,mBAAoBgM,IAAID,EAAI80U,eAAiB70U,EAAG60U,gBAChD,oBAAqB70U,IAAID,EAAI+0U,gBAAkB90U,EAAG80U,iBAClD,iBAAkB90U,IAAID,EAAIg1U,aAAe/0U,EAAG+0U,cAE5C/0U,EAAGsX,KAAIvX,EAAI8G,MAAQ7G,EAAGsX,IACtBtX,EAAG2X,KAAI5X,EAAI+G,MAAQ9G,EAAG2X,IAElB5X,I,oCCbX,IAAIo2F,EAAa,EAAQ,QAErB86I,EAAkB,EAAQ,QAA6BA,gBACvDC,EAAgB,EAAQ,QACxBtzK,EAAc,EAAQ,QAA+BA,YACrDuzK,EAAO,EAAQ,QAEf6jG,EAAoB,EAAQ,QAAyBA,kBACrDC,EAAoB,EAAQ,QAAyBA,kBAEzD,SAASC,EAAYpqV,EAAOumP,EAAM77N,GAC9B/1B,KAAKqL,MAAQA,EACbrL,KAAK+1B,IAAMA,EACX/1B,KAAK4xP,KAAOA,EACZ5xP,KAAKW,KAAO,GACZX,KAAK2L,KAAO,KACZ3L,KAAKq+D,aAAc,EAGvB,IAAIj6D,EAAQqxV,EAAYzzV,UA0FxB,SAAS0zV,EAAkBrqV,EAAOM,GAC9B,IAAIvB,EAAKiB,EAAMmM,OAAOpN,GAClBwnP,EAAOl7I,EAAW,CAACtsG,GAAIA,IACvBP,EAAS,IAAI4rV,EAAYpqV,EAAOumP,EAAMjmP,EAAKoqB,KAK/C,OAHA67N,EAAKQ,OAASvoP,EACdA,EAAOkC,OAAOJ,GACdN,EAAMmM,OAAO6E,IAAIu1O,GACV/nP,EAhGXzF,EAAMiuP,WAAa,SAAS3jP,GACxB,GAAGA,EAAU5M,SAAW9B,KAAK4xP,KAAM,CAC/B,IAAI+jG,EAAQjnV,EAAU/C,KAAK5I,MAEvB6L,EAAI5O,KAAK2L,KAAKiqV,OAAOD,GACrBphV,EAAIvU,KAAK2L,KAAKkqV,OAAOF,GACrBtmV,EAAIrP,KAAK2L,KAAKmqV,OAAOH,GAErB7rU,EAAS9pB,KAAK2L,KAAKoqV,IAAIxxV,OACvBuwK,EAAQ90K,KAAK2L,KAAKqqV,IAAIzxV,OAEtBnE,EAAIm1V,EAAkB3mV,EAAG5O,KAAK2L,KAAKsqV,KAAK7pV,GACxCpH,EAAIuwV,EAAkBhhV,EAAGvU,KAAK2L,KAAKoqV,KAAK3pV,GACxCjH,EAAIowV,EAAkBlmV,EAAGrP,KAAK2L,KAAKqqV,KAAK5pV,GAExCkmP,EAAc5jP,EAAU3L,MAAQoC,EAAI2vK,EAAQ9vK,EAAI8vK,EAAQhrJ,EAAS1pB,EAErEsO,EAAUg8E,gBAAkB,CACxB1qF,KAAK2L,KAAKiqV,OAAOtjG,GACjBtyP,KAAK2L,KAAKkqV,OAAOvjG,GACjBtyP,KAAK2L,KAAKmqV,OAAOxjG,GACjBtyP,KAAK2L,KAAKouM,OAAOu4C,IAGrB,IAAI7iP,EAAOzP,KAAK2L,KAAKkZ,WAAa7kB,KAAK2L,KAAK8D,KAO5C,OANGtL,MAAM4J,QAAQ0B,SAA+BuT,IAAtBvT,EAAK6iP,GAC3B5jP,EAAU6jP,UAAY9iP,EAAK6iP,GACrB7iP,IACNf,EAAU6jP,UAAY9iP,IAGnB,IAIfrL,EAAM2H,OAAS,SAASJ,GACpB,IAAIN,EAAQrL,KAAKqL,MACb88C,EAAS98C,EAAMsM,gBAKnB,SAASm6O,EAAahmK,EAAMzlD,EAAO0/B,EAAOpsD,GACtC,OAAO0sB,EAAM2V,KAAI,SAASptC,GACtB,OAAOk9E,EAAK50C,IAAItoC,EAAG,EAAG+K,GAAYosD,KAL1C/lE,KAAK2L,KAAO6pV,EAAkB7pV,GAS9B,IAAI2B,EAAYokP,EACZI,EAAa3pM,EAAO/gC,MAAOzb,EAAKiqV,OAAQvqV,EAAM4M,UAAU,GAAItM,EAAKqlC,WACjE8gN,EAAa3pM,EAAO9gC,MAAO1b,EAAKkqV,OAAQxqV,EAAM4M,UAAU,GAAItM,EAAKslC,WACjE6gN,EAAa3pM,EAAOw/J,MAAOh8M,EAAKmqV,OAAQzqV,EAAM4M,UAAU,GAAItM,EAAK6mP,YAEjEjrP,EAAQmqP,EAAK/lP,EAAKuqV,OAAQvqV,EAAKwqV,OAAQxqV,EAAKyqV,QAE5CltU,EAAS,CACT5b,UAAWA,EACX/F,MAAOA,EACPmrP,cAAe,CAAC/mP,EAAK2Z,cAAc1W,EAAGjD,EAAK2Z,cAAc/Q,EAAG5I,EAAK2Z,cAAcjW,GAC/EmW,QAAS7Z,EAAK4Z,SAASC,QACvBC,QAAS9Z,EAAK4Z,SAASE,QACvBC,SAAU/Z,EAAK4Z,SAASG,SACxBC,UAAWha,EAAK4Z,SAASI,UACzBC,QAASja,EAAK4Z,SAASK,QACvB+sO,qBAAsBhnP,EAAK4Z,SAASqtO,qBACpCC,mBAAoBlnP,EAAK4Z,SAASutO,mBAClC9nP,QAASW,EAAKX,QACdulP,aAAc5kP,EAAK4kP,aACnBwC,cAAepnP,EAAK8kP,QAAQzsO,KAC5BgvO,aAAcvB,EAAc9lP,EAAK8kP,QAAQhlP,OAAO/G,MAAM,EAAG,GACzDuuP,aAActnP,EAAK8kP,QAAQ9uO,MAC3BuxO,gBAAiBvnP,EAAK6kP,aAGtB3wH,EAAQ1hD,EAAYxyE,GACxBud,EAAOqoF,gBAAkB5lG,EAAK0qV,eAC9BntU,EAAOu6I,sBAAwB,CAAC5jC,EAAMt3H,IAAKs3H,EAAMr3H,KACjD0gB,EAAOwoF,SAAW8/I,EAAgB7lP,GAGlC3L,KAAK4xP,KAAK7lP,OAAOmd,IAGrB9kB,EAAMoK,QAAU,WACZxO,KAAKqL,MAAMmM,OAAOvG,OAAOjR,KAAK4xP,MAC9B5xP,KAAK4xP,KAAKpjP,WAcd5O,EAAOD,QAAU+1V,G,oCCrGjB,SAASY,EAAW7nL,GAChB,OAAwB,IAAjBA,EAAKl8J,QAGhB,SAASgkV,EAAe9nL,GACpB,IAAIz/J,EAAQy/J,EAAK,GAAGz/J,MACpB,OAAyB,IAAlBA,EAAMuD,SAAsC,IAAlBvD,EAAM6I,QAG3C,SAAS2+U,EAAW79T,GAChB,OACIx0B,MAAM4J,QAAQ4qB,IACdx0B,MAAM4J,QAAQ4qB,EAAK,KACnBA,EAAK,GAAG,IACRA,EAAK,GAAG,GAAG3pB,MA1BnBpP,EAAOD,QAAU,SAAuBsyB,GAIpC,IAHA,IAAIwkU,EAAWD,EAAWvkU,GAAaskU,EAAiBD,EACpDh2U,EAAM,GAEFlgB,EAAI,EAAGA,EAAI6xB,EAAU1tB,OAAQnE,IAAK,CACtC,IAAIquK,EAAOx8I,EAAU7xB,GAClBq2V,EAAShoL,IAAOnuJ,EAAIjd,KAAKorK,GAGhC,OAAOnuJ,I,iCCoBX,SAASo2U,EAAYh2V,EAAGm3B,EAAIK,EAAIo3J,EAAc/qG,GAC1C,IAAI5sD,EAAKE,EAAGC,IAAIw3J,EAAe5uL,EAAE6kF,GAAK7kF,EAAE0kF,IAAI,GACxCxtD,EAAKC,EAAGC,IAAIw3J,EAAe5uL,EAAE8kF,GAAK9kF,EAAE2kF,IAAI,GACxCrtD,EAAKE,EAAGJ,IAAIw3J,EAAe5uL,EAAE0kF,GAAK1kF,EAAE6kF,IAAI,GACxCttD,EAAKC,EAAGJ,IAAIw3J,EAAe5uL,EAAE2kF,GAAK3kF,EAAE8kF,IAAI,GAE5C,OAAGjB,EACQ,EAAE5sD,EAAKC,GAAM,GAAII,EAAKC,GAAM,GAEhCq3J,EACQ,CAAC13J,GAAKI,EAAKC,GAAM,GAEjB,EAAEN,EAAKC,GAAM,EAAGK,GAhDnCr4B,EAAOD,QAAU,SAAsBi6G,EAAYH,GAC/C,IAOIr5G,EAPAogB,EAAKo5F,EAAWp5F,GAChBqX,EAAK+hF,EAAWxyF,MAChB8Q,EAAK0hF,EAAWvyF,MAChBrY,EAAQwR,EAAG,GAAGxR,MACdu1E,EAA2B,WAAfv1E,EAAM0E,KAClB47K,EAAsC,MAAtBtgL,EAAM5G,YACtBsG,EAAY,GAGhB,IAAuB,IAApB+qG,EAEC,IAAIr5G,EAAI,EAAGA,EAAIogB,EAAGjc,OAAQnE,IACtBogB,EAAGpgB,GAAG64B,SAAW,OAGrB,IAAI74B,EAAI,EAAGA,EAAIogB,EAAGjc,OAAQnE,IAAK,CAC3B,IAAIq4B,EAAKjY,EAAGpgB,GACR23B,EAAK,OAAQU,EAAKA,EAAGV,GAAK2+T,EAAYj+T,EAAIZ,EAAIK,EAAIo3J,EAAc/qG,GAEjEk1B,EAAgB/hF,SAASK,GAAI,EAAO33B,EAAGw5G,IACtClrG,EAAUrL,KAAK,CACXod,YAAargB,EACbwO,EAAGipB,EAAGkd,IAAItc,EAAG7pB,GACb2F,EAAG2jB,EAAG6c,IAAItc,EAAGlkB,KAEjBkkB,EAAGQ,SAAW,GAEdR,EAAGQ,SAAW,EAK1B,OAAOvqB,I,kCCjCX9O,EAAOD,QAAU,EAAQ,S,kCCRzB,IAAIysS,EAActrS,OAAOkB,UAAU+a,SAC/B45U,EAAsBhuT,OAAO3mC,UAAUyB,KAAK7B,KAAK,mCAErDhC,EAAOD,QAAU,SAAU0B,GAC1B,MAAwB,oBAAVA,GAAwBs1V,EAAoBvqD,EAAY7rS,KAAKc,M,kCCK5E,IAAI0V,EAAM,EAAQ,QAGlBnX,EAAOD,QAAU,SAAqBsyB,GAClC,OAAOlb,EAAI6qD,cAAc3vC,EAAUmvC,Y,oCCLvC,IAAI7xD,EAAY,EAAQ,QACpBwH,EAAM,EAAQ,QAEdD,EAAO,EAAQ,QACfm7B,EAAS,EAAQ,QAA6BA,OAE9Ci0B,EAAW,EAAQ,QACnBD,EAAiB,EAAQ,QACzBwQ,EAAmB,EAAQ,QAC3BqzE,EAAgB,EAAQ,QAE5B,SAAS72I,EAAKlE,EAAIC,GACd,IAUI4nV,EAAKx2V,EAAG4E,EAAGG,EAAGw2M,EAAaxkK,EAV3B7wB,EAAavX,EAAG+mB,YAChB+B,EAAK/gB,EAAK63B,UAAU5/B,EAAIC,EAAMoY,OAAS,KACvC8Q,EAAKphB,EAAK63B,UAAU5/B,EAAIC,EAAMqY,OAAS,KACvCzY,EAAIipB,EAAGyX,aAAatgC,EAAO,KAC3BuF,EAAI2jB,EAAGoX,aAAatgC,EAAO,KAC3Bi7I,EAAYj7I,EAAM6I,QAClB2I,EAAK,IAAIrc,MAAM8lJ,GACfv3D,EAAM1jF,EAAM0jF,IACZrH,EAAiBwrQ,EAAa7nV,EAAOsX,EAAYuR,EAAIK,GACrD4+T,GAAkB,EAGtBC,EAAgBzwU,EAAYtX,GAE5B,IAEIw0N,EAFAwzH,EAAQ,IACRC,EAAQ,IAEZ,GAAG5rQ,EACCt0E,EAAI+gL,WAAWzsG,EAAem/B,aAAcx7G,EAAMgmF,gBAClD4hQ,EAAqC,MAA/BvrQ,EAAejjF,YAGlBwuV,GACCK,EAAQ,IACRzzH,EAAU,MAEVwzH,EAAQ,IACRxzH,EAAU,KAEd7nB,EAA2C,gBAA7BtwH,EAAewB,cAC1B,CACH,IAAI9c,EAAOP,EAAexgE,EAAOi7I,GACjCw6E,EAAkB11N,EAAIC,EAAO6oB,EAAIK,EAAItpB,EAAG2F,EAAGw7D,GAG/C,IAAI3vE,EAAI,EAAGA,EAAI6pJ,EAAW7pJ,IAAK,CAC3B,IAAIsgB,EAAMF,EAAGpgB,GAAK,GACd82V,EAAS3nV,EAAUX,EAAExO,IACrB+2V,EAAS5nV,EAAUgF,EAAEnU,IACtB82V,GAAUC,GACTz2U,EAAIs2U,GAASpoV,EAAExO,GACfsgB,EAAIu2U,GAAS1iV,EAAEnU,IACTirF,IAAmBurQ,EAAMM,EAASC,IAIxCz2U,EAAI8iN,GAAWozH,EAAMhoV,EAAExO,GAAKmU,EAAEnU,GAC9BsgB,EAAIyzC,KAAM,EACPwnJ,GACCj7L,EAAIve,EAAI8vC,EACR6kT,GAAkB,GAElBp2U,EAAIve,EAAI,GAGZue,EAAIs2U,GAASt2U,EAAIu2U,GAAShlT,EAG3BygD,IACChyE,EAAItU,GAAK4V,OAAO0wE,EAAItyF,KAQ5B,GAJAq2E,EAAiBj2D,EAAIxR,GACrBi3D,EAAel3D,EAAIC,GACnB86I,EAActpI,EAAIxR,GAEfq8E,EAAgB,CAGfjrF,EAAI,EACJ,MAAMA,EAAIogB,EAAGjc,OACNic,EAAGpgB,GAAGojO,KAAavxL,EAClBzxB,EAAGxP,OAAO5Q,EAAG,GACVA,IAOX,GAJA2W,EAAI3P,KAAKoZ,GAAI,SAASvd,EAAGC,GACrB,OAAQD,EAAEugO,GAAWtgO,EAAEsgO,IAAcvgO,EAAE7C,EAAI8C,EAAE9C,KAG9C02V,EAAiB,CAEhB12V,EAAI,EACJ,MAAMA,EAAIogB,EAAGjc,OAAS,GAAKic,EAAGpgB,GAAG+zD,IAC7B/zD,IAIJ,IAFA+2C,EAAO32B,EAAGpgB,GAAG+B,EACTg1C,IAAMA,EAAO32B,EAAGpgB,GAAG+B,EAAI,GACvB6C,EAAI,EAAGA,EAAI5E,EAAG4E,IACdwb,EAAGxb,GAAG7C,EAAIg1C,EAGdhyC,EAAIqb,EAAGjc,OAAS,EAChB,MAAMY,EAAI/E,GAAKogB,EAAGrb,GAAGgvD,IACjBhvD,IAGJ,IADAgyC,EAAO32B,EAAGrb,GAAGhD,EACT6C,EAAIwb,EAAGjc,OAAS,EAAGS,EAAIG,EAAGH,IAC1Bwb,EAAGxb,GAAG7C,EAAIg1C,EAGd,MAAM/2C,EAAI+E,EAEN,GADA/E,IACGogB,EAAGpgB,GAAG+zD,IAAK,CACVnvD,EAAI5E,EAAI,EACR,MAAMogB,EAAGxb,GAAGmvD,IACRnvD,IAEJ,IAAIuyE,EAAO/2D,EAAGpgB,EAAI,GAAGojO,GACjBvqL,EAAQz4B,EAAGpgB,EAAI,GAAG+B,EAClB3B,GAAKggB,EAAGxb,GAAG7C,EAAI82C,IAAUz4B,EAAGxb,GAAGw+N,GAAWjsJ,GAC9C,MAAMn3E,EAAI4E,EACNwb,EAAGpgB,GAAG+B,EAAI82C,GAASz4B,EAAGpgB,GAAGojO,GAAWjsJ,GAAQ/2E,EAC5CJ,MAOpB,OAAOogB,EAGX,SAASikN,EAAkB11N,EAAIC,EAAO6oB,EAAIK,EAAItpB,EAAG2F,EAAGw7D,GAChD,IAAIk6E,EAAYj7I,EAAM6I,QAClByO,EAAavX,EAAG+mB,YAChBshU,EAAMv/T,EAAGqF,IACTm6T,EAAMn/T,EAAGgF,IACTo6T,EAAehxU,EAAWixU,cAAcC,EAAkBxoV,MAAYA,EAAM+mB,IAC5E0hU,GAAoBZ,EAAa7nV,EAAOsX,EAAYuR,EAAIK,IAAO,IAAI9vB,YACnE6J,EAAOjD,EAAMiD,KAGjB4lB,EAAGmX,UAAY,EACf9W,EAAG8W,UAAY,EAIf,IAAI0oT,EAAW,CAACvzQ,QAAQ,GACpBwzQ,EAAW,CAACxzQ,QAAQ,GAErBpU,IACC2nR,EAAS3nR,KAAO4nR,EAAS5nR,KAAOA,GAKpC,IAAIxnC,EAAY0hH,EAAY,GAAMr7I,EAAE,KAAOA,EAAEq7I,EAAY,IAAQ11I,EAAE,KAAOA,EAAE01I,EAAY,GAErF1hH,IACW,YAATt2B,GACU,YAATA,IAAwBqlV,GAAqC,MAArBG,IAK1CC,EAASpzQ,QAAS,GACVt1E,EAAMuuP,SAAW,IAAIhrP,SAGf,YAATN,GAA+B,YAATA,IACrBi0D,EAASC,WAAWn3D,IAAWk3D,EAAShvC,QAAQloB,MAEtD0oV,EAASvzQ,QAAS,EAClBuzQ,EAAS3nR,KAAO,GAGjBxnC,IACW,YAATt2B,GACU,YAATA,IAAwBqlV,GAAqC,MAArBG,IAM1CE,EAASrzQ,QAAS,EACH,YAATryE,GAA+B,YAATA,IAG5B0lV,EAASxzQ,QAAS,GAInBizQ,IAAKpoV,EAAMohC,UAAUgnT,GAAOtgV,EAAKu5B,aAAaxY,EAAIjpB,EAAG8oV,IACrDL,IAAKroV,EAAMohC,UAAUinT,GAAOvgV,EAAKu5B,aAAanY,EAAI3jB,EAAGojV,IAG5D,SAASnoR,EAAexgE,EAAOi7I,GAC3B,GAAI/jF,EAASC,WAAWn3D,GAAxB,CAIA,IAEI4oV,EAFAh/T,EAAS5pB,EAAM4pB,OACfu0D,EAAU,KAAOn+E,EAAM4pB,OAAOu0D,SAAW,GAa7C,GATIyqQ,EADyB,SAA1B5oV,EAAM4pB,OAAOy0D,SACE,SAASnoF,GACnB,OAAOiB,KAAKqC,IAAIrC,KAAKuD,MAAMxE,GAAK,GAAKioF,GAAU,IAGrC,SAASjoF,GACnB,OAAOiB,KAAKqC,KAAKtD,GAAK,GAAKioF,EAAS,IAIzCp2E,EAAIs7D,oBAAoBz5C,EAAOxU,MAAO,CAErC,IAAIqC,EAAK,CAAC/S,KAAM,UAChBoD,EAAKw7B,WAAW7rB,GAKhB,IAHA,IAAItkB,EAAIskB,EAAG6oB,aAAatgC,EAAM4pB,OAAQ,QAElCi/T,EAAU,IAAI1zV,MAAM8lJ,GAChB7pJ,EAAI,EAAGA,EAAI6pJ,EAAW7pJ,IAC1By3V,EAAQz3V,GAAKw3V,EAAYz1V,EAAE/B,IAE/B,OAAOy3V,EAEP,OAAOD,EAAYh/T,EAAOxU,OAWlC,SAAS2yU,EAAgBzwU,EAAYtX,GACjC,IAAIwC,EAAQgmV,EAAkBxoV,GAC1BsoV,EAAehxU,EAAWixU,cAC1BD,EAAa9lV,KAAQ8lV,EAAa9lV,GAASxC,EAAM+mB,KAGzD,SAASyhU,EAAkBxoV,GACvB,IAAIm1N,EAAan1N,EAAMgD,WACvB,OAAOhD,EAAMoY,MAAQpY,EAAMqY,MAAQrY,EAAM0E,MACpCywN,EAAa,IAAMA,EAAa,IAGzC,SAAS0yH,EAAa7nV,EAAOsX,EAAYuR,EAAIK,GACzC,IAAIisM,EAAan1N,EAAMgD,WACvB,GAAImyN,EAAJ,CACA,IAAIs+E,EAAYn8R,EAAWw9M,kBAAkBjsM,EAAGqF,IAAMhF,EAAGgF,KAAKinM,GAC1D2zH,EAAoC,MAA1Br1C,EAAUr6S,YAAsB8vB,EAAKL,EAInD,MAAoB,WAAjBigU,EAAQpkV,MAAsC,QAAjBokV,EAAQpkV,KAAuB+uS,OAA/D,GAGJ7iT,EAAOD,QAAU,CACbsT,KAAMA,EACNu8D,eAAgBA,EAChBi1J,kBAAmBA,EACnBsyH,gBAAiBA,EACjBF,aAAcA,I,oCC9QlB,IAAInrK,EAAa,EAAQ,QACrBqsK,EAAc,EAAQ,QAE1Bn4V,EAAOD,QAAU,CACbiT,WAAY,YACZjS,KAAM,cAENunC,iBAAkB,EAAQ,QAC1B+vB,qBAAsB,EAAQ,QAC9B0zH,gBAAiB,EAAQ,OAAR,CAAoD,eAErEl2D,cAAe,EAAQ,QACvBnpH,KAAMo/K,EAAWp/K,KACjBywB,QAAS2uJ,EAAW3uJ,QACpB0tH,QAASihC,EAAWjhC,QAEpB2lC,eAAgB2nK,EAAY3nK,eAC5BI,QAASunK,EAAYvnK,QAErBwnK,cAAe,EAAQ,U,kCCpB3B,IAAI/9T,EAAW,EAAQ,QACnBljB,EAAM,EAAQ,QAEdmxB,EAAmB,EAAQ,QAC3B4rD,EAA0B,EAAQ,QAClCC,EAAyB,EAAQ,QACjCC,EAA0B,EAAQ,QAClCC,EAA8B,EAAQ,QACtCC,EAAyB,EAAQ,QACjC5hD,EAAa,EAAQ,QAoBzB1yC,EAAOD,QAAU,SAA4BszC,EAAaC,EAAcM,EAAQpoC,EAASysD,GACrF,IAAI0zH,EAASngL,EAAQmgL,OACjB9pK,EAAOrW,EAAQqW,MAAQ,GACvB29R,EAAah0S,EAAQg0S,YAAc,GAEnC7sS,EAAUihC,EAAO,WAAYpoC,EAAQ6sV,aAErC33S,EAASpN,EAAax/B,KAE1B,GAAc,SAAX4sC,EAAmB,CAClB,IAAIyZ,EAAyB9/B,EAASsa,mBAAmB,YAAa,kBACtEwlB,EAAuB9mB,EAAaC,EAAc,WAAY9nC,EAAQuO,UAG1E24B,EAAWY,EAAc2kB,GAEzB,IAAIqgS,GAAiBhlT,EAAasiD,aAAaviD,EAAY76B,OACxD8/U,GAAiB9sV,EAAQ+sV,cAAaD,EAAgB,YACzD,IAAI3iQ,EAAY/hD,EAAO,YAAa0kT,IACjC3iQ,GAAyB,WAAXj1C,GAAkC,MAAXA,GAAiB9M,EAAO,aAEhEA,EAAO,SACPN,EAAauiD,aAEbxB,EAA4BhhD,EAAaC,EAAcM,EAAQpoC,GAEjD,aAAXk1C,GAA0Bl1C,EAAQgtV,SAAS5kT,EAAO,eAErD,IAAI6hD,EAAY7hD,EAAO,SAKnB8hD,EAAiBD,IAAcntD,EAAiBz8B,MAAMqY,KAAQuxE,EAAY5zE,EAAKhW,MAE/E69C,EAAY81P,EAAW5+M,OAAS3oC,EAAUzS,WAAWmmI,GAGzD,GADAv3F,EAAwB/gD,EAAaC,EAAcM,EAAQ8M,EAAQl1C,EAAS,CAAC+hP,KAAM,KAC/E56O,EAAS,OAAO2gC,EAEpBM,EAAO,aAAc8V,GACrBvyC,EAAI4+E,WAAWniD,EAAQ,aAAc,CACjCryB,OAAQM,EAAKN,OACbiD,KAAMje,KAAK45B,MAAkB,IAAZte,EAAK2C,MACtB3Y,MAAO6pF,IAGXxB,EAAwB7gD,EAAaC,EAAcM,EAAQ8M,GAC3D0zC,EAAwB/gD,EAAaC,EAAcM,EAAQ8M,EAAQl1C,EAAS,CAAC+hP,KAAM,IACnFp5J,EAAuB9gD,EAAaC,EAAcM,EAAQpoC,GAC1D8oF,EAAuBjhD,EAAaC,EAAcM,EAAQ,CACtD6hD,UAAWA,EACXf,QAASlpF,EAAQkpF,QACjB6B,SAAU/qF,EAAQ+qF,SAClB7qF,WAAY48B,KAGbgL,EAAaiT,UAAYjT,EAAa/7B,QAAOq8B,EAAO,UAEpDpoC,EAAQykD,YAAYrc,EAAO,cAE9B,IAMQ6kT,EANJC,EAAwC,kBAAtBplT,EAAax/B,KAE/BtI,EAAQmtV,WACe,aAAtBrlT,EAAax/B,OAAuB4kV,IACpCplT,EAAa/7B,QAAS+7B,EAAakf,WAGjCkmS,IAAiBD,EAAc,cAClC7kT,EAAO,UAAW6kT,IAGtB,GAAGC,EAAiB,CAChB,IAAIE,EAAehlT,EAAO,gBACvBglT,IACChlT,EAAO,gBACPA,EAAO,iBAIf,OAAON,I,oCC7GX,IAAIn8B,EAAM,EAAQ,QAGlBnX,EAAOD,QAAU,SAA0B6gB,EAAIxR,GAC3C,IAAI,IAAI5O,EAAI,EAAGA,EAAIogB,EAAGjc,OAAQnE,IAAKogB,EAAGpgB,GAAGA,EAAIA,EAE7C2W,EAAIq1E,WAAWp9E,EAAMS,KAAM+Q,EAAI,MAC/BzJ,EAAIq1E,WAAWp9E,EAAM6V,UAAWrE,EAAI,OAEpC,IAAIoY,EAAS5pB,EAAM4pB,OACnB,GAAGA,EAAQ,CACP7hB,EAAIq1E,WAAWxzD,EAAO5tB,QAASwV,EAAI,MACnCzJ,EAAIq1E,WAAWxzD,EAAOntB,MAAO+U,EAAI,MAEjC,IAAIgsE,EAAa5zD,EAAOC,KACrB2zD,IACCz1E,EAAIq1E,WAAWI,EAAW/gF,MAAO+U,EAAI,OACrCzJ,EAAIu1E,uBAAuBE,EAAW7qE,MAAOnB,EAAI,W,oCCzB7D1f,OAAOC,eAAepB,EAAS,aAAc,CAAE0B,OAAO,IAEtD,IAAIk0H,EAAU,EAAQ,QAmCtB,SAASijG,EAAU/0J,EAASqF,EAAU2vR,GAElC,GAAgB,OAAZh1R,EAuBJ,IAtBA,IAAIz+D,EAAGG,EAAG9E,EAAGyiE,EAAU41R,EAAO31R,EAC1B41R,EAGAC,EAFAC,EAAa,EACbC,EAAa,EAEbplV,EAAO+vD,EAAQ/vD,KACfqlV,EAA+B,sBAATrlV,EACtBslV,EAAqB,YAATtlV,EACZu5D,EAAO8rR,EAAsBt1R,EAAQnB,SAAS/9D,OAAS,EAclD00V,EAAe,EAAGA,EAAehsR,EAAMgsR,IAAgB,CAC5DN,EAA2BI,EAAsBt1R,EAAQnB,SAAS22R,GAAcn2R,SAC3Ek2R,EAAYv1R,EAAQX,SAAWW,EACpCm1R,IAAuB,GAA6D,uBAAjCD,EAAwBjlV,KAC3EglV,EAAQE,EAAuBD,EAAwB35G,WAAWz6O,OAAS,EAE3E,IAAK,IAAI20V,EAAY,EAAGA,EAAYR,EAAOQ,IAAa,CACpD,IAAIC,EAAoB,EACpBC,EAAgB,EAKpB,GAJAt2R,EAAW81R,EACPD,EAAwB35G,WAAWk6G,GAAaP,EAGnC,OAAb71R,EAAJ,CACAC,EAASD,EAASE,YAClB,IAAIq2R,EAAWv2R,EAASpvD,KAIxB,OAFAmlV,GAAcJ,GAAkC,YAAbY,GAAuC,iBAAbA,EAAoC,EAAJ,EAErFA,GACR,KAAK,KACD,MACJ,IAAK,QACD,IAAqF,IAAjFvwR,EAAS/F,EAAQ+1R,EAAYG,EAAcE,EAAmBC,GAA0B,OAAO,EACnGN,IACAK,IACA,MACJ,IAAK,aACL,IAAK,aACD,IAAKn0V,EAAI,EAAGA,EAAI+9D,EAAOx+D,OAAQS,IAAK,CAChC,IAAwF,IAApF8jE,EAAS/F,EAAO/9D,GAAI8zV,EAAYG,EAAcE,EAAmBC,GAA0B,OAAO,EACtGN,IACiB,eAAbO,GAA2BF,IAElB,eAAbE,GAA2BF,IAC/B,MACJ,IAAK,UACL,IAAK,kBACD,IAAKn0V,EAAI,EAAGA,EAAI+9D,EAAOx+D,OAAQS,IAAK,CAChC,IAAKG,EAAI,EAAGA,EAAI49D,EAAO/9D,GAAGT,OAASs0V,EAAY1zV,IAAK,CAChD,IAA2F,IAAvF2jE,EAAS/F,EAAO/9D,GAAGG,GAAI2zV,EAAYG,EAAcE,EAAmBC,GAA0B,OAAO,EACzGN,IAEa,oBAAbO,GAAgCF,IACnB,YAAbE,GAAwBD,IAEf,YAAbC,GAAwBF,IAC5B,MACJ,IAAK,eACD,IAAKn0V,EAAI,EAAGA,EAAI+9D,EAAOx+D,OAAQS,IAAK,CAEhC,IADAo0V,EAAgB,EACXj0V,EAAI,EAAGA,EAAI49D,EAAO/9D,GAAGT,OAAQY,IAAK,CACnC,IAAK9E,EAAI,EAAGA,EAAI0iE,EAAO/9D,GAAGG,GAAGZ,OAASs0V,EAAYx4V,IAAK,CACnD,IAA8F,IAA1FyoE,EAAS/F,EAAO/9D,GAAGG,GAAG9E,GAAIy4V,EAAYG,EAAcE,EAAmBC,GAA0B,OAAO,EAC5GN,IAEJM,IAEJD,IAEJ,MACJ,IAAK,qBACD,IAAKn0V,EAAI,EAAGA,EAAI89D,EAASk8K,WAAWz6O,OAAQS,IACxC,IAAsE,IAAlEwzN,EAAU11J,EAASk8K,WAAWh6O,GAAI8jE,EAAU2vR,GAA6B,OAAO,EACxF,MACJ,QACI,MAAM,IAAIj0V,MAAM,6BAwDhC,SAAS80V,EAAY71R,EAASqF,EAAUywR,EAAcd,GAClD,IAAI39I,EAAgBy+I,EAKpB,OAJA/gI,EAAU/0J,GAAS,SAAU+1R,EAAcV,EAAYG,EAAcE,EAAmBC,GAChCt+I,EAAjC,IAAfg+I,QAAqC91U,IAAjBu2U,EAA4CC,EAC/C1wR,EAASgyI,EAAe0+I,EAAcV,EAAYG,EAAcE,EAAmBC,KACzGX,GACI39I,EA6BX,SAAS2+I,EAASh2R,EAASqF,GACvB,IAAI1oE,EACJ,OAAQqjE,EAAQ/vD,MAChB,IAAK,oBACD,IAAKtT,EAAI,EAAGA,EAAIqjE,EAAQnB,SAAS/9D,OAAQnE,IACrC,IAAoD,IAAhD0oE,EAASrF,EAAQnB,SAASliE,GAAGqiE,WAAYriE,GAAc,MAE/D,MACJ,IAAK,UACD0oE,EAASrF,EAAQhB,WAAY,GAC7B,OAiDR,SAASi3R,EAAWj2R,EAASqF,EAAUywR,GACnC,IAAIz+I,EAAgBy+I,EAKpB,OAJAE,EAASh2R,GAAS,SAAUk2R,EAAmBV,GACWn+I,EAAjC,IAAjBm+I,QAAuCj2U,IAAjBu2U,EAA4CI,EACjD7wR,EAASgyI,EAAe6+I,EAAmBV,MAE7Dn+I,EA8BX,SAAS8+I,EAAYn2R,EAASqF,GAC1B,GAAqB,YAAjBrF,EAAQ/vD,KACRo1D,EAASrF,EAAS,QACf,GAAqB,sBAAjBA,EAAQ/vD,KACf,IAAK,IAAItT,EAAI,EAAGA,EAAIqjE,EAAQnB,SAAS/9D,OAAQnE,IACzC,IAAyC,IAArC0oE,EAASrF,EAAQnB,SAASliE,GAAIA,GAAc,MA+C5D,SAASy5V,EAAcp2R,EAASqF,EAAUywR,GACtC,IAAIz+I,EAAgBy+I,EAKpB,OAJAK,EAAYn2R,GAAS,SAAUq2R,EAAgBb,GACWn+I,EAAjC,IAAjBm+I,QAAuCj2U,IAAjBu2U,EAA4CO,EACjDhxR,EAASgyI,EAAeg/I,EAAgBb,MAE1Dn+I,EAkBX,SAASi/I,EAASt2R,GACd,IAAIV,EAAS,GAIb,OAHAy1J,EAAU/0J,GAAS,SAAUp9B,GACzB08B,EAAO1/D,KAAKgjC,MAET08B,EAmCX,SAASi3R,EAASv2R,EAASqF,GACvB,IAAI1oE,EAAG4E,EAAGilB,EAAG64C,EAAU41R,EACnBC,EACAC,EACAqB,EACAC,EACAC,EACAlB,EAAe,EACfF,EAAuC,sBAAjBt1R,EAAQ/vD,KAC9BslV,EAA6B,YAAjBv1R,EAAQ/vD,KACpBu5D,EAAO8rR,EAAsBt1R,EAAQnB,SAAS/9D,OAAS,EAc3D,IAAKnE,EAAI,EAAGA,EAAI6sE,EAAM7sE,IAAK,CAavB,IAXAu4V,EAA2BI,EAAsBt1R,EAAQnB,SAASliE,GAAG0iE,SAChEk2R,EAAYv1R,EAAQX,SAAWW,EACpCw2R,EAAqBlB,EAAsBt1R,EAAQnB,SAASliE,GAAGqiE,WAC1Du2R,EAAYv1R,EAAQhB,WAAa,GACtCy3R,EAAenB,EAAsBt1R,EAAQnB,SAASliE,GAAG02J,KACpDkiM,EAAYv1R,EAAQqzF,UAAO9zI,EAChCm3U,EAAapB,EAAsBt1R,EAAQnB,SAASliE,GAAGgM,GAClD4sV,EAAYv1R,EAAQr3D,QAAK4W,EAC9B41U,IAAuB,GAA6D,uBAAjCD,EAAwBjlV,KAC3EglV,EAAQE,EAAuBD,EAAwB35G,WAAWz6O,OAAS,EAEtE0lB,EAAI,EAAGA,EAAIyuU,EAAOzuU,IAKnB,GAJA64C,EAAW81R,EACPD,EAAwB35G,WAAW/0N,GAAK0uU,EAG3B,OAAb71R,EAIJ,OAAQA,EAASpvD,MACjB,IAAK,QACL,IAAK,aACL,IAAK,aACL,IAAK,UACL,IAAK,kBACL,IAAK,eACD,IAAoF,IAAhFo1D,EAAShG,EAAUm2R,EAAcgB,EAAmBC,EAAaC,GAAsB,OAAO,EAClG,MAEJ,IAAK,qBACD,IAAKn1V,EAAI,EAAGA,EAAI89D,EAASk8K,WAAWz6O,OAAQS,IACxC,IAAkG,IAA9F8jE,EAAShG,EAASk8K,WAAWh6O,GAAIi0V,EAAcgB,EAAmBC,EAAaC,GAAsB,OAAO,EAEpH,MAEJ,QACI,MAAM,IAAI31V,MAAM,8BApBhB,IAAgF,IAA5EskE,EAAS,KAAMmwR,EAAcgB,EAAmBC,EAAaC,GAAsB,OAAO,EAwBtGlB,KAoDR,SAASvyI,EAAWjjJ,EAASqF,EAAUywR,GACnC,IAAIz+I,EAAgBy+I,EAKpB,OAJAS,EAASv2R,GAAS,SAAU22R,EAAiBnB,EAAcgB,EAAmBC,EAAaC,GACjCr/I,EAAjC,IAAjBm+I,QAAuCj2U,IAAjBu2U,EAA4Ca,EACjDtxR,EAASgyI,EAAes/I,EAAiBnB,EAAcgB,EAAmBC,EAAaC,MAEzGr/I,EA+BX,SAASu/I,EAAY52R,EAASqF,GAC1BkxR,EAASv2R,GAAS,SAAUX,EAAUm2R,EAAcx2R,EAAYq0F,EAAM1qJ,GAElE,IAUIitV,EAVA3lV,EAAqB,OAAbovD,EAAqB,KAAOA,EAASpvD,KACjD,OAAQA,GACR,KAAK,KACL,IAAK,QACL,IAAK,aACL,IAAK,UACD,OAA+F,IAA3Fo1D,EAASysD,EAAQ3yD,QAAQE,EAAUL,EAAY,CAACq0F,KAAMA,EAAM1qJ,GAAIA,IAAM6sV,EAAc,SACxF,EAMJ,OAAQvlV,GACR,IAAK,aACD2lV,EAAW,QACX,MACJ,IAAK,kBACDA,EAAW,aACX,MACJ,IAAK,eACDA,EAAW,UACX,MAGJ,IAAK,IAAIF,EAAoB,EAAGA,EAAoBr2R,EAASE,YAAYz+D,OAAQ40V,IAAqB,CAClG,IAAIh4B,EAAar+P,EAASE,YAAYm2R,GAClCxyI,EAAO,CACPjzM,KAAM2lV,EACNr2R,YAAam+P,GAEjB,IAAqF,IAAjFr4P,EAASysD,EAAQ3yD,QAAQ+jJ,EAAMlkJ,GAAaw2R,EAAcE,GAA8B,OAAO,MAiD/G,SAASmB,EAAc72R,EAASqF,EAAUywR,GACtC,IAAIz+I,EAAgBy+I,EAKpB,OAJAc,EAAY52R,GAAS,SAAUq2R,EAAgBb,EAAcE,GACwBr+I,EAA5D,IAAjBm+I,GAA4C,IAAtBE,QAA4Cn2U,IAAjBu2U,EAA4CO,EAC5EhxR,EAASgyI,EAAeg/I,EAAgBb,EAAcE,MAExEr+I,EAwCX,SAASy/I,EAAY92R,EAASqF,GAC1BuxR,EAAY52R,GAAS,SAAUb,EAASq2R,EAAcE,GAClD,IAAIqB,EAAe,EAGnB,GAAK53R,EAAQE,SAAb,CAEA,IAAIpvD,EAAOkvD,EAAQE,SAASpvD,KAC5B,GAAa,UAATA,GAA6B,eAATA,EAAxB,CAGA,IAAI+mV,EACAC,EAAuB,EACvBC,EAAqB,EACrBC,EAAgB,EACpB,OAcO,IAdHpiI,EAAU51J,GAAS,SAAU42R,EAAcV,EAAY+B,EAAmBC,EAAqB1B,GAE/F,QAAuBp2U,IAAnBy3U,GAAgCxB,EAAeyB,GAAwBI,EAAsBH,GAAsBvB,EAAgBwB,EAMnI,OALAH,EAAiBjB,EACjBkB,EAAuBzB,EACvB0B,EAAqBG,EACrBF,EAAgBxB,OAChBoB,EAAe,GAGnB,IAAIO,EAAiBxlO,EAAQ+a,WAAW,CAACmqN,EAAgBjB,GAAe52R,EAAQH,YAChF,IAA+F,IAA3FqG,EAASiyR,EAAgB9B,EAAcE,EAAmBC,EAAeoB,GAAyB,OAAO,EAC7GA,IACAC,EAAiBjB,WAbrB,OAuER,SAASwB,EAAcv3R,EAASqF,EAAUywR,GACtC,IAAIz+I,EAAgBy+I,EAChBvlC,GAAU,EAMd,OALAumC,EAAY92R,GAAS,SAAUs3R,EAAgB9B,EAAcE,EAAmBC,EAAeoB,GACtC1/I,GAArC,IAAZk5G,QAAsChxS,IAAjBu2U,EAA4CwB,EAChDjyR,EAASgyI,EAAeigJ,EAAgB9B,EAAcE,EAAmBC,EAAeoB,GAC7GxmC,GAAU,KAEPl5G,EAiCX,SAASmgJ,EAASx3R,EAASqF,GAEvB,IAAKrF,EAAS,MAAM,IAAIj/D,MAAM,uBAE9B61V,EAAY52R,GAAS,SAAUb,EAASq2R,EAAcE,GAClD,GAAyB,OAArBv2R,EAAQE,SAAZ,CACA,IAAIpvD,EAAOkvD,EAAQE,SAASpvD,KACxBqvD,EAASH,EAAQE,SAASE,YAC9B,OAAQtvD,GACR,IAAK,aACD,IAAiE,IAA7Do1D,EAASlG,EAASq2R,EAAcE,EAAmB,EAAG,GAAc,OAAO,EAC/E,MACJ,IAAK,UACD,IAAK,IAAIC,EAAgB,EAAGA,EAAgBr2R,EAAOx+D,OAAQ60V,IACvD,IAAgI,IAA5HtwR,EAASysD,EAAQ+a,WAAWvtE,EAAOq2R,GAAgBx2R,EAAQH,YAAaw2R,EAAcE,EAAmBC,GAA0B,OAAO,EAElJ,WAmDZ,SAAS8B,EAAWz3R,EAASqF,EAAUywR,GACnC,IAAIz+I,EAAgBy+I,EAKpB,OAJA0B,EAASx3R,GAAS,SAAUzzC,EAAaipU,EAAcE,EAAmBC,GAChBt+I,EAAjC,IAAjBm+I,QAAuCj2U,IAAjBu2U,EAA4CvpU,EACjD84C,EAASgyI,EAAe9qL,EAAaipU,EAAcE,EAAmBC,MAExFt+I,EAqCX,SAASqgJ,EAAY13R,EAASr4D,GAG1B,GADAA,EAAUA,GAAW,IAChBmqH,EAAQ2uD,SAAS94K,GAAU,MAAM,IAAI5G,MAAM,sBAChD,IAOIs+D,EAPAm2R,EAAe7tV,EAAQ6tV,cAAgB,EACvCE,EAAoB/tV,EAAQ+tV,mBAAqB,EACjDC,EAAgBhuV,EAAQguV,eAAiB,EACzCoB,EAAepvV,EAAQovV,cAAgB,EAGvC/3R,EAAar3D,EAAQq3D,WAGzB,OAAQgB,EAAQ/vD,MAChB,IAAK,oBACGulV,EAAe,IAAGA,EAAex1R,EAAQnB,SAAS/9D,OAAS00V,GAC/Dx2R,EAAaA,GAAcgB,EAAQnB,SAAS22R,GAAcx2R,WAC1DK,EAAWW,EAAQnB,SAAS22R,GAAcn2R,SAC1C,MACJ,IAAK,UACDL,EAAaA,GAAcgB,EAAQhB,WACnCK,EAAWW,EAAQX,SACnB,MACJ,IAAK,QACL,IAAK,aACD,OAAO,KACX,IAAK,aACL,IAAK,UACL,IAAK,kBACL,IAAK,eACDA,EAAWW,EACX,MACJ,QACI,MAAM,IAAIj/D,MAAM,sBAIpB,GAAiB,OAAbs+D,EAAmB,OAAO,KAC9B,IAAIC,EAASD,EAASE,YACtB,OAAQF,EAASpvD,MACjB,IAAK,QACL,IAAK,aACD,OAAO,KACX,IAAK,aAED,OADI8mV,EAAe,IAAGA,EAAez3R,EAAOx+D,OAASi2V,EAAe,GAC7DjlO,EAAQ+a,WAAW,CAACvtE,EAAOy3R,GAAez3R,EAAOy3R,EAAe,IAAK/3R,EAAYr3D,GAC5F,IAAK,UAGD,OAFIguV,EAAgB,IAAGA,EAAgBr2R,EAAOx+D,OAAS60V,GACnDoB,EAAe,IAAGA,EAAez3R,EAAOq2R,GAAe70V,OAASi2V,EAAe,GAC5EjlO,EAAQ+a,WAAW,CAACvtE,EAAOq2R,GAAeoB,GAAez3R,EAAOq2R,GAAeoB,EAAe,IAAK/3R,EAAYr3D,GAC1H,IAAK,kBAGD,OAFI+tV,EAAoB,IAAGA,EAAoBp2R,EAAOx+D,OAAS40V,GAC3DqB,EAAe,IAAGA,EAAez3R,EAAOo2R,GAAmB50V,OAASi2V,EAAe,GAChFjlO,EAAQ+a,WAAW,CAACvtE,EAAOo2R,GAAmBqB,GAAez3R,EAAOo2R,GAAmBqB,EAAe,IAAK/3R,EAAYr3D,GAClI,IAAK,eAID,OAHI+tV,EAAoB,IAAGA,EAAoBp2R,EAAOx+D,OAAS40V,GAC3DC,EAAgB,IAAGA,EAAgBr2R,EAAOo2R,GAAmB50V,OAAS60V,GACtEoB,EAAe,IAAGA,EAAez3R,EAAOo2R,GAAmBC,GAAe70V,OAASi2V,EAAe,GAC/FjlO,EAAQ+a,WAAW,CAACvtE,EAAOo2R,GAAmBC,GAAeoB,GAAez3R,EAAOo2R,GAAmBC,GAAeoB,EAAe,IAAK/3R,EAAYr3D,GAEhK,MAAM,IAAI5G,MAAM,sBAoCpB,SAAS42V,EAAU33R,EAASr4D,GAGxB,GADAA,EAAUA,GAAW,IAChBmqH,EAAQ2uD,SAAS94K,GAAU,MAAM,IAAI5G,MAAM,sBAChD,IAOIs+D,EAPAm2R,EAAe7tV,EAAQ6tV,cAAgB,EACvCE,EAAoB/tV,EAAQ+tV,mBAAqB,EACjDC,EAAgBhuV,EAAQguV,eAAiB,EACzCN,EAAa1tV,EAAQ0tV,YAAc,EAGnCr2R,EAAar3D,EAAQq3D,WAGzB,OAAQgB,EAAQ/vD,MAChB,IAAK,oBACGulV,EAAe,IAAGA,EAAex1R,EAAQnB,SAAS/9D,OAAS00V,GAC/Dx2R,EAAaA,GAAcgB,EAAQnB,SAAS22R,GAAcx2R,WAC1DK,EAAWW,EAAQnB,SAAS22R,GAAcn2R,SAC1C,MACJ,IAAK,UACDL,EAAaA,GAAcgB,EAAQhB,WACnCK,EAAWW,EAAQX,SACnB,MACJ,IAAK,QACL,IAAK,aACD,OAAO,KACX,IAAK,aACL,IAAK,UACL,IAAK,kBACL,IAAK,eACDA,EAAWW,EACX,MACJ,QACI,MAAM,IAAIj/D,MAAM,sBAIpB,GAAiB,OAAbs+D,EAAmB,OAAO,KAC9B,IAAIC,EAASD,EAASE,YACtB,OAAQF,EAASpvD,MACjB,IAAK,QACD,OAAO6hH,EAAQ9vH,MAAMs9D,EAAQN,EAAYr3D,GAC7C,IAAK,aAED,OADI+tV,EAAoB,IAAGA,EAAoBp2R,EAAOx+D,OAAS40V,GACxD5jO,EAAQ9vH,MAAMs9D,EAAOo2R,GAAoB12R,EAAYr3D,GAChE,IAAK,aAED,OADI0tV,EAAa,IAAGA,EAAa/1R,EAAOx+D,OAASu0V,GAC1CvjO,EAAQ9vH,MAAMs9D,EAAO+1R,GAAar2R,EAAYr3D,GACzD,IAAK,UAGD,OAFIguV,EAAgB,IAAGA,EAAgBr2R,EAAOx+D,OAAS60V,GACnDN,EAAa,IAAGA,EAAa/1R,EAAOq2R,GAAe70V,OAASu0V,GACzDvjO,EAAQ9vH,MAAMs9D,EAAOq2R,GAAeN,GAAar2R,EAAYr3D,GACxE,IAAK,kBAGD,OAFI+tV,EAAoB,IAAGA,EAAoBp2R,EAAOx+D,OAAS40V,GAC3DL,EAAa,IAAGA,EAAa/1R,EAAOo2R,GAAmB50V,OAASu0V,GAC7DvjO,EAAQ9vH,MAAMs9D,EAAOo2R,GAAmBL,GAAar2R,EAAYr3D,GAC5E,IAAK,eAID,OAHI+tV,EAAoB,IAAGA,EAAoBp2R,EAAOx+D,OAAS40V,GAC3DC,EAAgB,IAAGA,EAAgBr2R,EAAOo2R,GAAmB50V,OAAS60V,GACtEN,EAAa,IAAGA,EAAa/1R,EAAOo2R,GAAmBC,GAAe70V,OAASu0V,GAC5EvjO,EAAQ9vH,MAAMs9D,EAAOo2R,GAAmBC,GAAeN,GAAar2R,EAAYr3D,GAE3F,MAAM,IAAI5G,MAAM,sBAGpB7E,EAAQ64N,UAAYA,EACpB74N,EAAQ25V,YAAcA,EACtB35V,EAAQ85V,SAAWA,EACnB95V,EAAQ+5V,WAAaA,EACrB/5V,EAAQi6V,YAAcA,EACtBj6V,EAAQk6V,cAAgBA,EACxBl6V,EAAQo6V,SAAWA,EACnBp6V,EAAQq6V,SAAWA,EACnBr6V,EAAQ+mN,WAAaA,EACrB/mN,EAAQ06V,YAAcA,EACtB16V,EAAQ26V,cAAgBA,EACxB36V,EAAQ46V,YAAcA,EACtB56V,EAAQq7V,cAAgBA,EACxBr7V,EAAQs7V,SAAWA,EACnBt7V,EAAQu7V,WAAaA,EACrBv7V,EAAQw7V,YAAcA,EACtBx7V,EAAQy7V,UAAYA,G,oCCjmCpBx7V,EAAOD,QAAU,SAAsBi6G,EAAYH,GAC/C,IAIIr5G,EAAG4E,EAJHwb,EAAKo5F,EAAWp5F,GAChBqX,EAAK+hF,EAAWxyF,MAChB8Q,EAAK0hF,EAAWvyF,MAChB3Y,EAAY,GAGhB,IAAuB,IAApB+qG,EACC,IAAIr5G,EAAI,EAAGA,EAAIogB,EAAGjc,OAAQnE,IACtB,IAAI4E,EAAI,EAAGA,GAAKwb,EAAGpgB,GAAGywC,KAAO,IAAItsC,OAAQS,IAErCwb,EAAGpgB,GAAGywC,IAAI7rC,GAAGi0B,SAAW,OAIhC,IAAI74B,EAAI,EAAGA,EAAIogB,EAAGjc,OAAQnE,IACtB,IAAI4E,EAAI,EAAGA,GAAKwb,EAAGpgB,GAAGywC,KAAO,IAAItsC,OAAQS,IAAK,CAC1C,IAAIub,EAAKC,EAAGpgB,GAAGywC,IAAI7rC,GACf4J,EAAIipB,EAAGC,IAAIvX,EAAG3R,GACd2F,EAAI2jB,EAAGJ,IAAIvX,EAAGhM,GAEfklG,EAAgB/hF,SAAS,CAAC9oB,EAAG2F,GAAI,KAAMgM,EAAGngB,EAAGw5G,IAC5ClrG,EAAUrL,KAAK,CACXod,YAAaF,EAAGngB,EAChBwO,EAAGipB,EAAGkd,IAAIx0B,EAAG3R,GACb2F,EAAG2jB,EAAG6c,IAAIx0B,EAAGhM,KAEjBgM,EAAG0Y,SAAW,GAEd1Y,EAAG0Y,SAAW,EAM9B,OAAOvqB,I,kCCnCX,IAAIqI,EAAM,EAAQ,QACduqG,EAA+B,EAAQ,QAEvCh2G,EAAa,EAAQ,QACrBmmC,EAAY,EAAQ,QAEpB9wC,EAAO8wC,EAAU9wC,KACjB06V,EAAY/vV,EAAW23G,MAU3B,SAASq4O,EAAeC,EAAUC,EAAW3jS,GACzC,SAASrkB,EAAOjrB,EAAMzE,GAClB,OAAO/M,EAAIy8B,OAAO+nT,EAAUC,EAAWlwV,EAAYid,EAAMzE,GAS7D,IANA,IAUIvR,EAVA0wG,EAAQ3B,EAA6Bi6O,EAAUC,EAAW,CAC1D76V,KAAM,QACNkiH,mBAAoBC,IAGpB24O,EAAY,EACRr7V,EAAI,EAAGA,EAAI6iH,EAAM1+G,OAAQnE,IAC1B6iH,EAAM7iH,GAAGmS,SAASkpV,IAOzB,GAFkBlpV,EAAfkpV,EAAY,EAAaD,EAAUjpV,SAAU,EACjCihC,EAAO,WAClBjhC,EAAJ,CAEAipV,EAAUE,WAAaD,EACvB,IAAIE,EAAWH,EAAUI,cAAgB7kV,EAAI8gQ,cAAc50J,GAEvD4f,EAASrvF,EAAO,WACfyvE,EAAM4f,IAAW,IAAItwH,UAASipV,EAAU34N,OAAS84N,EAAS,GAAG/pJ,QAElEp+J,EAAO,KACPA,EAAO,KACPz8B,EAAIosP,UAAUo4F,EAAUC,EAAW,CAAC,IAAK,MAEzChoT,EAAO,WACPA,EAAO,WAEPA,EAAO,OACPA,EAAO,WAEPA,EAAO,SACPA,EAAO,SACPA,EAAO,SACPA,EAAO,SAEPz8B,EAAI4+E,WAAWniD,EAAQ,OAAQqkB,EAAUp2C,MAEzC,IAAIo6U,EAAwBroT,EAAO,wBAEhCqoT,IACCroT,EAAO,wBACPA,EAAO,uBACPA,EAAO,uBACPA,EAAO,uBAEPz8B,EAAI4+E,WAAWniD,EAAQ,oBAAqBgoT,EAAU/5U,OAG1D+xB,EAAO,uBACPA,EAAO,qBAEPA,EAAO,WACPA,EAAO,iBACPA,EAAO,eACPA,EAAO,eACPA,EAAO,WACPA,EAAO,aACPA,EAAO,aACPA,EAAO,iBAGX,SAASsvE,EAAamqI,EAASC,GAC3B,SAAS15M,EAAOjrB,EAAMzE,GAClB,OAAO/M,EAAIy8B,OAAOy5M,EAASC,EAAUmuG,EAAW9yU,EAAMzE,GAG1D,IAAIvR,EAKJ,GAFOA,EAFe,SAAnB06O,EAAQ34M,QAAsBnwC,MAAM4J,QAAQk/O,EAAQ9hN,MAEtCqI,EAAO,WADV05M,EAAS36O,SAAU,EAG9BA,EAAS,CACRihC,EAAO,UACPA,EAAO,QACP,IAAIgtD,EAAQhtD,EAAO,QAAS,QAAU05M,EAASt7C,QAC/Cp+J,EAAO,QAASgtD,GAChBhtD,EAAO,YA1Ff5zC,EAAOD,QAAU,SAAyBi4D,EAAUC,GAChDypD,EAA6B1pD,EAAUC,EAAW,CAC9Cl3D,KAAMA,EACNkiH,mBAAoBy4O,M,kCCrB5B,IAAIzoS,EAAK,EAAQ,QACbwoN,EAAM,EAAQ,QAAeygF,mBAKjC,SAASC,EAAUntV,GACjB,IAAIvO,EAAIg7Q,EAAIxoN,EAAG96C,GAAGnJ,IAClB,GAAGvO,EAAI,GACL,OAAOA,EAET,IAAIyxD,EAAIupN,EAAIxoN,EAAG/6C,GAAGlJ,IAClB,OAAGkjD,EAAI,GACE,GAEFA,EAAI,GAZblyD,EAAOD,QAAUo8V,G,oCCKjB,IAAIhlV,EAAM,EAAQ,QACdy7B,EAAU,EAAQ,QAElB3D,EAAU,EAAQ,QAAkBA,QACpCmoF,EAAyB,EAAQ,QAAmBA,uBAEpDxtE,EAAiBzyC,EAAIyyC,eACrBi2B,EAAejtC,EAAQitC,aAEvBu8Q,EAAW,CACX,CAACC,KAAM,CAACrtV,EAAG,cAAe2F,EAAG,eAAgB5T,KAAM,SACnD,CAACs7V,KAAM,CAACrtV,EAAG,YAAa2F,EAAG,aAAc5T,KAAM,OAC/C,CAACs7V,KAAM,CAACrtV,EAAG,aAAc2F,EAAG,cAAe5T,KAAM,QACjD,CAACs7V,KAAM,CAACrtV,EAAG,SAAU2F,EAAG,UAAW5T,KAAM,UAGzCu7V,EAAgB,CAAC,IAAK,KAG1Bt8V,EAAOD,QAAU,SAA4BqnB,EAAUV,GACnD,IAKIwzC,EAAU1S,EAAQ2yB,EAAWoiR,EAC7B/7V,EAAG4E,EAAGG,EANNi3V,EAAa91U,EAAW2zD,kBAAoB,GAC5CoiR,EAAa,GACbC,EAAwB,GACxBC,EAAkB,GAKtB,SAAS/oT,EAAOjrB,EAAMzE,GAClB,OAAO/M,EAAIy8B,OAAOsmB,EAASrqB,OAAQqqB,EAAUA,EAASq3B,QAAQ7lF,WAAYid,EAAMzE,GAGpF,SAAS04U,EAAmB1iS,GACxB,MAAgC,MAAzBA,EAAS1xD,YAAsB,IAAM,IAGhD,SAASq0V,EAAY3iS,EAAUqiS,GAC3B,IAAI11U,EAAK+rB,EAAQK,aAAa,CAAC/c,YAAaxP,GAAawzC,EAAUqiS,GACnE,OAAO11U,EAAG/S,KAGd,SAASgpV,EAAY5iS,EAAUigB,EAAWoiR,GAEtC,IAAIQ,EAAoB7iS,EAAS/jC,IAAM,KAAOomU,EAC1CpiR,IAAWA,EAAY4iR,GAE3B,IAAIr8S,EAASm8S,EAAY3iS,EAAUqiS,GAC/BxiV,EAAWmgD,EAASqiS,EAAS,aAAe,GAC5CniR,EAAUoiR,EAAWriR,GACrB6iR,GAAe,EAEhB5iR,IACI15B,IAAW05B,EAAQ15B,QAAU3mC,IAAaqgE,EAAQrgE,UACjDijV,GAAe,EACf5iR,EAAQ5yB,OAAO/jD,KAAKy2D,GACpBkgB,EAAQa,KAAKx3E,KAAK84V,KAElBpiR,EAAY4iR,EAETr8S,IAAW05B,EAAQ15B,QAClBvpC,EAAI24B,KAAK,CACL,uCAAwCoqB,EAAS/2D,MACjD,WAAY,QAAUu9C,EAAQ,OAC9B,eAAgB,QAAU05B,EAAQ15B,OAAQ,SAC5C98C,KAAK,MAERmW,IAAaqgE,EAAQrgE,UAGpB5C,EAAI24B,KAAK,CACL,uCAAwCoqB,EAAS/2D,MACjD,aAAc4W,EAAU,WACxB,YACCqgE,EAAQrgE,SAAW,QAAUqgE,EAAQrgE,SAAW,YAAc,sBACjEnW,KAAK,QAKhBo5V,IACCR,EAAWriR,GAAa,CACpB3yB,OAAQ,CAAC0S,GACT+gB,KAAM,CAACshR,GACP77S,OAAQA,EACR3mC,SAAUmgD,EAASqiS,EAAS,aAAe,KAGnDriS,EAAS,IAAMqiS,EAAS,YAAcpiR,EAG1C,IAAI35E,EAAI,EAAGA,EAAI4mB,EAASziB,OAAQnE,IAC5B05D,EAAW9yC,EAAS5mB,GAEjByuC,EAAQirB,EAAU,eACjBuiS,EAAWh5V,KAAKy2D,UAITA,EAAS+iS,yBACT/iS,EAASgjS,kBAIZjuT,EAAQirB,EAAU,UAClBk9D,EAAuBl9D,EAASrqB,OAAQqqB,EAAUxzC,EAAYktB,IAK1E,IAAI0jF,EAAgB5wG,EAAWw8D,gBAAkB,GASjD,IAAI1iF,EAAI,EAAGA,EAAIi8V,EAAW93V,OAAQnE,IAAK,CAInC,GAHA05D,EAAWuiS,EAAWj8V,GACtB25E,EAAY,IAERlrC,EAAQirB,EAAU,SAAU,CAG5B,GAFAqiS,EAASK,EAAmB1iS,GAEF,UAAvBxzC,EAAW6zD,SAAuBrgB,EAASkpB,eAAgB,CAC1D,IAAIjM,EAAKjd,EAASqiS,EAAS,QACvBY,EAAWt9Q,EAAan5D,EAAYywD,GAAMjd,EAAS1xD,aACnD8uH,EAAc6lO,IAAa,IAAIjjS,EAASkpB,kBACxCjJ,EAAYgjR,GAIhBhjR,GAAoC,YAAvBzzD,EAAW6zD,UACxBJ,EACI0F,EAAan5D,EAAYwzC,EAAS1yC,OAClCq4D,EAAan5D,EAAYwzC,EAASzyC,OAClCm1U,EAAmB1iS,IAK5BigB,GACKuiR,EAAsBviR,KACtBuiR,EAAsBviR,GAAa,IAEvCuiR,EAAsBviR,GAAW12E,KAAKy2D,IAEtCyiS,EAAgBl5V,KAAKy2D,GAO7B,IAAIigB,KAAauiR,EAKb,GAJAl1S,EAASk1S,EAAsBviR,GAIV,IAAlB3yB,EAAO7iD,OAAV,CAKA,IAAIy4V,GAAgB,EACpB,IAAI58V,EAAI,EAAGA,EAAIgnD,EAAO7iD,OAAQnE,IAAK,CAC/B05D,EAAW1S,EAAOhnD,GAClB48V,EAAgBxpT,EAAO,YACvB,MAKJ,IAFAumC,EAAYijR,GAAiBjjR,EAEzB35E,EAAI,EAAGA,EAAIgnD,EAAO7iD,OAAQnE,IAAK,CAC/B05D,EAAW1S,EAAOhnD,GAClB,IAAI68V,EAAanjS,EAASrqB,OAAO0+D,SAC9B8uP,GAAcA,IAAeljR,GAC5BhjE,EAAI24B,KAAK,CACL,QAASoqB,EAAS/2D,MAAO,aACzB,kBAAmBg3E,EAAY,IAC/B,yBAA0BkjR,EAAY,YACxCz5V,KAAK,MAEXs2D,EAASq0C,SAAWp0B,EAKpB2iR,EAAY5iS,EAAUigB,EAAWyiR,EAAmB1iS,UA5BpDyiS,EAAgBl5V,KAAK+jD,EAAO,IAkCpC,IAAIhnD,EAAI,EAAGA,EAAIm8V,EAAgBh4V,OAAQnE,IAAK,CACxC05D,EAAWyiS,EAAgBn8V,GAE3B,IAAI88V,EAAW1pT,EAAO,YAEtB,GAAG3E,EAAQirB,EAAU,SACjB,IAAI30D,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACnBg3V,EAASD,EAAc/2V,GACvB,IAAIg4V,EAAgB3pT,EAAO2oT,EAAS,WAChCe,EAAWA,EAAW,KAAOf,EAAS,MAE1CO,EAAY5iS,EAAUqjS,EAAehB,QAGzCO,EAAY5iS,EAAUojS,EAAUV,EAAmB1iS,IAK3D,IAAIigB,KAAaqiR,EAAY,CACzB,IAAIpiR,EAAUoiR,EAAWriR,GAGzB,IAFA3yB,EAAS4yB,EAAQ5yB,OAEbpiD,EAAI,EAAGA,EAAIg3V,EAASz3V,OAAQS,IAAK,CACjC,IAEIi3V,EACApiR,EAHAujR,EAAWpB,EAASh3V,GACpBujB,EAAO60U,EAASz8V,KAMpB,GAAY,UAAT4nB,IAAoByxD,EAAQgB,UAA/B,CAEA,IAAI56E,EAAI,EAAGA,EAAIgnD,EAAO7iD,OAAQnE,IAAK,CAK/B,GAJA05D,EAAW1S,EAAOhnD,GAClB+7V,EAASniR,EAAQa,KAAKz6E,GACtB67V,EAAOmB,EAASnB,KAAKE,QAE8Bn5U,IAAhDwmC,EAAesQ,EAASrqB,OAAQwsT,GAAMh7V,MAAqB,CAC1D+4E,EAAQzxD,GAAQirB,EAAOyoT,GACvBjiR,EAAQzxD,EAAO,UAAW,EAC1B,MAGJsxD,GAAY/f,EAASghB,UAAY,IAAIqhR,IAAW,GAC7CtiR,EAAStxD,IAERihC,EAAesQ,EAAUmiS,GAAM5tV,IAAIwrE,EAAStxD,IAOpD,GAAY,UAATA,GAA6B,QAATA,EACnB,KAAMnoB,EAAIgnD,EAAO7iD,OAAQnE,IACrB05D,EAAW1S,EAAOhnD,GACf05D,EAAS,IAAMqiS,EAAS,cACvBtiR,GAAY/f,EAASghB,UAAY,IAAIqhR,IAAW,GAChD3oT,EAAOyoT,EAAMpiR,EAAStxD,KAKtB,UAATA,GAAqByxD,EAAQgB,WAAchB,EAAQqjR,aAClDvjS,EAAW1S,EAAO,GAClB4yB,EAAQzxD,GAAQirB,EAAOyoT,S,oCCpQvCr8V,EAAOD,QAAU,CAIbylH,iBAAkB,IAClBC,iBAAkB,IAGlBjtF,YAAa,K,oCCTjB,IAAI9oB,EAAK,EAAQ,QAEbwhI,EAAW,EAAQ,QACnBx4G,EAAa,EAAQ,QAAuBA,WAEhD14B,EAAOD,QAAU,SAAeoP,GAC5B,IAAI5M,EAAI4M,EAAG+mB,YAAYwnU,UAAUxtV,UAAU,UAC3CwoB,EAAWvpB,EAAI5M,EAAG,OAElBA,EAAEiO,MAAK,SAASoQ,GACZ,IAAI8vB,EAAM9vB,EAAG,GACTxR,EAAQshC,EAAIthC,MACZqtG,EAAiB/sG,EAAGO,OAAO7P,MAE/Bq8G,EAAelsG,MAAM,CAACnF,QAASgE,EAAMhE,UAErCqxG,EAAevsG,UAAU,gBAAgBM,MAAK,SAASmQ,GACnDjR,EAAGO,OAAO7P,MAAMO,KAAKuwI,EAAUvwH,EAAIvR,W,kCCzB/C,IAAIiwL,EAAO,EAAQ,QAInB,SAASs+J,EAAM3uV,GACb,OAAOzK,MAAM4J,QAAQa,IAAmB,IAAbA,EAAErK,QAAgB06L,EAAKrwL,EAAE,KAAOqwL,EAAKrwL,EAAE,IAHpEhP,EAAOD,QAAU49V,G,kCCFjB,IAAI1nO,EAAU,EAAQ,QAElBxtE,EAAOvnD,OAAOunD,KAElBzoD,EAAOD,QAAU,SAAUmC,GAAU,OAAOumD,EAAKwtE,EAAQ/zH,GAAUhB,OAAOgB,GAAUA,K,qBCNpFlC,EAAOD,QAAU,CACf+B,OAAQ,EAAQ,QAChB4lB,MAAO,EAAQ,QACf0yH,WAAY,EAAQ,QACpB5wE,KAAM,EAAQ,QACd/6D,IAAK,EAAQ,QACbgO,IAAK,EAAQ,QACbk5F,SAAU,EAAQ,QAClBzM,SAAU,EAAQ,QAClBsjL,OAAQ,EAAQ,QAChB7jR,IAAK,EAAQ,QACbC,IAAK,EAAQ,QACbu9D,MAAO,EAAQ,QACfD,YAAa,EAAQ,QACrBr8D,SAAU,EAAQ,QAClB+sG,gBAAiB,EAAQ,QACzBjyG,OAAQ,EAAQ,QAChBgyG,cAAe,EAAQ,QACvBy2D,OAAQ,EAAQ,QAChBpZ,QAAS,EAAQ,QACjB//I,UAAW,EAAQ,QACnBktD,IAAK,EAAQ,QACbozC,KAAM,EAAQ,QACdluG,OAAQ,EAAQ,QAChBkoR,cAAe,EAAQ,QACvBj6H,cAAe,EAAQ,U,qBCdzB,SAASpuF,EAAYxlD,EAAKrd,EAAGC,EAAG6iE,GAI5B,OAHAzlD,EAAI,GAAKrd,EAAE,GAAMC,EAAE,GAAK6iE,EACxBzlD,EAAI,GAAKrd,EAAE,GAAMC,EAAE,GAAK6iE,EACxBzlD,EAAI,GAAKrd,EAAE,GAAMC,EAAE,GAAK6iE,EACjBzlD,EAfX1gB,EAAOD,QAAUmmE,G,oCCUjB,IAAI/uD,EAAM,EAAQ,QACdm7E,EAAW,EAAQ,QAEnB5uE,EAAkB,EAAQ,QAC1B+4M,EAAqB,EAAQ,QAEjCz8N,EAAOD,QAAU,SAA8Bi4D,EAAUC,GACrD,SAASrkB,EAAOjrB,EAAMzE,GAClB,OAAO/M,EAAIy8B,OAAOokB,EAAUC,EAAWv0C,EAAiBiF,EAAMzE,GAGlE0vB,EAAO,yBACPA,EAAO,8BACPA,EAAO,wBAEP,IACIgqT,EAAWC,EADX/gI,EAAY7kK,EAAU6vE,WAG1B,SAASg2N,EAASn1U,EAAMzE,GACpB,OAAO/M,EAAIy8B,OAAOgqT,EAAWC,EAAYn6U,EAAgBulE,UAAWtgE,EAAMzE,GAG9E,IAAI,IAAI3e,KAAKu3N,EAAW,CACpB,IAAIh6M,EAAQg6M,EAAUv3N,GAEtB,GAAGud,EAAM,GACL86U,EAAY5lS,EAASzyD,IAAM,GAC3Bs4V,EAAavrQ,EAASW,aAAah7B,EAAW1yD,EAAG,aACjDs4V,EAAWz/T,MAAQ74B,EACnBk3N,EAAmBmhI,EAAWC,EAAY5lS,EAAW6lS,EAAU,CAACp/R,OAAQ,GAAIlvD,QAAS,UAClF,CAEH,IAAI,IAAIhP,EAAI,EAAGA,EAAIsiB,EAAM,GAAGne,OAAQnE,IAChCsiB,EAAM,GAAGtiB,YAENy3D,EAAU6vE,WAAWviI,O,oCCjCxCxF,EAAQ08D,MAAQ,gCAChB18D,EAAQywB,IAAM,6BACdzwB,EAAQ+qT,MAAQ,+BAIhB/qT,EAAQg+V,SAAW,CACfthS,MAAO18D,EAAQywB,IACf,cAAezwB,EAAQ+qT,Q,qBCV3B,SAASt+B,EAAQ9rQ,EAAKrd,EAAGC,GAKvB,OAJAod,EAAI,GAAKrd,EAAE,GAAKC,EAAE,GAClBod,EAAI,GAAKrd,EAAE,GAAKC,EAAE,GAClBod,EAAI,GAAKrd,EAAE,GAAKC,EAAE,GAClBod,EAAI,GAAKrd,EAAE,GAAKC,EAAE,GACXod,EAfT1gB,EAAOD,QAAUysR,G,mBCAjBzsR,EAAQmpC,EAAIhoC,OAAOgqL,uB,oCCUnB,IAAI8yK,EAAW,EAAQ,QAAcvhE,IACjCwhE,EAAgB,EAAQ,QAAqCA,cAC7D9mV,EAAM,EAAQ,QAYlBnX,EAAOD,QAAU,SAAgCszC,EAAaC,EAAcM,EAAQvlB,GAChFA,EAAOA,GAAQ,GAEf,IAAIonE,EAAYpnE,EAAKonE,UAErB,SAASvX,EAAQv1D,EAAMzE,GACnB,OAAO/M,EAAI+mE,QAAQ7qC,EAAaC,EAAcjlB,EAAK3iB,WAAYid,EAAMzE,GAGzE,IAAIm6D,EAAYH,EAAQ,YAAauX,GACjCvqF,EAAYgzE,EAAQ,aACpBoY,EAAW1iD,EAAO,WAAYvlB,EAAKioE,YAAcjY,KAAenzE,GAEhEorF,WACOhjD,EAAaqhM,iBACbrhM,EAAaqR,WAGxB,IAAIu5S,EAAgBF,EAASvoQ,EAAWpnE,EAAKqmE,QAASrmE,EAAKgoE,OAAS4nQ,GAAeztN,cAC/E2tN,EAAYjgR,EAAQ,YAAaggR,GACjCE,EAAYlgR,EAAQ,aACpBmgR,EAAgBzqT,EAAO,WAAYvlB,EAAKkoE,YAAc4nQ,KAAeC,GAOzE,GALIC,WACO/qT,EAAawf,iBACbxf,EAAauf,YAGpBxkC,EAAKmoE,WAAY,CACjB,IAAIgtL,EAAgBtlM,EAAQ,gBAAiBuX,GACzC8tL,EAAgBrlM,EAAQ,iBACxBogR,EAAe1qT,EAAO,WAAYvlB,EAAKkoE,YAAcitL,KAAmBD,GAExE+6E,WACOhrT,EAAa6f,qBACb7f,EAAamT,kB,uBC3DhC,IAAIxC,EAAO,EAAQ,QACfyU,EAAM,EAAQ,QACd6lS,EAA+B,EAAQ,QACvCp9V,EAAiB,EAAQ,QAAuC+nC,EAEpElpC,EAAOD,QAAU,SAAU2lR,GACzB,IAAInkR,EAAS0iD,EAAK1iD,SAAW0iD,EAAK1iD,OAAS,IACtCm3D,EAAIn3D,EAAQmkR,IAAOvkR,EAAeI,EAAQmkR,EAAM,CACnDjkR,MAAO88V,EAA6Br1T,EAAEw8O,O,oCCE1C,IAAI/hQ,EAAqB,EAAQ,QAAmCA,mBAChE2lE,EAAoB,EAAQ,QAAmCA,kBAC/Dk1Q,EAAkB,EAAQ,QAC1BhlU,EAAe,EAAQ,QACvBilU,EAAc,EAAQ,QACtB76U,EAAY,EAAQ,QACpBF,EAAkB,EAAQ,QAE1BG,EAAa,EAAQ,QAAoBA,WACzCC,EAAc,EAAQ,QAA6BA,YAEnDulE,EAAYm1Q,EAAgBvlU,KAC5BgnI,EAAcu+L,EAAgBxlU,OAElCh5B,EAAOD,QAAU+jB,EAAY,CACzBmrE,IAAKuvQ,EAAgBvvQ,IACrBG,IAAKovQ,EAAgBpvQ,IAKrBztF,KAAMkiB,EAAW,GAAI2V,EAAa73B,KAAM,CACpCuiB,KAAM,YAIVrU,KAAMgU,EAAW,GAAI2V,EAAa3pB,KAAM,IAGxCg6E,aAAcP,EAAkB,CAAChlE,SAAU,QAAS,CAChDmkC,KAAM,CAAC,MAAO,MAAO,UAEzBxjC,UAAWpB,EAAW,GAAI2V,EAAavU,UAAW,IAIlDgU,KAAM,CACFptB,MAAOw9E,EAAUx9E,MACjBkW,MAAOsnE,EAAUtnE,OAMrBoD,YAAaqU,EAAarU,YAE1B6T,OAAQnV,EAAW,CACf8oE,OAAQ,CACJ1oE,QAAS,SACTC,KAAM,SAENc,SAAS,GAGb5Z,QAAS60J,EAAY70J,QACrBoZ,KAAMy7I,EAAYz7I,KAClB+oE,QAAS0yE,EAAY1yE,QACrBC,QAASyyE,EAAYzyE,QACrBC,SAAUwyE,EAAYxyE,UAEtB/pE,EAAgB,WAIpBrR,KAAMmsV,EAAgBnsV,KACtB+6E,UAAW5zD,EAAa4zD,UAExBnD,SAAUw0Q,EAAYh+R,OAAOksB,OAAO1C,SACpCH,aAAc20Q,EAAYh+R,OAAOksB,OAAO7C,aAExCuI,MAAO,CACHpuE,QAAS,UAKboV,SAAU,CACNL,OAAQQ,EAAaH,SAASL,QAElC00D,WAAY,CACR10D,OAAQQ,EAAak0D,WAAW10D,QAGpC3S,UAAWxC,EAAW,GAAID,EAAUyC,UAAW,CAC3C6Q,MAAO,CAAC,MAAO,MAAO,OAAQ,UAElChS,cAAevB,KAChB,OAAQ,W,oCCtFX,IAAIhU,EAAY,EAAQ,QACpB8iE,EAAsB,EAAQ,QAAWA,oBAgE7C,SAASisR,EAAM3lU,EAAMrH,GACjB,OAAO,WACH,IACIitU,EACAC,EACAl+U,EACAlgB,EACA4E,EALAy5V,EAAU9lU,EAOd,IAAIv4B,EAAI,EAAGA,EAAIkxB,EAAM/sB,OAAS,EAAGnE,IAAK,CAElC,GADAm+V,EAAUjtU,EAAMlxB,IACA,IAAbm+V,EAAgB,CAGf,IAFAC,GAAU,EACVl+U,EAAM,GACFtb,EAAI,EAAGA,EAAIy5V,EAAQl6V,OAAQS,IAC3Bsb,EAAItb,GAAKs5V,EAAMG,EAAQz5V,GAAIssB,EAAM5sB,MAAMtE,EAAI,GAAlCk+V,GACNh+U,EAAItb,KAAOsb,EAAI,KAAIk+U,GAAU,GAEpC,OAAOA,EAAUl+U,EAAI,GAAKA,EAE9B,GAAsB,kBAAZi+U,IAAyBlsR,EAAoBosR,GACnD,OAGJ,GADAA,EAAUA,EAAQF,GACI,kBAAZE,GAAoC,OAAZA,EAC9B,OAKR,GAAsB,kBAAZA,GAAoC,OAAZA,IAElCn+U,EAAMm+U,EAAQntU,EAAMlxB,IACT,OAARkgB,GACH,OAAOA,GAlFf1gB,EAAOD,QAAU,SAAwBsyB,EAAWysU,GAChD,GAAGnvV,EAAUmvV,GAAUA,EAAU18U,OAAO08U,QACnC,GAAsB,kBAAZA,GACgC,SAAvCA,EAAQ/rV,OAAO+rV,EAAQn6V,OAAS,GACpC,KAAM,sBAGV,IAEIo6V,EACAnqT,EACAp0C,EAJA4E,EAAI,EACJ45V,EAAYF,EAAQ9tV,MAAM,KAM9B,MAAM5L,EAAI45V,EAAUr6V,OAAQ,CAGxB,GADAo6V,EAAU38U,OAAO48U,EAAU55V,IAAIyjB,MAAM,kCAClCk2U,EAAS,CACR,GAAGA,EAAQ,GAAIC,EAAU55V,GAAK25V,EAAQ,OAEjC,IAAS,IAAN35V,EACH,KAAM,sBADM45V,EAAU5tV,OAAO,EAAG,GAOrC,IAJAwjC,EAAUmqT,EAAQ,GACbhsV,OAAO,EAAGgsV,EAAQ,GAAGp6V,OAAS,GAC9BqM,MAAM,MAEPxQ,EAAI,EAAGA,EAAIo0C,EAAQjwC,OAAQnE,IAC3B4E,IACA45V,EAAU5tV,OAAOhM,EAAG,EAAGkxC,OAAO1B,EAAQp0C,KAG9C4E,IAGJ,MAAwB,kBAAditB,EACC4sU,EAAa5sU,EAAWysU,EAASE,GAGrC,CACHvwV,IAAKywV,EAAM7sU,EAAW2sU,EAAWF,GACjCz9V,IAAKq9V,EAAMrsU,EAAW2sU,GACtBn8P,KAAMi8P,EACNptU,MAAOstU,EACPxgU,IAAKnM,IAuDb,IAAI8sU,EAAe,eACnB,SAASC,EAAYjsU,EAAK2rU,GACtB,YAAgB17U,IAAR+P,GAA+B,OAARA,IAAiB2rU,EAAQj2U,MAAMs2U,GAGlE,SAASD,EAAMnmU,EAAMrH,EAAOotU,GACxB,OAAO,SAAS3rU,GACZ,IAIIwrU,EACAn+V,EALAq+V,EAAU9lU,EACVq9P,EAAW,GACXipE,EAAkB,CAAC,CAACtmU,EAAMq9P,IAC1BkpE,EAAWF,EAAYjsU,EAAK2rU,GAIhC,IAAIt+V,EAAI,EAAGA,EAAIkxB,EAAM/sB,OAAS,EAAGnE,IAAK,CAGlC,GAFAm+V,EAAUjtU,EAAMlxB,GAEM,kBAAZm+V,IAAyBlsR,EAAoBosR,GACnD,KAAM,4CAIV,IAAgB,IAAbF,EAAgB,CAEf,GADAW,GAAYC,EAAYV,EAASntU,EAAM5sB,MAAMtE,EAAI,GAAI2yB,EAAK2rU,GACvDQ,EAAU,MACR,OAGT,IAAIE,EAAkBX,EAASF,EAASjtU,EAAMlxB,EAAI,GAAI8+V,GAClD,MAKJ,GAFAT,EAAUA,EAAQF,GAEI,kBAAZE,GAAoC,OAAZA,EAC9B,KAAM,6BAGVzoE,EAAWqpE,EAAYrpE,EAAUuoE,GAEjCU,EAAgB57V,KAAK,CAACo7V,EAASzoE,IAGnC,GAAGkpE,GACC,GAAG9+V,IAAMkxB,EAAM/sB,OAAS,WACbk6V,EAAQntU,EAAMlxB,IAKlB+D,MAAM4J,QAAQ0wV,KAAantU,EAAMlxB,KAAOq+V,EAAQl6V,OAAS,GACxD,MAAMk6V,EAAQl6V,aAA0Cye,IAAhCy7U,EAAQA,EAAQl6V,OAAS,GAC7Ck6V,EAAQ94V,WAIjB84V,EAAQntU,EAAMlxB,IAAM2yB,GAInC,SAASssU,EAAYX,EAASY,GAC1B,IAAIC,EAAQD,EAIZ,OAHG/vV,EAAU+vV,GAAUC,EAAQ,IAAMD,EAAU,IACvCZ,IAASa,EAAQ,IAAMD,GAExBZ,EAAUa,EAIrB,SAASJ,EAAYK,EAAgBC,EAAY1sU,EAAK2rU,GAClD,IAMIt+V,EANAs/V,EAAWrtR,EAAoBt/C,GAC/B4sU,GAAS,EACTC,EAAU7sU,EACV8sU,EAAcnB,EAAQ7lV,QAAQ,KAAM,GACpCinV,GAAaJ,GAAmBV,EAAYjsU,EAAK8sU,GACjDE,EAAYN,EAAW,GAG3B,IAAIr/V,EAAI,EAAGA,EAAIo/V,EAAej7V,OAAQnE,IAClCy/V,EAAcnB,EAAQ7lV,QAAQ,KAAMzY,GACjCs/V,IACCE,EAAU7sU,EAAI3yB,EAAI2yB,EAAIxuB,QACtBu7V,EAAad,EAAYY,EAASC,IAEnCC,IAAYH,GAAS,GACpBP,EAAkBI,EAAgBp/V,EAAG2/V,EAAWD,IAGpDhB,EAAMU,EAAep/V,GAAIq/V,EAAYf,EAAQ7lV,QAAQ,KAAMzY,GAA3D0+V,CAA+Dc,GAEnE,OAAOD,EAQX,SAASP,EAAkBntU,EAAW+nQ,EAAMgmE,EAAUd,GAClD,QAAuBl8U,IAApBiP,EAAU+nQ,GAAqB,CAC9B,GAAGklE,EAAU,OAAO,EAEajtU,EAAU+nQ,GAApB,kBAAbgmE,EAAyC,GAC5B,GAE3B,OAAO,EAGX,SAASnB,EAAa5sU,EAAWysU,EAASE,GACtC,MAAO,CACHvwV,IAAK,WAAa,KAAM,iBACxBpN,IAAK,aACLwhG,KAAMi8P,EACNptU,MAAOstU,EACPxgU,IAAKnM,K,kCCvObryB,EAAOD,QAAU,CACb,KAAQ,CACJ,MAAS,MACT,OAAU,IACV,KAAQ,sVACR,UAAa,0BAEjB,KAAQ,CACJ,MAAS,MACT,OAAU,IACV,KAAQ,yTACR,UAAa,0BAEjB,eAAgB,CACZ,MAAS,IACT,OAAU,IACV,KAAQ,obACR,UAAa,0BAEjB,QAAW,CACP,MAAS,IACT,OAAU,IACV,KAAQ,4MACR,UAAa,0BAEjB,IAAO,CACH,MAAS,IACT,OAAU,IACV,KAAQ,8KACR,UAAa,0BAEjB,UAAa,CACT,MAAS,IACT,OAAU,IACV,KAAQ,qHACR,UAAa,0BAEjB,WAAc,CACV,MAAS,IACT,OAAU,IACV,KAAQ,qEACR,UAAa,0BAEjB,UAAa,CACT,MAAS,IACT,OAAU,IACV,KAAQ,uaACR,UAAa,0BAEjB,cAAiB,CACb,MAAS,KACT,OAAU,IACV,KAAQ,wDACR,UAAa,0BAEjB,gBAAmB,CACf,MAAS,KACT,OAAU,IACV,KAAQ,wGACR,UAAa,0BAEjB,WAAc,CACV,MAAS,KACT,OAAU,IACV,KAAQ,qMACR,UAAa,0BAEjB,SAAU,CACN,MAAS,IACT,OAAU,IACV,KAAQ,wcACR,UAAa,0BAEjB,YAAa,CACT,MAAS,IACT,OAAU,IACV,KAAQ,ogBACR,UAAa,0BAEjB,OAAU,CACN,MAAS,IACT,OAAU,IACV,KAAQ,6dACR,UAAa,0BAEjB,MAAS,CACL,MAAS,IACT,OAAU,IACV,KAAQ,qdACR,UAAa,0BAEjB,SAAY,CACR,MAAS,MACT,OAAU,IACV,KAAQ,2bACR,UAAa,0BAEjB,KAAQ,CACJ,MAAS,MACT,OAAU,IACV,KAAQ,uZACR,UAAa,0BAEjB,MAAS,CACL,MAAS,KACT,OAAU,IACV,KAAQ,qiBACR,UAAa,0BAEjB,UAAa,CACT,MAAS,IACT,OAAU,IACV,KAAQ,2YACR,UAAa,0BAEjB,UAAa,CACT,MAAS,IACT,OAAU,IACV,KAAQ,6LACR,UAAa,8BAEjB,OAAU,CACN,MAAS,KACT,OAAU,KACV,KAAQ,kQACR,UAAa,uBAEjB,cAAiB,CACb,KAAQ,gBACR,IAAO,w3B,kCCjIf,IAAI2P,EAAK,EAAQ,QACb+T,EAAQ,EAAQ,QAChBtM,EAAM,EAAQ,QACduhB,EAAa,EAAQ,QAAuBA,WAEhD,SAASnoB,EAAMpB,GACX,IAAI5M,EAAI4M,EAAG+mB,YAAYmqU,eAAenwV,UAAU,UAChDwoB,EAAWvpB,EAAI5M,EAAG,YAElBA,EAAEiO,MAAK,SAASoQ,GACZ,IAAIgY,EAASlpB,EAAGO,OAAO7P,MACnBswC,EAAM9vB,EAAG,GACTxR,EAAQshC,EAAIthC,MAEhBwpB,EAAOroB,MAAM,UAAWnB,EAAMhE,SAE9BwtB,EAAO1oB,UAAU,gBAAgBM,MAAK,SAASmQ,GAC3CjR,EAAGO,OAAO7P,MAAMO,KAAKuwI,EAAUvwH,EAAIvR,SAK/C,SAAS8hI,EAAS3uI,EAAGoe,EAAIvR,GACrB,IAAI0R,EAAMH,EAAG5U,KAAKA,KACdgqS,GAAUp1R,EAAGm/E,SACbu0M,EAAWvzR,EAAItgB,EACf69E,EAAYlnE,EAAIwiQ,WAAWvqQ,EAAOilS,EAAU,sBAAwB5wR,EAAMiB,YAC1ExZ,EAAYiM,EAAIwiQ,WAAWvqQ,EAAOilS,EAAU,sBAAwB,EAExE9xS,EAAEgO,MAAM,eAAgBrF,GACnBvK,KAAK8iB,EAAMpR,KAAMyO,EAAIjV,OACrBlL,KAAK8iB,EAAM6G,OAAQ+zD,GACnB9tE,MAAM,UAAWwlS,EAAS3mS,EAAM04D,KAAK18D,QAAU,MAGxDpL,EAAOD,QAAU,CACbwQ,MAAOA,EACP2gI,SAAUA,I,oCCrCdlxI,EAAOD,QAAU,EAAQ,S,oCCAzB,IAAI4P,EAAY,EAAQ,QACpBm/H,EAAY,EAAQ,QACpB/lI,EAAO,EAAQ,QAEfo1E,EAAa,EAAQ,QACrBmiR,EAAY,EAAQ,QAAkC57U,YACtD+tD,EAAsB,EAAQ,QAAWA,oBAEzC8tR,EAAgBx3V,EAAKu3V,GACrBE,EAAc,EAElB,SAASC,EAAeC,EAASC,GAC7B,IAAIC,EAAWF,EAEf,OADAE,EAAS,IAAMD,EACRC,EAGX,SAASC,EAAcH,GACnB,GAAG/wV,EAAU+wV,GAAU,OAAOH,EAE9B,IAAIK,EAAW73V,EAAK23V,GAEpB,OAAOE,EAASj8V,OAASi8V,EAAWL,EAGxC,SAASO,EAAgBH,GACrB,OAAOhxV,EAAUgxV,GAAaA,EAAYH,EAG9C,SAASO,EAAY1tT,EAAastT,EAAWryU,GACzC,IAMI0hH,EAASgxN,EAAUC,EAAYC,EAAQC,EANvCT,EAAUrtT,EAAYxnC,MACtBu1V,EAAiB3uR,EAAoBiuR,GACrCW,EAAmB5uR,EAAoBkuR,GACvC1gO,EAAQ9hD,EAAWI,YAAYlrC,GAC/ButT,EAAW,GAuBf,GAlBI5wN,OADoB5sH,IAArB68G,EAAMzhD,WACKL,EAAWkS,4BAA4Bh9C,GAEvCwtT,EAIVG,EADDI,EACY,SAASvgW,EAAGL,GAEnB,YAAgB4iB,IAATviB,EAAEL,GAAmB+/V,EAAgBx3V,EAAKinI,EAAQnvI,EAAEL,MAEjDqgW,EAGdI,EADDI,EACc,SAASpgW,EAAGT,GACrB,YAAgB4iB,IAATniB,EAAET,GAAmBggW,EAAcM,EAAgB7/V,EAAET,KAEhDsgW,EAEjBM,GAAkBC,EACjB,IAAI,IAAI7gW,EAAI,EAAGA,EAAI8tB,EAAK9tB,IACpB0gW,EAASF,EAASN,EAASlgW,GAC3B2gW,EAAWF,EAAWN,EAAWngW,GACjCogW,EAASpgW,GAAKigW,EAAeS,EAAQC,QAEtCP,EAAWH,EAAe13V,EAAK23V,GAAUC,GAEhD,OAAOC,EAGX,SAAShvG,EAAgB74N,EAAMmyC,QACd9nD,IAAV8nD,IAAqBA,EAAQ,GAEhC,IAAI+0D,EAAQ9hD,EAAWI,YAAYxlD,GAE/BylD,EAAayhD,EAAME,aACnBhiD,EAAWiiD,UAAUH,EAAMzhD,YAC3ByhD,EAAMzhD,WAEV,OAAOA,EAAWpiC,KAAI,SAASuvH,GAC3B,IAAIxoK,EAAQwoK,EAAK,GACb9/J,EAAQijI,EAAU68B,EAAK,IACvBjjK,EAAMmD,EAAMkkI,QAChB,MAAO,CACH5sI,MAAOA,EACPuF,IAAK,CAACA,EAAIpH,EAAGoH,EAAI2hB,EAAG3hB,EAAIpF,EAAG4nE,OAKvClrE,EAAOD,QAAU,CACbghW,YAAaA,EACbnvG,gBAAiBA,I,kCC1FrB5xP,EAAOD,QAAU,CACbswL,WAAY,CACRpsK,QAAS,aACT8V,OAAQ,CAAC,QAAS,QAAS,WAC3B7V,KAAM,QAENI,SAAU,QAGdgsK,UAAW,CACPrsK,QAAS,SACTtb,IAAK,EACLC,IAAK,EAEL0b,SAAU,QAGdisK,eAAgB,CACZtsK,QAAS,SACTtb,IAAK,EACLC,IAAK,EACLsb,KAAM,EAENI,SAAU,U,oCCrBlBtkB,EAAOD,QAAU,WACb,GAAsB,qBAAZ6oB,QAAyB,CAC/B,IAAI04U,EAA6D,WAA7ChtU,OAAOitU,cAAgB,IAAIC,cAE5CF,IACC14U,QAAQ8C,IAAII,OAAO,CACfC,aAAc,OACd01U,oBAAoB,EACpBv1U,aAAc,OACdF,QAAS,CACLC,WAAY,CAAC,CAAC,IAAK,KAAM,CAAC,MAAO,WAGzCrD,QAAQ8C,IAAIg2U,iB,oCCfxB,IAAI7vG,EAAgB,EAAQ,QACxB16O,EAAM,EAAQ,QAEdC,EAAa,CAAC,QAAS,QAAS,SAEpC,SAASuqV,IACLvhW,KAAK4J,OAAS,CACV,EAAE,IAAK,IAAK,IACZ,CAAC,GAAI,GAAI,KAGb5J,KAAKmX,MAAQ,CAAE,GAAI,GAAI,IACvBnX,KAAKyiR,WAAa,EAAE,GAAM,GAAM,GAChCziR,KAAKwhW,SAAW,CAAE,aAAc,aAAc,cAC9CxhW,KAAK61M,SAAW,CAAE,GAAI,GAAI,IAC1B71M,KAAKgzD,UAAY,CAAE,EAAG,EAAG,GACzBhzD,KAAKsgK,UAAY,CAAE,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,IACzDtgK,KAAKwiR,QAAU,CAAE,GAAI,GAAI,IAEzBxiR,KAAKumB,OAAS,CAAE,IAAK,IAAK,KAC1BvmB,KAAK4iR,YAAc,EAAE,GAAM,GAAM,GACjC5iR,KAAKilR,UAAY,CAAC,YAAa,YAAa,aAC5CjlR,KAAKglR,UAAY,CAAE,GAAI,GAAI,IAC3BhlR,KAAK6iR,WAAa,CAAE,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,IAC1D7iR,KAAK0iR,SAAW,CAAE,GAAI,GAAI,IAE1B1iR,KAAKyhW,WAAa,EAAE,GAAM,GAAM,GAChCzhW,KAAK0hW,WAAa,EAAE,GAAO,GAAO,GAClC1hW,KAAK8K,UAAY,CAAE,EAAG,EAAG,GACzB9K,KAAKi+E,UAAY,CAAE,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,IAEzDj+E,KAAK2hW,eAAiB,EAAE,GAAM,GAAM,GACpC3hW,KAAK4hW,eAAiB,EAAE,GAAO,GAAO,GACtC5hW,KAAK6hW,eAAiB,CAAE,GAAI,GAAI,IAChC7hW,KAAK8hW,cAAgB,CAAE,EAAG,EAAG,GAC7B9hW,KAAK+hW,cAAgB,CAAE,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,IAE7D/hW,KAAKgiW,WAAa,EAAE,GAAM,GAAM,GAChChiW,KAAKg+V,UAAY,CAAE,EAAG,EAAG,GACzBh+V,KAAK+9V,UAAY,CAAE,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,IAEzD/9V,KAAKiiW,WAAa,EAAE,GAAM,GAAM,GAChCjiW,KAAKojR,cAAgB,CAAE,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,IAC7DpjR,KAAKmjR,cAAgB,CAAE,EAAG,EAAG,GAE7BnjR,KAAKkiW,iBAAmB,EAAE,GAAM,GAAM,GACtCliW,KAAK21M,gBAAkB,CAAE,CAAC,GAAK,GAAK,GAAK,IACf,CAAC,GAAK,GAAK,GAAK,IAChB,CAAC,GAAK,GAAK,GAAK,KAG1C31M,KAAKmiW,gBAAkBniW,KAAKwiR,QAAQ99Q,QACpC1E,KAAKoiW,iBAAmBpiW,KAAK0iR,SAASh+Q,QACtC1E,KAAKqiW,uBAAyBriW,KAAK6hW,eAAen9V,QAGtD,IAAIN,EAAQm9V,EAAYv/V,UA0FxB,SAASsgW,EAAkBh8U,EAAY5O,GACnC,IAAI7N,EAAS,IAAI03V,EAEjB,OADA13V,EAAO4jL,MAAMnnK,EAAY5O,GAClB7N,EA3FXzF,EAAMqpL,MAAQ,SAASnnK,EAAY5O,GAE/B,IADA,IAAIuW,EAAOjuB,KACHI,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACvB,IAAIwX,EAAOF,EAAYV,EAAW5W,IAE9BwX,EAAKrF,SAYT0b,EAAK1H,OAAOnmB,GAAKkmB,EAAW+qE,MACxBt6E,EAAIitG,eAAepsG,EAAKmsC,MAAMt0C,KAAM6W,EAAW+qE,OAC/Cz5E,EAAKmsC,MAAMt0C,KAEZ,SAAUmI,EAAKmsC,QACXnsC,EAAKmsC,MAAMtiC,KAAKhW,QAAOwiB,EAAK40P,WAAWziR,GAAKqxP,EAAc75O,EAAKmsC,MAAMtiC,KAAKhW,QAC1EmM,EAAKmsC,MAAMtiC,KAAKN,SAAQ8M,EAAKg3P,UAAU7kR,GAAKwX,EAAKmsC,MAAMtiC,KAAKN,QAC5DvJ,EAAKmsC,MAAMtiC,KAAK2C,OAAM6J,EAAK+2P,UAAU5kR,GAAKwX,EAAKmsC,MAAMtiC,KAAK2C,OAI9D,aAAcxM,IAAMqW,EAAKwzU,WAAWrhW,GAAKwX,EAAKuuC,UAC9C,cAAevuC,IAAMqW,EAAKgwD,UAAU79E,GAAKqxP,EAAc75O,EAAK28N,YAC5D,cAAe38N,IAAMqW,EAAKnjB,UAAU1K,GAAKwX,EAAK2sC,WAE9C,aAAc3sC,IAAMqW,EAAK+zU,WAAW5hW,GAAKwX,EAAKw6C,UAC9C,cAAex6C,IAAMqW,EAAK8vU,UAAU39V,GAAKqxP,EAAc75O,EAAK86C,YAC5D,cAAe96C,IAAMqW,EAAK+vU,UAAU59V,GAAKwX,EAAK66C,WAIhC,QAAd76C,EAAKlE,KAAgBua,EAAKg0U,WAAW7hW,IAAK,EACrC,aAAcwX,IAAMqW,EAAKg0U,WAAW7hW,GAAKwX,EAAK88C,UACnD,kBAAmB98C,IAAMqW,EAAKm1P,cAAchjR,GAAKqxP,EAAc75O,EAAKm7C,gBACpE,kBAAmBn7C,IAAMqW,EAAKk1P,cAAc/iR,GAAKwX,EAAKyuC,eAGtD,UAAWzuC,GAAUA,EAAKT,MAAO8W,EAAK0zU,eAAevhW,IAAK,EACxD6tB,EAAK0zU,eAAevhW,IAAK,EAE3B,YAAawX,IACZqW,EAAK4zU,eAAezhW,GAAK6tB,EAAKo0U,uBAAuBjiW,GAAKwX,EAAKg4C,SAEhE,cAAeh4C,IAAMqW,EAAK8zU,cAAc3hW,GAAKqxP,EAAc75O,EAAKq6C,YAChE,cAAer6C,IAAMqW,EAAK6zU,cAAc1hW,GAAKwX,EAAKs6C,WAClD,cAAet6C,IACdqW,EAAK+kC,UAAU5yD,GAAyB,SAAnBwX,EAAKm6C,WACrB,KACD5rD,KAAKs8B,IAAM7qB,EAAKm6C,UAAY,KAIjC,mBAAoBn6C,IAAMqW,EAAKw0P,WAAWriR,GAAKwX,EAAK6sC,gBACpD,aAAc7sC,IACVA,EAAKqiC,SAASxuC,QAAOwiB,EAAKqyI,UAAUlgK,GAAKqxP,EAAc75O,EAAKqiC,SAASxuC,QACrEmM,EAAKqiC,SAAS94B,SAAQ8M,EAAKuzU,SAASphW,GAAKwX,EAAKqiC,SAAS94B,QACvDvJ,EAAKqiC,SAAS71B,OAAM6J,EAAK4nL,SAASz1M,GAAKwX,EAAKqiC,SAAS71B,OAGzD,WAAYxM,GAC+C,IAAvD,CAAC,QAAS,MAAO,YAAYxS,QAAQwS,EAAKq1C,SACzCh/B,EAAK2zU,eAAexhW,IAAK,EACzB6tB,EAAKyzU,WAAWthW,IAAK,IACC,IAAhBwX,EAAKq1C,QACXh/B,EAAK2zU,eAAexhW,IAAK,EACzB6tB,EAAKyzU,WAAWthW,IAAK,IAErB6tB,EAAK2zU,eAAexhW,IAAK,EACzB6tB,EAAKyzU,WAAWthW,IAAK,GAEtB6tB,EAAKyzU,WAAWthW,IAAK,EAGzB,mBAAoBwX,IAAgC,IAAxBA,EAAK2qV,gBAChCt0U,EAAKi0U,iBAAiB9hW,IAAK,EAC3B6tB,EAAK0nL,gBAAgBv1M,GAAKqxP,EAAc75O,EAAK4qV,kBAC1Cv0U,EAAKi0U,iBAAiB9hW,IAAK,IA7E9B6tB,EAAKw0P,WAAWriR,IAAK,EACrB6tB,EAAK20P,YAAYxiR,IAAK,EACtB6tB,EAAKwzU,WAAWrhW,IAAK,EACrB6tB,EAAK0zU,eAAevhW,IAAK,EACzB6tB,EAAK+zU,WAAW5hW,IAAK,EACrB6tB,EAAKg0U,WAAW7hW,IAAK,EACrB6tB,EAAKi0U,iBAAiB9hW,IAAK,KAkFvCR,EAAOD,QAAU2iW,G,kCC9JjB,SAAS76M,EAAU/8E,GACjB1qE,KAAKquL,MAAQ,IAAIlqL,MAAMumE,GACvB1qE,KAAKwpJ,MAAQ,IAAIrlJ,MAAMumE,GAEvB,IAAI,IAAItqE,EAAE,EAAGA,EAAEsqE,IAAStqE,EACtBJ,KAAKquL,MAAMjuL,GAAKA,EAChBJ,KAAKwpJ,MAAMppJ,GAAK,EARpBR,EAAOD,QAAU8nJ,EAYjBA,EAAUzlJ,UAAUuC,OAAS,WAC3B,OAAOvE,KAAKquL,MAAM9pL,QAGpBkjJ,EAAUzlJ,UAAUygW,QAAU,WAC5B,IAAI5gW,EAAI7B,KAAKquL,MAAM9pL,OAGnB,OAFAvE,KAAKquL,MAAMhrL,KAAKxB,GAChB7B,KAAKwpJ,MAAMnmJ,KAAK,GACTxB,GAGT4lJ,EAAUzlJ,UAAU0nE,KAAO,SAAS96D,GAClC,IAAIy/K,EAAQruL,KAAKquL,MACjB,MAAMA,EAAMz/K,KAAOA,EAAG,CACpB,IAAI2F,EAAI85K,EAAMz/K,GACdy/K,EAAMz/K,GAAKy/K,EAAM95K,GACjB3F,EAAI2F,EAEN,OAAO3F,GAGT64I,EAAUzlJ,UAAU6oE,KAAO,SAASj8D,EAAG2F,GACrC,IAAI07C,EAAKjwD,KAAK0pE,KAAK96D,GACf8zV,EAAK1iW,KAAK0pE,KAAKn1D,GACnB,GAAG07C,IAAOyyS,EAAV,CAGA,IAAIl5M,EAAQxpJ,KAAKwpJ,MACb6kC,EAAQruL,KAAKquL,MACbs0K,EAAQn5M,EAAMv5F,GACd2yS,EAAQp5M,EAAMk5M,GACfC,EAAKC,EACNv0K,EAAMp+H,GAAMyyS,EACJE,EAAKD,EACbt0K,EAAMq0K,GAAMzyS,GAEZo+H,EAAMq0K,GAAMzyS,IACVu5F,EAAMv5F,O,oCCzCZrwD,EAAOD,QAAU,CACb2L,WAAY,EAAQ,QACpB0H,eAAgB,EAAQ,QACxBC,KAAM,EAAQ,QACdC,KAAM,EAAQ,QACdkuD,SAAU,EAAQ,QAClBjxD,MAAO,EAAQ,QACfgD,YAAa,EAAQ,QAErBP,WAAY,QACZjS,KAAM,UACNkS,eAAgB,EAAQ,QACxBC,WAAY,CAAC,YAAa,MAAO,QAAS,cAC1CC,KAAM,K,oCCbVnT,EAAOD,QAAU,CACb2L,WAAY,EAAQ,QACpB0H,eAAgB,EAAQ,QACxBC,KAAM,EAAQ,QACdC,KAAM,EAAQ,QAEdN,WAAY,QACZjS,KAAM,SACNkS,eAAgB,EAAQ,QACxBO,aAAc,EAAQ,QACtBN,WAAY,CAAC,aACbC,KAAM,K,kCCXV,IAAI0Q,EAAa,EAAQ,QAAoBA,WAgE7C,SAASo/U,EAAUniW,GACf,IAAI09J,EAAW19J,EAAEm1J,UAAUn1J,EAAEg7J,MAEzBonM,EAAU1kM,EAAWA,EAASlD,KAAK,GAAGiC,SAAW,EACjD4lM,EAAQ3kM,EAAW0kM,EAAU1kM,EAASlD,KAAK32J,OAAS,EACxD,MAAO,CAACu+V,EAASC,GAjErBpjW,EAAQ4/J,cAAgB,SAAS7+J,GAC7B,IAAIm7J,EAAY,CAAC,EAAG,GAChBmnM,EAAcv/U,EAAW,GAAI/iB,EAAG,CAChCiB,IAAK,SACL+R,KAAM,SACNgoJ,KAAM,EACNG,UAAWA,EACXU,eAAgB,CAAC,KAAM,MACvBiD,YAAY,EACZ7lI,OAAQj5B,EAAE46D,SAAS2nS,YAAYtpU,OAAOj5B,EAAE40J,WACxCO,UAAWn1J,EAAE46D,SAAS4nS,gBACtB5nS,SAAU73C,EAAW,GAAI/iB,EAAE46D,SAAU,CAAC/zD,MAAO7G,EAAE46D,SAAS2nS,gBAExDE,EAAiB1/U,EAAW,GAAI/iB,EAAG,CACnCiB,IAAK,SACL+R,KAAM,QACNgoJ,KAAM,EACNG,UAAWA,EACXU,eAAgB,CAAC,KAAM,MACvBiD,YAAY,EACZ7lI,OAAQj5B,EAAE46D,SAAS/zD,MAAMoyB,OAAOj5B,EAAE40J,WAClCO,UAAWn1J,EAAE46D,SAASu6F,YAEtButM,EAAiB3/U,EAAW,GAAI/iB,EAAG,CACnCiB,IAAK,SACL+R,KAAM,QACNgoJ,KAAM,EACNG,UAAWA,EACXU,eAAgB,CAAC,KAAM,MACvBiD,YAAY,EACZ7lI,OAAQj5B,EAAE46D,SAAS/zD,MAAMoyB,OAAOj5B,EAAE40J,WAClCO,UAAWn1J,EAAE46D,SAASu6F,YAG1B,MAAO,CAACstM,EAAgBC,EAAgBJ,IAG5CrjW,EAAQq4J,aAAe,SAASt3J,GAC5B,IAAI2iW,EAASR,EAAUniW,GACvB,OAAQA,EAAEi5B,QAAU,IAAIj1B,MAAM2+V,EAAO,GAAIA,EAAO,IAAIrnT,KAAI,SAAS92C,EAAG9E,GAMhE,IAAIkjW,EAAuB,kBAANp+V,GAAmBA,EAAEujB,MAAM,WAAa,cAAgBtiB,KAAKF,SAAW,GAC7F,MAAO,CAGHgyJ,eAAgB73J,EAAIkjW,EACpB3hW,IAAK0hW,EAAO,GAAKjjW,EACjBg4J,OAAQ13J,EACR46D,SAAU56D,EAAE46D,SACZogG,KAAMh7J,EAAEg7J,KACR7F,UAAWn1J,EAAEm1J,UACbx0J,MAAO6D,Q,mBCrEnBtF,EAAOD,QAAU,SAAS2T,GACxB,OAAQA,GACN,IAAK,OACH,OAAOiwV,UACT,IAAK,QACH,OAAOC,WACT,IAAK,QACH,OAAOtsI,WACT,IAAK,QACH,OAAO1jN,WACT,IAAK,SACH,OAAO+2K,YACT,IAAK,SACH,OAAO0xE,YACT,IAAK,UACH,OAAO10O,aACT,IAAK,UACH,OAAOk8U,aACT,IAAK,QACH,OAAOt/V,MACT,IAAK,gBACH,OAAOsP,qB,mBCpBb7T,EAAOD,QAAU,CACf,cACA,iBACA,gBACA,uBACA,iBACA,WACA,Y,kCCNFC,EAAOD,QAAU+jW,EAEjB,IAAIrhW,EAAS,EAAQ,QAErB,SAASshW,EAAoBt/V,EAAQ3D,GAEnC,IADA,IAAIkjW,EAAQ,IAAIz/V,MAAMzD,EAAE,GAChBN,EAAE,EAAGA,EAAEiE,EAAOE,SAAUnE,EAC9BwjW,EAAMxjW,GAAKiE,EAAOjE,GAEpB,IAAQA,EAAE,EAAGA,GAAGiE,EAAOE,SAAUnE,EAAG,CAClC,IAAI,IAAI4E,EAAEX,EAAOE,OAAQS,GAAGtE,IAAKsE,EAAG,CAElC,IADA,IAAI4J,EAAI,IAAIzK,MAAMzD,GACVyE,EAAE,EAAGA,EAAEzE,IAAKyE,EAClByJ,EAAEzJ,GAAKgB,KAAK85B,IAAIj7B,EAAE,EAAE5E,EAAG+E,GAEzBy+V,EAAM5+V,GAAK4J,EAEb,IAAI/N,EAAIwB,EAAOsC,WAAM,EAAQi/V,GAC7B,GAAG/iW,EACD,OAAO,EAGX,OAAO,EAGT,SAAS6iW,EAAWr/V,GAClB,IAAIxC,EAAIwC,EAAOE,OACf,GAAS,IAAN1C,EACD,MAAO,GAET,GAAS,IAANA,EACD,MAAO,CAAC,GAKV,IAHA,IAAInB,EAAI2D,EAAO,GAAGE,OACd67D,EAAQ,CAAE/7D,EAAO,IACjBtB,EAAQ,CAAE,GACN3C,EAAE,EAAGA,EAAEyB,IAAKzB,EAElB,GADAggE,EAAM/8D,KAAKgB,EAAOjE,IACdujW,EAAoBvjS,EAAO1/D,IAK/B,GADAqC,EAAMM,KAAKjD,GACR2C,EAAMwB,SAAW7D,EAAE,EACpB,OAAOqC,OALPq9D,EAAMz6D,MAQV,OAAO5C,I,oCCvCTnD,EAAOD,QAAU,CACbstO,aAAc,CACVppN,QAAS,aAETK,SAAU,QAGd2/U,YAAa,CACThgV,QAAS,YAETK,SAAU,QAGd4/U,gBAAiB,CACbjgV,QAAS,UACTC,MAAM,EAENI,SAAU,U,oCCjBlBtkB,EAAOD,QAAU,CACb05B,YAAa,iFACb0qU,iBAAkB,qF,oCCFtB,IAAIz0V,EAAK,EAAQ,QAEbyH,EAAM,EAAQ,QACd02P,EAAU12P,EAAI02P,QACdt7N,EAAY,EAAQ,QAA6BA,UACjDha,EAAU,EAAQ,QAClBqV,EAAK,EAAQ,QACb6D,EAAe,EAAQ,QAEvBv6B,EAAO,EAAQ,QACfu9H,EAAqB,EAAQ,QAC7B2vN,EAA6B,EAAQ,QACrCC,EAAkB,EAAQ,QAE1B5gV,EAAQ,EAAQ,QAChBmtC,EAAS,CACT,KAAQ,QACR,OAAU,SACV,MAAS,OAETxmD,EAAW,CACX,KAAQ,EACR,OAAU,GACV,MAAS,GAGTk6V,EAAY,qBAEhB,SAAS1yN,EAAcr3G,GAGnB,OAAOA,GAAkBA,EAAetpB,SAAW,EA0LvD,SAASszV,EAAgBp1V,EAAI0vE,EAAWj+D,EAAIyN,GACxC,IAaIxH,EAAIvX,EAAM00C,EAASkuN,EAAU/gN,EAb7B/hD,EAAQwR,EAAG,GAAGxR,MAEdo1V,EAASn2U,EAAKk0F,MACdkiP,EAAYp2U,EAAKs1B,MACjB+gT,EAAUr2U,EAAKq2U,QACfC,EAAet2U,EAAKs2U,aACpBngV,EAAO6J,EAAK7J,KACZqsC,EAASzhD,EAAMyhD,OAEft2B,EAAiBlM,EAAKkM,eACtBE,EAAapM,EAAKoM,WAMtB+pU,EAAOr0V,QAAQC,OAAO,KAAKC,QAAQ,UAAU,GAC7Cm0V,EAAO77U,KAAK,YAAa,aAAenE,EAAK/jB,EAAI,KAAO+jB,EAAK9iB,EAAI,KAEjE+iW,EAAUt0V,QAAQC,OAAO,KACpBC,QAAQ,cAAc,GACtBA,QAAQ,SAAS,GACtBo0V,EAAUv0V,UAAU,+BAAyCmB,SAG7D,IAAIuzV,EAAepgV,EAAK0tC,EACpB2yS,EAAoBz1V,EAAMmzG,MAAMzgC,IAAI62C,UAAYisO,EAChDE,EAAaj0S,EAAO7hD,EAAE,GACtB+1V,EAAcl0S,EAAO7hD,EAAE,IAAM6hD,EAAO7hD,EAAE,GAAK6hD,EAAO7hD,EAAE,KAAQI,EAAMuyG,YAAcvyG,EAAMwyG,UAAc,EAAIh0E,EAAGuuM,uBAA0B,GA4BzI,SAAS6oH,EAASziW,GACdA,EACKomB,KAAK,SAAS,SAAS7nB,GAAK,OAAOyF,KAAKqC,IAAI,EAAGie,EAAGqR,IAAIp3B,EAAE0X,MAAM,IAAMqO,EAAGqR,IAAIp3B,EAAE0X,MAAM,QACnFmQ,KAAK,KAAK,SAAS7nB,GAAK,OAAO+lB,EAAGqR,IAAIp3B,EAAE0X,MAAM,OAC9CmQ,KAAK,KAAK,SAAS7nB,GAAK,MAAO,IAAO,EAAIA,EAAE63H,WAAaisO,KACzDj8U,KAAK,UAAU,SAAS7nB,GAAK,OAAOA,EAAE63H,UAAYisO,KA/B3D/9U,EAAKC,EAAS3X,EAAIC,EAAMmzG,MAAMr2B,MAC9BrlE,EAAGyW,IAAM,cACTzW,EAAGgqC,OAAS,CAACi0S,EAAYC,GACzBl+U,EAAG8U,WAEHrsB,EAAO4H,EAAK8B,UAAU6N,GACtBm9B,EAAU9sC,EAAKy2C,YAAY9mC,GAC3BqrP,EAAWh7P,EAAKq3C,aAAa1nC,GAAI,GAEjCsqC,EAAQ3sC,EAAK9iB,EAAI8iB,EAAK0tC,EACnBrrC,EAAGlU,UACFuE,EAAK83C,UAAU7/C,EAAI0X,EAAI,CACnBvX,KAAmB,WAAbuX,EAAGtP,MAAqBL,EAAKuuC,SAAS5+B,EAAIvX,GAAQA,EACxDq0C,MAAO8gT,EACPxgT,KAAM/sC,EAAK23C,aAAahoC,EAAIsqC,EAAO+gN,GACnCluN,QAASA,IAGb9sC,EAAKk4C,WAAWjgD,EAAI0X,EAAI,CACpBvX,KAAMA,EACNq0C,MAAO8gT,EACPzgT,QAASA,EACTqL,SAAUn4C,EAAKo4C,aAAazoC,EAAIsqC,MAaxC,IAAI87C,EAAQ,CAACy3P,GAASn8V,OAAO6G,EAAMmzG,MAAMc,OACrC4hP,EAAWT,EAAOt0V,UAAU,eAAenE,KAAKkhG,GACpDg4P,EAAS90V,QAAQC,OAAO,KAAKC,QAAQ,aAAa,GAAMD,OAAO,QAC/D60V,EAASh1V,OAAO,QACXtP,KAAKqkW,GACLrkW,KAAKukW,GACVD,EAASrhT,OAAOvyC,SAGhB,IAAI8zV,EAAWX,EAAOt0V,UAAU,kBAAkBnE,KAAK,CAACqD,EAAMmzG,MAAMzgC,MACpEqjR,EAASh1V,QAAQC,OAAO,KAAKC,QAAQ,gBAAgB,GAAMD,OAAO,QAClE+0V,EAASl1V,OAAO,QACX0Y,KAAK,SAAUk8U,GACfl8U,KAAK,KAAMi8U,EAAeC,GAAqB,GAC/ClkW,KAAKukW,GACPtzN,EAAcr3G,GACb4qU,EAASl1V,OAAO,QACXY,aACAI,SAASspB,EAAetpB,UACxB6pB,KAAKP,EAAeQ,QACpBvqB,KAAK,OAAO,WAAaiqB,GAAcA,OACvCjqB,KAAK,aAAa,WAAaiqB,GAAcA,OAC7C9R,KAAK,QAASpiB,KAAKqC,IAAI,EAAGie,EAAGqR,IAAI3xB,KAAKoC,IAAIyG,EAAMmzG,MAAMr2B,KAAK1zE,MAAM,GAAIoI,EAAG,GAAGjM,MAEhFwwV,EAASl1V,OAAO,QACX0Y,KAAK,QAA4B,kBAAZ/H,EAAG,GAAGjM,EACxBpO,KAAKqC,IAAI,EAAGie,EAAGqR,IAAI3xB,KAAKoC,IAAIyG,EAAMmzG,MAAMr2B,KAAK1zE,MAAM,GAAIoI,EAAG,GAAGjM,KAC7D,GAEZwwV,EAASvhT,OAAOvyC,SAEhB,IAAItF,EAAO6U,EAAGvc,QAAO,WAAY,OAAO+K,EAAMmzG,MAAM5gG,UAAUlgB,SAC1DkgB,EAAY6iV,EAAOt0V,UAAU,sBAAsBnE,KAAKA,GAC5D4V,EAAUxR,QAAQC,OAAO,KAAKC,QAAQ,oBAAoB,GAAMD,OAAO,QACvEuR,EAAU1R,OAAO,QACZ0Y,KAAK,KAAM9B,EAAGqR,IAAI9oB,EAAMmzG,MAAM5gG,UAAUlgB,QACxCknB,KAAK,KAAM9B,EAAGqR,IAAI9oB,EAAMmzG,MAAM5gG,UAAUlgB,QACxCknB,KAAK,MAAO,EAAIvZ,EAAMmzG,MAAM5gG,UAAUg3G,WAAa,EAAIisO,GACvDj8U,KAAK,MAAO,GAAK,EAAIvZ,EAAMmzG,MAAM5gG,UAAUg3G,WAAa,GAAKisO,GAC7DjkW,KAAK8iB,EAAM6G,OAAQlb,EAAMmzG,MAAM5gG,UAAUsX,KAAKptB,OAC9C0E,MAAM,eAAgBnB,EAAMmzG,MAAM5gG,UAAUsX,KAAKlX,OACtDJ,EAAUiiC,OAAOvyC,SAEjB,IAAI+zV,EAAgBZ,EAAOt0V,UAAU,mBAAmBnE,KAAK,CAAC44V,IAC9DS,EAAcj1V,QAAQC,OAAO,KAAKC,QAAQ,iBAAiB,GAAMD,OAAO,QACxEg1V,EAAcn1V,OAAO,QAChBtP,KAAKqkW,GACLrkW,KAAKukW,GACVE,EAAcxhT,OAAOvyC,SAGzB,SAASg0V,EAAiBl2V,EAAI0vE,EAAWj+D,EAAIyN,GACzC,IA0CIxH,EAAIvX,EAAM00C,EAASkuN,EA1CnB9iQ,EAAQwR,EAAG,GAAGxR,MAEdoV,EAAO6J,EAAK7J,KACZokD,EAASv6C,EAAKu6C,OACd4zI,EAAcnuL,EAAKmuL,YACnBkoJ,EAAUr2U,EAAKq2U,QACfC,EAAet2U,EAAKs2U,aACpBW,EAAgB,CAAC9gV,EAAK/jB,EAAI+jB,EAAKlG,EAAI,EAAGkG,EAAK9iB,EAAI8iB,EAAK0tC,EAAI,EAAI0W,EAAS,GACrE25C,EAAQl0F,EAAKk0F,MACbkiP,EAAYp2U,EAAKs1B,MAEjBppB,EAAiBlM,EAAKkM,eACtBE,EAAapM,EAAKoM,WAGlBxX,EAAQ1c,KAAKs8B,GAAK,EACtB,SAAS0iU,EAAajgW,GAClB,IAAIqD,EAAMyG,EAAMmzG,MAAMr2B,KAAK1zE,MAAM,GAC7B5P,EAAMwG,EAAMmzG,MAAMr2B,KAAK1zE,MAAM,GAC7B64C,GAAS/rD,EAAIqD,IAAQC,EAAMD,GAAOpC,KAAKs8B,GAAK5f,EAChD,OAAGouC,GAASpuC,GAAeA,EACxBouC,EAAQpuC,EAAcA,EAClBouC,EAGX,SAASm0S,EAAiBhhV,GACtB,OAAO9U,EAAG8gB,IAAI89F,MACHkuF,aAAaA,EAAc5zI,GAAU,EAAIpkD,EAAO,GAAKokD,EAAS4zI,IAC9DC,aAAaD,EAAc5zI,GAAU,EAAIpkD,EAAO,GAAKokD,EAAS4zI,IAC9DF,YAAYr5L,GAG3B,SAASwiV,EAAQnjW,GACbA,EACKqmB,KAAK,KAAK,SAAS7nB,GAChB,OAAO0kW,EAAiB1kW,EAAE63H,WACvB2jF,WAAWipJ,EAAazkW,EAAE0X,MAAM,KAChC+jM,SAASgpJ,EAAazkW,EAAE0X,MAAM,IAF1BgtV,MAUnBjjP,EAAMpyG,QAAQC,OAAO,KAAKC,QAAQ,WAAW,GAC7CkyG,EAAM55F,KAAK,YAAawmP,EAAam2F,EAAc,GAAIA,EAAc,KAErEb,EAAUt0V,QAAQC,OAAO,KACpBC,QAAQ,eAAe,GACvBA,QAAQ,SAAS,GACtBo0V,EAAUv0V,UAAU,gCAA0CmB,SAE9DwV,EAAKC,EAAS3X,EAAIC,EAAMmzG,MAAMr2B,MAC9BrlE,EAAG/S,KAAO,SACV+S,EAAGrO,MAAQpJ,EAAMmzG,MAAMr2B,KAAK1zE,MAC5BqO,EAAGyW,IAAM,eACTzW,EAAG8U,WAGH,IAAI82O,EAAM,SAAS3xQ,GACf,OAAQ+lB,EAAGrO,MAAM,GAAK1X,EAAEkO,IAAM6X,EAAGrO,MAAM,GAAKqO,EAAGrO,MAAM,IAAMjS,KAAKs8B,GAAKt8B,KAAKs8B,IAG1EwsB,EAAW,GACX3uC,EAAMxJ,EAAKo4C,aAAazoC,EAAI,GAC5B0qC,EAAgB7wC,EAAI6wC,cACxBlC,EAASyC,IAAM,SAAShxD,GACpB,IAAI2wD,EAAMghN,EAAI3xQ,GACd,OAAOyF,KAAKmrD,IAAID,GAAOF,GAE3BlC,EAAS0C,IAAM,SAASjxD,GACpB,IAAI2wD,EAAMghN,EAAI3xQ,GACV8wD,EAAKrrD,KAAKorD,IAAIF,GAAO,EAAI,GAAM,EACnC,OAAQlrD,KAAKorD,IAAIF,IAAQF,EAAgBzwD,EAAE8gB,SAAWgwC,GAC9CrrD,KAAK+R,IAAI/R,KAAKmrD,IAAID,KAAS3wD,EAAE8gB,SAAW2wB,IAEpD8c,EAAS2C,SAAW,SAASlxD,GACzB,IAAI2wD,EAAMghN,EAAI3xQ,GACV4wD,EAAMnrD,KAAKmrD,IAAID,GACnB,OAAOlrD,KAAK+R,IAAIo5C,GAAO,GACf,SACCA,EAAM,EAAI,QAAU,OAEjCrC,EAAS4C,SAAW,SAASnxD,EAAGuC,EAAG6uD,GAC/B,IAAIT,EAAMghN,EAAI3xQ,GACd,OAAQ,IAAO,EAAIyF,KAAKorD,IAAIF,IAAQS,GAExC,IAAIwgN,EAAW,SAASjhN,GACpB,OAAO09M,EACHm2F,EAAc,GAAK18R,EAASriE,KAAKmrD,IAAID,GACrC6zS,EAAc,GAAK18R,EAASriE,KAAKorD,IAAIF,KAG7CzN,EAAU,SAASljD,GACf,OAAO4xQ,EAASD,EAAI3xQ,KAExB,IAAI6xQ,EAAW,SAAS7xQ,GACpB,IAAI2wD,EAAMghN,EAAI3xQ,GACd,OAAO4xQ,EAASjhN,GAAO,WAAao8M,EAAQp8M,GAAO,KAIvD,GAFAniD,EAAO4H,EAAK8B,UAAU6N,GACtBqrP,EAAWh7P,EAAKq3C,aAAa1nC,GAAI,GAC9BA,EAAGlU,QAAS,CACXu/P,EAAwB,WAAbrrP,EAAGtP,OAAsB,EAAI,EACxC,IAAImD,GAAOmM,EAAG89B,WAAa,GAAK,EAChCztC,EAAK83C,UAAU7/C,EAAI0X,EAAI,CACnBvX,KAAMA,EACNq0C,MAAO8gT,EACPxgT,KAAM,IAAOiuN,EAAWx3P,EAAO,MAASw3P,EAAWrrP,EAAGmpC,QACtDhM,QAAS2uN,IAEbz7P,EAAKk4C,WAAWjgD,EAAI0X,EAAI,CACpBvX,KAAMA,EACNq0C,MAAO8gT,EACPzgT,QAASA,EACTqL,SAAUA,IAKlB,IAAIyxR,EAAO,CAAC4jB,GAASn8V,OAAO6G,EAAMmzG,MAAMc,OACpCqiP,EAAQnjP,EAAMryG,UAAU,YAAYnE,KAAK+0U,GAC7C4kB,EAAMv1V,QAAQC,OAAO,KAAKC,QAAQ,UAAU,GAAMD,OAAO,QACzDs1V,EAAMz1V,OAAO,QAAQtP,KAAK8kW,GAAS9kW,KAAKukW,GACxCQ,EAAM9hT,OAAOvyC,SAGb,IAAIs0V,EAAwBH,EAAiBp2V,EAAMmzG,MAAMzgC,IAAI62C,WACzDitO,EAAWrjP,EAAMryG,UAAU,eAAenE,KAAK,CAACqD,EAAMmzG,MAAMzgC,MAChE8jR,EAASz1V,QAAQC,OAAO,KAAKC,QAAQ,aAAa,GAAMD,OAAO,QAC/D,IAAIy1V,EAAeD,EAAS31V,OAAO,QAChC2hI,EAAcr3G,IACbsrU,EACKh1V,aACAI,SAASspB,EAAetpB,UACxB6pB,KAAKP,EAAeQ,QACpBvqB,KAAK,OAAO,WAAaiqB,GAAcA,OACvCjqB,KAAK,aAAa,WAAaiqB,GAAcA,OAC7C24G,UAAU,IAAK0yN,EAASH,EAAuBJ,EAAa3kV,EAAG,GAAGs7P,OAAQqpF,EAAa3kV,EAAG,GAAGjM,KAClGvF,EAAM2sQ,WAAan7P,EAAG,GAAGjM,GAEzBkxV,EAAal9U,KAAK,IAAwB,kBAAZ/H,EAAG,GAAGjM,EAChCgxV,EAAsBppJ,SAASgpJ,EAAa3kV,EAAG,GAAGjM,IAClD,SAERkxV,EAAallW,KAAKukW,GAClBU,EAAShiT,OAAOvyC,SAGhByvU,EAAO,GACP,IAAIx7U,EAAI8J,EAAMmzG,MAAM5gG,UAAUlgB,MAC3B6D,GACCw7U,EAAKr9U,KAAK,CACN+U,MAAO,CAAClT,EAAGA,GACXuG,MAAOuD,EAAMmzG,MAAM5gG,UAAU9V,MAC7BotB,KAAM,CACFptB,MAAOuD,EAAMmzG,MAAM5gG,UAAUsX,KAAKptB,MAClCkW,MAAO3S,EAAMmzG,MAAM5gG,UAAUsX,KAAKlX,OAEtC42G,UAAWvpH,EAAMmzG,MAAM5gG,UAAUg3G,YAGzC,IAAIotO,EAAexjP,EAAMryG,UAAU,mBAAmBnE,KAAK+0U,GAC3DilB,EAAa51V,QAAQC,OAAO,KAAKC,QAAQ,iBAAiB,GAAMD,OAAO,QACvE21V,EAAa91V,OAAO,QAAQtP,KAAK8kW,GAAS9kW,KAAKukW,GAC/Ca,EAAaniT,OAAOvyC,SAGpB,IAAI20V,EAAczjP,EAAMryG,UAAU,mBAAmBnE,KAAK,CAAC44V,IAC3DqB,EAAY71V,QAAQC,OAAO,KAAKC,QAAQ,iBAAiB,GAAMD,OAAO,QACtE41V,EAAY/1V,OAAO,QAAQtP,KAAK8kW,GAAS9kW,KAAKukW,GAC9Cc,EAAYpiT,OAAOvyC,SAGvB,SAAS40V,EAAY92V,EAAI0vE,EAAWj+D,EAAIyN,GACpC,IAWI63U,EAAeC,EACfC,EAZAh3V,EAAQwR,EAAG,GAAGxR,MAEdi3V,EAAWh4U,EAAKg4U,SAChBC,EAAWj4U,EAAKi4U,SAChBC,EAAen3V,EAAMm8F,OAAS,SAC9Bi7P,EAAgB51S,EAAO21S,GAEvBhsU,EAAiBlM,EAAKkM,eACtBE,EAAapM,EAAKoM,WAElB6rR,EAAUnvS,EAAImtG,aAAazlC,EAAW,IAAK,WAI3C9yE,EAAO,GACRqD,EAAMuyG,YAAY51G,EAAKtI,KAAK,UAC5B2L,EAAMwyG,YACL71G,EAAKtI,KAAK,SACkB,SAAzB2L,EAAM06B,MAAM1/B,UAAqB2B,EAAKokD,WAE7C,IAAI97B,EAAMiyR,EAAQp2S,UAAU,QAAQnE,KAAKA,GAYzC,SAAS06V,EAAiB3tO,EAAajwH,EAAK8jG,EAAMk/E,GAE9C,IAAG/yD,EAAYjwG,MAAM,MAChB8jF,GAAQ,IAAMk/E,GAAM,GACnBhjL,EAAI8jG,GAAM7nG,OAAO,GAAG+jB,MAAMy7U,IAAez7V,EAAIgjL,GAAI/mL,OAAO,GAAG+jB,MAAMy7U,GAUnE,OAAOz7V,EARP,IAAI69V,EAAwB5tO,EAAYh0H,QAAQmU,QAAQ,IAAK,KAAKA,QAAQ,OAAO,SAASrY,GAAK,OAAOyoB,SAASzoB,GAAK,KAChH+lW,EAAe7/U,EAAS3X,EAAI,CAACwuC,WAAY+oT,IAC7C,OAAO,SAASphW,GAEZ,OAAGiB,KAAK+R,IAAIhT,GAAK,EAAU4R,EAAK+P,SAAS0/U,EAAcrhW,GAAGuK,KACnDhH,EAAIvD,IAOvB,SAASshW,IACL,IAAIC,EAAc//U,EAAS3X,EAAI,CAACwuC,WAAYvuC,EAAMiwC,OAAOy5E,aAAc1pH,EAAM0yG,QAC7E+kP,EAAYlrU,WACZzkB,EAAKgjC,UAAU2sT,GAEf,IAAIh+V,EAAM,SAASvD,GAAK,OAAO4R,EAAK+P,SAAS4/U,EAAavhW,GAAGuK,MACzDi3V,EAAkB13V,EAAMiwC,OAAOv2C,OAC/Bi+V,EAAkB33V,EAAMiwC,OAAOqf,OAE/Brf,EAASinQ,EAAQr2S,OAAO,eAE5B,SAAS+2V,IACL,IAAI9iP,EAAyB,kBAAZtjG,EAAG,GAAGjM,EACnBoyV,EAAkBl+V,EAAI+X,EAAG,GAAGjM,GAAKmyV,EACjC,IACJznT,EAAOxvC,KAAKq0G,GACPvjH,KAAK43B,EAAQ1W,KAAMzS,EAAMiwC,OAAOx9B,MAChClhB,KAAK8wC,EAAalpB,gBAAiBpZ,GAyB5C,OAtBGyiI,EAAcr3G,GACb8kB,EACKxuC,aACAI,SAASspB,EAAetpB,UACxB6pB,KAAKP,EAAeQ,QACpBvqB,KAAK,OAAO,WAAaw2V,IAAevsU,GAAcA,OACtDjqB,KAAK,aAAa,WAAaw2V,IAAevsU,GAAcA,OAC5D24G,UAAU,QAAQ,WACf,IAAItrH,EAAOpY,EAAGO,OAAO7P,MACjB6mW,EAAev3V,EAAGiqU,kBAAkB/4T,EAAG,GAAGs7P,MAAOt7P,EAAG,GAAGjM,GAC3DvF,EAAM2sQ,WAAan7P,EAAG,GAAGjM,EAEzB,IAAIuyV,EAAgBT,EAAiBr3V,EAAMiwC,OAAOy5E,YAAajwH,EAAK+X,EAAG,GAAGs7P,MAAOt7P,EAAG,GAAGjM,GACvF,OAAO,SAASjT,GACZomB,EAAKjY,KAAKk3V,EAAkBG,EAAcD,EAAavlW,IAAMolW,OAIzEE,IAGJd,EAAgBlkV,EAAY+kV,EAAkBl+V,EAAI+X,EAAG,GAAGjM,GAAKmyV,EAAiB13V,EAAMiwC,OAAOx9B,KAAM2kV,EAAer3V,GACzGkwC,EAGX,SAAS8nT,IACL,IAAIC,EAAUtgV,EAAS3X,EAAI,CAACwuC,WAAYvuC,EAAM06B,MAAMgvF,aAAc1pH,EAAM0yG,QACxEslP,EAAQzrU,WACRzkB,EAAKgjC,UAAUktT,GAEf,IAAIC,EAAW,SAAS/hW,GAAK,OAAO4R,EAAK+P,SAASmgV,EAAS9hW,GAAGuK,MAC1Dy3V,EAAa,SAASxmW,GACtB,IAAIW,EAAQ2N,EAAM06B,MAAM44E,SAAW5hH,EAAEq7Q,cAAgBr7Q,EAAEgpC,MACvD,OAAOroC,GAEP8lW,EAAkB,SAAS9lW,EAAO+lW,GAClC,OAAa,IAAV/lW,GAAgC,kBAAVA,GAAsBwM,MAAMxM,GAAe,KAC5DA,EAAQ,EAAI2N,EAAM06B,MAAMwgD,WAAWqC,OAASv9E,EAAM06B,MAAMygD,WAAWoC,QAAU66Q,EAAU/lW,IAE/FgmW,EAAY,SAAS3mW,GACrB,OAAOA,EAAEgpC,OAAS,EAAI16B,EAAM06B,MAAMwgD,WAAWz+E,MAAQuD,EAAM06B,MAAMygD,WAAW1+E,YAEnDuX,IAA1BhU,EAAMs4V,kBACLt4V,EAAMs4V,gBAAkBJ,EAAW1mV,EAAG,KAE1C,IAAIkpB,EAAQw8Q,EAAQr2S,OAAO,cAK3B,SAAS03V,IACL79T,EAAMj6B,KAAK03V,EAAgBD,EAAW1mV,EAAG,IAAKymV,IACzC1mW,KAAK8iB,EAAMpR,KAAMo1V,EAAU7mV,EAAG,KAC9BjgB,KAAK8wC,EAAalpB,gBAAiBpZ,GA2B5C,OAlCA26B,EACKnpC,KAAK43B,EAAQ1W,KAAMzS,EAAM06B,MAAMjoB,MAC/BlhB,KAAK8iB,EAAMpR,KAAMo1V,EAAU,CAAC39T,MAAO16B,EAAMs4V,mBAQ3C91N,EAAcr3G,GACbuP,EACKj5B,aACAI,SAASspB,EAAetpB,UACxB6pB,KAAKP,EAAeQ,QACpB85R,MAAM,QAAQ,WACX,IAAI/sS,EAAOpY,EAAGO,OAAO7P,MACjByrL,EAAKy7K,EAAW1mV,EAAG,IACnB+rF,EAAOv9F,EAAMs4V,gBACbR,EAAgBT,EAAiBr3V,EAAM06B,MAAMgvF,YAAauuO,EAAU16P,EAAMk/E,GAC1Eo7K,EAAev3V,EAAGiqU,kBAAkBhtO,EAAMk/E,GAE9C,OADAz8K,EAAMs4V,gBAAkB77K,EACjB,SAASnqL,GACZomB,EAAKjY,KAAK03V,EAAgBN,EAAavlW,GAAIwlW,IAC3Cp/U,EAAKnnB,KAAK8iB,EAAMpR,KAAMo1V,EAAU,CAAC39T,MAAOm9T,EAAavlW,UAG5D8O,KAAK,OAAO,WAAam3V,IAAcltU,GAAcA,OACrDjqB,KAAK,aAAa,WAAam3V,IAAcltU,GAAcA,OAEhEktU,IAGJxB,EAAYnkV,EAAYulV,EAAgBD,EAAW1mV,EAAG,IAAKymV,GAAWj4V,EAAM06B,MAAMjoB,KAAM2kV,EAAer3V,GAChG26B,EAjIXzV,EAAIlkB,QAAQC,OAAO,QACnBikB,EACK1L,KAAK,eAAe,WAAY,OAAO69U,KACvC79U,KAAK,SAAS,SAAS7nB,GAAK,OAAOA,KACnC6nB,KAAK,IAAK,MACVA,KAAK,IAAK,MACVA,KAAK,KAAM,MACXA,KAAK,KAAM,MAChB0L,EAAIuvB,OAAOvyC,SA4HX,IACIy4B,EADA/nC,EAAMqN,EAAMzN,KAAOyN,EAAMm8F,MAe7B,GAbGn8F,EAAMwyG,YACL93E,EAAQq9T,IACRplW,GAAOqN,EAAM06B,MAAM1/B,SAAWgF,EAAM06B,MAAMjoB,KAAK2C,KAAOpV,EAAM06B,MAAMjoB,KAAKN,OAASnS,EAAM06B,MAAMgvF,YAC5F/2H,GAAOqN,EAAM06B,MAAMwgD,WAAWqC,OAASv9E,EAAM06B,MAAMygD,WAAWoC,OAC9Dy5Q,EAAcD,GAEf/2V,EAAMuyG,aACLilP,IACA7kW,GAAOqN,EAAMiwC,OAAOx9B,KAAK2C,KAAOpV,EAAMiwC,OAAOx9B,KAAKN,OAASnS,EAAMiwC,OAAOy5E,YAAc1pH,EAAMiwC,OAAOv2C,OAASsG,EAAMiwC,OAAOqf,OACzH0nS,EAAcF,GAIf92V,EAAMwyG,WAAaxyG,EAAMuyG,WAAY,CACpC,IASI/nF,EAAIhP,EATJg9U,EAAkB,EACjB1B,EAAc1xV,KAAO0xV,EAAczxV,OAAS,GAC5CyxV,EAAclzU,IAAMkzU,EAAcnzU,QAAU,GAE7C80U,EAAc,EACb1B,EAAU3xV,KAAO2xV,EAAU1xV,OAAS,GACpC0xV,EAAUnzU,IAAMmzU,EAAUpzU,QAAU,GAIrCqC,EAAU,IAAOhmB,EAAM06B,MAAMjoB,KAAK2C,KACV,SAAzBpV,EAAM06B,MAAM1/B,WACXwvB,EAAKm9G,EAAM3nI,EAAO,WAAY,GAAI,GAAK82V,EAAcnkV,MAAS3X,EAASgF,EAAMm8F,OAAU46P,EAAUpkV,OAAS,EAAI3X,EAASgF,EAAMm8F,QAAUn2E,GAAUrzB,EAAKwE,KAAKoC,KAC3JiiB,EAAKg9U,EAAgB,GAAKC,EAAY,GAEtCzB,EAAc,CACVrkV,MAAOmkV,EAAcnkV,MAAQokV,EAAUpkV,MAAQqT,EAC/ClL,OAAQ3jB,KAAKqC,IAAIs9V,EAAch8U,OAAQi8U,EAAUj8U,QACjD1V,KAAM2xV,EAAU3xV,KAAOolB,EACvBnlB,MAAOyxV,EAAczxV,MACrBue,IAAKzsB,KAAKoC,IAAIu9V,EAAclzU,IAAKmzU,EAAUnzU,IAAMpI,GACjDmI,OAAQxsB,KAAKqC,IAAIs9V,EAAcnzU,OAAQozU,EAAUpzU,OAASnI,KAGtC,UAAzBxb,EAAM06B,MAAM1/B,WACXwvB,EAAKm9G,EAAM3nI,EAAO,WAAY,EAAG82V,EAAcnkV,OAAS,EAAI3X,EAASgF,EAAMm8F,QAAU46P,EAAUpkV,MAAQ3X,EAASgF,EAAMm8F,OAASn2E,EAASrzB,EAAKwE,KAAKqC,KAClJgiB,EAAKg9U,EAAgB,GAAKC,EAAY,GAEtCzB,EAAc,CACVrkV,MAAOmkV,EAAcnkV,MAAQokV,EAAUpkV,MAAQqT,EAC/ClL,OAAQ3jB,KAAKqC,IAAIs9V,EAAch8U,OAAQi8U,EAAUj8U,QACjD1V,KAAM0xV,EAAc1xV,KACpBC,MAAO0xV,EAAU1xV,MAAQmlB,EACzB5G,IAAKzsB,KAAKoC,IAAIu9V,EAAclzU,IAAKmzU,EAAUnzU,IAAMpI,GACjDmI,OAAQxsB,KAAKqC,IAAIs9V,EAAcnzU,OAAQozU,EAAUpzU,OAASnI,KAGtC,WAAzBxb,EAAM06B,MAAM1/B,WACXwvB,EAAK,KACLhP,EAAKu7U,EAAUj8U,OAEfk8U,EAAc,CACVrkV,MAAOxb,KAAKqC,IAAIs9V,EAAcnkV,MAAOokV,EAAUpkV,OAC/CmI,OAAQg8U,EAAch8U,OAASi8U,EAAUj8U,OACzC1V,KAAMjO,KAAKoC,IAAIu9V,EAAc1xV,KAAM2xV,EAAU3xV,MAC7CC,MAAOlO,KAAKqC,IAAIs9V,EAAczxV,MAAO0xV,EAAU1xV,OAC/Cue,IAAKkzU,EAAcnzU,OAASmzU,EAAch8U,OAC1C6I,OAAQmzU,EAAcnzU,OAASozU,EAAUj8U,SAGrB,QAAzB9a,EAAM06B,MAAM1/B,WACXwvB,EAAK,KACLhP,EAAKs7U,EAAclzU,IAEnBozU,EAAc,CACVrkV,MAAOxb,KAAKqC,IAAIs9V,EAAcnkV,MAAOokV,EAAUpkV,OAC/CmI,OAAQg8U,EAAch8U,OAASi8U,EAAUj8U,OACzC1V,KAAMjO,KAAKoC,IAAIu9V,EAAc1xV,KAAM2xV,EAAU3xV,MAC7CC,MAAOlO,KAAKqC,IAAIs9V,EAAczxV,MAAO0xV,EAAU1xV,OAC/Cue,IAAKkzU,EAAcnzU,OAASmzU,EAAch8U,OAASi8U,EAAUj8U,OAC7D6I,OAAQmzU,EAAcnzU,SAI9B+W,EAAMnhB,KAAK,CAACiR,GAAIA,EAAIhP,GAAIA,KAIzBxb,EAAMuyG,YAAcvyG,EAAMwyG,YACzB0kM,EAAQ39R,KAAK,aAAa,WACtB,IAAI/nB,EAAIytB,EAAKy5U,cAAc1B,GAC3BrkW,GAAOnB,EAAE,GACT,IACIk+J,EADAipM,EAAahxN,EAAM3nI,EAAO,eAAgB,EAAGxO,EAAE,GAAImB,EAAKwE,KAAKoC,KAE7DyG,EAAMuzG,gBAAeolP,EAAa,GAGlCjpM,EAFD1vJ,EAAM0zG,WAEQwjP,EAAWyB,EAAa3B,EAAYrzU,OAGpCuzU,EAAWyB,GAAc3B,EAAYpzU,IAAMozU,EAAYrzU,QAAU,EAIlF3jB,EAAM44V,YAAcD,EAAc3B,EAAe,IAAItnM,EAErD,IAAIioG,EAAMq/F,EAAYG,GACF,WAAjBA,IAA2Bx/F,GAAOq/F,EAAY5xV,KAAO4xV,EAAY3xV,OAAS,GAC7E,IAAIoqJ,EAAawnM,EAAW0B,EAAahhG,EAIzC,OADAloG,EAAa9nB,EAAM3nI,EAAO,mBAAoB,EAAGyvJ,EAAY98J,EAAKwE,KAAKqC,KAChEumQ,EAAatwG,EAAYC,GAAc,UAAYipM,EAAa,OAMnF,SAAS7C,EAAW5iW,GAChBA,EACKkO,MAAK,SAAS1P,GAAK2iB,EAAM6G,OAAO5a,EAAGO,OAAO7P,MAAOU,EAAEm4B,KAAKptB,UACxD2E,MAAK,SAAS1P,GAAK2iB,EAAMpR,KAAK3C,EAAGO,OAAO7P,MAAOU,EAAE+K,UACjD0E,MAAM,gBAAgB,SAASzP,GAAK,OAAOA,EAAEm4B,KAAKlX,SAK3D,SAAS+jV,EAASx3O,EAAKiuF,EAAU0rJ,GAC7B,OAAO,WACH,IAAIlsJ,EAAcrsM,EAAGqsM,YAAYQ,EAAU0rJ,GAC3C,OAAO,SAASvmW,GACZ,OAAO4sH,EAAIiuF,SAASR,EAAYr6M,GAAzB4sH,KAMnB,SAASxnG,EAAS3X,EAAIkf,EAAM65U,GACxB,IAAIxhV,EAAavX,EAAG+mB,YAEhBisF,EAAShrG,EAAI0M,WAAW,CACxB/P,KAAM,SACNyD,MAAO,UACPiB,MAAO0vV,EACP3hT,UAAU,GACXl4B,GAEC+zF,EAAU,CACVtuG,KAAM,SACNwpB,IAAK,IAAMjP,EAAKiP,KAGhB6qU,EAAc,CACdx8K,OAAQ,IACR9pK,KAAM6E,EAAW7E,KACjB22U,SAAS,EACTG,WAAW,GAGf,SAAS/kT,EAAOjrB,EAAMzE,GAClB,OAAO/M,EAAIy8B,OAAOuuE,EAAQC,EAASiiP,EAAiB17U,EAAMzE,GAM9D,OAHAuwH,EAAmBtyB,EAAQC,EAASxuE,EAAQu0T,EAAazhV,GACzD09U,EAA2BjiP,EAAQC,EAASxuE,EAAQu0T,GAE7C/lP,EAGX,SAAS+sJ,EAAangQ,EAAG2F,GACrB,MAAO,aAAe3F,EAAI,IAAM2F,EAAI,IAGxC,SAASyzV,EAAiBn0N,EAAQlyH,EAAOmI,GAErC,IAAIqsD,EAAQhwE,KAAKoC,IAAIoZ,EAAQkyH,EAAOlyH,MAAOmI,EAAS+pH,EAAO/pH,QAC3D,MAAO,CAACqsD,EAAO09D,EAAQlyH,EAAQ,IAAMmI,GAGzC,SAASm+U,EAAoBp0N,EAAQrrE,GAEjC,IAAI0/R,EAAW/hW,KAAKuD,KAAMmqI,EAAOlyH,MAAQ,GAAMkyH,EAAOlyH,MAAQ,GAAKkyH,EAAO/pH,OAAS+pH,EAAO/pH,QACtFqsD,EAAQ3N,EAAS0/R,EACrB,MAAO,CAAC/xR,EAAO09D,EAAQrrE,GAG3B,SAAS5mD,EAAYkiG,EAAKriG,EAAM0mV,EAAYp5V,GACxC,IAAIirG,EAAUn5F,SAASsP,gBAAgB,6BAA8B,QACjE8D,EAAM3kB,EAAGO,OAAOmqG,GAQpB,OAPA/lF,EAAIxkB,KAAKq0G,GACNv7F,KAAK,IAAK,GACVA,KAAK,IAAK,GACVA,KAAK,cAAe4/U,GACpB5/U,KAAK,mBAAoBu7F,GACzBvjH,KAAK8wC,EAAalpB,gBAAiBpZ,GACnCxO,KAAK43B,EAAQ1W,KAAMA,GACf0W,EAAQ+qB,KAAKjvB,EAAIjM,QAG5B,SAAS2uH,EAAM3nI,EAAOrO,EAAM44V,EAAcl4V,EAAOM,EAAK8lB,GAClD,IAAIymH,EAAU,SAAWvtI,EACpBqO,EAAMk/H,IAAYl/H,EAAMk/H,GAASvsI,MAAQA,IAC1CqN,EAAMk/H,GAAW,CAACvsI,IAAKA,EAAKN,MAAOk4V,IAEvC,IAAIr0V,EAAI6R,EAAI8hC,QAAQpxB,EAAI,KAAM,CAACzY,EAAMk/H,GAAS7sI,MAAOA,GAAQ,GAG7D,OAFA2N,EAAMk/H,GAAS7sI,MAAQ6D,EAEhBA,EAj0BXtF,EAAOD,QAAU,SAAcoP,EAAIqgL,EAAUj1J,EAAgBC,GACzD,IACIC,EADA/T,EAAavX,EAAG+mB,YAGjB07G,EAAcr3G,IACVC,IAICC,EAAaD,KAIrBrjB,EAAIwnE,gBAAgBj4D,EAAW8hV,gBAAiBh5K,EAAU,SAASh/K,MAAK,SAASoQ,GAC7E,IA4BIylV,EAAUC,EAAUwB,EAqCpBpD,EAASC,EAjETj0T,EAAM9vB,EAAG,GACTxR,EAAQshC,EAAIthC,MAEZyvE,EAAYnvE,EAAGO,OAAO7P,MAGtBqoW,EAAWr5V,EAAMyyG,UACjB7mE,EAAY5rC,EAAM0zG,WAClBF,EAAWxzG,EAAMyzG,UAGjBhyD,EAASzhD,EAAMyhD,OACfrsC,EAAO,CACPlG,EAAGoI,EAAWmuC,MAAMv2C,GAAKuyC,EAAO7hD,EAAE,GAAK6hD,EAAO7hD,EAAE,IAChDkjD,EAAGxrC,EAAWmuC,MAAM3C,GAAKrB,EAAOl8C,EAAE,GAAKk8C,EAAOl8C,EAAE,IAChDlU,EAAGimB,EAAWmuC,MAAMp0D,EAAIimB,EAAWmuC,MAAMv2C,EAAIuyC,EAAO7hD,EAAE,GACtD1N,EAAGolB,EAAWmuC,MAAMvzD,EAAIolB,EAAWmuC,MAAMv2C,GAAK,EAAIuyC,EAAO7hD,EAAE,IAC3DtN,EAAGglB,EAAWmuC,MAAMnzD,EAAIglB,EAAWmuC,MAAM3C,GAAK,EAAIrB,EAAOl8C,EAAE,IAC3DrR,EAAGojB,EAAWmuC,MAAMvxD,EAAIojB,EAAWmuC,MAAM3C,EAAKrB,EAAOl8C,EAAE,IAEvDu0Q,EAAU1kQ,EAAK/jB,EAAI+jB,EAAKlG,EAAI,EAC5B6qQ,EAAU3kQ,EAAK9iB,EAAI8iB,EAAK0tC,EAAI,EAG5B0W,EAASriE,KAAKoC,IAAI6b,EAAKlG,EAAI,EAAGkG,EAAK0tC,GACnCsqJ,EAAc5uK,EAAG4uK,YAAc5zI,EAI/B29R,EAAen3V,EAAMm8F,OAAS,SAGlC,GADA+6P,EAAWn9E,EACPs/E,GAaA,GAPGztT,IACCqrT,EAAWn9E,EACXo9E,EAAWn9E,EAAUvgN,EAAS,EAC9Bk/R,EAAgB,SAAS5zU,GACrB,OAAOm0U,EAAoBn0U,EAAI,GAAMsoL,KAG1C55F,EAAU,CACT,IAAIxtF,EAAUwY,EAAGwuM,cACb95O,EAAK,EAAIsrC,EAAGuuM,uBAA0B/mN,EAC1CixU,EAAW7hV,EAAK/jB,GAAK6B,GAAK,EAAIA,GAAK8H,EAASm8V,IAAiB/hV,EAAKlG,EAClEwpV,EAAgB,SAAS5zU,GACrB,OAAOk0U,EAAiBl0U,GAAK0Z,EAAGuuM,uBAAyB/mN,GAAW5Q,EAAKlG,EAAGkG,EAAK0tC,UAjBzFm0S,EAAW7hV,EAAK/jB,EAAI2J,EAASm8V,GAAgB/hV,EAAKlG,EAClDwpV,EAAgB,SAAS5zU,GACrB,OAAOk0U,EAAiBl0U,EAAI1P,EAAKlG,EAAGkG,EAAK0tC,IAqBjD+zS,EAAY92V,EAAI0vE,EAAWj+D,EAAI,CAC3BylV,SAAUA,EACVC,SAAUA,EACVwB,cAAeA,EACfvtU,eAAgBA,EAChBE,WAAYA,IAKbguU,IACC/D,EAAU,CACNlsV,MAAOpJ,EAAMmzG,MAAMr2B,KAAK1zE,MACxB3M,MAAOuD,EAAMmzG,MAAM9W,QACnBxyE,KAAM,CACFptB,MAAOuD,EAAMmzG,MAAM7W,YACnB3pF,MAAO,GAEX42G,UAAW,GAGfgsO,EAAe,CACXnsV,MAAOpJ,EAAMmzG,MAAMr2B,KAAK1zE,MACxB3M,MAAO,mBACPotB,KAAM,CACFptB,MAAOuD,EAAMmzG,MAAM7W,YACnB3pF,MAAO3S,EAAMmzG,MAAM3W,aAEvB+sB,UAAW,IAKnB,IAAI+vO,EAAe7pR,EAAU3uE,UAAU,aAAanE,KAAKivC,EAAYp6B,EAAK,IAC1E8nV,EAAa9kT,OAAOvyC,SACpB,IAAIs3V,EAAmB9pR,EAAU3uE,UAAU,iBAAiBnE,KAAKivC,EAAYp6B,EAAK,IAClF+nV,EAAiB/kT,OAAOvyC,SAErB2pC,GACCqqT,EAAiBl2V,EAAI0vE,EAAWj+D,EAAI,CAChCgoD,OAAQA,EACR4zI,YAAaA,EAEbj6F,MAAOmmP,EACP/kT,MAAOglT,EACPnkV,KAAMA,EACNkgV,QAASA,EACTC,aAAcA,EACdpqU,eAAgBA,EAChBE,WAAYA,IAKpB,IAAImuU,EAAc/pR,EAAU3uE,UAAU,YAAYnE,KAAK62G,EAAWhiG,EAAK,IACvEgoV,EAAYhlT,OAAOvyC,SACnB,IAAIw3V,EAAkBhqR,EAAU3uE,UAAU,gBAAgBnE,KAAK62G,EAAWhiG,EAAK,IAC/EioV,EAAgBjlT,OAAOvyC,SAEpBuxG,GACC2hP,EAAgBp1V,EAAI0vE,EAAWj+D,EAAI,CAC/B2hG,MAAOqmP,EACPjlT,MAAOklT,EACPrkV,KAAMA,EACNkgV,QAASA,EACTC,aAAcA,EACdpqU,eAAgBA,EAChBE,WAAYA,IAKpB,IAAI0pB,EAAQ06B,EAAU3uE,UAAU,cAAcnE,KAAK6U,GACnDujC,EAAMP,OAAOvyC,SACb8yC,EAAMh0C,QAAQC,OAAO,QAAQC,QAAQ,SAAS,GAC9C8zC,EACKx7B,KAAK,eAAe,WACjB,OAAOi6F,EAAWhyD,EAAOn8C,MAAQm8C,EAAOxhD,EAAM+0C,MAAMonD,UAEvD17F,KAAKT,EAAM+0C,MAAMt0C,MACjBlP,KAAK43B,EAAQ1W,KAAMzS,EAAM+0C,MAAMtiC,MAC/BlhB,KAAK8wC,EAAalpB,gBAAiBpZ,GAGxCg1C,EAAMx7B,KAAK,aAAa,WACpB,IACImgV,EADAC,EAASvkV,EAAK/jB,EAAI+jB,EAAKlG,EAAIlU,EAASgF,EAAM+0C,MAAMonD,OAEhD8wI,EAAezuM,EAAGyuM,aAClB2sH,EAAYzwU,EAAQ+qB,KAAKa,EAAM/7B,QACnC,GAAGqgV,EAAU,CACT,GAAGztT,EAEC,GAAG5rC,EAAMmzG,MAAMr2B,KAAKv5E,QAAS,CACzB,IAAI2wC,EAAO/qB,EAAQ+qB,KAAKqlT,EAAiBvgV,QACzC0gV,EAAUxlT,EAAKtwB,IAAMqpN,EAAgB2sH,EAAUj2U,YAE/C+1U,EAAStkV,EAAK9iB,EAAI8iB,EAAK0tC,EAAI,EAAI0W,EAAS,EAAIogS,EAAUj2U,OAASspN,EAGpEz5H,IAECkmP,EAASxC,GAAY0C,EAAUh2U,IAAMg2U,EAAUj2U,QAAU,EACzDg2U,EAASvkV,EAAK/jB,EAAImtC,EAAGwuM,cAAgB53N,EAAKlG,QAI9CwqV,EAAU15V,EAAM44V,YAAc3rH,EAAgB2sH,EAAUj2U,OAE5D,OAAOo8O,EAAa45F,EAAQD,W,oCCpNxC,IAAInlV,EAAqB,EAAQ,QAAmCA,mBAChEE,EAAa,EAAQ,QAAoBA,WACzColV,EAAoB,EAAQ,QAC5B7/Q,EAAW,EAAQ,QAEvBppF,EAAOD,QAAU,CACbuB,EAAG2nW,EAAkB3nW,EACrB2hB,MAAOgmV,EAAkBhmV,MACzBi9B,GAAI+oT,EAAkB/oT,GACtB43N,GAAImxF,EAAkBnxF,GACtBoxF,OAAQD,EAAkBC,OAC1BC,OAAQF,EAAkBE,OAC1BxqT,UAAWsqT,EAAkBtqT,UAU7Bve,KAAMvc,EAAW,GAAIulE,EAAShpD,KAAM,IAGpC1jB,OAAQmH,EAAW,GAAIulE,EAAS1sE,OAAQ,IAGxCqF,MAAO8B,EAAW,GAAIulE,EAASrnE,MAAO,IAItClS,KAAMgU,EAAW,GAAIulE,EAASv5E,KAAM,IAGpCoV,UAAWpB,EAAW,GAAIulE,EAASnkE,UAAW,IAW9C+T,OAAQowD,EAASpwD,OAEjB3S,UAAW4iV,EAAkB5iV,UAC7BnB,cAAevB,IAEf0V,SAAU+vD,EAAS/vD,SACnBq0D,WAAYtE,EAASsE,a,oCC5DzB,IAAIvkF,EAAe,EAAQ,QACvBC,EAAY,EAAQ,QACpBM,EAAe,EAAQ,QAE3B1J,EAAOD,QAAUs/B,EAEjB,IAAIz1B,EAAW,CAAC,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,GAEtB,SAASw/V,EAAW5+V,EAAIG,EAAQC,EAAKH,GACnCrK,KAAKoK,GAAaA,EAClBpK,KAAKuK,OAAaA,EAClBvK,KAAKwK,IAAaA,EAClBxK,KAAKqK,OAAaA,EAClBrK,KAAKmL,WAAa,EAClBnL,KAAK4J,OAAa,CAAC,EAAE,KAAM,KAAM,KAAO,CAAC,IAAK,IAAK,MACnD5J,KAAKgK,SAAa,CAAC,EAAE,EAAE,GACvBhK,KAAK8K,UAAa,CAAC,EAAE,EAAE,GACvB9K,KAAKuN,OAAa,CAAC,CAAC,EAAE,EAAE,EAAE,GAAI,CAAC,EAAE,EAAE,EAAE,GAAI,CAAC,EAAE,EAAE,EAAE,IAChDvN,KAAKglC,QAAa,EAAC,GAAK,GAAK,GAC7BhlC,KAAKutL,UAAa,EAAC,GAAK,GAAK,GAC7BvtL,KAAK4X,KAAa,KAGpB,IAAIxT,EAAQ4kW,EAAWhnW,UAEnBinW,EAAa,CAAC,EAAE,EAAE,GAClBC,EAAa,CAAC,EAAE,EAAE,GAElB5vH,EAAQ,CAAC,EAAE,GA4Ff,SAASr6M,EAAa70B,EAAIgB,GAExB,IAAIO,EAAO,GAEX,SAASktB,EAAKjqB,EAAE2F,EAAElF,EAAEjP,EAAEC,EAAEyxD,GACtB,IAAI0rB,EAAM,CAAC5uE,EAAE2F,EAAElF,EAAI,EAAE,EAAE,EAAI,GAC3BmuE,EAAIp9E,EAAE,GAAK,EACXo9E,EAAIp9E,GAAKC,EACTsL,EAAKtI,KAAKsB,MAAMgH,EAAM6xE,GACtBA,EAAI,IAAM,EACV7xE,EAAKtI,KAAKsB,MAAMgH,EAAM6xE,GACtBA,EAAIp9E,GAAK0xD,EACTnmD,EAAKtI,KAAKsB,MAAMgH,EAAM6xE,GACtB7xE,EAAKtI,KAAKsB,MAAMgH,EAAM6xE,GACtBA,EAAI,GAAK,EACT7xE,EAAKtI,KAAKsB,MAAMgH,EAAM6xE,GACtBA,EAAIp9E,GAAKC,EACTsL,EAAKtI,KAAKsB,MAAMgH,EAAM6xE,GAGxB3kD,EAAK,EAAE,EAAE,EAAG,EAAG,EAAG,GAClBA,EAAK,EAAE,EAAE,EAAG,EAAG,EAAG,GAClBA,EAAK,EAAE,EAAE,EAAG,EAAG,EAAG,GAElBA,EAAK,EAAE,EAAE,EAAI,GAAK,EAAE,GACpBA,EAAK,EAAE,EAAE,EAAI,GAAK,EAAE,GAEpBA,EAAK,EAAE,EAAE,EAAI,GAAK,EAAE,GACpBA,EAAK,EAAE,EAAE,EAAI,GAAK,EAAE,GAEpBA,EAAK,EAAE,EAAE,EAAI,GAAK,EAAE,GACpBA,EAAK,EAAE,EAAE,EAAI,GAAK,EAAE,GAEpB,IAAItuB,EAASxB,EAAaqB,EAAIuB,GAC1BnB,EAAMxB,EAAUoB,EAAI,CAAC,CACvBsJ,KAAMtJ,EAAGwyH,MACTryH,OAAQA,EACR6Z,KAAM,EACN9H,OAAQ,EACRitB,OAAQ,IACP,CACD71B,KAAMtJ,EAAGwyH,MACTryH,OAAQA,EACR6Z,KAAM,EACN9H,OAAQ,GACRitB,OAAQ,IACP,CACD71B,KAAMtJ,EAAGwyH,MACTryH,OAAQA,EACR6Z,KAAM,EACN9H,OAAQ,GACRitB,OAAQ,MAINl/B,EAASf,EAAac,GAC1BC,EAAOiB,WAAWtB,SAASuB,SAAW,EACtClB,EAAOiB,WAAWG,MAAMF,SAAW,EACnClB,EAAOiB,WAAW8iE,OAAO7iE,SAAW,EAGpC,IAAIk2B,EAAS,IAAIunU,EAAW5+V,EAAIG,EAAQC,EAAKH,GAM7C,OAHAo3B,EAAO11B,OAAOX,GAGPq2B,EA7JTr9B,EAAM4H,cAAgB,WACpB,OAAO,GAGT5H,EAAMiI,gBAAkB,SAASE,KAEjCnI,EAAMkI,KAAO,SAASC,GACpB,IAAInC,EAAKpK,KAAKoK,GACVI,EAAMxK,KAAKwK,IACXH,EAASrK,KAAKqK,OAElBG,EAAI5I,OACJyI,EAAOzI,OAEP,IAIIkqF,EAJAr/E,EAAaF,EAAOE,OAASjD,EAC7BkD,EAAaH,EAAOG,MAAQlD,EAC5BmD,EAAaJ,EAAOI,YAAcnD,EAGnCxJ,KAAK4X,OACNk0E,EAAO9rF,KAAK4X,KAAKuxV,cAAcr9Q,MAKjC,IAFA,IAAIs9Q,EAAYH,EACZI,EAAYH,EACR9oW,EAAE,EAAGA,EAAE,IAAKA,EACf0rF,GAAQA,EAAK1rF,GAAK,GACnBgpW,EAAUhpW,GAAKJ,KAAK4J,OAAO,GAAGxJ,GAC9BipW,EAAUjpW,GAAKJ,KAAK4J,OAAO,GAAGxJ,KAE9BgpW,EAAUhpW,GAAKJ,KAAK4J,OAAO,GAAGxJ,GAC9BipW,EAAUjpW,GAAKJ,KAAK4J,OAAO,GAAGxJ,IAIlCk5O,EAAM,GAAKlvO,EAAG0C,mBACdwsO,EAAM,GAAKlvO,EAAG2C,oBAEd1C,EAAOmC,SAASC,MAAcA,EAC9BpC,EAAOmC,SAASE,KAAcA,EAC9BrC,EAAOmC,SAASG,WAAcA,EAC9BtC,EAAOmC,SAASw2D,YAAc,CAAChjE,KAAKgK,SAAUo/V,EAAWC,GACzDh/V,EAAOmC,SAASe,OAAcvN,KAAKuN,OACnClD,EAAOmC,SAASK,YAAcysO,EAE9B,IAAQl5O,EAAE,EAAGA,EAAE,IAAKA,EAClBiK,EAAOmC,SAAS1B,UAAY9K,KAAK8K,UAAU1K,GAAKJ,KAAKmL,WAClDnL,KAAKglC,QAAQ5kC,KACdoK,EAAI8B,KAAKlC,EAAGygL,UAAW,EAAG,EAAEzqL,GACzBJ,KAAKutL,UAAUntL,IAChBoK,EAAI8B,KAAKlC,EAAGygL,UAAW,GAAI,GAAG,GAAGzqL,IAKvCoK,EAAIyC,UAGN7I,EAAM2H,OAAS,SAASX,GAClBA,IAGD,WAAYA,IACbpL,KAAK4J,OAASwB,EAAQxB,QAErB,aAAcwB,IACfpL,KAAKgK,SAAWoB,EAAQpB,UAEvB,cAAeoB,IAChBpL,KAAK8K,UAAYM,EAAQN,WAExB,WAAYM,IACbpL,KAAKuN,OAASnC,EAAQmC,QAErB,YAAanC,IACdpL,KAAKglC,QAAU55B,EAAQ45B,SAEtB,cAAe55B,IAChBpL,KAAKutL,UAAYniL,EAAQmiL,aAI7BnpL,EAAMoK,QAAU,WACdxO,KAAKwK,IAAIgE,UACTxO,KAAKuK,OAAOiE,UACZxO,KAAKqK,OAAOmE,Y,kCC9Gd,IAAIuI,EAAM,EAAQ,QACdsgF,EAAe,EAAQ,QAAmBjvD,QAC1C+vF,EAAc,EAAQ,QAAsB7sH,WAC5Cq0J,EAAmB,EAAQ,QAAmCplG,QAC9D23B,EAAW,EAAQ,QAEnBo3Q,EAAY,CACZpuM,KAAM,CACFr3I,QAAS,UACTtb,IAAK,EAEL2b,SAAU,QAGdqlV,SAAU,CACN1lV,QAAS,aACT8V,OAAQ,CAAC,gBAAiB,iBAC1B7V,KAAM,gBAENI,SAAU,QAGd+6I,QAAS,CACLp7I,QAAS,UACTtb,IAAK,EAEL2b,SAAU,QAGd8jB,SAAU,CACNnkB,QAAS,aACTk8I,YAAY,EACZ3rB,WAAY,EACZ5b,MAAO,CAAC30G,QAAS,aAAc8V,OAAQ,CAAC09D,EAAa,MAAMt6E,WAAY,IAAKmH,SAAU,QAEtFA,SAAU,QAGdi2F,MAAO,CACHt2F,QAAS,aACTk8I,YAAY,EACZvnC,MAAO,CAAC30G,QAAS,aAAc8V,OAAQ,CAACgmI,EAAiB/wJ,EAAEmO,WAAY,IAAKmH,SAAU,QAEtFA,SAAU,QAGdm2F,MAAO,CACHx2F,QAAS,aACTk8I,YAAY,EACZvnC,MAAO,CAAC30G,QAAS,aAAc8V,OAAQ,CAACgmI,EAAiBprJ,EAAEwI,WAAY,IAAKmH,SAAU,QAEtFA,SAAU,QAGd+yO,QAAS,CACLpzO,QAAS,aACT8V,OAAQ,CAAC,cAAe,WACxB7V,KAAM,UAENI,SAAU,QAGd4V,KAAM,CACFjW,QAAS,SACTtb,IAAK,EACLC,IAAK,EAEL0b,SAAU,QAGd6V,KAAM,CACFlW,QAAS,SACTtb,IAAK,EACLC,IAAK,EAEL0b,SAAU,QAGdusC,OAAQ0nE,EAAY,CAACx3H,KAAM,OAAQujB,SAAU,OAAQslV,YAAY,GAAO,IAGxExzN,MAAO,CACHnyH,QAAS,aACT8V,OAAQ,CAAC,SAAU,cAAe,WAAY,OAC9C7V,KAAM,cAENI,SAAU,QAGd+xH,MAAO,CACHpyH,QAAS,aACT8V,OAAQ,CAAC,OAAQ,YAAa,aAAc,SAC5C7V,KAAM,YAENI,SAAU,QAGdA,SAAU,QAGd,SAASulV,EAAQthT,EAAQoK,EAAM3uC,GAC3B,IAAI8lV,EAAUn3S,EAAK3uC,EAAW,QAC1B+lV,EAAW7oW,OAAOunD,MAAMF,EAAOktF,YAAc,IAAIzxH,IAAa,IAElE,OAAGzf,MAAM4J,QAAQ27V,GAAiBA,EAC/BC,EAASplW,OAAeolW,OAA3B,EAKJ,SAASC,EAAahyS,EAAUC,GAC5B,IAAIgyS,EAASjyS,EAASrF,MAAQ,GAC1B2qD,EAAQusP,EAAQ5xS,EAAWgyS,EAAQ,KACnC1sP,EAAQssP,EAAQ5xS,EAAWgyS,EAAQ,KAEvC,GAAIjyS,EAASrF,MAAS2qD,GAAUC,EAAhC,CAEA,IAQI2sP,EAAUC,EARVC,EAAiB7lW,MAAM4J,QAAQ87V,EAAO7hU,WAAa7jC,MAAM4J,QAAQ87V,EAAO7hU,SAAS,IACjFiiU,EAAW9lW,MAAM4J,QAAQmvG,GACzBgtP,EAAW/lW,MAAM4J,QAAQovG,GACzBgtP,EACAF,GAAY/sP,IAAU2sP,EAAO1vP,OAC7B+vP,GAAY/sP,IAAU0sP,EAAOxvP,MAK9B2vP,GACCF,EAAWD,EAAO7hU,SAASzjC,OAC3BwlW,EAAcF,EAAO7hU,SAAS,GAAGzjC,SAE9B2lW,IAAUJ,EAAW3sP,EAAM54G,QAC3B0lW,IAAUF,EAAc7sP,EAAM34G,SAGrC,IAAI6lW,EAAUl4Q,EAASW,aAAah7B,EAAW,QAM3CqjG,EAAO1nH,EAAO,OAAQs2T,GACtB7qM,EAAUzrH,EAAO,UAAWu2T,GAEhC,GAAK7uM,EAAO+D,EAAU,EAAtB,CAKA,IAAI+qM,IAAmBC,IAAaC,EAAU,CAC1C,IAAIG,EAA2C,gBAAtB72T,EAAO,WAC7B62T,IAAoBL,GAAiB,GAE5CI,EAAQE,gBAAkBN,EAE1B,IAMIO,EAAWC,EANXC,EAAWj3T,EAAO,YAClB+rI,EAAwB,kBAAbkrL,EAEXC,EAAWV,EAAiB,GAAM,GAClCW,EAAWX,EAAiB,GAAM,GAGnCG,GAAoBtyS,EAAUk+E,iBAC7Bw0N,EAAY1yS,EAAUk+E,eAAeC,MACrCw0N,EAAY3yS,EAAUk+E,eAAeE,OAGzCm0N,EAAQQ,SAAW,CACfh8V,EAAGi8V,EAAkB,IAAKr3T,EAAQk3T,EAAUH,EAAWtrM,GACvD1qJ,EAAGs2V,EAAkB,IAAKr3T,EAAQm3T,EAAUH,EAAWtvM,EAAMqkB,gBAxBtD1nH,EAAUtF,KARrB,SAAS/e,EAAOjrB,EAAMzE,GAClB,OAAO/M,EAAIy8B,OAAOq2T,EAAQO,EAASd,EAAW/gV,EAAMzE,IAoC5D,SAAS+mV,EAAkBjnV,EAAU4vB,EAAQs3T,EAASC,EAAU78U,EAAKqxJ,GACjE,IAAIyrL,EAASx3T,EAAO5vB,EAAW,MAAOknV,GAClCr6S,EAASjd,EAAO,UAAY5vB,GAChC4vB,EAAO5vB,EAAW,OAAQmnV,GAM1B,IAJA,IAAIzqV,EAAM,IAAInc,MAAM+pB,GAChBjK,EAAQwsC,EAAO,GACf9mB,GAAQ8mB,EAAO,GAAKxsC,IAAUiK,EAAM88U,GACpCC,EAAathU,GAAQ,EAAIqhU,GACrB5qW,EAAI,EAAGA,EAAI8tB,EAAK9tB,IAAK,CACzB,IAAI8qW,EAAYjnV,EAAQ0lB,EAAOvpC,EAC/BkgB,EAAIi/J,EAAYrxJ,EAAM,EAAI9tB,EAAKA,GAAK,CAAC8qW,EAAWA,EAAYD,GAEhE,OAAO3qV,EAKX,SAAS6qV,EAAgBvzS,EAAUC,GAC/B,IAAIuyS,EAAUvyS,EAAUtF,KAExB,GAAI63S,GAAYA,EAAQQ,SAAxB,CAEA,IAOIxqW,EAAG4E,EAAGoyV,EAAKC,EAAKt8R,EAAWqwS,EAAaC,EAPxCxB,EAASjyS,EAASrF,MAAQ,GAC1BvqB,EAAW6vB,EAAUxkB,UACrB22T,EAAiBI,EAAQE,gBACzBpvM,EAAOkvM,EAAQlvM,KACf+D,EAAUmrM,EAAQnrM,QAClBorM,EAAyC,gBAApBD,EAAQnzG,QAI7Bq0G,EAAUlB,EAAQmB,SAAW,GAEjC,GAAGvB,EAAgB,CACf,IAAIwB,EAAa3B,EAAO7hU,UAAY,GACpCojU,EAAchB,EAAQpiU,SAAW,IAAI7jC,MAAM+2J,GAC3C,IAAIn4J,EAAQ,EAEZ,IAAI3C,EAAI,EAAGA,EAAI86J,EAAM96J,IAAK,CACtB,IAAIqrW,EAASL,EAAYhrW,GAAK,IAAI+D,MAAM86J,GACpCysM,EAAQF,EAAWprW,IAAM,GAC7B,IAAI4E,EAAI,EAAGA,EAAIi6J,EAASj6J,IAQpB,GAPGqlW,GACCtvS,EAAuB,IAAVh4D,EAAe,KAAQ,IAAMA,EAAQ,IAAMA,EACxDA,KACGg4D,EAAY2wS,EAAM1mW,GAEzBymW,EAAOzmW,GAAK,IAEkC,IAA3CgjC,EAAS+iB,UAAU3lD,QAAQ21D,GAAmB,CAI7C,GAHAswS,EAAOtwS,EAAU31D,QAAQ,KACzBgyV,EAAMr8R,EAAUr2D,MAAM,EAAG2mW,GACzBhU,EAAMt8R,EAAUr2D,MAAM2mW,QACDroV,IAAjBsoV,EAAQlU,IAAsBkU,EAAQlU,KAASpyV,QAC7Bge,IAAjBsoV,EAAQjU,IAAsBiU,EAAQjU,KAASj3V,EAEhD,SAGJqrW,EAAOzmW,GAAK+1D,EACZuwS,EAAQlU,GAAOpyV,EACfsmW,EAAQjU,GAAOj3V,QAIxB,CACH,IAAI88G,EAAQusP,EAAQ5xS,EAAWgyS,EAAQ,KACnC1sP,EAAQssP,EAAQ5xS,EAAWgyS,EAAQ,KACvCO,EAAQjwP,MAAQwxP,EAAazuP,EAAOl1E,EAAS5gB,MAAO63I,EAASqsM,EAAS,KACtElB,EAAQ/vP,MAAQsxP,EAAaxuP,EAAOn1E,EAAS3gB,MAAO6zI,EAAMowM,EAAS,KAGvE,IAAIM,EAAUxB,EAAQyB,SAAW,GAC7BtsL,EAAgC,kBAArB6qL,EAAQb,SAEvB,IAAI,IAAIuC,KAAUR,EAAS,CACvB,IAGI51N,EAAI/jE,EAAKo6R,EAHTnoV,EAAWkoV,EAAOr8U,OAAO,GACzB+0B,EAAO4lT,EAAQxmV,EAAW,QAI9B,GAAG4gC,EAAKjgD,OAAS,EAGbqnW,EAAQE,GAAU,YACf,GAAgB,MAAbloV,GAUN,GATuB,MAAnB4gC,EAAK/0B,OAAO,KAAgB8vJ,GAC5B7pC,EAAK,EACL/jE,EAAM,EACNo6R,EAAS7wM,IAETxlB,EAAKwlB,EAAO,EACZvpF,GAAO,EACPo6R,GAAU,GAEX/B,EAAgB,CACf,IAAI5xM,EAASkzM,EAAQQ,GACrB,IAAI1rW,EAAIs1I,EAAIt1I,IAAM2rW,EAAQ3rW,GAAKuxE,EAE3B,GADA5W,EAAYqwS,EAAYhrW,GAAGg4J,GACvBr9F,IACJswS,EAAOtwS,EAAU31D,QAAQ,KACtB21D,EAAUr2D,MAAM,EAAG2mW,KAAUS,GAAQ,CACpCF,EAAQE,GAAU/wS,EAAUr2D,MAAM2mW,GAClC,YAIR,IAAIjrW,EAAIs1I,EAAIt1I,IAAM2rW,EAAQ3rW,GAAKuxE,EAE3B,GADA0lR,EAAM+S,EAAQ/vP,MAAMj6G,IAC6B,IAA9C4nC,EAAS+iB,UAAU3lD,QAAQ0mW,EAASzU,GAAa,CAChDuU,EAAQE,GAAUzU,EAClB,YAcZ,GATuB,MAAnB7yS,EAAK/0B,OAAO,IACZimH,EAAK,EACL/jE,EAAM,EACNo6R,EAAS9sM,IAETvpB,EAAKupB,EAAU,EACfttF,GAAO,EACPo6R,GAAU,GAEX/B,EAAgB,CACf,IAAIxsR,EAAM8tR,EAAQQ,GAClB,IAAI1rW,EAAIs1I,EAAIt1I,IAAM2rW,EAAQ3rW,GAAKuxE,EAE3B,GADA5W,EAAYqwS,EAAY5tR,GAAKp9E,GACzB26D,IACJswS,EAAOtwS,EAAU31D,QAAQ,KACtB21D,EAAUr2D,MAAM2mW,KAAUS,GAAQ,CACjCF,EAAQE,GAAU/wS,EAAUr2D,MAAM,EAAG2mW,GACrC,YAIR,IAAIjrW,EAAIs1I,EAAIt1I,IAAM2rW,EAAQ3rW,GAAKuxE,EAE3B,GADAylR,EAAMgT,EAAQjwP,MAAM/5G,IAC6B,IAA9C4nC,EAAS+iB,UAAU3lD,QAAQgyV,EAAM0U,GAAgB,CAChDF,EAAQE,GAAU1U,EAClB,SAQxB,SAASuU,EAAaK,EAAQC,EAAa/9U,EAAKo9U,EAAS1nV,GACrD,IACIxjB,EADAkgB,EAAM,IAAInc,MAAM+pB,GAGpB,SAASg+U,EAAY9rW,EAAG0rW,IACgB,IAAjCG,EAAY7mW,QAAQ0mW,SAAsC9oV,IAApBsoV,EAAQQ,IAC7CxrV,EAAIlgB,GAAK0rW,EACTR,EAAQQ,GAAU1rW,GACfkgB,EAAIlgB,GAAK,GAGpB,GAAG+D,MAAM4J,QAAQi+V,GACb,IAAI5rW,EAAI,EAAGA,EAAI8tB,EAAK9tB,IAChB8rW,EAAY9rW,EAAG4rW,EAAO5rW,SAK1B,IADA8rW,EAAY,EAAGtoV,GACXxjB,EAAI,EAAGA,EAAI8tB,EAAK9tB,IAChB8rW,EAAY9rW,EAAGwjB,GAAYxjB,EAAI,IAIvC,OAAOkgB,EAGX1gB,EAAOD,QAAU,CACbiT,WAAY,YACZjS,KAAM,OAENonC,OAAQ,CACJogB,OAAQ,CAACoK,KAAM+2S,IAGnBphU,iBAAkBohU,EAClBM,aAAcA,EACduB,gBAAiBA,I,kCCxWrB,IAAIgB,EAAY,EAAQ,QACpBlnM,EAAc,EAAQ,QACtBxzE,EAAY,EAAQ,QAAaA,UAErC,SAAS26Q,EAASC,EAAgBC,EAAMxuS,GACpC,IAAIyuS,EAAYD,EAAKlnW,QAAQ04D,GACzB0uS,EAAeH,EAAejnW,QAAQmnW,GAK1C,OAJqB,IAAlBC,IAECA,GAAgBF,EAAK/nW,QAElBioW,EAGX,SAASC,EAAOJ,EAAgBC,GAC5B,OAAO,SAAgB75M,EAAIhqF,GACvB,OACI2jS,EAASC,EAAgBC,EAAM75M,GAC/B25M,EAASC,EAAgBC,EAAM7jS,IAK3C7oE,EAAOD,QAAU,SAAcoP,EAAIqgL,GAC/B,IAAI9oK,EAAavX,EAAG+mB,YAEhBwvI,EAAUL,EAAYl2J,GAC1B,GAAIu2J,EAAJ,CAEA,IAAIonM,EAAc,GACd/oJ,EAAc,GACdgpJ,EAAc,GACdC,EAAe,GAEfxoV,EAAOkC,EAAWmuC,MAEtB26H,EAAS53H,SAAQ,SAAS92D,EAAGN,GACzB,IAAI4O,EAAQtO,EAAE,GAAGsO,MACjB29V,EAAYvsW,GAAK4O,EAAMjM,MACvB,IAAI8pW,EAAMD,EAAaxsW,GAAK4O,EAAMuxG,WAAWx9G,MAC7C2pW,EAAYtsW,GAAK2O,EAAGpD,KAAKkhW,GAAKz4N,WAC9BuvE,EAAYvjN,GAAK2O,EAAGpD,KAAKkhW,GAAKz4N,WAAW1vI,WAG7C,IAAIooW,EAAgB,SAAS1sW,EAAG2sW,EAAiBC,GAI7C,IAAIlvS,EAAM6lJ,EAAYvjN,GAAG2sW,GACrBE,EAAiBD,EAAUhxT,KAAI,SAAS96C,GAAK,OAAOA,EAAEwD,WAMtDu3V,EAAO,cAAgB8Q,EAAkB,oBACzCG,EAAS5mV,EAAWm6F,aAAa1xG,EAAG83C,UAAU8lT,EAAYvsW,IAAImgH,WAAWxqF,KAC7E,QAAoB/S,IAAjBkqV,EAAOjR,GAAqB,CAC3B,IAAIpvL,EAAa/uG,EAAIqvS,gBACrBD,EAAOjR,GAAQpvL,GAAc,KAGjC,IAAIugM,EAAgBr+V,EAAG83C,UAAU8lT,EAAYvsW,IAAIg0I,WAAW24N,GAExDE,EAAe1oW,QAKc,IAA1B0oW,EAAe1oW,SAAc0oW,EAAiBA,EAAe,IAChEnvS,EAAIqvS,gBAAkBF,EACtBG,EAAcD,gBAAkBF,EAAevoW,QAE/CuoW,EAAiB,CAACA,YARXnvS,EAAIqvS,uBACJC,EAAcD,gBACrBF,EAAiB,MASrB,IAAII,EAAc,GAClBA,EAAYpR,GAAQgR,EACpBl+V,EAAG0tG,KAAK,iBAAkB,CAAC4wP,EAAa,CAACT,EAAaxsW,OAGtDgiB,EAAQ,SAASqU,GACjB1nB,EAAG0tG,KAAK,eAAgBhmF,IAGxB+4F,EAAU,SAAS/4F,GACnB1nB,EAAG0tG,KAAK,iBAAkBhmF,IAG1B62U,EAAY,SAASltW,EAAGisW,GAKxB,IAAIC,EAAOG,EAAOJ,EAAgB1oJ,EAAYvjN,GAAG6D,OAAOwtF,IACxDi7Q,EAAYtsW,GAAGgH,KAAKklW,GAIpB3oJ,EAAYvjN,GAAG6D,QAAO,SAASvD,GAAI,OAAQ+wF,EAAU/wF,MAC/C0G,MAAK,SAAS1G,GAEX,OAAOijN,EAAYvjN,GAAGgF,QAAQ1E,MAElC82D,SAAQ,SAAS92D,GACdgsW,EAAYtsW,GAAG4Q,OAAO07V,EAAYtsW,GAAGgF,QAAQ1E,GAAI,GACjDgsW,EAAYtsW,GAAG4Q,OAAO2yM,EAAYvjN,GAAGgF,QAAQ1E,GAAI,EAAGA,MAa5DqO,EAAG0tG,KAAK,iBAAkB,CAAC,CAAC23B,WAAY,CAACs4N,EAAYtsW,KAAM,CAACwsW,EAAaxsW,OAG7E+rW,EACIp9V,EACAqgL,EACA,CACIztK,MAAOyC,EAAKlG,EACZ4L,OAAQ1F,EAAK0tC,EACb/8B,OAAQ,CACJzzB,EAAG8iB,EAAK9iB,EACRJ,EAAGkjB,EAAKljB,EACRgC,EAAGkhB,EAAKlhB,EACR7C,EAAG+jB,EAAK/jB,IAGhB,CACIysW,cAAeA,EACf1qV,MAAOA,EACPotG,QAASA,EACT89O,UAAWA,O,oCCnJvB1tW,EAAOD,QAAU,SAAgBiP,GAC/B,OAAGA,EAAI,GAAa,EACjBA,EAAI,EAAY,EACZ,I,oCCMTjP,EAAQ+qO,UAAY,SAAmB6iI,GACnC,OAA+D,KAAvDA,EAAajvJ,YAAc,IAAIl5M,QAAQ,YAGnDzF,EAAQ8qO,WAAa,SAAoB8iI,GACrC,MAAoC,MAA7BA,EAAanlW,aAGxBzI,EAAQ6tW,WAAa,SAAoBD,GACrC,OAAgE,KAAxDA,EAAajvJ,YAAc,IAAIl5M,QAAQ,c,2KCVnD,IAAIitE,EAAsB,EAAQ,QAAaA,oBAM/C,SAASo7R,EAAOxqW,EAAG6xK,GAIf,IAAIziG,EAAoBpvE,IAAM6xK,GAAS,GACnC,OAAO,KAMX,IAHA,IAAIvsK,EAAMoC,IACNnC,GAAOmC,IACP9I,EAAIoB,EAAEsB,OACFnE,EAAI,EAAGA,EAAIyB,EAAGzB,IAAK,CACvB,IAAIsxM,EAAQzuM,EAAE7C,GAEd,GAAGiyE,EAAoBq/H,GAAQ,CAC3B,IAAI7nM,EAAS4jW,EAAO/7J,EAAO58B,EAAQ,GAEhCjrK,IACCtB,EAAMpC,KAAKoC,IAAIsB,EAAO,GAAItB,GAC1BC,EAAMrC,KAAKqC,IAAIqB,EAAO,GAAIrB,SAG9BD,EAAMpC,KAAKoC,IAAImpM,EAAOnpM,GACtBC,EAAMrC,KAAKqC,IAAIkpM,EAAOlpM,GAI9B,MAAO,CAACD,EAAKC,GA/BjB5I,EAAOD,QAAU,SAASsD,GACtB,OAAOwqW,EAAOxqW,EAAG,K,oCCHrB,IAAI8T,EAAM,EAAQ,QACds2P,EAAsB,EAAQ,QAE9B1uN,EAAU5nC,EAAI4nC,QACd8uN,EAAU12P,EAAI02P,QAgDlB,SAASigG,EAAiBjnV,EAAIyoP,GAC1B,IAAIjsP,EAAUisP,EAAY1oP,SAE1BC,EAAGirP,YAAc,WACb,IAAI5mJ,EAAMrkG,EAAGkmC,IAAI,GACbo+D,EAAMtkG,EAAGkmC,IAAI,GAEbzpD,EAAI+f,EAAQm5L,YACZ57M,GAAKyiB,EAAQulD,OAAStlE,IAAM6nH,EAAMD,GAClC9gB,EAAK9mG,EAAI1C,EAETmtW,EAAU7iP,EAAMC,EAChB,SAAS7lH,GAAK,OAAOA,GAAK,GAC1B,SAASA,GAAK,OAAOA,GAAK,GAE9BuhB,EAAGoyP,IAAM,SAAS3zQ,GACd,IAAIhE,EAAIulB,EAAGK,IAAI5hB,GAAK4lH,EACpB,OAAQ6iP,EAAQzsW,GAAKA,EAAI,GAAK8oG,GAGlCvjF,EAAGmnV,IAAM,SAAS1oW,GACd,OAAOuhB,EAAGo+D,IAAI3/E,EAAI4lH,EAAM9gB,IAG5BvjF,EAAGonV,IAAM,SAAS3oW,GAAK,OAAOA,EAAI1E,GAClCimB,EAAGqR,IAAM,SAAS5yB,GAAK,OAAOuhB,EAAGonV,IAAIpnV,EAAGoyP,IAAI3zQ,MAIpD,SAAS4oW,EAAU5oW,EAAGk6H,GAClB,MAAgB,YAATA,EAAqBzgF,EAAQz5C,GAAKA,EAG7C,SAAS6oW,EAAY7oW,EAAGk6H,GACpB,MAAgB,YAATA,EAAqBquI,EAAQvoQ,GAAKA,EAG7C,SAAS8oW,EAAkBvnV,EAAIyoP,GAC3B,IAAI5uN,EAAS75B,EAAG/S,KAEhB,GAAc,WAAX4sC,EAAqB,CACpB,IAAI2tT,EAAOxnV,EAAGquB,IACVo5T,EAAOznV,EAAGsuB,IAEdtuB,EAAGquB,IAAM,SAAS5vC,EAAGk6H,GAAQ,OAAO0uO,EAAUG,EAAK/oW,GAAIk6H,IACvD34G,EAAGsuB,IAAM,SAAS7vC,EAAGk6H,GAAQ,OAAO8uO,EAAKH,EAAY7oW,EAAGk6H,KAI5D34G,EAAG6oB,aAAe,SAAStgC,EAAOq3B,GAC9B,IAEIwjF,EAAUzpH,EAFVwpH,EAAU56G,EAAMq3B,GAChBnY,EAAMlf,EAAM6I,QAGZo2V,EAAO,SAAS/oW,GAAK,OAAOuhB,EAAGquB,IAAI5vC,EAAG8J,EAAMuvC,YAEhD,GAAGqrE,EAAS,CACR,GAAG7yG,EAAI40G,aAAa/B,IAAuB,WAAXtpE,EAAqB,CACjD,GAAGpyB,IAAQ07F,EAAQrlH,OACf,OAAOqlH,EACJ,GAAGA,EAAQgC,SACd,OAAOhC,EAAQgC,SAAS,EAAG19F,GAKnC,IADA27F,EAAW,IAAI1lH,MAAM+pB,GACjB9tB,EAAI,EAAGA,EAAI8tB,EAAK9tB,IAChBypH,EAASzpH,GAAK6tW,EAAKrkP,EAAQxpH,QAE5B,CACH,IAAI+tW,EAAS9nU,EAAQ,IACjB+nU,EAAS,IAAM/nU,EACf+yB,EAAM+0S,KAAUn/V,EAASi/V,EAAKj/V,EAAMm/V,IAAW,EAC/C/3P,EAAMpnG,EAAMo/V,GAAWH,EAAKj/V,EAAMo/V,KAAY3nV,EAAGlK,QAAU,EAAIpW,KAAKs8B,IAAMvU,EAG9E,IADA27F,EAAW,IAAI1lH,MAAM+pB,GACjB9tB,EAAI,EAAGA,EAAI8tB,EAAK9tB,IAChBypH,EAASzpH,GAAKg5D,EAAKh5D,EAAIg2G,EAI/B,OAAOyT,GAIXpjG,EAAGirP,YAAc,WACb,IAQI28F,EAAOC,EACPC,EAAOC,EATP/5Q,EAASy6K,EAAYz6K,OACrBu7K,EAAcv7K,EAAOz4C,IAAI2C,GACzBxgC,EAAM,CAAC03E,WAAY,EAAGD,iBAAkB,GAAGnvE,EAAG0yD,WAC9C+hM,EAAMv8N,EAAQl4B,EAAGouN,UAEjB45H,EAAQ,SAASvpW,GAAK,OAAOiZ,EAAMjZ,EAAIg2Q,GACvCwzF,EAAQ,SAASxpW,GAAK,OAAQA,EAAIg2Q,GAAO/8P,GAK7C,OAAOmiC,GACH,IAAK,SACDguT,EAAQD,EAAQt3V,EAAIvN,SACpBglW,EAAQ7vT,EACR4vT,EAAQ9gG,EAIRhnP,EAAGrO,MAAQrB,EAAI2hQ,aAAa1I,GACxB,CAACv7K,EAAO,GAAIA,EAAO,GAAK,KACxBu7K,EAAYh0N,IAAI0yT,GAAO1yT,IAAIyxN,GAC/B,MAEJ,IAAK,WACD,IAAIkhG,EAASloV,EAAGouB,YAAYtwC,OACxBqqW,EAAUnoV,EAAGlK,OAASpW,KAAKqC,IAAIie,EAAGlK,OAAQoyV,GAAUA,EAGzC,IAAZC,IAAeA,EAAU,GAE5BN,EAAQE,EAAQ,SAAStpW,GAAK,OAAW,EAAJA,EAAQiB,KAAKs8B,GAAKmsU,GACvDP,EAAQE,EAAQ,SAASrpW,GAAK,OAAOA,EAAI0pW,EAAUzoW,KAAKs8B,GAAK,GAE7Dhc,EAAGrO,MAAQ,CAAC,EAAGw2V,GACf,MAGRnoV,EAAGoyP,IAAM,SAAS3zQ,GAAK,OAAOupW,EAAMH,EAAMppW,KAC1CuhB,EAAGmnV,IAAM,SAAS1oW,GAAK,OAAOmpW,EAAMK,EAAMxpW,KAE1CuhB,EAAG4rP,IAAM,SAASntQ,GAAK,OAAOupW,EAAMD,EAAMtpW,KAC1CuhB,EAAGooV,IAAM,SAAS3pW,GAAK,OAAOqpW,EAAMG,EAAMxpW,MA9IlDtF,EAAOD,QAAU,SAAoB8mB,EAAIyoP,EAAa5oP,GAGlD,OAFA+mP,EAAoB5mP,EAAIH,GAEjBG,EAAGyW,KACN,IAAK,IACL,IAAK,aACDwwU,EAAiBjnV,EAAIyoP,GACrB,MACJ,IAAK,cACD8+F,EAAkBvnV,EAAIyoP,GACtB,S,oCChDZtvQ,EAAOD,QAAU,CACbiT,WAAY,QACZjS,KAAM,YACNkS,eAAgB,EAAQ,QACxBC,WAAY,CAAC,MAAO,YAAa,WACjC4jB,YAAY,EAEZprB,WAAY,EAAQ,QACpB0H,eAAgB,EAAQ,QAAcA,eAEtCC,KAAM,EAAQ,QAAUA,KAExBC,KAAM,EAAQ,QAEdH,KAAM,K,oCCjBV,SAASs2E,EAAS5nE,EAAM5gB,GAClBA,IAAGA,EAAI,KAEQ,kBAAT4gB,GAAqBtd,MAAM4J,QAAQ0T,MAC7C5gB,EAAEsgB,OAASM,GAGZ,IAAIN,EAAShd,MAAM4J,QAAQlN,EAAEsgB,QAAUtgB,EAAEsgB,OAAO3d,KAAK,MAAQ3C,EAAEsgB,OAC/D,IAAKA,EAAQ,MAAM3c,MAAM,4BAEzB,IAAI8c,EAAKzgB,EAAEujB,MAAQvjB,EAAE2gB,UAAY3gB,EAAEgsB,IAAM,GACrCuhD,EAASvtE,EAAEutE,QAAUvtE,EAAE0jH,YAAc,GACrCp0G,EAAQtP,EAAEsP,OAAStP,EAAE2zM,WAAa,GAElCt9C,GADAz1I,EAAO,CAACtR,EAAOi+D,EAAQ9sD,GAAI9d,KAAK,KAAO,MAAQ2d,EACtCtgB,EAAEq2J,QAAU,OAEzB,GAAI7tE,EAAQstD,MAAMx1H,IAEbG,GAAM+nE,EAAQstD,MAAMx1H,GAAQ0L,GAC/B,OAAOiiV,EAAYzlR,EAAQstD,MAAMx1H,GAAS+1I,GAI5C,IAAIt2I,EAAS/f,EAAE+f,QAAUyoE,EAAQzoE,OAC7BG,EAAMH,EAAOI,WAAW,MACxBsxJ,EAAQ,CACXx3B,WAAmB93H,IAAZniB,EAAEi6I,MAAsBj6I,EAAEi6I,MAAQ,IACzCoiK,WAAmBl6R,IAAZniB,EAAEq8S,MAAsBr8S,EAAEq8S,MAAQ,IACzC5oL,aAAuBtxG,IAAdniB,EAAEyzH,QAAwBzzH,EAAEyzH,QAAU,IAC/CD,YAAqBrxG,IAAbniB,EAAEwzH,OAAuBxzH,EAAEwzH,OAAS,IAC5C06O,YAAqB/rV,IAAbniB,EAAEkuW,OAAuBluW,EAAEkuW,OAAS,IAC5CviM,eAA2BxpJ,IAAhBniB,EAAE2rK,UAA0B3rK,EAAE2rK,UAAY,KAElDnsK,EAAI8F,KAAK+5B,KAAU,IAAL5e,GAClBV,EAAOkJ,OAASzpB,EAChBugB,EAAOe,MAAY,GAAJthB,EACf0gB,EAAIU,KAAOA,EAEX,IAAI8kD,EAAO,IACP18D,EAAS,CACZ+oB,IAAK,GAIN7R,EAAIiuV,UAAU,EAAG,EAAG3uW,EAAGA,GACvB0gB,EAAI0xJ,aAAe,MACnB1xJ,EAAIs+D,UAAY,QAChBt+D,EAAI4V,SAAS4vC,EAAM,EAAG,GACtB,IAAI0oS,EAAQC,EAASnuV,EAAIouV,aAAa,EAAG,EAAG9uW,EAAGA,IAC/C0gB,EAAIiuV,UAAU,EAAG,EAAG3uW,EAAGA,GACvB0gB,EAAI0xJ,aAAe,SACnB1xJ,EAAI4V,SAAS4vC,EAAM,EAAGlmE,GACtB,IAAI+uW,EAAWF,EAASnuV,EAAIouV,aAAa,EAAG,EAAG9uW,EAAGA,IAClDwJ,EAAOwpD,WACPxpD,EAAO8oB,OAAStyB,EAAI+uW,EAAWH,EAG/BluV,EAAIiuV,UAAU,EAAG,EAAG3uW,EAAGA,GACvB0gB,EAAI0xJ,aAAe,aACnB1xJ,EAAI4V,SAAS4vC,EAAM,EAAGlmE,GACtB,IAAIgvW,EAAaH,EAASnuV,EAAIouV,aAAa,EAAG,EAAG9uW,EAAGA,IAChDivW,EAAWjvW,EAAIgvW,EAAa,EAAIJ,EACpCplW,EAAOylW,SACPzlW,EAAO0lW,WAAaD,EAGpBvuV,EAAIiuV,UAAU,EAAG,EAAG3uW,EAAGA,GACvB0gB,EAAI0xJ,aAAe,SACnB1xJ,EAAI4V,SAAS4vC,EAAM,EAAO,GAAJlmE,GACtB,IAAImvW,EAAWN,EAASnuV,EAAIouV,aAAa,EAAG,EAAG9uW,EAAGA,IAClDwJ,EAAO8/H,OACP9/H,EAAOygB,OAASjqB,EAAImvW,EAAW,EAAIP,EAAY,GAAJ5uW,EAG3C0gB,EAAIiuV,UAAU,EAAG,EAAG3uW,EAAGA,GACvB0gB,EAAI0xJ,aAAe,UACnB1xJ,EAAI4V,SAAS4vC,EAAM,EAAO,GAAJlmE,GACtB,IAAIovW,EAAYP,EAASnuV,EAAIouV,aAAa,EAAG,EAAG9uW,EAAGA,IACnDwJ,EAAO6lW,QAAUrvW,EAAIovW,EAAY,EAAIR,EAAY,GAAJ5uW,EAG7C0gB,EAAIiuV,UAAU,EAAG,EAAG3uW,EAAGA,GACvB0gB,EAAI0xJ,aAAe,cACnB1xJ,EAAI4V,SAAS4vC,EAAM,EAAGlmE,GACtB,IAAIsvW,EAAgBT,EAASnuV,EAAIouV,aAAa,EAAG,EAAG9uW,EAAGA,IA8CvD,GA7CAwJ,EAAO+lW,YAAcvvW,EAAIsvW,EAAgB,EAAIV,EAGzC38L,EAAMx3B,QACT/5H,EAAIiuV,UAAU,EAAG,EAAG3uW,EAAGA,GACvB0gB,EAAI0xJ,aAAe,MACnB1xJ,EAAI4V,SAAS27I,EAAMx3B,MAAO,EAAG,GAC7BjxI,EAAOixI,MAAQo0N,EAASnuV,EAAIouV,aAAa,EAAG,EAAG9uW,EAAGA,IAClDwJ,EAAOgmW,UAAahmW,EAAOylW,SAAWzlW,EAAOixI,OAI1Cw3B,EAAM4qI,QACTn8R,EAAIiuV,UAAU,EAAG,EAAG3uW,EAAGA,GACvB0gB,EAAI0xJ,aAAe,MACnB1xJ,EAAI4V,SAAS27I,EAAM4qI,MAAO,EAAG,GAC7BrzS,EAAOqzS,MAAQgyD,EAASnuV,EAAIouV,aAAa,EAAG,EAAG9uW,EAAGA,IAClDwJ,EAAOimW,QAAWjmW,EAAOylW,SAAWzlW,EAAOqzS,OAIxC5qI,EAAMy8L,SACThuV,EAAIiuV,UAAU,EAAG,EAAG3uW,EAAGA,GACvB0gB,EAAI0xJ,aAAe,MACnB1xJ,EAAI4V,SAAS27I,EAAMy8L,OAAQ,EAAG,GAC9BllW,EAAOklW,OAASG,EAASnuV,EAAIouV,aAAa,EAAG,EAAG9uW,EAAGA,KAIhDiyK,EAAMj+C,SACTtzG,EAAIiuV,UAAU,EAAG,EAAG3uW,EAAGA,GACvB0gB,EAAI0xJ,aAAe,MACnB1xJ,EAAI4V,SAAS27I,EAAMj+C,OAAQ,EAAG,GAC9BxqH,EAAOwqH,OAAS66O,EAASnuV,EAAIouV,aAAa,EAAG,EAAG9uW,EAAGA,KAIhDiyK,EAAMh+C,UACTvzG,EAAIiuV,UAAU,EAAG,EAAG3uW,EAAGA,GACvB0gB,EAAI0xJ,aAAe,MACnB1xJ,EAAI4V,SAAS27I,EAAMh+C,QAAS,EAAG,GAC/BzqH,EAAOyqH,QAAUy7O,EAAYhvV,EAAIouV,aAAa,EAAG,EAAG9uW,EAAGA,KAIpDiyK,EAAM9F,UAAW,CACpBzrJ,EAAIiuV,UAAU,EAAG,EAAG3uW,EAAGA,GACvB0gB,EAAI0xJ,aAAe,MACnB1xJ,EAAI4V,SAAS27I,EAAM9F,UAAW,EAAG,GACjC,IAAIwjM,EAAcD,EAAYhvV,EAAIouV,aAAa,EAAG,EAAG9uW,EAAGA,IACxDwJ,EAAO2iK,UAAYwjM,EAAcV,EAIlC,IAAK,IAAI3uW,KAAQkJ,EAChBA,EAAOlJ,IAAS2gB,EAMjB,OAHAzX,EAAOgjB,GAAKvL,EACZ+nE,EAAQstD,MAAMx1H,GAAUtX,EAEjBilW,EAAYjlW,EAAQqtJ,GAG5B,SAAS43M,EAAY1wU,EAAK84H,GACzB,IAAIn2C,EAAM,GAEV,IAAK,IAAIpgH,IADa,kBAAXu2J,IAAqBA,EAAS94H,EAAI84H,IAC5B94H,EACH,OAATz9B,IACJogH,EAAIpgH,GAAQy9B,EAAIz9B,GAAQu2J,GAEzB,OAAOn2C,EAGR,SAASmuP,EAASe,GAGjB,IAFA,IAAI5vW,EAAI4vW,EAAMnmV,OACVne,EAAOskW,EAAMtkW,KACRvL,EAAI,EAAGA,EAAIuL,EAAKpH,OAAQnE,GAAG,EACnC,GAAgB,IAAZuL,EAAKvL,GACR,OAAO+F,KAAK2N,MAAe,KAAR1T,EAAI,GAAUC,GAKpC,SAAS0vW,EAAYE,GAGpB,IAFA,IAAI5vW,EAAI4vW,EAAMnmV,OACVne,EAAOskW,EAAMtkW,KACRvL,EAAIuL,EAAKpH,OAAS,EAAGnE,EAAI,EAAGA,GAAK,EACzC,GAAgB,IAAZuL,EAAKvL,GACR,OAAO+F,KAAK2N,MAAe,KAAR1T,EAAI,GAAUC,GAnLpCT,EAAOD,QAAU0pF,EAEjBA,EAAQzoE,OAASC,SAASC,cAAc,UACxCuoE,EAAQstD,MAAQ,I,oCCKhB/2I,EAAOD,QAAU,CACb2L,WAAY,EAAQ,QACpB0H,eAAgB,EAAQ,QACxBouD,SAAU,EAAQ,QAClBnuD,KAAM,EAAQ,QACdo7E,YAAa,EAAQ,QAAUA,YAC/Bn7E,KAAM,EAAQ,QAAUA,KACxB/C,MAAO,EAAQ,QAAWA,MAC1BmxD,cAAe,EAAQ,QAAWA,cAClCnuD,YAAa,EAAQ,QACrBsjB,UAAW,EAAQ,QACnBrjB,aAAc,EAAQ,QAEtBR,WAAY,QACZjS,KAAM,aACNkS,eAAgB,EAAQ,QACxBC,WAAY,CAAC,MAAO,YAAa,cACjCC,KAAM,K,uBCTV,IAAI+9C,EAAO,EAAQ,QACf/3C,EAAS,EAAQ,QASrB,SAASm3V,EAAkBv1V,GACvB3a,KAAKuZ,MAAQvZ,KAAKiZ,gBAAgB0B,GAAY,KAAO3a,KAAKiZ,gBAAgB,IAG9Ei3V,EAAkBluW,UAAY,IAAI8uD,EAAKpxC,aAEvC3G,EAAOm3V,EAAkBluW,UAAW,CAGhCrB,KAAM,YAKNsd,aAAa,EAGbd,SAAU,EAGVI,WAAY,EAGZH,OAAQ,EAiBRnE,gBAAiB,CACb,GAAI,CACAtY,KAAM,cACN0c,OAAQ,CAAC,KAAM,MACfmB,WAAY,CAAC,cAAe,QAAS,iBAAmB,iBAAmB,kBAAmB,kBAC9F,QAAS,WAAa,UAAW,UAAW,gBAAkB,iBAC9DC,gBAAiB,CAAC,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,MAAO,OAAS,MAAO,OAAQ,OAAQ,QACvGC,SAAU,CAAC,eAAgB,kBAAmB,oBAAqB,kBAAmB,iBAAkB,gBAAiB,gBACzHE,YAAa,CAAC,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,MACnD3D,OAAQ,KACR4D,WAAY,aACZC,SAAU,EACVC,OAAO,IASfrD,SAAU,SAAU9B,GAChB,IAAI6B,EAAOzb,KAAKid,UAAUrD,EAAM5Z,KAAKmd,SAAUnd,KAAKod,OAAQ0zC,EAAKv3C,MAAMF,aACvE,OAAyC,MAAjCrZ,KAAK+b,WAAWN,EAAK7B,SAUjCkC,WAAY,SAAUlC,EAAMC,EAAOC,GAE/B,IAAIkF,EAAYhf,KAAK+a,QAAQnB,EAAMC,EAAOC,GAE1C,OADAkF,EAAU3C,KAAK2C,EAAU9C,YAAa,KAC/B/V,KAAK2N,OAAOkL,EAAUhD,YAAc,GAAK,GAAK,GAQzDD,WAAY,SAAUnC,GAElB,IADA,IAAIu2V,EAAY,EACP/vW,EAAI,EAAGA,GAAK,GAAIA,IACrB+vW,GAAanwW,KAAKic,YAAYrC,EAAMxZ,GAExC,OAAO+vW,GASXl0V,YAAa,SAAUrC,EAAMC,GAKzB,IAJA,IAAI4B,EAAOzb,KAAKid,UAAUrD,EAAMC,EAAO7Z,KAAKod,OAAQ0zC,EAAKv3C,MAAMH,cAC3Dg3V,EAAQ30V,EAAKgB,OAAS,KAAU,GAEhC1Z,EAAQ,EACH3C,EAAI,EAAGA,EAAIiwW,EAAc9rW,OAAQnE,IAAK,CAC3C,GAAIiwW,EAAcjwW,GAAKgwW,EACnB,OAAQC,EAActtW,GAASstW,EAActtW,EAAQ,GAEzDA,IAEJ,OAAO,IAUXoZ,QAAS,SAAUvC,EAAMC,EAAOC,GAC5B,OAA4C,IAArC9Z,KAAKkc,UAAUtC,EAAMC,EAAOC,IAWvC2C,KAAM,SAAU7C,EAAMC,EAAOC,GACzB,IAAI2B,EAAOzb,KAAKid,UAAUrD,EAAMC,EAAOC,EAAKg3C,EAAKv3C,MAAMJ,aACnDpW,EAAS,IAAM0Y,EAAK7B,OAAS,GAAM6B,EAAK5B,QAAU,MAClDu2V,EAAQ30V,EAAK3B,MAAQu2V,EAActtW,EAAQ,GAAK,EACpD,OAAOqtW,EAAQ,KAAU,IAO7B1zV,OAAQ,SAAUC,GAKd,IAJA,IAAIyzV,EAAQzzV,EAAK,KAAU,GAGvB5Z,EAAQ,EACH3C,EAAI,EAAGA,EAAIiwW,EAAc9rW,OAAQnE,IAAK,CAC3C,GAAIiwW,EAAcjwW,GAAKgwW,EAAO,MAC9BrtW,IAEJ,IAAIutW,EAAWvtW,EAAQ,MACnBwtW,EAAKpqW,KAAK2N,OAAOw8V,EAAW,GAAK,IACjC12V,EAAO22V,EAAK,EACZ12V,EAAQy2V,EAAW,GAAKC,EACxBz2V,EAAMs2V,EAAQC,EAActtW,EAAQ,GAAK,EAC7C,OAAO/C,KAAK+a,QAAQnB,EAAMC,EAAOC,IASrCM,QAAS,SAASR,EAAMC,EAAOC,GAC3B,IAAIsE,EAAQ0yC,EAAKpxC,aAAa1d,UAAUoY,QAAQzV,MAAM3E,KAAMwb,WAK5D,OAJI4C,IACAxE,EAAqB,MAAbA,EAAKA,KAAeA,EAAKA,KAAOA,EACxCwE,EAASxE,GAAQ,MAAQA,GAAQ,MAE9BwE,GAWXnB,UAAW,SAASrD,EAAMC,EAAOC,EAAKuE,GAClC,IAAI5C,EAAOq1C,EAAKpxC,aAAa1d,UAAUib,UAAUtY,MAAM3E,KAAMwb,WAC7D,GAAIC,EAAK7B,KAAO,MAAQ6B,EAAK7B,KAAO,KAChC,MAAMyE,EAAMxF,QAAQ,QAAS7Y,KAAKuZ,MAAM5Y,MAE5C,OAAO8a,KAKfq1C,EAAKt3C,UAAUg3V,UAAYN,EAE3B,IAAIG,EAAgB,CAChB,GAAO,GAAO,GAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IACrI,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAEjD,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,Q,q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GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAEvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,IAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAEvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GA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EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI0rI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,KAAKprI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI27S,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI2lD,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI1lD,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI2lD,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI3lD,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,KAAKC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,KAAKo2L,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAIjkZ,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI6V,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,IAAIC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAIC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GA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","file":"vue-plotly.umd.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vue-plotly\"] = factory();\n\telse\n\t\troot[\"vue-plotly\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fae3\");\n","\"use strict\"\n\n//High level idea:\n// 1. Use Clarkson's incremental construction to find convex hull\n// 2. Point location in triangulation by jump and walk\n\nmodule.exports = incrementalConvexHull\n\nvar orient = require(\"robust-orientation\")\nvar compareCell = require(\"simplicial-complex\").compareCells\n\nfunction compareInt(a, b) {\n return a - b\n}\n\nfunction Simplex(vertices, adjacent, boundary) {\n this.vertices = vertices\n this.adjacent = adjacent\n this.boundary = boundary\n this.lastVisited = -1\n}\n\nSimplex.prototype.flip = function() {\n var t = this.vertices[0]\n this.vertices[0] = this.vertices[1]\n this.vertices[1] = t\n var u = this.adjacent[0]\n this.adjacent[0] = this.adjacent[1]\n this.adjacent[1] = u\n}\n\nfunction GlueFacet(vertices, cell, index) {\n this.vertices = vertices\n this.cell = cell\n this.index = index\n}\n\nfunction compareGlue(a, b) {\n return compareCell(a.vertices, b.vertices)\n}\n\nfunction bakeOrient(d) {\n var code = [\"function orient(){var tuple=this.tuple;return test(\"]\n for(var i=0; i<=d; ++i) {\n if(i > 0) {\n code.push(\",\")\n }\n code.push(\"tuple[\", i, \"]\")\n }\n code.push(\")}return orient\")\n var proc = new Function(\"test\", code.join(\"\"))\n var test = orient[d+1]\n if(!test) {\n test = orient\n }\n return proc(test)\n}\n\nvar BAKED = []\n\nfunction Triangulation(dimension, vertices, simplices) {\n this.dimension = dimension\n this.vertices = vertices\n this.simplices = simplices\n this.interior = simplices.filter(function(c) {\n return !c.boundary\n })\n\n this.tuple = new Array(dimension+1)\n for(var i=0; i<=dimension; ++i) {\n this.tuple[i] = this.vertices[i]\n }\n\n var o = BAKED[dimension]\n if(!o) {\n o = BAKED[dimension] = bakeOrient(dimension)\n }\n this.orient = o\n}\n\nvar proto = Triangulation.prototype\n\n//Degenerate situation where we are on boundary, but coplanar to face\nproto.handleBoundaryDegeneracy = function(cell, point) {\n var d = this.dimension\n var n = this.vertices.length - 1\n var tuple = this.tuple\n var verts = this.vertices\n\n //Dumb solution: Just do dfs from boundary cell until we find any peak, or terminate\n var toVisit = [ cell ]\n cell.lastVisited = -n\n while(toVisit.length > 0) {\n cell = toVisit.pop()\n var cellVerts = cell.vertices\n var cellAdj = cell.adjacent\n for(var i=0; i<=d; ++i) {\n var neighbor = cellAdj[i]\n if(!neighbor.boundary || neighbor.lastVisited <= -n) {\n continue\n }\n var nv = neighbor.vertices\n for(var j=0; j<=d; ++j) {\n var vv = nv[j]\n if(vv < 0) {\n tuple[j] = point\n } else {\n tuple[j] = verts[vv]\n }\n }\n var o = this.orient()\n if(o > 0) {\n return neighbor\n }\n neighbor.lastVisited = -n\n if(o === 0) {\n toVisit.push(neighbor)\n }\n }\n }\n return null\n}\n\nproto.walk = function(point, random) {\n //Alias local properties\n var n = this.vertices.length - 1\n var d = this.dimension\n var verts = this.vertices\n var tuple = this.tuple\n\n //Compute initial jump cell\n var initIndex = random ? (this.interior.length * Math.random())|0 : (this.interior.length-1)\n var cell = this.interior[ initIndex ]\n\n //Start walking\nouterLoop:\n while(!cell.boundary) {\n var cellVerts = cell.vertices\n var cellAdj = cell.adjacent\n\n for(var i=0; i<=d; ++i) {\n tuple[i] = verts[cellVerts[i]]\n }\n cell.lastVisited = n\n\n //Find farthest adjacent cell\n for(var i=0; i<=d; ++i) {\n var neighbor = cellAdj[i]\n if(neighbor.lastVisited >= n) {\n continue\n }\n var prev = tuple[i]\n tuple[i] = point\n var o = this.orient()\n tuple[i] = prev\n if(o < 0) {\n cell = neighbor\n continue outerLoop\n } else {\n if(!neighbor.boundary) {\n neighbor.lastVisited = n\n } else {\n neighbor.lastVisited = -n\n }\n }\n }\n return\n }\n\n return cell\n}\n\nproto.addPeaks = function(point, cell) {\n var n = this.vertices.length - 1\n var d = this.dimension\n var verts = this.vertices\n var tuple = this.tuple\n var interior = this.interior\n var simplices = this.simplices\n\n //Walking finished at boundary, time to add peaks\n var tovisit = [ cell ]\n\n //Stretch initial boundary cell into a peak\n cell.lastVisited = n\n cell.vertices[cell.vertices.indexOf(-1)] = n\n cell.boundary = false\n interior.push(cell)\n\n //Record a list of all new boundaries created by added peaks so we can glue them together when we are all done\n var glueFacets = []\n\n //Do a traversal of the boundary walking outward from starting peak\n while(tovisit.length > 0) {\n //Pop off peak and walk over adjacent cells\n var cell = tovisit.pop()\n var cellVerts = cell.vertices\n var cellAdj = cell.adjacent\n var indexOfN = cellVerts.indexOf(n)\n if(indexOfN < 0) {\n continue\n }\n\n for(var i=0; i<=d; ++i) {\n if(i === indexOfN) {\n continue\n }\n\n //For each boundary neighbor of the cell\n var neighbor = cellAdj[i]\n if(!neighbor.boundary || neighbor.lastVisited >= n) {\n continue\n }\n\n var nv = neighbor.vertices\n\n //Test if neighbor is a peak\n if(neighbor.lastVisited !== -n) { \n //Compute orientation of p relative to each boundary peak\n var indexOfNeg1 = 0\n for(var j=0; j<=d; ++j) {\n if(nv[j] < 0) {\n indexOfNeg1 = j\n tuple[j] = point\n } else {\n tuple[j] = verts[nv[j]]\n }\n }\n var o = this.orient()\n\n //Test if neighbor cell is also a peak\n if(o > 0) {\n nv[indexOfNeg1] = n\n neighbor.boundary = false\n interior.push(neighbor)\n tovisit.push(neighbor)\n neighbor.lastVisited = n\n continue\n } else {\n neighbor.lastVisited = -n\n }\n }\n\n var na = neighbor.adjacent\n\n //Otherwise, replace neighbor with new face\n var vverts = cellVerts.slice()\n var vadj = cellAdj.slice()\n var ncell = new Simplex(vverts, vadj, true)\n simplices.push(ncell)\n\n //Connect to neighbor\n var opposite = na.indexOf(cell)\n if(opposite < 0) {\n continue\n }\n na[opposite] = ncell\n vadj[indexOfN] = neighbor\n\n //Connect to cell\n vverts[i] = -1\n vadj[i] = cell\n cellAdj[i] = ncell\n\n //Flip facet\n ncell.flip()\n\n //Add to glue list\n for(var j=0; j<=d; ++j) {\n var uu = vverts[j]\n if(uu < 0 || uu === n) {\n continue\n }\n var nface = new Array(d-1)\n var nptr = 0\n for(var k=0; k<=d; ++k) {\n var vv = vverts[k]\n if(vv < 0 || k === j) {\n continue\n }\n nface[nptr++] = vv\n }\n glueFacets.push(new GlueFacet(nface, ncell, j))\n }\n }\n }\n\n //Glue boundary facets together\n glueFacets.sort(compareGlue)\n\n for(var i=0; i+1= 0) {\n bcell[ptr++] = cv[j]\n } else {\n parity = j&1\n }\n }\n if(parity === (d&1)) {\n var t = bcell[0]\n bcell[0] = bcell[1]\n bcell[1] = t\n }\n boundary.push(bcell)\n }\n }\n return boundary\n}\n\nfunction incrementalConvexHull(points, randomSearch) {\n var n = points.length\n if(n === 0) {\n throw new Error(\"Must have at least d+1 points\")\n }\n var d = points[0].length\n if(n <= d) {\n throw new Error(\"Must input at least d+1 points\")\n }\n\n //FIXME: This could be degenerate, but need to select d+1 non-coplanar points to bootstrap process\n var initialSimplex = points.slice(0, d+1)\n\n //Make sure initial simplex is positively oriented\n var o = orient.apply(void 0, initialSimplex)\n if(o === 0) {\n throw new Error(\"Input not in general position\")\n }\n var initialCoords = new Array(d+1)\n for(var i=0; i<=d; ++i) {\n initialCoords[i] = i\n }\n if(o < 0) {\n initialCoords[0] = 1\n initialCoords[1] = 0\n }\n\n //Create initial topological index, glue pointers together (kind of messy)\n var initialCell = new Simplex(initialCoords, new Array(d+1), false)\n var boundary = initialCell.adjacent\n var list = new Array(d+2)\n for(var i=0; i<=d; ++i) {\n var verts = initialCoords.slice()\n for(var j=0; j<=d; ++j) {\n if(j === i) {\n verts[j] = -1\n }\n }\n var t = verts[0]\n verts[0] = verts[1]\n verts[1] = t\n var cell = new Simplex(verts, new Array(d+1), true)\n boundary[i] = cell\n list[i] = cell\n }\n list[d+1] = initialCell\n for(var i=0; i<=d; ++i) {\n var verts = boundary[i].vertices\n var adj = boundary[i].adjacent\n for(var j=0; j<=d; ++j) {\n var v = verts[j]\n if(v < 0) {\n adj[j] = initialCell\n continue\n }\n for(var k=0; k<=d; ++k) {\n if(boundary[k].vertices.indexOf(v) < 0) {\n adj[j] = boundary[k]\n }\n }\n }\n }\n\n //Initialize triangles\n var triangles = new Triangulation(d, initialSimplex, list)\n\n //Insert remaining points\n var useRandom = !!randomSearch\n for(var i=d+1; i 0) {\n for (var k = 0; k < 24; ++k) {\n buffer.push(buffer[buffer.length - 12])\n }\n vertexCount += 2\n hadGap = true\n }\n\n continue fill_loop\n }\n bounds[0][j] = Math.min(bounds[0][j], a[j], b[j])\n bounds[1][j] = Math.max(bounds[1][j], a[j], b[j])\n }\n\n var acolor, bcolor\n if (Array.isArray(colors[0])) {\n acolor = (colors.length > i - 1) ? colors[i - 1] : // using index value\n (colors.length > 0) ? colors[colors.length - 1] : // using last item\n [0, 0, 0, 1]; // using black\n\n bcolor = (colors.length > i) ? colors[i] : // using index value\n (colors.length > 0) ? colors[colors.length - 1] : // using last item\n [0, 0, 0, 1]; // using black\n } else {\n acolor = bcolor = colors\n }\n\n if (acolor.length === 3) {\n acolor = [acolor[0], acolor[1], acolor[2], 1]\n }\n if (bcolor.length === 3) {\n bcolor = [bcolor[0], bcolor[1], bcolor[2], 1]\n }\n\n if(!this.hasAlpha && acolor[3] < 1) this.hasAlpha = true\n\n var w0\n if (Array.isArray(lineWidth)) {\n w0 = (lineWidth.length > i - 1) ? lineWidth[i - 1] : // using index value\n (lineWidth.length > 0) ? lineWidth[lineWidth.length - 1] : // using last item\n [0, 0, 0, 1]; // using black\n } else {\n w0 = lineWidth\n }\n\n var t0 = arcLength\n arcLength += distance(a, b)\n\n if (hadGap) {\n for (j = 0; j < 2; ++j) {\n buffer.push(\n a[0], a[1], a[2], b[0], b[1], b[2], t0, w0, acolor[0], acolor[1], acolor[2], acolor[3])\n }\n vertexCount += 2\n hadGap = false\n }\n\n buffer.push(\n a[0], a[1], a[2], b[0], b[1], b[2], t0, w0, acolor[0], acolor[1], acolor[2], acolor[3],\n a[0], a[1], a[2], b[0], b[1], b[2], t0, -w0, acolor[0], acolor[1], acolor[2], acolor[3],\n b[0], b[1], b[2], a[0], a[1], a[2], arcLength, -w0, bcolor[0], bcolor[1], bcolor[2], bcolor[3],\n b[0], b[1], b[2], a[0], a[1], a[2], arcLength, w0, bcolor[0], bcolor[1], bcolor[2], bcolor[3])\n\n vertexCount += 4\n }\n }\n this.buffer.update(buffer)\n\n arcLengthArray.push(arcLength)\n pointArray.push(positions[positions.length - 1].slice())\n\n this.bounds = bounds\n\n this.vertexCount = vertexCount\n\n this.points = pointArray\n this.arcLength = arcLengthArray\n\n if ('dashes' in options) {\n var dashArray = options.dashes\n\n // Calculate prefix sum\n var prefixSum = dashArray.slice()\n prefixSum.unshift(0)\n for (i = 1; i < prefixSum.length; ++i) {\n prefixSum[i] = prefixSum[i - 1] + prefixSum[i]\n }\n\n var dashTexture = ndarray(new Array(256 * 4), [256, 1, 4])\n for (i = 0; i < 256; ++i) {\n for (j = 0; j < 4; ++j) {\n dashTexture.set(i, 0, j, 0)\n }\n if (bsearch.le(prefixSum, prefixSum[prefixSum.length - 1] * i / 255.0) & 1) {\n dashTexture.set(i, 0, 0, 0)\n } else {\n dashTexture.set(i, 0, 0, 255)\n }\n }\n\n this.texture.setPixels(dashTexture)\n }\n}\n\nproto.dispose = function () {\n this.shader.dispose()\n this.vao.dispose()\n this.buffer.dispose()\n}\n\nproto.pick = function (selection) {\n if (!selection) {\n return null\n }\n if (selection.id !== this.pickId) {\n return null\n }\n var tau = unpackFloat(\n selection.value[0],\n selection.value[1],\n selection.value[2],\n 0)\n var index = bsearch.le(this.arcLength, tau)\n if (index < 0) {\n return null\n }\n if (index === this.arcLength.length - 1) {\n return new PickResult(\n this.arcLength[this.arcLength.length - 1],\n this.points[this.points.length - 1].slice(),\n index)\n }\n var a = this.points[index]\n var b = this.points[Math.min(index + 1, this.points.length - 1)]\n var t = (tau - this.arcLength[index]) / (this.arcLength[index + 1] - this.arcLength[index])\n var ti = 1.0 - t\n var x = [0, 0, 0]\n for (var i = 0; i < 3; ++i) {\n x[i] = ti * a[i] + t * b[i]\n }\n var dataIndex = Math.min((t < 0.5) ? index : (index + 1), this.points.length - 1)\n return new PickResult(\n tau,\n x,\n dataIndex,\n this.points[dataIndex])\n}\n\nfunction createLinePlot (options) {\n var gl = options.gl || (options.scene && options.scene.gl)\n\n var shader = createShader(gl)\n shader.attributes.position.location = 0\n shader.attributes.nextPosition.location = 1\n shader.attributes.arcLength.location = 2\n shader.attributes.lineWidth.location = 3\n shader.attributes.color.location = 4\n\n var pickShader = createPickShader(gl)\n pickShader.attributes.position.location = 0\n pickShader.attributes.nextPosition.location = 1\n pickShader.attributes.arcLength.location = 2\n pickShader.attributes.lineWidth.location = 3\n pickShader.attributes.color.location = 4\n\n var buffer = createBuffer(gl)\n var vao = createVAO(gl, [\n {\n 'buffer': buffer,\n 'size': 3,\n 'offset': 0,\n 'stride': 48\n },\n {\n 'buffer': buffer,\n 'size': 3,\n 'offset': 12,\n 'stride': 48\n },\n {\n 'buffer': buffer,\n 'size': 1,\n 'offset': 24,\n 'stride': 48\n },\n {\n 'buffer': buffer,\n 'size': 1,\n 'offset': 28,\n 'stride': 48\n },\n {\n 'buffer': buffer,\n 'size': 4,\n 'offset': 32,\n 'stride': 48\n }\n ])\n\n // Create texture for dash pattern\n var defaultTexture = ndarray(new Array(256 * 4), [256, 1, 4])\n for (var i = 0; i < 256 * 4; ++i) {\n defaultTexture.data[i] = 255\n }\n var texture = createTexture(gl, defaultTexture)\n texture.wrap = gl.REPEAT\n\n var linePlot = new LinePlot(gl, shader, pickShader, buffer, vao, texture)\n linePlot.update(options)\n return linePlot\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar colorscaleCalc = require('../../components/colorscale/calc');\n\n\n// Compute auto-z and autocolorscale if applicable\nmodule.exports = function calc(gd, trace) {\n if(trace.surfacecolor) {\n colorscaleCalc(gd, trace, {\n vals: trace.surfacecolor,\n containerStr: '',\n cLetter: 'c'\n });\n } else {\n colorscaleCalc(gd, trace, {\n vals: trace.z,\n containerStr: '',\n cLetter: 'c'\n });\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar d3 = require('d3');\nvar isNumeric = require('fast-isnumeric');\n\nvar NOTEDATA = [];\n\n/**\n * notifier\n * @param {String} text The person's user name\n * @param {Number} [delay=1000] The delay time in milliseconds\n * or 'long' which provides 2000 ms delay time.\n * @return {undefined} this function does not return a value\n */\nmodule.exports = function(text, displayLength) {\n if(NOTEDATA.indexOf(text) !== -1) return;\n\n NOTEDATA.push(text);\n\n var ts = 1000;\n if(isNumeric(displayLength)) ts = displayLength;\n else if(displayLength === 'long') ts = 3000;\n\n var notifierContainer = d3.select('body')\n .selectAll('.plotly-notifier')\n .data([0]);\n notifierContainer.enter()\n .append('div')\n .classed('plotly-notifier', true);\n\n var notes = notifierContainer.selectAll('.notifier-note').data(NOTEDATA);\n\n function killNote(transition) {\n transition\n .duration(700)\n .style('opacity', 0)\n .each('end', function(thisText) {\n var thisIndex = NOTEDATA.indexOf(thisText);\n if(thisIndex !== -1) NOTEDATA.splice(thisIndex, 1);\n d3.select(this).remove();\n });\n }\n\n notes.enter().append('div')\n .classed('notifier-note', true)\n .style('opacity', 0)\n .each(function(thisText) {\n var note = d3.select(this);\n\n note.append('button')\n .classed('notifier-close', true)\n .html('×')\n .on('click', function() {\n note.transition().call(killNote);\n });\n\n var p = note.append('p');\n var lines = thisText.split(//g);\n for(var i = 0; i < lines.length; i++) {\n if(i) p.append('br');\n p.append('span').text(lines[i]);\n }\n\n if(displayLength === 'stick') {\n note.transition()\n .duration(350)\n .style('opacity', 1);\n } else {\n note.transition()\n .duration(700)\n .style('opacity', 1)\n .transition()\n .delay(ts)\n .call(killNote);\n }\n });\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar LINKEDFILLS = {tonextx: 1, tonexty: 1, tonext: 1};\n\nmodule.exports = function linkTraces(gd, plotinfo, cdscatter) {\n var trace, i, group, prevtrace, groupIndex;\n\n // first sort traces to keep stacks & filled-together groups together\n var groupIndices = {};\n var needsSort = false;\n var prevGroupIndex = -1;\n var nextGroupIndex = 0;\n var prevUnstackedGroupIndex = -1;\n for(i = 0; i < cdscatter.length; i++) {\n trace = cdscatter[i][0].trace;\n group = trace.stackgroup || '';\n if(group) {\n if(group in groupIndices) {\n groupIndex = groupIndices[group];\n } else {\n groupIndex = groupIndices[group] = nextGroupIndex;\n nextGroupIndex++;\n }\n } else if(trace.fill in LINKEDFILLS && prevUnstackedGroupIndex >= 0) {\n groupIndex = prevUnstackedGroupIndex;\n } else {\n groupIndex = prevUnstackedGroupIndex = nextGroupIndex;\n nextGroupIndex++;\n }\n\n if(groupIndex < prevGroupIndex) needsSort = true;\n trace._groupIndex = prevGroupIndex = groupIndex;\n }\n\n var cdscatterSorted = cdscatter.slice();\n if(needsSort) {\n cdscatterSorted.sort(function(a, b) {\n var traceA = a[0].trace;\n var traceB = b[0].trace;\n return (traceA._groupIndex - traceB._groupIndex) ||\n (traceA.index - traceB.index);\n });\n }\n\n // now link traces to each other\n var prevtraces = {};\n for(i = 0; i < cdscatterSorted.length; i++) {\n trace = cdscatterSorted[i][0].trace;\n group = trace.stackgroup || '';\n\n // Note: The check which ensures all cdscatter here are for the same axis and\n // are either cartesian or scatterternary has been removed. This code assumes\n // the passed scattertraces have been filtered to the proper plot types and\n // the proper subplots.\n if(trace.visible === true) {\n trace._nexttrace = null;\n\n if(trace.fill in LINKEDFILLS) {\n prevtrace = prevtraces[group];\n trace._prevtrace = prevtrace || null;\n\n if(prevtrace) {\n prevtrace._nexttrace = trace;\n }\n }\n\n trace._ownfill = (trace.fill && (\n trace.fill.substr(0, 6) === 'tozero' ||\n trace.fill === 'toself' ||\n (trace.fill.substr(0, 2) === 'to' && !trace._prevtrace)\n ));\n\n prevtraces[group] = trace;\n } else {\n trace._prevtrace = trace._nexttrace = trace._ownfill = null;\n }\n }\n\n return cdscatterSorted;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n moduleType: 'trace',\n name: 'ohlc',\n basePlotModule: require('../../plots/cartesian'),\n categories: ['cartesian', 'svg', 'showLegend'],\n meta: {\n \n },\n\n attributes: require('./attributes'),\n supplyDefaults: require('./defaults'),\n calc: require('./calc').calc,\n plot: require('./plot'),\n style: require('./style'),\n hoverPoints: require('./hover').hoverPoints,\n selectPoints: require('./select')\n};\n","/** @module color-normalize */\r\n\r\n'use strict'\r\n\r\nvar rgba = require('color-rgba')\r\nvar clamp = require('clamp')\r\nvar dtype = require('dtype')\r\n\r\nmodule.exports = function normalize (color, type) {\r\n\tif (type === 'float' || !type) type = 'array'\r\n\tif (type === 'uint') type = 'uint8'\r\n\tif (type === 'uint_clamped') type = 'uint8_clamped'\r\n\tvar Ctor = dtype(type)\r\n\tvar output = new Ctor(4)\r\n\r\n\tvar normalize = type !== 'uint8' && type !== 'uint8_clamped'\r\n\r\n\t// attempt to parse non-array arguments\r\n\tif (!color.length || typeof color === 'string') {\r\n\t\tcolor = rgba(color)\r\n\t\tcolor[0] /= 255\r\n\t\tcolor[1] /= 255\r\n\t\tcolor[2] /= 255\r\n\t}\r\n\r\n\t// 0, 1 are possible contradictory values for Arrays:\r\n\t// [1,1,1] input gives [1,1,1] output instead of [1/255,1/255,1/255], which may be collision if input is meant to be uint.\r\n\t// converting [1,1,1] to [1/255,1/255,1/255] in case of float input gives larger mistake since [1,1,1] float is frequent edge value, whereas [0,1,1], [1,1,1] etc. uint inputs are relatively rare\r\n\tif (isInt(color)) {\r\n\t\toutput[0] = color[0]\r\n\t\toutput[1] = color[1]\r\n\t\toutput[2] = color[2]\r\n\t\toutput[3] = color[3] != null ? color[3] : 255\r\n\r\n\t\tif (normalize) {\r\n\t\t\toutput[0] /= 255\r\n\t\t\toutput[1] /= 255\r\n\t\t\toutput[2] /= 255\r\n\t\t\toutput[3] /= 255\r\n\t\t}\r\n\r\n\t\treturn output\r\n\t}\r\n\r\n\tif (!normalize) {\r\n\t\toutput[0] = clamp(Math.floor(color[0] * 255), 0, 255)\r\n\t\toutput[1] = clamp(Math.floor(color[1] * 255), 0, 255)\r\n\t\toutput[2] = clamp(Math.floor(color[2] * 255), 0, 255)\r\n\t\toutput[3] = color[3] == null ? 255 : clamp(Math.floor(color[3] * 255), 0, 255)\r\n\t} else {\r\n\t\toutput[0] = color[0]\r\n\t\toutput[1] = color[1]\r\n\t\toutput[2] = color[2]\r\n\t\toutput[3] = color[3] != null ? color[3] : 1\r\n\t}\r\n\r\n\treturn output\r\n}\r\n\r\nfunction isInt(color) {\r\n\tif (color instanceof Uint8Array || color instanceof Uint8ClampedArray) return true\r\n\r\n\tif (Array.isArray(color) &&\r\n\t\t(color[0] > 1 || color[0] === 0) &&\r\n\t\t(color[1] > 1 || color[1] === 0) &&\r\n\t\t(color[2] > 1 || color[2] === 0) &&\r\n\t\t(!color[3] || color[3] > 1)\r\n\t) return true\r\n\r\n\treturn false\r\n}\r\n","'use strict';\n\n//This code is extracted from ndarray-sort\n//It is inlined here as a temporary workaround\n\nmodule.exports = wrapper;\n\nvar INSERT_SORT_CUTOFF = 32\n\nfunction wrapper(data, n0) {\n if (n0 <= 4*INSERT_SORT_CUTOFF) {\n insertionSort(0, n0 - 1, data);\n } else {\n quickSort(0, n0 - 1, data);\n }\n}\n\nfunction insertionSort(left, right, data) {\n var ptr = 2*(left+1)\n for(var i=left+1; i<=right; ++i) {\n var a = data[ptr++]\n var b = data[ptr++]\n var j = i\n var jptr = ptr-2\n while(j-- > left) {\n var x = data[jptr-2]\n var y = data[jptr-1]\n if(x < a) {\n break\n } else if(x === a && y < b) {\n break\n }\n data[jptr] = x\n data[jptr+1] = y\n jptr -= 2\n }\n data[jptr] = a\n data[jptr+1] = b\n }\n}\n\nfunction swap(i, j, data) {\n i *= 2\n j *= 2\n var x = data[i]\n var y = data[i+1]\n data[i] = data[j]\n data[i+1] = data[j+1]\n data[j] = x\n data[j+1] = y\n}\n\nfunction move(i, j, data) {\n i *= 2\n j *= 2\n data[i] = data[j]\n data[i+1] = data[j+1]\n}\n\nfunction rotate(i, j, k, data) {\n i *= 2\n j *= 2\n k *= 2\n var x = data[i]\n var y = data[i+1]\n data[i] = data[j]\n data[i+1] = data[j+1]\n data[j] = data[k]\n data[j+1] = data[k+1]\n data[k] = x\n data[k+1] = y\n}\n\nfunction shufflePivot(i, j, px, py, data) {\n i *= 2\n j *= 2\n data[i] = data[j]\n data[j] = px\n data[i+1] = data[j+1]\n data[j+1] = py\n}\n\nfunction compare(i, j, data) {\n i *= 2\n j *= 2\n var x = data[i],\n y = data[j]\n if(x < y) {\n return false\n } else if(x === y) {\n return data[i+1] > data[j+1]\n }\n return true\n}\n\nfunction comparePivot(i, y, b, data) {\n i *= 2\n var x = data[i]\n if(x < y) {\n return true\n } else if(x === y) {\n return data[i+1] < b\n }\n return false\n}\n\nfunction quickSort(left, right, data) {\n var sixth = (right - left + 1) / 6 | 0, \n index1 = left + sixth, \n index5 = right - sixth, \n index3 = left + right >> 1, \n index2 = index3 - sixth, \n index4 = index3 + sixth, \n el1 = index1, \n el2 = index2, \n el3 = index3, \n el4 = index4, \n el5 = index5, \n less = left + 1, \n great = right - 1, \n tmp = 0\n if(compare(el1, el2, data)) {\n tmp = el1\n el1 = el2\n el2 = tmp\n }\n if(compare(el4, el5, data)) {\n tmp = el4\n el4 = el5\n el5 = tmp\n }\n if(compare(el1, el3, data)) {\n tmp = el1\n el1 = el3\n el3 = tmp\n }\n if(compare(el2, el3, data)) {\n tmp = el2\n el2 = el3\n el3 = tmp\n }\n if(compare(el1, el4, data)) {\n tmp = el1\n el1 = el4\n el4 = tmp\n }\n if(compare(el3, el4, data)) {\n tmp = el3\n el3 = el4\n el4 = tmp\n }\n if(compare(el2, el5, data)) {\n tmp = el2\n el2 = el5\n el5 = tmp\n }\n if(compare(el2, el3, data)) {\n tmp = el2\n el2 = el3\n el3 = tmp\n }\n if(compare(el4, el5, data)) {\n tmp = el4\n el4 = el5\n el5 = tmp\n }\n\n var pivot1X = data[2*el2]\n var pivot1Y = data[2*el2+1]\n var pivot2X = data[2*el4]\n var pivot2Y = data[2*el4+1]\n\n var ptr0 = 2 * el1;\n var ptr2 = 2 * el3;\n var ptr4 = 2 * el5;\n var ptr5 = 2 * index1;\n var ptr6 = 2 * index3;\n var ptr7 = 2 * index5;\n for (var i1 = 0; i1 < 2; ++i1) {\n var x = data[ptr0+i1];\n var y = data[ptr2+i1];\n var z = data[ptr4+i1];\n data[ptr5+i1] = x;\n data[ptr6+i1] = y;\n data[ptr7+i1] = z;\n }\n\n move(index2, left, data)\n move(index4, right, data)\n for (var k = less; k <= great; ++k) {\n if (comparePivot(k, pivot1X, pivot1Y, data)) {\n if (k !== less) {\n swap(k, less, data)\n }\n ++less;\n } else {\n if (!comparePivot(k, pivot2X, pivot2Y, data)) {\n while (true) {\n if (!comparePivot(great, pivot2X, pivot2Y, data)) {\n if (--great < k) {\n break;\n }\n continue;\n } else {\n if (comparePivot(great, pivot1X, pivot1Y, data)) {\n rotate(k, less, great, data)\n ++less;\n --great;\n } else {\n swap(k, great, data)\n --great;\n }\n break;\n }\n }\n }\n }\n }\n shufflePivot(left, less-1, pivot1X, pivot1Y, data)\n shufflePivot(right, great+1, pivot2X, pivot2Y, data)\n if (less - 2 - left <= INSERT_SORT_CUTOFF) {\n insertionSort(left, less - 2, data);\n } else {\n quickSort(left, less - 2, data);\n }\n if (right - (great + 2) <= INSERT_SORT_CUTOFF) {\n insertionSort(great + 2, right, data);\n } else {\n quickSort(great + 2, right, data);\n }\n if (great - less <= INSERT_SORT_CUTOFF) {\n insertionSort(less, great, data);\n } else {\n quickSort(less, great, data);\n }\n}","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nmodule.exports = {\n circle: '●',\n 'circle-open': '○',\n square: '■',\n 'square-open': '□',\n diamond: '◆',\n 'diamond-open': '◇',\n cross: '+',\n x: '❌'\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n/* eslint block-scoped-var: 0*/\n/* eslint no-redeclare: 0*/\n\n'use strict';\n\nmodule.exports = computeTickMarks;\n\nvar Axes = require('../../cartesian/axes');\nvar Lib = require('../../../lib');\n\nvar AXES_NAMES = ['xaxis', 'yaxis', 'zaxis'];\n\nvar centerPoint = [0, 0, 0];\n\nfunction contourLevelsFromTicks(ticks) {\n var result = new Array(3);\n for(var i = 0; i < 3; ++i) {\n var tlevel = ticks[i];\n var clevel = new Array(tlevel.length);\n for(var j = 0; j < tlevel.length; ++j) {\n clevel[j] = tlevel[j].x;\n }\n result[i] = clevel;\n }\n return result;\n}\n\nfunction computeTickMarks(scene) {\n var axesOptions = scene.axesOptions;\n var glRange = scene.glplot.axesPixels;\n var sceneLayout = scene.fullSceneLayout;\n\n var ticks = [[], [], []];\n\n for(var i = 0; i < 3; ++i) {\n var axes = sceneLayout[AXES_NAMES[i]];\n\n axes._length = (glRange[i].hi - glRange[i].lo) *\n glRange[i].pixelsPerDataUnit / scene.dataScale[i];\n\n if(Math.abs(axes._length) === Infinity ||\n isNaN(axes._length)) {\n ticks[i] = [];\n } else {\n axes._input_range = axes.range.slice();\n axes.range[0] = (glRange[i].lo) / scene.dataScale[i];\n axes.range[1] = (glRange[i].hi) / scene.dataScale[i];\n axes._m = 1.0 / (scene.dataScale[i] * glRange[i].pixelsPerDataUnit);\n\n if(axes.range[0] === axes.range[1]) {\n axes.range[0] -= 1;\n axes.range[1] += 1;\n }\n // this is necessary to short-circuit the 'y' handling\n // in autotick part of calcTicks... Treating all axes as 'y' in this case\n // running the autoticks here, then setting\n // autoticks to false to get around the 2D handling in calcTicks.\n var tickModeCached = axes.tickmode;\n if(axes.tickmode === 'auto') {\n axes.tickmode = 'linear';\n var nticks = axes.nticks || Lib.constrain((axes._length / 40), 4, 9);\n Axes.autoTicks(axes, Math.abs(axes.range[1] - axes.range[0]) / nticks);\n }\n var dataTicks = Axes.calcTicks(axes);\n for(var j = 0; j < dataTicks.length; ++j) {\n dataTicks[j].x = dataTicks[j].x * scene.dataScale[i];\n\n if(axes.type === 'date') {\n dataTicks[j].text =\n dataTicks[j].text.replace(/\\/g, ' ');\n }\n }\n ticks[i] = dataTicks;\n\n\n axes.tickmode = tickModeCached;\n }\n }\n\n axesOptions.ticks = ticks;\n\n // Calculate tick lengths dynamically\n for(var i = 0; i < 3; ++i) {\n centerPoint[i] = 0.5 * (scene.glplot.bounds[0][i] + scene.glplot.bounds[1][i]);\n for(var j = 0; j < 2; ++j) {\n axesOptions.bounds[j][i] = scene.glplot.bounds[j][i];\n }\n }\n\n scene.contourLevels = contourLevelsFromTicks(ticks);\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/scattermapbox');\n","/*\n * World Calendars\n * https://github.com/alexcjohnson/world-calendars\n *\n * Batch-converted from kbwood/calendars\n * Many thanks to Keith Wood and all of the contributors to the original project!\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/* http://keith-wood.name/calendars.html\n Calendars for jQuery v2.0.2.\n Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009.\n Available under the MIT (http://keith-wood.name/licence.html) license. \n Please attribute the author if you use it. */\n\nvar assign = require('object-assign');\n\n\nfunction Calendars() {\n this.regionalOptions = [];\n this.regionalOptions[''] = {\n invalidCalendar: 'Calendar {0} not found',\n invalidDate: 'Invalid {0} date',\n invalidMonth: 'Invalid {0} month',\n invalidYear: 'Invalid {0} year',\n differentCalendars: 'Cannot mix {0} and {1} dates'\n };\n this.local = this.regionalOptions[''];\n this.calendars = {};\n this._localCals = {};\n}\n\n/** Create the calendars plugin.\n

Provides support for various world calendars in a consistent manner.

\n @class Calendars\n @example _exports.instance('julian').newDate(2014, 12, 25) */\nassign(Calendars.prototype, {\n\n /** Obtain a calendar implementation and localisation.\n @memberof Calendars\n @param [name='gregorian'] {string} The name of the calendar, e.g. 'gregorian', 'persian', 'islamic'.\n @param [language=''] {string} The language code to use for localisation (default is English).\n @return {Calendar} The calendar and localisation.\n @throws Error if calendar not found. */\n instance: function(name, language) {\n name = (name || 'gregorian').toLowerCase();\n language = language || '';\n var cal = this._localCals[name + '-' + language];\n if (!cal && this.calendars[name]) {\n cal = new this.calendars[name](language);\n this._localCals[name + '-' + language] = cal;\n }\n if (!cal) {\n throw (this.local.invalidCalendar || this.regionalOptions[''].invalidCalendar).\n replace(/\\{0\\}/, name);\n }\n return cal;\n },\n\n /** Create a new date - for today if no other parameters given.\n @memberof Calendars\n @param year {CDate|number} The date to copy or the year for the date.\n @param [month] {number} The month for the date.\n @param [day] {number} The day for the date.\n @param [calendar='gregorian'] {BaseCalendar|string} The underlying calendar or the name of the calendar.\n @param [language=''] {string} The language to use for localisation (default English).\n @return {CDate} The new date.\n @throws Error if an invalid date. */\n newDate: function(year, month, day, calendar, language) {\n calendar = (year != null && year.year ? year.calendar() : (typeof calendar === 'string' ?\n this.instance(calendar, language) : calendar)) || this.instance();\n return calendar.newDate(year, month, day);\n },\n \n /** A simple digit substitution function for localising numbers via the Calendar digits option.\n @member Calendars\n @param digits {string[]} The substitute digits, for 0 through 9.\n @return {function} The substitution function. */\n substituteDigits: function(digits) {\n return function(value) {\n return (value + '').replace(/[0-9]/g, function(digit) {\n return digits[digit];\n });\n }\n },\n \n /** Digit substitution function for localising Chinese style numbers via the Calendar digits option.\n @member Calendars\n @param digits {string[]} The substitute digits, for 0 through 9.\n @param powers {string[]} The characters denoting powers of 10, i.e. 1, 10, 100, 1000.\n @return {function} The substitution function. */\n substituteChineseDigits: function(digits, powers) {\n return function(value) {\n var localNumber = '';\n var power = 0;\n while (value > 0) {\n var units = value % 10;\n localNumber = (units === 0 ? '' : digits[units] + powers[power]) + localNumber;\n power++;\n value = Math.floor(value / 10);\n }\n if (localNumber.indexOf(digits[1] + powers[1]) === 0) {\n localNumber = localNumber.substr(1);\n }\n return localNumber || digits[0];\n }\n }\n});\n\n/** Generic date, based on a particular calendar.\n @class CDate\n @param calendar {BaseCalendar} The underlying calendar implementation.\n @param year {number} The year for this date.\n @param month {number} The month for this date.\n @param day {number} The day for this date.\n @return {CDate} The date object.\n @throws Error if an invalid date. */\nfunction CDate(calendar, year, month, day) {\n this._calendar = calendar;\n this._year = year;\n this._month = month;\n this._day = day;\n if (this._calendar._validateLevel === 0 &&\n !this._calendar.isValid(this._year, this._month, this._day)) {\n throw (_exports.local.invalidDate || _exports.regionalOptions[''].invalidDate).\n replace(/\\{0\\}/, this._calendar.local.name);\n }\n}\n\n/** Pad a numeric value with leading zeroes.\n @private\n @param value {number} The number to format.\n @param length {number} The minimum length.\n @return {string} The formatted number. */\nfunction pad(value, length) {\n value = '' + value;\n return '000000'.substring(0, length - value.length) + value;\n}\n\nassign(CDate.prototype, {\n\n /** Create a new date.\n @memberof CDate\n @param [year] {CDate|number} The date to copy or the year for the date (default this date).\n @param [month] {number} The month for the date.\n @param [day] {number} The day for the date.\n @return {CDate} The new date.\n @throws Error if an invalid date. */\n newDate: function(year, month, day) {\n return this._calendar.newDate((year == null ? this : year), month, day);\n },\n\n /** Set or retrieve the year for this date.\n @memberof CDate\n @param [year] {number} The year for the date.\n @return {number|CDate} The date's year (if no parameter) or the updated date.\n @throws Error if an invalid date. */\n year: function(year) {\n return (arguments.length === 0 ? this._year : this.set(year, 'y'));\n },\n\n /** Set or retrieve the month for this date.\n @memberof CDate\n @param [month] {number} The month for the date.\n @return {number|CDate} The date's month (if no parameter) or the updated date.\n @throws Error if an invalid date. */\n month: function(month) {\n return (arguments.length === 0 ? this._month : this.set(month, 'm'));\n },\n\n /** Set or retrieve the day for this date.\n @memberof CDate\n @param [day] {number} The day for the date.\n @return {number|CData} The date's day (if no parameter) or the updated date.\n @throws Error if an invalid date. */\n day: function(day) {\n return (arguments.length === 0 ? this._day : this.set(day, 'd'));\n },\n\n /** Set new values for this date.\n @memberof CDate\n @param year {number} The year for the date.\n @param month {number} The month for the date.\n @param day {number} The day for the date.\n @return {CDate} The updated date.\n @throws Error if an invalid date. */\n date: function(year, month, day) {\n if (!this._calendar.isValid(year, month, day)) {\n throw (_exports.local.invalidDate || _exports.regionalOptions[''].invalidDate).\n replace(/\\{0\\}/, this._calendar.local.name);\n }\n this._year = year;\n this._month = month;\n this._day = day;\n return this;\n },\n\n /** Determine whether this date is in a leap year.\n @memberof CDate\n @return {boolean} true if this is a leap year, false if not. */\n leapYear: function() {\n return this._calendar.leapYear(this);\n },\n\n /** Retrieve the epoch designator for this date, e.g. BCE or CE.\n @memberof CDate\n @return {string} The current epoch. */\n epoch: function() {\n return this._calendar.epoch(this);\n },\n\n /** Format the year, if not a simple sequential number.\n @memberof CDate\n @return {string} The formatted year. */\n formatYear: function() {\n return this._calendar.formatYear(this);\n },\n\n /** Retrieve the month of the year for this date,\n i.e. the month's position within a numbered year.\n @memberof CDate\n @return {number} The month of the year: minMonth to months per year. */\n monthOfYear: function() {\n return this._calendar.monthOfYear(this);\n },\n\n /** Retrieve the week of the year for this date.\n @memberof CDate\n @return {number} The week of the year: 1 to weeks per year. */\n weekOfYear: function() {\n return this._calendar.weekOfYear(this);\n },\n\n /** Retrieve the number of days in the year for this date.\n @memberof CDate\n @return {number} The number of days in this year. */\n daysInYear: function() {\n return this._calendar.daysInYear(this);\n },\n\n /** Retrieve the day of the year for this date.\n @memberof CDate\n @return {number} The day of the year: 1 to days per year. */\n dayOfYear: function() {\n return this._calendar.dayOfYear(this);\n },\n\n /** Retrieve the number of days in the month for this date.\n @memberof CDate\n @return {number} The number of days. */\n daysInMonth: function() {\n return this._calendar.daysInMonth(this);\n },\n\n /** Retrieve the day of the week for this date.\n @memberof CDate\n @return {number} The day of the week: 0 to number of days - 1. */\n dayOfWeek: function() {\n return this._calendar.dayOfWeek(this);\n },\n\n /** Determine whether this date is a week day.\n @memberof CDate\n @return {boolean} true if a week day, false if not. */\n weekDay: function() {\n return this._calendar.weekDay(this);\n },\n\n /** Retrieve additional information about this date.\n @memberof CDate\n @return {object} Additional information - contents depends on calendar. */\n extraInfo: function() {\n return this._calendar.extraInfo(this);\n },\n\n /** Add period(s) to a date.\n @memberof CDate\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date. */\n add: function(offset, period) {\n return this._calendar.add(this, offset, period);\n },\n\n /** Set a portion of the date.\n @memberof CDate\n @param value {number} The new value for the period.\n @param period {string} One of 'y' for year, 'm' for month, 'd' for day.\n @return {CDate} The updated date.\n @throws Error if not a valid date. */\n set: function(value, period) {\n return this._calendar.set(this, value, period);\n },\n\n /** Compare this date to another date.\n @memberof CDate\n @param date {CDate} The other date.\n @return {number} -1 if this date is before the other date,\n 0 if they are equal, or +1 if this date is after the other date. */\n compareTo: function(date) {\n if (this._calendar.name !== date._calendar.name) {\n throw (_exports.local.differentCalendars || _exports.regionalOptions[''].differentCalendars).\n replace(/\\{0\\}/, this._calendar.local.name).replace(/\\{1\\}/, date._calendar.local.name);\n }\n var c = (this._year !== date._year ? this._year - date._year :\n this._month !== date._month ? this.monthOfYear() - date.monthOfYear() :\n this._day - date._day);\n return (c === 0 ? 0 : (c < 0 ? -1 : +1));\n },\n\n /** Retrieve the calendar backing this date.\n @memberof CDate\n @return {BaseCalendar} The calendar implementation. */\n calendar: function() {\n return this._calendar;\n },\n\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof CDate\n @return {number} The equivalent Julian date. */\n toJD: function() {\n return this._calendar.toJD(this);\n },\n\n /** Create a new date from a Julian date.\n @memberof CDate\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n return this._calendar.fromJD(jd);\n },\n\n /** Convert this date to a standard (Gregorian) JavaScript Date.\n @memberof CDate\n @return {Date} The equivalent JavaScript date. */\n toJSDate: function() {\n return this._calendar.toJSDate(this);\n },\n\n /** Create a new date from a standard (Gregorian) JavaScript Date.\n @memberof CDate\n @param jsd {Date} The JavaScript date to convert.\n @return {CDate} The equivalent date. */\n fromJSDate: function(jsd) {\n return this._calendar.fromJSDate(jsd);\n },\n\n /** Convert to a string for display.\n @memberof CDate\n @return {string} This date as a string. */\n toString: function() {\n return (this.year() < 0 ? '-' : '') + pad(Math.abs(this.year()), 4) +\n '-' + pad(this.month(), 2) + '-' + pad(this.day(), 2);\n }\n});\n\n/** Basic functionality for all calendars.\n Other calendars should extend this:\n
OtherCalendar.prototype = new BaseCalendar;
\n @class BaseCalendar */\nfunction BaseCalendar() {\n this.shortYearCutoff = '+10';\n}\n\nassign(BaseCalendar.prototype, {\n _validateLevel: 0, // \"Stack\" to turn validation on/off\n\n /** Create a new date within this calendar - today if no parameters given.\n @memberof BaseCalendar\n @param year {CDate|number} The date to duplicate or the year for the date.\n @param [month] {number} The month for the date.\n @param [day] {number} The day for the date.\n @return {CDate} The new date.\n @throws Error if not a valid date or a different calendar used. */\n newDate: function(year, month, day) {\n if (year == null) {\n return this.today();\n }\n if (year.year) {\n this._validate(year, month, day,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n day = year.day();\n month = year.month();\n year = year.year();\n }\n return new CDate(this, year, month, day);\n },\n\n /** Create a new date for today.\n @memberof BaseCalendar\n @return {CDate} Today's date. */\n today: function() {\n return this.fromJSDate(new Date());\n },\n\n /** Retrieve the epoch designator for this date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {string} The current epoch.\n @throws Error if an invalid year or a different calendar used. */\n epoch: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[''].invalidYear);\n return (date.year() < 0 ? this.local.epochs[0] : this.local.epochs[1]);\n },\n\n /** Format the year, if not a simple sequential number\n @memberof BaseCalendar\n @param year {CDate|number} The date to format or the year to format.\n @return {string} The formatted year.\n @throws Error if an invalid year or a different calendar used. */\n formatYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[''].invalidYear);\n return (date.year() < 0 ? '-' : '') + pad(Math.abs(date.year()), 4)\n },\n\n /** Retrieve the number of months in a year.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of months.\n @throws Error if an invalid year or a different calendar used. */\n monthsInYear: function(year) {\n this._validate(year, this.minMonth, this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[''].invalidYear);\n return 12;\n },\n\n /** Calculate the month's ordinal position within the year -\n for those calendars that don't start at month 1!\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param month {number} The month to examine.\n @return {number} The ordinal position, starting from minMonth.\n @throws Error if an invalid year/month or a different calendar used. */\n monthOfYear: function(year, month) {\n var date = this._validate(year, month, this.minDay,\n _exports.local.invalidMonth || _exports.regionalOptions[''].invalidMonth);\n return (date.month() + this.monthsInYear(date) - this.firstMonth) %\n this.monthsInYear(date) + this.minMonth;\n },\n\n /** Calculate actual month from ordinal position, starting from minMonth.\n @memberof BaseCalendar\n @param year {number} The year to examine.\n @param ord {number} The month's ordinal position.\n @return {number} The month's number.\n @throws Error if an invalid year/month. */\n fromMonthOfYear: function(year, ord) {\n var m = (ord + this.firstMonth - 2 * this.minMonth) %\n this.monthsInYear(year) + this.minMonth;\n this._validate(year, m, this.minDay,\n _exports.local.invalidMonth || _exports.regionalOptions[''].invalidMonth);\n return m;\n },\n\n /** Retrieve the number of days in a year.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[''].invalidYear);\n return (this.leapYear(date) ? 366 : 365);\n },\n\n /** Retrieve the day of the year for a date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The day of the year.\n @throws Error if an invalid date or a different calendar used. */\n dayOfYear: function(year, month, day) {\n var date = this._validate(year, month, day,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n return date.toJD() - this.newDate(date.year(),\n this.fromMonthOfYear(date.year(), this.minMonth), this.minDay).toJD() + 1;\n },\n\n /** Retrieve the number of days in a week.\n @memberof BaseCalendar\n @return {number} The number of days. */\n daysInWeek: function() {\n return 7;\n },\n\n /** Retrieve the day of the week for a date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The day of the week: 0 to number of days - 1.\n @throws Error if an invalid date or a different calendar used. */\n dayOfWeek: function(year, month, day) {\n var date = this._validate(year, month, day,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n return (Math.floor(this.toJD(date)) + 2) % this.daysInWeek();\n },\n\n /** Retrieve additional information about a date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {object} Additional information - contents depends on calendar.\n @throws Error if an invalid date or a different calendar used. */\n extraInfo: function(year, month, day) {\n this._validate(year, month, day,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n return {};\n },\n\n /** Add period(s) to a date.\n Cater for no year zero.\n @memberof BaseCalendar\n @param date {CDate} The starting date.\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date.\n @throws Error if a different calendar used. */\n add: function(date, offset, period) {\n this._validate(date, this.minMonth, this.minDay,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n return this._correctAdd(date, this._add(date, offset, period), offset, period);\n },\n\n /** Add period(s) to a date.\n @memberof BaseCalendar\n @private\n @param date {CDate} The starting date.\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date. */\n _add: function(date, offset, period) {\n this._validateLevel++;\n if (period === 'd' || period === 'w') {\n var jd = date.toJD() + offset * (period === 'w' ? this.daysInWeek() : 1);\n var d = date.calendar().fromJD(jd);\n this._validateLevel--;\n return [d.year(), d.month(), d.day()];\n }\n try {\n var y = date.year() + (period === 'y' ? offset : 0);\n var m = date.monthOfYear() + (period === 'm' ? offset : 0);\n var d = date.day();// + (period === 'd' ? offset : 0) +\n //(period === 'w' ? offset * this.daysInWeek() : 0);\n var resyncYearMonth = function(calendar) {\n while (m < calendar.minMonth) {\n y--;\n m += calendar.monthsInYear(y);\n }\n var yearMonths = calendar.monthsInYear(y);\n while (m > yearMonths - 1 + calendar.minMonth) {\n y++;\n m -= yearMonths;\n yearMonths = calendar.monthsInYear(y);\n }\n };\n if (period === 'y') {\n if (date.month() !== this.fromMonthOfYear(y, m)) { // Hebrew\n m = this.newDate(y, date.month(), this.minDay).monthOfYear();\n }\n m = Math.min(m, this.monthsInYear(y));\n d = Math.min(d, this.daysInMonth(y, this.fromMonthOfYear(y, m)));\n }\n else if (period === 'm') {\n resyncYearMonth(this);\n d = Math.min(d, this.daysInMonth(y, this.fromMonthOfYear(y, m)));\n }\n var ymd = [y, this.fromMonthOfYear(y, m), d];\n this._validateLevel--;\n return ymd;\n }\n catch (e) {\n this._validateLevel--;\n throw e;\n }\n },\n\n /** Correct a candidate date after adding period(s) to a date.\n Handle no year zero if necessary.\n @memberof BaseCalendar\n @private\n @param date {CDate} The starting date.\n @param ymd {number[]} The added date.\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date. */\n _correctAdd: function(date, ymd, offset, period) {\n if (!this.hasYearZero && (period === 'y' || period === 'm')) {\n if (ymd[0] === 0 || // In year zero\n (date.year() > 0) !== (ymd[0] > 0)) { // Crossed year zero\n var adj = {y: [1, 1, 'y'], m: [1, this.monthsInYear(-1), 'm'],\n w: [this.daysInWeek(), this.daysInYear(-1), 'd'],\n d: [1, this.daysInYear(-1), 'd']}[period];\n var dir = (offset < 0 ? -1 : +1);\n ymd = this._add(date, offset * adj[0] + dir * adj[1], adj[2]);\n }\n }\n return date.date(ymd[0], ymd[1], ymd[2]);\n },\n\n /** Set a portion of the date.\n @memberof BaseCalendar\n @param date {CDate} The starting date.\n @param value {number} The new value for the period.\n @param period {string} One of 'y' for year, 'm' for month, 'd' for day.\n @return {CDate} The updated date.\n @throws Error if an invalid date or a different calendar used. */\n set: function(date, value, period) {\n this._validate(date, this.minMonth, this.minDay,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n var y = (period === 'y' ? value : date.year());\n var m = (period === 'm' ? value : date.month());\n var d = (period === 'd' ? value : date.day());\n if (period === 'y' || period === 'm') {\n d = Math.min(d, this.daysInMonth(y, m));\n }\n return date.date(y, m, d);\n },\n\n /** Determine whether a date is valid for this calendar.\n @memberof BaseCalendar\n @param year {number} The year to examine.\n @param month {number} The month to examine.\n @param day {number} The day to examine.\n @return {boolean} true if a valid date, false if not. */\n isValid: function(year, month, day) {\n this._validateLevel++;\n var valid = (this.hasYearZero || year !== 0);\n if (valid) {\n var date = this.newDate(year, month, this.minDay);\n valid = (month >= this.minMonth && month - this.minMonth < this.monthsInYear(date)) &&\n (day >= this.minDay && day - this.minDay < this.daysInMonth(date));\n }\n this._validateLevel--;\n return valid;\n },\n\n /** Convert the date to a standard (Gregorian) JavaScript Date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {Date} The equivalent JavaScript date.\n @throws Error if an invalid date or a different calendar used. */\n toJSDate: function(year, month, day) {\n var date = this._validate(year, month, day,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n return _exports.instance().fromJD(this.toJD(date)).toJSDate();\n },\n\n /** Convert the date from a standard (Gregorian) JavaScript Date.\n @memberof BaseCalendar\n @param jsd {Date} The JavaScript date.\n @return {CDate} The equivalent calendar date. */\n fromJSDate: function(jsd) {\n return this.fromJD(_exports.instance().fromJSDate(jsd).toJD());\n },\n\n /** Check that a candidate date is from the same calendar and is valid.\n @memberof BaseCalendar\n @private\n @param year {CDate|number} The date to validate or the year to validate.\n @param [month] {number} The month to validate.\n @param [day] {number} The day to validate.\n @param error {string} Rrror message if invalid.\n @throws Error if different calendars used or invalid date. */\n _validate: function(year, month, day, error) {\n if (year.year) {\n if (this._validateLevel === 0 && this.name !== year.calendar().name) {\n throw (_exports.local.differentCalendars || _exports.regionalOptions[''].differentCalendars).\n replace(/\\{0\\}/, this.local.name).replace(/\\{1\\}/, year.calendar().local.name);\n }\n return year;\n }\n try {\n this._validateLevel++;\n if (this._validateLevel === 1 && !this.isValid(year, month, day)) {\n throw error.replace(/\\{0\\}/, this.local.name);\n }\n var date = this.newDate(year, month, day);\n this._validateLevel--;\n return date;\n }\n catch (e) {\n this._validateLevel--;\n throw e;\n }\n }\n});\n\n/** Implementation of the Proleptic Gregorian Calendar.\n See http://en.wikipedia.org/wiki/Gregorian_calendar\n and http://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar.\n @class GregorianCalendar\n @augments BaseCalendar\n @param [language=''] {string} The language code (default English) for localisation. */\nfunction GregorianCalendar(language) {\n this.local = this.regionalOptions[language] || this.regionalOptions[''];\n}\n\nGregorianCalendar.prototype = new BaseCalendar;\n\nassign(GregorianCalendar.prototype, {\n /** The calendar name.\n @memberof GregorianCalendar */\n name: 'Gregorian',\n /** Julian date of start of Gregorian epoch: 1 January 0001 CE.\n @memberof GregorianCalendar */\n jdEpoch: 1721425.5,\n /** Days per month in a common year.\n @memberof GregorianCalendar */\n daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n /** true if has a year zero, false if not.\n @memberof GregorianCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof GregorianCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof GregorianCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof GregorianCalendar */\n minDay: 1,\n\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof GregorianCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: { // Localisations\n '': {\n name: 'Gregorian',\n epochs: ['BCE', 'CE'],\n monthNames: ['January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n digits: null,\n dateFormat: 'mm/dd/yyyy',\n firstDay: 0,\n isRTL: false\n }\n },\n \n /** Determine whether this date is in a leap year.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[''].invalidYear);\n var year = date.year() + (date.year() < 0 ? 1 : 0); // No year zero\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n },\n\n /** Determine the week of the year for a date - ISO 8601.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year, starting from 1.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n // Find Thursday of this week starting on Monday\n var checkDate = this.newDate(year, month, day);\n checkDate.add(4 - (checkDate.dayOfWeek() || 7), 'd');\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n\n /** Retrieve the number of days in a month.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay,\n _exports.local.invalidMonth || _exports.regionalOptions[''].invalidMonth);\n return this.daysPerMonth[date.month() - 1] +\n (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0);\n },\n\n /** Determine whether this date is a week day.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n year = date.year();\n month = date.month();\n day = date.day();\n if (year < 0) { year++; } // No year zero\n // Jean Meeus algorithm, \"Astronomical Algorithms\", 1991\n if (month < 3) {\n month += 12;\n year--;\n }\n var a = Math.floor(year / 100);\n var b = 2 - a + Math.floor(a / 4);\n return Math.floor(365.25 * (year + 4716)) +\n Math.floor(30.6001 * (month + 1)) + day + b - 1524.5;\n },\n\n /** Create a new date from a Julian date.\n @memberof GregorianCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n // Jean Meeus algorithm, \"Astronomical Algorithms\", 1991\n var z = Math.floor(jd + 0.5);\n var a = Math.floor((z - 1867216.25) / 36524.25);\n a = z + 1 + a - Math.floor(a / 4);\n var b = a + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var e = Math.floor((b - d) / 30.6001);\n var day = b - d - Math.floor(e * 30.6001);\n var month = e - (e > 13.5 ? 13 : 1);\n var year = c - (month > 2.5 ? 4716 : 4715);\n if (year <= 0) { year--; } // No year zero\n return this.newDate(year, month, day);\n },\n\n /** Convert this date to a standard (Gregorian) JavaScript Date.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {Date} The equivalent JavaScript date.\n @throws Error if an invalid date or a different calendar used. */\n toJSDate: function(year, month, day) {\n var date = this._validate(year, month, day,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n var jsd = new Date(date.year(), date.month() - 1, date.day());\n jsd.setHours(0);\n jsd.setMinutes(0);\n jsd.setSeconds(0);\n jsd.setMilliseconds(0);\n // Hours may be non-zero on daylight saving cut-over:\n // > 12 when midnight changeover, but then cannot generate\n // midnight datetime, so jump to 1AM, otherwise reset.\n jsd.setHours(jsd.getHours() > 12 ? jsd.getHours() + 2 : 0);\n return jsd;\n },\n\n /** Create a new date from a standard (Gregorian) JavaScript Date.\n @memberof GregorianCalendar\n @param jsd {Date} The JavaScript date to convert.\n @return {CDate} The equivalent date. */\n fromJSDate: function(jsd) {\n return this.newDate(jsd.getFullYear(), jsd.getMonth() + 1, jsd.getDate());\n }\n});\n\n// Singleton manager\nvar _exports = module.exports = new Calendars();\n\n// Date template\n_exports.cdate = CDate;\n\n// Base calendar template\n_exports.baseCalendar = BaseCalendar;\n\n// Gregorian calendar implementation\n_exports.calendars.gregorian = GregorianCalendar;\n\n","'use strict'\n\nvar warp = require('ndarray-warp')\nvar invert = require('gl-matrix-invert')\n\nmodule.exports = applyHomography\n\nfunction applyHomography(dest, src, Xi) {\n var n = src.dimension\n var X = invert([], Xi)\n warp(dest, src, function(out_c, inp_c) {\n for(var i=0; i fs * threshold) {\r\n\t\t\tvar emWidth = (kerningWidth - width) / fs\r\n\t\t\ttable[pair] = emWidth * 1000\r\n\t\t}\r\n\t}\r\n\r\n\treturn table\r\n}\r\n\r\n\r\nfunction createPairs (range) {\r\n\tvar pairs = []\r\n\r\n for (var i = range[0]; i <= range[1]; i++) {\r\n\t\tvar leftChar = String.fromCharCode(i)\r\n\t\tfor (var j = range[0]; j < range[1]; j++) {\r\n\t\t\tvar rightChar = String.fromCharCode(j)\r\n\t\t\tvar pair = leftChar + rightChar\r\n\r\n\t\t\tpairs.push(pair)\r\n\t\t}\r\n\t}\r\n\r\n\treturn pairs\r\n}\r\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar hover = require('../scattergl/hover');\nvar makeHoverPointText = require('../scatterpolar/hover').makeHoverPointText;\n\nfunction hoverPoints(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var stash = cd[0].t;\n var rArray = stash.r;\n var thetaArray = stash.theta;\n\n var scatterPointData = hover.hoverPoints(pointData, xval, yval, hovermode);\n if(!scatterPointData || scatterPointData[0].index === false) return;\n\n var newPointData = scatterPointData[0];\n\n if(newPointData.index === undefined) {\n return scatterPointData;\n }\n\n var subplot = pointData.subplot;\n var cdi = newPointData.cd[newPointData.index];\n var trace = newPointData.trace;\n\n // augment pointData with r/theta param\n cdi.r = rArray[newPointData.index];\n cdi.theta = thetaArray[newPointData.index];\n\n if(!subplot.isPtInside(cdi)) return;\n\n newPointData.xLabelVal = undefined;\n newPointData.yLabelVal = undefined;\n makeHoverPointText(cdi, trace, subplot, newPointData);\n\n return scatterPointData;\n}\n\nmodule.exports = {\n hoverPoints: hoverPoints\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Color = require('../../components/color');\nvar colorScaleAttrs = require('../../components/colorscale/attributes');\nvar hovertemplateAttrs = require('../../plots/template_attributes').hovertemplateAttrs;\nvar baseAttrs = require('../../plots/attributes');\n\nvar extendFlat = require('../../lib/extend').extendFlat;\nvar overrideAll = require('../../plot_api/edit_types').overrideAll;\n\nfunction makeContourProjAttr(axLetter) {\n return {\n valType: 'boolean',\n \n dflt: false,\n \n };\n}\n\nfunction makeContourAttr(axLetter) {\n return {\n show: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n start: {\n valType: 'number',\n dflt: null,\n \n editType: 'plot',\n // impliedEdits: {'^autocontour': false},\n \n },\n end: {\n valType: 'number',\n dflt: null,\n \n editType: 'plot',\n // impliedEdits: {'^autocontour': false},\n \n },\n size: {\n valType: 'number',\n dflt: null,\n min: 0,\n \n editType: 'plot',\n // impliedEdits: {'^autocontour': false},\n \n },\n project: {\n x: makeContourProjAttr('x'),\n y: makeContourProjAttr('y'),\n z: makeContourProjAttr('z')\n },\n color: {\n valType: 'color',\n \n dflt: Color.defaultLine,\n \n },\n usecolormap: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n width: {\n valType: 'number',\n \n min: 1,\n max: 16,\n dflt: 2,\n \n },\n highlight: {\n valType: 'boolean',\n \n dflt: true,\n \n },\n highlightcolor: {\n valType: 'color',\n \n dflt: Color.defaultLine,\n \n },\n highlightwidth: {\n valType: 'number',\n \n min: 1,\n max: 16,\n dflt: 2,\n \n }\n };\n}\n\nvar attrs = module.exports = overrideAll(extendFlat({\n z: {\n valType: 'data_array',\n \n },\n x: {\n valType: 'data_array',\n \n },\n y: {\n valType: 'data_array',\n \n },\n\n text: {\n valType: 'string',\n \n dflt: '',\n arrayOk: true,\n \n },\n hovertext: {\n valType: 'string',\n \n dflt: '',\n arrayOk: true,\n \n },\n hovertemplate: hovertemplateAttrs(),\n\n connectgaps: {\n valType: 'boolean',\n dflt: false,\n \n editType: 'calc',\n \n },\n\n surfacecolor: {\n valType: 'data_array',\n \n },\n},\n\ncolorScaleAttrs('', {\n colorAttr: 'z or surfacecolor',\n showScaleDflt: true,\n autoColorDflt: false,\n editTypeOverride: 'calc'\n}), {\n contours: {\n x: makeContourAttr('x'),\n y: makeContourAttr('y'),\n z: makeContourAttr('z')\n },\n hidesurface: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n\n lightposition: {\n x: {\n valType: 'number',\n \n min: -1e5,\n max: 1e5,\n dflt: 10,\n \n },\n y: {\n valType: 'number',\n \n min: -1e5,\n max: 1e5,\n dflt: 1e4,\n \n },\n z: {\n valType: 'number',\n \n min: -1e5,\n max: 1e5,\n dflt: 0,\n \n }\n },\n\n lighting: {\n ambient: {\n valType: 'number',\n \n min: 0.00,\n max: 1.0,\n dflt: 0.8,\n \n },\n diffuse: {\n valType: 'number',\n \n min: 0.00,\n max: 1.00,\n dflt: 0.8,\n \n },\n specular: {\n valType: 'number',\n \n min: 0.00,\n max: 2.00,\n dflt: 0.05,\n \n },\n roughness: {\n valType: 'number',\n \n min: 0.00,\n max: 1.00,\n dflt: 0.5,\n \n },\n fresnel: {\n valType: 'number',\n \n min: 0.00,\n max: 5.00,\n dflt: 0.2,\n \n }\n },\n\n opacity: {\n valType: 'number',\n \n min: 0,\n max: 1,\n dflt: 1,\n \n },\n\n _deprecated: {\n zauto: extendFlat({}, colorScaleAttrs.zauto, {\n \n }),\n zmin: extendFlat({}, colorScaleAttrs.zmin, {\n \n }),\n zmax: extendFlat({}, colorScaleAttrs.zmax, {\n \n })\n },\n\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo),\n showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false}),\n}), 'calc', 'nested');\n\nattrs.x.editType = attrs.y.editType = attrs.z.editType = 'calc+clearAxisTypes';\nattrs.transforms = undefined;\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Plotly = require('./core');\n\n// traces\nPlotly.register([\n require('./bar'),\n require('./box'),\n require('./heatmap'),\n require('./histogram'),\n require('./histogram2d'),\n require('./histogram2dcontour'),\n require('./contour'),\n require('./scatterternary'),\n require('./violin'),\n require('./funnel'),\n require('./waterfall'),\n require('./image'),\n\n require('./pie'),\n require('./sunburst'),\n require('./treemap'),\n require('./funnelarea'),\n\n require('./scatter3d'),\n require('./surface'),\n require('./isosurface'),\n require('./volume'),\n require('./mesh3d'),\n require('./cone'),\n require('./streamtube'),\n\n require('./scattergeo'),\n require('./choropleth'),\n\n require('./scattergl'),\n require('./splom'),\n\n require('./pointcloud'),\n require('./heatmapgl'),\n\n require('./parcoords'),\n\n require('./parcats'),\n\n require('./scattermapbox'),\n require('./choroplethmapbox'),\n require('./densitymapbox'),\n\n require('./sankey'),\n require('./indicator'),\n\n require('./table'),\n\n require('./carpet'),\n require('./scattercarpet'),\n require('./contourcarpet'),\n\n require('./ohlc'),\n require('./candlestick'),\n\n require('./scatterpolar'),\n require('./scatterpolargl'),\n require('./barpolar')\n]);\n\n// transforms\n//\n// Please note that all *transform* methods are executed before\n// all *calcTransform* methods - which could possibly lead to\n// unexpected results when applying multiple transforms of different types\n// to a given trace.\n//\n// For more info, see:\n// https://github.com/plotly/plotly.js/pull/978#pullrequestreview-2403353\n//\nPlotly.register([\n require('./aggregate'),\n require('./filter'),\n require('./groupby'),\n require('./sort')\n]);\n\n// components\nPlotly.register([\n require('./calendars')\n]);\n\nmodule.exports = Plotly;\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Axes = require('../../plots/cartesian/axes');\n\nmodule.exports = function formatLabels(cdi, trace, fullLayout) {\n var labels = {};\n\n var subplot = fullLayout[trace.subplot]._subplot;\n var ax = subplot.mockAxis;\n\n var lonlat = cdi.lonlat;\n labels.lonLabel = Axes.tickText(ax, ax.c2l(lonlat[0]), true).text;\n labels.latLabel = Axes.tickText(ax, ax.c2l(lonlat[1]), true).text;\n\n return labels;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\n\n// remove opacity for any trace that has a fill or is filled to\nmodule.exports = function crossTraceDefaults(fullData) {\n for(var i = 0; i < fullData.length; i++) {\n var tracei = fullData[i];\n if(tracei.type !== 'scatter') continue;\n\n var filli = tracei.fill;\n if(filli === 'none' || filli === 'toself') continue;\n\n tracei.opacity = undefined;\n\n if(filli === 'tonexty' || filli === 'tonextx') {\n for(var j = i - 1; j >= 0; j--) {\n var tracej = fullData[j];\n\n if((tracej.type === 'scatter') &&\n (tracej.xaxis === tracei.xaxis) &&\n (tracej.yaxis === tracei.yaxis)) {\n tracej.opacity = undefined;\n break;\n }\n }\n }\n }\n};\n","module.exports = clone;\n\n/**\n * Creates a new vec3 initialized with values from an existing vector\n *\n * @param {vec3} a vector to clone\n * @returns {vec3} a new 3D vector\n */\nfunction clone(a) {\n var out = new Float32Array(3)\n out[0] = a[0]\n out[1] = a[1]\n out[2] = a[2]\n return out\n}","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\n/* global MathJax:false */\n\nvar d3 = require('d3');\n\nvar Lib = require('../lib');\nvar xmlnsNamespaces = require('../constants/xmlns_namespaces');\nvar LINE_SPACING = require('../constants/alignment').LINE_SPACING;\n\n// text converter\n\nfunction getSize(_selection, _dimension) {\n return _selection.node().getBoundingClientRect()[_dimension];\n}\n\nvar FIND_TEX = /([^$]*)([$]+[^$]*[$]+)([^$]*)/;\n\nexports.convertToTspans = function(_context, gd, _callback) {\n var str = _context.text();\n\n // Until we get tex integrated more fully (so it can be used along with non-tex)\n // allow some elements to prohibit it by attaching 'data-notex' to the original\n var tex = (!_context.attr('data-notex')) &&\n (typeof MathJax !== 'undefined') &&\n str.match(FIND_TEX);\n\n var parent = d3.select(_context.node().parentNode);\n if(parent.empty()) return;\n var svgClass = (_context.attr('class')) ? _context.attr('class').split(' ')[0] : 'text';\n svgClass += '-math';\n parent.selectAll('svg.' + svgClass).remove();\n parent.selectAll('g.' + svgClass + '-group').remove();\n _context.style('display', null)\n .attr({\n // some callers use data-unformatted *from the element* in 'cancel'\n // so we need it here even if we're going to turn it into math\n // these two (plus style and text-anchor attributes) form the key we're\n // going to use for Drawing.bBox\n 'data-unformatted': str,\n 'data-math': 'N'\n });\n\n function showText() {\n if(!parent.empty()) {\n svgClass = _context.attr('class') + '-math';\n parent.select('svg.' + svgClass).remove();\n }\n _context.text('')\n .style('white-space', 'pre');\n\n var hasLink = buildSVGText(_context.node(), str);\n\n if(hasLink) {\n // at least in Chrome, pointer-events does not seem\n // to be honored in children of elements\n // so if we have an anchor, we have to make the\n // whole element respond\n _context.style('pointer-events', 'all');\n }\n\n exports.positionText(_context);\n\n if(_callback) _callback.call(_context);\n }\n\n if(tex) {\n ((gd && gd._promises) || []).push(new Promise(function(resolve) {\n _context.style('display', 'none');\n var fontSize = parseInt(_context.node().style.fontSize, 10);\n var config = {fontSize: fontSize};\n\n texToSVG(tex[2], config, function(_svgEl, _glyphDefs, _svgBBox) {\n parent.selectAll('svg.' + svgClass).remove();\n parent.selectAll('g.' + svgClass + '-group').remove();\n\n var newSvg = _svgEl && _svgEl.select('svg');\n if(!newSvg || !newSvg.node()) {\n showText();\n resolve();\n return;\n }\n\n var mathjaxGroup = parent.append('g')\n .classed(svgClass + '-group', true)\n .attr({\n 'pointer-events': 'none',\n 'data-unformatted': str,\n 'data-math': 'Y'\n });\n\n mathjaxGroup.node().appendChild(newSvg.node());\n\n // stitch the glyph defs\n if(_glyphDefs && _glyphDefs.node()) {\n newSvg.node().insertBefore(_glyphDefs.node().cloneNode(true),\n newSvg.node().firstChild);\n }\n\n newSvg.attr({\n 'class': svgClass,\n height: _svgBBox.height,\n preserveAspectRatio: 'xMinYMin meet'\n })\n .style({overflow: 'visible', 'pointer-events': 'none'});\n\n var fill = _context.node().style.fill || 'black';\n var g = newSvg.select('g');\n g.attr({fill: fill, stroke: fill});\n\n var newSvgW = getSize(g, 'width');\n var newSvgH = getSize(g, 'height');\n var newX = +_context.attr('x') - newSvgW *\n {start: 0, middle: 0.5, end: 1}[_context.attr('text-anchor') || 'start'];\n // font baseline is about 1/4 fontSize below centerline\n var textHeight = fontSize || getSize(_context, 'height');\n var dy = -textHeight / 4;\n\n if(svgClass[0] === 'y') {\n mathjaxGroup.attr({\n transform: 'rotate(' + [-90, +_context.attr('x'), +_context.attr('y')] +\n ') translate(' + [-newSvgW / 2, dy - newSvgH / 2] + ')'\n });\n newSvg.attr({x: +_context.attr('x'), y: +_context.attr('y')});\n } else if(svgClass[0] === 'l') {\n newSvg.attr({x: _context.attr('x'), y: dy - (newSvgH / 2)});\n } else if(svgClass[0] === 'a' && svgClass.indexOf('atitle') !== 0) {\n newSvg.attr({x: 0, y: dy});\n } else {\n newSvg.attr({x: newX, y: (+_context.attr('y') + dy - newSvgH / 2)});\n }\n\n if(_callback) _callback.call(_context, mathjaxGroup);\n resolve(mathjaxGroup);\n });\n }));\n } else showText();\n\n return _context;\n};\n\n\n// MathJax\n\nvar LT_MATCH = /(<|<|<)/g;\nvar GT_MATCH = /(>|>|>)/g;\n\nfunction cleanEscapesForTex(s) {\n return s.replace(LT_MATCH, '\\\\lt ')\n .replace(GT_MATCH, '\\\\gt ');\n}\n\nfunction texToSVG(_texString, _config, _callback) {\n var originalRenderer,\n originalConfig,\n originalProcessSectionDelay,\n tmpDiv;\n\n MathJax.Hub.Queue(\n function() {\n originalConfig = Lib.extendDeepAll({}, MathJax.Hub.config);\n\n originalProcessSectionDelay = MathJax.Hub.processSectionDelay;\n if(MathJax.Hub.processSectionDelay !== undefined) {\n // MathJax 2.5+\n MathJax.Hub.processSectionDelay = 0;\n }\n\n return MathJax.Hub.Config({\n messageStyle: 'none',\n tex2jax: {\n inlineMath: [['$', '$'], ['\\\\(', '\\\\)']]\n },\n displayAlign: 'left',\n });\n },\n function() {\n // Get original renderer\n originalRenderer = MathJax.Hub.config.menuSettings.renderer;\n if(originalRenderer !== 'SVG') {\n return MathJax.Hub.setRenderer('SVG');\n }\n },\n function() {\n var randomID = 'math-output-' + Lib.randstr({}, 64);\n tmpDiv = d3.select('body').append('div')\n .attr({id: randomID})\n .style({visibility: 'hidden', position: 'absolute'})\n .style({'font-size': _config.fontSize + 'px'})\n .text(cleanEscapesForTex(_texString));\n\n return MathJax.Hub.Typeset(tmpDiv.node());\n },\n function() {\n var glyphDefs = d3.select('body').select('#MathJax_SVG_glyphs');\n\n if(tmpDiv.select('.MathJax_SVG').empty() || !tmpDiv.select('svg').node()) {\n Lib.log('There was an error in the tex syntax.', _texString);\n _callback();\n } else {\n var svgBBox = tmpDiv.select('svg').node().getBoundingClientRect();\n _callback(tmpDiv.select('.MathJax_SVG'), glyphDefs, svgBBox);\n }\n\n tmpDiv.remove();\n\n if(originalRenderer !== 'SVG') {\n return MathJax.Hub.setRenderer(originalRenderer);\n }\n },\n function() {\n if(originalProcessSectionDelay !== undefined) {\n MathJax.Hub.processSectionDelay = originalProcessSectionDelay;\n }\n return MathJax.Hub.Config(originalConfig);\n });\n}\n\nvar TAG_STYLES = {\n // would like to use baseline-shift for sub/sup but FF doesn't support it\n // so we need to use dy along with the uber hacky shift-back-to\n // baseline below\n sup: 'font-size:70%',\n sub: 'font-size:70%',\n b: 'font-weight:bold',\n i: 'font-style:italic',\n a: 'cursor:pointer',\n span: '',\n em: 'font-style:italic;font-weight:bold'\n};\n\n// baseline shifts for sub and sup\nvar SHIFT_DY = {\n sub: '0.3em',\n sup: '-0.6em'\n};\n// reset baseline by adding a tspan (empty except for a zero-width space)\n// with dy of -70% * SHIFT_DY (because font-size=70%)\nvar RESET_DY = {\n sub: '-0.21em',\n sup: '0.42em'\n};\nvar ZERO_WIDTH_SPACE = '\\u200b';\n\n/*\n * Whitelist of protocols in user-supplied urls. Mostly we want to avoid javascript\n * and related attack vectors. The empty items are there for IE, that in various\n * versions treats relative paths as having different flavors of no protocol, while\n * other browsers have these explicitly inherit the protocol of the page they're in.\n */\nvar PROTOCOLS = ['http:', 'https:', 'mailto:', '', undefined, ':'];\n\nvar NEWLINES = exports.NEWLINES = /(\\r\\n?|\\n)/g;\n\nvar SPLIT_TAGS = /(<[^<>]*>)/;\n\nvar ONE_TAG = /<(\\/?)([^ >]*)(\\s+(.*))?>/i;\n\nvar BR_TAG = //i;\nexports.BR_TAG_ALL = //gi;\n\n/*\n * style and href: pull them out of either single or double quotes. Also\n * - target: (_blank|_self|_parent|_top|framename)\n * note that you can't use target to get a popup but if you use popup,\n * a `framename` will be passed along as the name of the popup window.\n * per the spec, cannot contain whitespace.\n * for backward compatibility we default to '_blank'\n * - popup: a custom one for us to enable popup (new window) links. String\n * for window.open -> strWindowFeatures, like 'menubar=yes,width=500,height=550'\n * note that at least in Chrome, you need to give at least one property\n * in this string or the page will open in a new tab anyway. We follow this\n * convention and will not make a popup if this string is empty.\n * per the spec, cannot contain whitespace.\n *\n * Because we hack in other attributes with style (sub & sup), drop any trailing\n * semicolon in user-supplied styles so we can consistently append the tag-dependent style\n *\n * These are for tag attributes; Chrome anyway will convert entities in\n * attribute values, but not in attribute names\n * you can test this by for example:\n * > p = document.createElement('p')\n * > p.innerHTML = 'Hi'\n * > p.innerHTML\n * <- 'Hi'\n */\nvar STYLEMATCH = /(^|[\\s\"'])style\\s*=\\s*(\"([^\"]*);?\"|'([^']*);?')/i;\nvar HREFMATCH = /(^|[\\s\"'])href\\s*=\\s*(\"([^\"]*)\"|'([^']*)')/i;\nvar TARGETMATCH = /(^|[\\s\"'])target\\s*=\\s*(\"([^\"\\s]*)\"|'([^'\\s]*)')/i;\nvar POPUPMATCH = /(^|[\\s\"'])popup\\s*=\\s*(\"([\\w=,]*)\"|'([\\w=,]*)')/i;\n\n// dedicated matcher for these quoted regexes, that can return their results\n// in two different places\nfunction getQuotedMatch(_str, re) {\n if(!_str) return null;\n var match = _str.match(re);\n var result = match && (match[3] || match[4]);\n return result && convertEntities(result);\n}\n\nvar COLORMATCH = /(^|;)\\s*color:/;\n\n/**\n * Strip string of tags\n *\n * @param {string} _str : input string\n * @param {object} opts :\n * - len {number} max length of output string\n * - allowedTags {array} list of pseudo-html tags to NOT strip\n * @return {string}\n */\nexports.plainText = function(_str, opts) {\n opts = opts || {};\n\n var len = (opts.len !== undefined && opts.len !== -1) ? opts.len : Infinity;\n var allowedTags = opts.allowedTags !== undefined ? opts.allowedTags : ['br'];\n\n var ellipsis = '...';\n var eLen = ellipsis.length;\n\n var oldParts = _str.split(SPLIT_TAGS);\n var newParts = [];\n var prevTag = '';\n var l = 0;\n\n for(var i = 0; i < oldParts.length; i++) {\n var p = oldParts[i];\n var match = p.match(ONE_TAG);\n var tagType = match && match[2].toLowerCase();\n\n if(tagType) {\n // N.B. tags do not count towards string length\n if(allowedTags.indexOf(tagType) !== -1) {\n newParts.push(p);\n prevTag = tagType;\n }\n } else {\n var pLen = p.length;\n\n if((l + pLen) < len) {\n newParts.push(p);\n l += pLen;\n } else if(l < len) {\n var pLen2 = len - l;\n\n if(prevTag && (prevTag !== 'br' || pLen2 <= eLen || pLen <= eLen)) {\n newParts.pop();\n }\n\n if(len > eLen) {\n newParts.push(p.substr(0, pLen2 - eLen) + ellipsis);\n } else {\n newParts.push(p.substr(0, pLen2));\n }\n break;\n }\n\n prevTag = '';\n }\n }\n\n return newParts.join('');\n};\n\n/*\n * N.B. HTML entities are listed without the leading '&' and trailing ';'\n * https://www.freeformatter.com/html-entities.html\n *\n * FWIW if we wanted to support the full set, it has 2261 entries:\n * https://www.w3.org/TR/html5/entities.json\n * though I notice that some of these are duplicates and/or are missing \";\"\n * eg: \"&\", \"&\", \"&\", and \"&\" all map to \"&\"\n * We no longer need to include numeric entities here, these are now handled\n * by String.fromCodePoint/fromCharCode\n *\n * Anyway the only ones that are really important to allow are the HTML special\n * chars <, >, and &, because these ones can trigger special processing if not\n * replaced by the corresponding entity.\n */\nvar entityToUnicode = {\n mu: 'μ',\n amp: '&',\n lt: '<',\n gt: '>',\n nbsp: ' ',\n times: '×',\n plusmn: '±',\n deg: '°'\n};\n\n// NOTE: in general entities can contain uppercase too (so [a-zA-Z]) but all the\n// ones we support use only lowercase. If we ever change that, update the regex.\nvar ENTITY_MATCH = /&(#\\d+|#x[\\da-fA-F]+|[a-z]+);/g;\nfunction convertEntities(_str) {\n return _str.replace(ENTITY_MATCH, function(fullMatch, innerMatch) {\n var outChar;\n if(innerMatch.charAt(0) === '#') {\n // cannot use String.fromCodePoint in IE\n outChar = fromCodePoint(\n innerMatch.charAt(1) === 'x' ?\n parseInt(innerMatch.substr(2), 16) :\n parseInt(innerMatch.substr(1), 10)\n );\n } else outChar = entityToUnicode[innerMatch];\n\n // as in regular HTML, if we didn't decode the entity just\n // leave the raw text in place.\n return outChar || fullMatch;\n });\n}\nexports.convertEntities = convertEntities;\n\nfunction fromCodePoint(code) {\n // Don't allow overflow. In Chrome this turns into � but I feel like it's\n // more useful to just not convert it at all.\n if(code > 0x10FFFF) return;\n var stringFromCodePoint = String.fromCodePoint;\n if(stringFromCodePoint) return stringFromCodePoint(code);\n\n // IE doesn't have String.fromCodePoint\n // see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCodePoint\n var stringFromCharCode = String.fromCharCode;\n if(code <= 0xFFFF) return stringFromCharCode(code);\n return stringFromCharCode(\n (code >> 10) + 0xD7C0,\n (code % 0x400) + 0xDC00\n );\n}\n\n/*\n * buildSVGText: convert our pseudo-html into SVG tspan elements, and attach these\n * to containerNode\n *\n * @param {svg text element} containerNode: the node to insert this text into\n * @param {string} str: the pseudo-html string to convert to svg\n *\n * @returns {bool}: does the result contain any links? We need to handle the text element\n * somewhat differently if it does, so just keep track of this when it happens.\n */\nfunction buildSVGText(containerNode, str) {\n /*\n * Normalize behavior between IE and others wrt newlines and whitespace:pre\n * this combination makes IE barf https://github.com/plotly/plotly.js/issues/746\n * Chrome and FF display \\n, \\r, or \\r\\n as a space in this mode.\n * I feel like at some point we turned these into
but currently we don't so\n * I'm just going to cement what we do now in Chrome and FF\n */\n str = str.replace(NEWLINES, ' ');\n\n var hasLink = false;\n\n // as we're building the text, keep track of what elements we're nested inside\n // nodeStack will be an array of {node, type, style, href, target, popup}\n // where only type: 'a' gets the last 3 and node is only added when it's created\n var nodeStack = [];\n var currentNode;\n var currentLine = -1;\n\n function newLine() {\n currentLine++;\n\n var lineNode = document.createElementNS(xmlnsNamespaces.svg, 'tspan');\n d3.select(lineNode).attr({\n class: 'line',\n dy: (currentLine * LINE_SPACING) + 'em'\n });\n containerNode.appendChild(lineNode);\n\n currentNode = lineNode;\n\n var oldNodeStack = nodeStack;\n nodeStack = [{node: lineNode}];\n\n if(oldNodeStack.length > 1) {\n for(var i = 1; i < oldNodeStack.length; i++) {\n enterNode(oldNodeStack[i]);\n }\n }\n }\n\n function enterNode(nodeSpec) {\n var type = nodeSpec.type;\n var nodeAttrs = {};\n var nodeType;\n\n if(type === 'a') {\n nodeType = 'a';\n var target = nodeSpec.target;\n var href = nodeSpec.href;\n var popup = nodeSpec.popup;\n if(href) {\n nodeAttrs = {\n 'xlink:xlink:show': (target === '_blank' || target.charAt(0) !== '_') ? 'new' : 'replace',\n target: target,\n 'xlink:xlink:href': href\n };\n if(popup) {\n // security: href and target are not inserted as code but\n // as attributes. popup is, but limited to /[A-Za-z0-9_=,]/\n nodeAttrs.onclick = 'window.open(this.href.baseVal,this.target.baseVal,\"' +\n popup + '\");return false;';\n }\n }\n } else nodeType = 'tspan';\n\n if(nodeSpec.style) nodeAttrs.style = nodeSpec.style;\n\n var newNode = document.createElementNS(xmlnsNamespaces.svg, nodeType);\n\n if(type === 'sup' || type === 'sub') {\n addTextNode(currentNode, ZERO_WIDTH_SPACE);\n currentNode.appendChild(newNode);\n\n var resetter = document.createElementNS(xmlnsNamespaces.svg, 'tspan');\n addTextNode(resetter, ZERO_WIDTH_SPACE);\n d3.select(resetter).attr('dy', RESET_DY[type]);\n nodeAttrs.dy = SHIFT_DY[type];\n\n currentNode.appendChild(newNode);\n currentNode.appendChild(resetter);\n } else {\n currentNode.appendChild(newNode);\n }\n\n d3.select(newNode).attr(nodeAttrs);\n\n currentNode = nodeSpec.node = newNode;\n nodeStack.push(nodeSpec);\n }\n\n function addTextNode(node, text) {\n node.appendChild(document.createTextNode(text));\n }\n\n function exitNode(type) {\n // A bare closing tag can't close the root node. If we encounter this it\n // means there's an extra closing tag that can just be ignored:\n if(nodeStack.length === 1) {\n Lib.log('Ignoring unexpected end tag .', str);\n return;\n }\n\n var innerNode = nodeStack.pop();\n\n if(type !== innerNode.type) {\n Lib.log('Start tag <' + innerNode.type + '> doesnt match end tag <' +\n type + '>. Pretending it did match.', str);\n }\n currentNode = nodeStack[nodeStack.length - 1].node;\n }\n\n var hasLines = BR_TAG.test(str);\n\n if(hasLines) newLine();\n else {\n currentNode = containerNode;\n nodeStack = [{node: containerNode}];\n }\n\n var parts = str.split(SPLIT_TAGS);\n for(var i = 0; i < parts.length; i++) {\n var parti = parts[i];\n var match = parti.match(ONE_TAG);\n var tagType = match && match[2].toLowerCase();\n var tagStyle = TAG_STYLES[tagType];\n\n if(tagType === 'br') {\n newLine();\n } else if(tagStyle === undefined) {\n addTextNode(currentNode, convertEntities(parti));\n } else {\n // tag - open or close\n if(match[1]) {\n exitNode(tagType);\n } else {\n var extra = match[4];\n\n var nodeSpec = {type: tagType};\n\n // now add style, from both the tag name and any extra css\n // Most of the svg css that users will care about is just like html,\n // but font color is different (uses fill). Let our users ignore this.\n var css = getQuotedMatch(extra, STYLEMATCH);\n if(css) {\n css = css.replace(COLORMATCH, '$1 fill:');\n if(tagStyle) css += ';' + tagStyle;\n } else if(tagStyle) css = tagStyle;\n\n if(css) nodeSpec.style = css;\n\n if(tagType === 'a') {\n hasLink = true;\n\n var href = getQuotedMatch(extra, HREFMATCH);\n\n if(href) {\n // check safe protocols\n var dummyAnchor = document.createElement('a');\n dummyAnchor.href = href;\n if(PROTOCOLS.indexOf(dummyAnchor.protocol) !== -1) {\n // Decode href to allow both already encoded and not encoded\n // URIs. Without decoding prior encoding, an already encoded\n // URI would be encoded twice producing a semantically different URI.\n nodeSpec.href = encodeURI(decodeURI(href));\n nodeSpec.target = getQuotedMatch(extra, TARGETMATCH) || '_blank';\n nodeSpec.popup = getQuotedMatch(extra, POPUPMATCH);\n }\n }\n }\n\n enterNode(nodeSpec);\n }\n }\n }\n\n return hasLink;\n}\n\nexports.lineCount = function lineCount(s) {\n return s.selectAll('tspan.line').size() || 1;\n};\n\nexports.positionText = function positionText(s, x, y) {\n return s.each(function() {\n var text = d3.select(this);\n\n function setOrGet(attr, val) {\n if(val === undefined) {\n val = text.attr(attr);\n if(val === null) {\n text.attr(attr, 0);\n val = 0;\n }\n } else text.attr(attr, val);\n return val;\n }\n\n var thisX = setOrGet('x', x);\n var thisY = setOrGet('y', y);\n\n if(this.nodeName === 'text') {\n text.selectAll('tspan.line').attr({x: thisX, y: thisY});\n }\n });\n};\n\nfunction alignHTMLWith(_base, container, options) {\n var alignH = options.horizontalAlign;\n var alignV = options.verticalAlign || 'top';\n var bRect = _base.node().getBoundingClientRect();\n var cRect = container.node().getBoundingClientRect();\n var thisRect;\n var getTop;\n var getLeft;\n\n if(alignV === 'bottom') {\n getTop = function() { return bRect.bottom - thisRect.height; };\n } else if(alignV === 'middle') {\n getTop = function() { return bRect.top + (bRect.height - thisRect.height) / 2; };\n } else { // default: top\n getTop = function() { return bRect.top; };\n }\n\n if(alignH === 'right') {\n getLeft = function() { return bRect.right - thisRect.width; };\n } else if(alignH === 'center') {\n getLeft = function() { return bRect.left + (bRect.width - thisRect.width) / 2; };\n } else { // default: left\n getLeft = function() { return bRect.left; };\n }\n\n return function() {\n thisRect = this.node().getBoundingClientRect();\n this.style({\n top: (getTop() - cRect.top) + 'px',\n left: (getLeft() - cRect.left) + 'px',\n 'z-index': 1000\n });\n return this;\n };\n}\n\n/*\n * Editable title\n * @param {d3.selection} context: the element being edited. Normally text,\n * but if it isn't, you should provide the styling options\n * @param {object} options:\n * @param {div} options.gd: graphDiv\n * @param {d3.selection} options.delegate: item to bind events to if not this\n * @param {boolean} options.immediate: start editing now (true) or on click (false, default)\n * @param {string} options.fill: font color if not as shown\n * @param {string} options.background: background color if not as shown\n * @param {string} options.text: initial text, if not as shown\n * @param {string} options.horizontalAlign: alignment of the edit box wrt. the bound element\n * @param {string} options.verticalAlign: alignment of the edit box wrt. the bound element\n */\n\nexports.makeEditable = function(context, options) {\n var gd = options.gd;\n var _delegate = options.delegate;\n var dispatch = d3.dispatch('edit', 'input', 'cancel');\n var handlerElement = _delegate || context;\n\n context.style({'pointer-events': _delegate ? 'none' : 'all'});\n\n if(context.size() !== 1) throw new Error('boo');\n\n function handleClick() {\n appendEditable();\n context.style({opacity: 0});\n // also hide any mathjax svg\n var svgClass = handlerElement.attr('class');\n var mathjaxClass;\n if(svgClass) mathjaxClass = '.' + svgClass.split(' ')[0] + '-math-group';\n else mathjaxClass = '[class*=-math-group]';\n if(mathjaxClass) {\n d3.select(context.node().parentNode).select(mathjaxClass).style({opacity: 0});\n }\n }\n\n function selectElementContents(_el) {\n var el = _el.node();\n var range = document.createRange();\n range.selectNodeContents(el);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n el.focus();\n }\n\n function appendEditable() {\n var plotDiv = d3.select(gd);\n var container = plotDiv.select('.svg-container');\n var div = container.append('div');\n var cStyle = context.node().style;\n var fontSize = parseFloat(cStyle.fontSize || 12);\n\n var initialText = options.text;\n if(initialText === undefined) initialText = context.attr('data-unformatted');\n\n div.classed('plugin-editable editable', true)\n .style({\n position: 'absolute',\n 'font-family': cStyle.fontFamily || 'Arial',\n 'font-size': fontSize,\n color: options.fill || cStyle.fill || 'black',\n opacity: 1,\n 'background-color': options.background || 'transparent',\n outline: '#ffffff33 1px solid',\n margin: [-fontSize / 8 + 1, 0, 0, -1].join('px ') + 'px',\n padding: '0',\n 'box-sizing': 'border-box'\n })\n .attr({contenteditable: true})\n .text(initialText)\n .call(alignHTMLWith(context, container, options))\n .on('blur', function() {\n gd._editing = false;\n context.text(this.textContent)\n .style({opacity: 1});\n var svgClass = d3.select(this).attr('class');\n var mathjaxClass;\n if(svgClass) mathjaxClass = '.' + svgClass.split(' ')[0] + '-math-group';\n else mathjaxClass = '[class*=-math-group]';\n if(mathjaxClass) {\n d3.select(context.node().parentNode).select(mathjaxClass).style({opacity: 0});\n }\n var text = this.textContent;\n d3.select(this).transition().duration(0).remove();\n d3.select(document).on('mouseup', null);\n dispatch.edit.call(context, text);\n })\n .on('focus', function() {\n var editDiv = this;\n gd._editing = true;\n d3.select(document).on('mouseup', function() {\n if(d3.event.target === editDiv) return false;\n if(document.activeElement === div.node()) div.node().blur();\n });\n })\n .on('keyup', function() {\n if(d3.event.which === 27) {\n gd._editing = false;\n context.style({opacity: 1});\n d3.select(this)\n .style({opacity: 0})\n .on('blur', function() { return false; })\n .transition().remove();\n dispatch.cancel.call(context, this.textContent);\n } else {\n dispatch.input.call(context, this.textContent);\n d3.select(this).call(alignHTMLWith(context, container, options));\n }\n })\n .on('keydown', function() {\n if(d3.event.which === 13) this.blur();\n })\n .call(selectElementContents);\n }\n\n if(options.immediate) handleClick();\n else handlerElement.on('click', handleClick);\n\n return d3.rebind(context, dispatch, 'on');\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\n\nmodule.exports = function sceneUpdate(gd, trace) {\n var fullLayout = gd._fullLayout;\n var uid = trace.uid;\n\n // must place ref to 'scene' in fullLayout, so that:\n // - it can be relinked properly on updates\n // - it can be destroyed properly when needed\n var splomScenes = fullLayout._splomScenes;\n if(!splomScenes) splomScenes = fullLayout._splomScenes = {};\n\n var reset = {dirty: true};\n\n var first = {\n matrix: false,\n selectBatch: [],\n unselectBatch: []\n };\n\n var scene = splomScenes[trace.uid];\n\n if(!scene) {\n scene = splomScenes[uid] = Lib.extendFlat({}, reset, first);\n\n scene.draw = function draw() {\n if(scene.matrix && scene.matrix.draw) {\n if(scene.selectBatch.length || scene.unselectBatch.length) {\n scene.matrix.draw(scene.unselectBatch, scene.selectBatch);\n } else {\n scene.matrix.draw();\n }\n }\n\n scene.dirty = false;\n };\n\n // remove scene resources\n scene.destroy = function destroy() {\n if(scene.matrix && scene.matrix.destroy) {\n scene.matrix.destroy();\n }\n scene.matrixOptions = null;\n scene.selectBatch = null;\n scene.unselectBatch = null;\n scene = null;\n };\n }\n\n // In case if we have scene from the last calc - reset data\n if(!scene.dirty) {\n Lib.extendFlat(scene, reset);\n }\n\n return scene;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n attributes: require('./attributes'),\n supplyDefaults: require('./defaults'),\n calc: require('./calc'),\n plot: require('./plot'),\n style: require('./style'),\n hoverPoints: require('./hover'),\n eventData: require('./event_data'),\n\n moduleType: 'trace',\n name: 'image',\n basePlotModule: require('../../plots/cartesian'),\n categories: ['cartesian', 'svg', '2dMap', 'noSortingByValue'],\n animatable: false,\n meta: {\n \n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Axes = require('../../plots/cartesian/axes');\nvar attributes = require('./attributes');\nvar fillText = require('../../lib').fillText;\n\nmodule.exports = function hoverPoints(pointData, xval, yval) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var geo = pointData.subplot;\n\n var pt, i, j, isInside;\n\n for(i = 0; i < cd.length; i++) {\n pt = cd[i];\n isInside = false;\n\n if(pt._polygons) {\n for(j = 0; j < pt._polygons.length; j++) {\n if(pt._polygons[j].contains([xval, yval])) {\n isInside = !isInside;\n }\n // for polygons that cross antimeridian as xval is in [-180, 180]\n if(pt._polygons[j].contains([xval + 360, yval])) {\n isInside = !isInside;\n }\n }\n\n if(isInside) break;\n }\n }\n\n if(!isInside || !pt) return;\n\n pointData.x0 = pointData.x1 = pointData.xa.c2p(pt.ct);\n pointData.y0 = pointData.y1 = pointData.ya.c2p(pt.ct);\n\n pointData.index = pt.index;\n pointData.location = pt.loc;\n pointData.z = pt.z;\n pointData.zLabel = Axes.tickText(geo.mockAxis, geo.mockAxis.c2l(pt.z), 'hover').text;\n pointData.hovertemplate = pt.hovertemplate;\n\n makeHoverInfo(pointData, trace, pt, geo.mockAxis);\n\n return [pointData];\n};\n\nfunction makeHoverInfo(pointData, trace, pt) {\n if(trace.hovertemplate) return;\n\n var hoverinfo = pt.hi || trace.hoverinfo;\n var loc = String(pt.loc);\n\n var parts = (hoverinfo === 'all') ?\n attributes.hoverinfo.flags :\n hoverinfo.split('+');\n\n var hasName = (parts.indexOf('name') !== -1);\n var hasLocation = (parts.indexOf('location') !== -1);\n var hasZ = (parts.indexOf('z') !== -1);\n var hasText = (parts.indexOf('text') !== -1);\n var hasIdAsNameLabel = !hasName && hasLocation;\n\n var text = [];\n\n if(hasIdAsNameLabel) {\n pointData.nameOverride = loc;\n } else {\n if(hasName) pointData.nameOverride = trace.name;\n if(hasLocation) text.push(loc);\n }\n\n if(hasZ) {\n text.push(pointData.zLabel);\n }\n if(hasText) {\n fillText(pt, trace, text);\n }\n\n pointData.extraText = text.join('
');\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar d3 = require('d3');\n\nvar Drawing = require('../../components/drawing');\nvar Color = require('../../components/color');\nvar DESELECTDIM = require('../../constants/interactions').DESELECTDIM;\nvar barStyle = require('../bar/style');\nvar resizeText = require('../bar/uniform_text').resizeText;\nvar styleTextPoints = barStyle.styleTextPoints;\n\nfunction style(gd, cd, sel) {\n var s = sel ? sel : d3.select(gd).selectAll('g.waterfalllayer').selectAll('g.trace');\n resizeText(gd, s, 'waterfall');\n\n s.style('opacity', function(d) { return d[0].trace.opacity; });\n\n s.each(function(d) {\n var gTrace = d3.select(this);\n var trace = d[0].trace;\n\n gTrace.selectAll('.point > path').each(function(di) {\n if(!di.isBlank) {\n var cont = trace[di.dir].marker;\n\n d3.select(this)\n .call(Color.fill, cont.color)\n .call(Color.stroke, cont.line.color)\n .call(Drawing.dashLine, cont.line.dash, cont.line.width)\n .style('opacity', trace.selectedpoints && !di.selected ? DESELECTDIM : 1);\n }\n });\n\n styleTextPoints(gTrace, trace, gd);\n\n gTrace.selectAll('.lines').each(function() {\n var cont = trace.connector.line;\n\n Drawing.lineGroupStyle(\n d3.select(this).selectAll('path'),\n cont.width,\n cont.color,\n cont.dash\n );\n });\n });\n}\n\nmodule.exports = {\n style: style\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar scatterAttrs = require('../scatter/attributes');\nvar baseAttrs = require('../../plots/attributes');\nvar hovertemplateAttrs = require('../../plots/template_attributes').hovertemplateAttrs;\nvar colorScaleAttrs = require('../../components/colorscale/attributes');\nvar FORMAT_LINK = require('../../constants/docs').FORMAT_LINK;\n\nvar extendFlat = require('../../lib/extend').extendFlat;\n\nmodule.exports = extendFlat({\n z: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n x: extendFlat({}, scatterAttrs.x, {impliedEdits: {xtype: 'array'}}),\n x0: extendFlat({}, scatterAttrs.x0, {impliedEdits: {xtype: 'scaled'}}),\n dx: extendFlat({}, scatterAttrs.dx, {impliedEdits: {xtype: 'scaled'}}),\n y: extendFlat({}, scatterAttrs.y, {impliedEdits: {ytype: 'array'}}),\n y0: extendFlat({}, scatterAttrs.y0, {impliedEdits: {ytype: 'scaled'}}),\n dy: extendFlat({}, scatterAttrs.dy, {impliedEdits: {ytype: 'scaled'}}),\n\n text: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n hovertext: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n transpose: {\n valType: 'boolean',\n dflt: false,\n \n editType: 'calc',\n \n },\n xtype: {\n valType: 'enumerated',\n values: ['array', 'scaled'],\n \n editType: 'calc+clearAxisTypes',\n \n },\n ytype: {\n valType: 'enumerated',\n values: ['array', 'scaled'],\n \n editType: 'calc+clearAxisTypes',\n \n },\n zsmooth: {\n valType: 'enumerated',\n values: ['fast', 'best', false],\n dflt: false,\n \n editType: 'calc',\n \n },\n hoverongaps: {\n valType: 'boolean',\n dflt: true,\n \n editType: 'none',\n \n },\n connectgaps: {\n valType: 'boolean',\n \n editType: 'calc',\n \n },\n xgap: {\n valType: 'number',\n dflt: 0,\n min: 0,\n \n editType: 'plot',\n \n },\n ygap: {\n valType: 'number',\n dflt: 0,\n min: 0,\n \n editType: 'plot',\n \n },\n zhoverformat: {\n valType: 'string',\n dflt: '',\n \n editType: 'none',\n \n },\n hovertemplate: hovertemplateAttrs(),\n showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false})\n}, {\n transforms: undefined\n},\n colorScaleAttrs('', {cLetter: 'z', autoColorDflt: false})\n);\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar d3 = require('d3');\n\nvar Registry = require('../../registry');\nvar Lib = require('../../lib');\nvar Drawing = require('../../components/drawing');\nvar Axes = require('./axes');\n\n/**\n * transitionAxes\n *\n * transition axes from one set of ranges to another, using a svg\n * transformations, similar to during panning.\n *\n * @param {DOM element | object} gd\n * @param {array} edits : array of 'edits', each item with\n * - plotinfo {object} subplot object\n * - xr0 {array} initial x-range\n * - xr1 {array} end x-range\n * - yr0 {array} initial y-range\n * - yr1 {array} end y-range\n * @param {object} transitionOpts\n * @param {function} makeOnCompleteCallback\n */\nmodule.exports = function transitionAxes(gd, edits, transitionOpts, makeOnCompleteCallback) {\n var fullLayout = gd._fullLayout;\n\n // special case for redraw:false Plotly.animate that relies on this\n // to update axis-referenced layout components\n if(edits.length === 0) {\n Axes.redrawComponents(gd);\n return;\n }\n\n function unsetSubplotTransform(subplot) {\n var xa = subplot.xaxis;\n var ya = subplot.yaxis;\n\n fullLayout._defs.select('#' + subplot.clipId + '> rect')\n .call(Drawing.setTranslate, 0, 0)\n .call(Drawing.setScale, 1, 1);\n\n subplot.plot\n .call(Drawing.setTranslate, xa._offset, ya._offset)\n .call(Drawing.setScale, 1, 1);\n\n var traceGroups = subplot.plot.selectAll('.scatterlayer .trace');\n\n // This is specifically directed at scatter traces, applying an inverse\n // scale to individual points to counteract the scale of the trace\n // as a whole:\n traceGroups.selectAll('.point')\n .call(Drawing.setPointGroupScale, 1, 1);\n traceGroups.selectAll('.textpoint')\n .call(Drawing.setTextPointsScale, 1, 1);\n traceGroups\n .call(Drawing.hideOutsideRangePoints, subplot);\n }\n\n function updateSubplot(edit, progress) {\n var plotinfo = edit.plotinfo;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var xlen = xa._length;\n var ylen = ya._length;\n var editX = !!edit.xr1;\n var editY = !!edit.yr1;\n var viewBox = [];\n\n if(editX) {\n var xr0 = Lib.simpleMap(edit.xr0, xa.r2l);\n var xr1 = Lib.simpleMap(edit.xr1, xa.r2l);\n var dx0 = xr0[1] - xr0[0];\n var dx1 = xr1[1] - xr1[0];\n viewBox[0] = (xr0[0] * (1 - progress) + progress * xr1[0] - xr0[0]) / (xr0[1] - xr0[0]) * xlen;\n viewBox[2] = xlen * ((1 - progress) + progress * dx1 / dx0);\n xa.range[0] = xa.l2r(xr0[0] * (1 - progress) + progress * xr1[0]);\n xa.range[1] = xa.l2r(xr0[1] * (1 - progress) + progress * xr1[1]);\n } else {\n viewBox[0] = 0;\n viewBox[2] = xlen;\n }\n\n if(editY) {\n var yr0 = Lib.simpleMap(edit.yr0, ya.r2l);\n var yr1 = Lib.simpleMap(edit.yr1, ya.r2l);\n var dy0 = yr0[1] - yr0[0];\n var dy1 = yr1[1] - yr1[0];\n viewBox[1] = (yr0[1] * (1 - progress) + progress * yr1[1] - yr0[1]) / (yr0[0] - yr0[1]) * ylen;\n viewBox[3] = ylen * ((1 - progress) + progress * dy1 / dy0);\n ya.range[0] = xa.l2r(yr0[0] * (1 - progress) + progress * yr1[0]);\n ya.range[1] = ya.l2r(yr0[1] * (1 - progress) + progress * yr1[1]);\n } else {\n viewBox[1] = 0;\n viewBox[3] = ylen;\n }\n\n Axes.drawOne(gd, xa, {skipTitle: true});\n Axes.drawOne(gd, ya, {skipTitle: true});\n Axes.redrawComponents(gd, [xa._id, ya._id]);\n\n var xScaleFactor = editX ? xlen / viewBox[2] : 1;\n var yScaleFactor = editY ? ylen / viewBox[3] : 1;\n var clipDx = editX ? viewBox[0] : 0;\n var clipDy = editY ? viewBox[1] : 0;\n var fracDx = editX ? (viewBox[0] / viewBox[2] * xlen) : 0;\n var fracDy = editY ? (viewBox[1] / viewBox[3] * ylen) : 0;\n var plotDx = xa._offset - fracDx;\n var plotDy = ya._offset - fracDy;\n\n plotinfo.clipRect\n .call(Drawing.setTranslate, clipDx, clipDy)\n .call(Drawing.setScale, 1 / xScaleFactor, 1 / yScaleFactor);\n\n plotinfo.plot\n .call(Drawing.setTranslate, plotDx, plotDy)\n .call(Drawing.setScale, xScaleFactor, yScaleFactor);\n\n // apply an inverse scale to individual points to counteract\n // the scale of the trace group.\n Drawing.setPointGroupScale(plotinfo.zoomScalePts, 1 / xScaleFactor, 1 / yScaleFactor);\n Drawing.setTextPointsScale(plotinfo.zoomScaleTxt, 1 / xScaleFactor, 1 / yScaleFactor);\n }\n\n var onComplete;\n if(makeOnCompleteCallback) {\n // This module makes the choice whether or not it notifies Plotly.transition\n // about completion:\n onComplete = makeOnCompleteCallback();\n }\n\n function transitionComplete() {\n var aobj = {};\n\n for(var i = 0; i < edits.length; i++) {\n var edit = edits[i];\n var xa = edit.plotinfo.xaxis;\n var ya = edit.plotinfo.yaxis;\n if(edit.xr1) aobj[xa._name + '.range'] = edit.xr1.slice();\n if(edit.yr1) aobj[ya._name + '.range'] = edit.yr1.slice();\n }\n\n // Signal that this transition has completed:\n onComplete && onComplete();\n\n return Registry.call('relayout', gd, aobj).then(function() {\n for(var i = 0; i < edits.length; i++) {\n unsetSubplotTransform(edits[i].plotinfo);\n }\n });\n }\n\n function transitionInterrupt() {\n var aobj = {};\n\n for(var i = 0; i < edits.length; i++) {\n var edit = edits[i];\n var xa = edit.plotinfo.xaxis;\n var ya = edit.plotinfo.yaxis;\n if(edit.xr0) aobj[xa._name + '.range'] = edit.xr0.slice();\n if(edit.yr0) aobj[ya._name + '.range'] = edit.yr0.slice();\n }\n\n return Registry.call('relayout', gd, aobj).then(function() {\n for(var i = 0; i < edits.length; i++) {\n unsetSubplotTransform(edits[i].plotinfo);\n }\n });\n }\n\n var t1, t2, raf;\n var easeFn = d3.ease(transitionOpts.easing);\n\n gd._transitionData._interruptCallbacks.push(function() {\n window.cancelAnimationFrame(raf);\n raf = null;\n return transitionInterrupt();\n });\n\n function doFrame() {\n t2 = Date.now();\n\n var tInterp = Math.min(1, (t2 - t1) / transitionOpts.duration);\n var progress = easeFn(tInterp);\n\n for(var i = 0; i < edits.length; i++) {\n updateSubplot(edits[i], progress);\n }\n\n if(t2 - t1 > transitionOpts.duration) {\n transitionComplete();\n raf = window.cancelAnimationFrame(doFrame);\n } else {\n raf = window.requestAnimationFrame(doFrame);\n }\n }\n\n t1 = Date.now();\n raf = window.requestAnimationFrame(doFrame);\n\n return Promise.resolve();\n};\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","'use strict';\n\nvar Lib = require('../src/lib');\nvar rules = {\n \"X,X div\": \"direction:ltr;font-family:'Open Sans', verdana, arial, sans-serif;margin:0;padding:0;\",\n \"X input,X button\": \"font-family:'Open Sans', verdana, arial, sans-serif;\",\n \"X input:focus,X button:focus\": \"outline:none;\",\n \"X a\": \"text-decoration:none;\",\n \"X a:hover\": \"text-decoration:none;\",\n \"X .crisp\": \"shape-rendering:crispEdges;\",\n \"X .user-select-none\": \"-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;\",\n \"X svg\": \"overflow:hidden;\",\n \"X svg a\": \"fill:#447adb;\",\n \"X svg a:hover\": \"fill:#3c6dc5;\",\n \"X .main-svg\": \"position:absolute;top:0;left:0;pointer-events:none;\",\n \"X .main-svg .draglayer\": \"pointer-events:all;\",\n \"X .cursor-default\": \"cursor:default;\",\n \"X .cursor-pointer\": \"cursor:pointer;\",\n \"X .cursor-crosshair\": \"cursor:crosshair;\",\n \"X .cursor-move\": \"cursor:move;\",\n \"X .cursor-col-resize\": \"cursor:col-resize;\",\n \"X .cursor-row-resize\": \"cursor:row-resize;\",\n \"X .cursor-ns-resize\": \"cursor:ns-resize;\",\n \"X .cursor-ew-resize\": \"cursor:ew-resize;\",\n \"X .cursor-sw-resize\": \"cursor:sw-resize;\",\n \"X .cursor-s-resize\": \"cursor:s-resize;\",\n \"X .cursor-se-resize\": \"cursor:se-resize;\",\n \"X .cursor-w-resize\": \"cursor:w-resize;\",\n \"X .cursor-e-resize\": \"cursor:e-resize;\",\n \"X .cursor-nw-resize\": \"cursor:nw-resize;\",\n \"X .cursor-n-resize\": \"cursor:n-resize;\",\n \"X .cursor-ne-resize\": \"cursor:ne-resize;\",\n \"X .cursor-grab\": \"cursor:-webkit-grab;cursor:grab;\",\n \"X .modebar\": \"position:absolute;top:2px;right:2px;\",\n \"X .ease-bg\": \"-webkit-transition:background-color 0.3s ease 0s;-moz-transition:background-color 0.3s ease 0s;-ms-transition:background-color 0.3s ease 0s;-o-transition:background-color 0.3s ease 0s;transition:background-color 0.3s ease 0s;\",\n \"X .modebar--hover>:not(.watermark)\": \"opacity:0;-webkit-transition:opacity 0.3s ease 0s;-moz-transition:opacity 0.3s ease 0s;-ms-transition:opacity 0.3s ease 0s;-o-transition:opacity 0.3s ease 0s;transition:opacity 0.3s ease 0s;\",\n \"X:hover .modebar--hover .modebar-group\": \"opacity:1;\",\n \"X .modebar-group\": \"float:left;display:inline-block;box-sizing:border-box;padding-left:8px;position:relative;vertical-align:middle;white-space:nowrap;\",\n \"X .modebar-btn\": \"position:relative;font-size:16px;padding:3px 4px;height:22px;cursor:pointer;line-height:normal;box-sizing:border-box;\",\n \"X .modebar-btn svg\": \"position:relative;top:2px;\",\n \"X .modebar.vertical\": \"display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-end;max-height:100%;\",\n \"X .modebar.vertical svg\": \"top:-1px;\",\n \"X .modebar.vertical .modebar-group\": \"display:block;float:none;padding-left:0px;padding-bottom:8px;\",\n \"X .modebar.vertical .modebar-group .modebar-btn\": \"display:block;text-align:center;\",\n \"X [data-title]:before,X [data-title]:after\": \"position:absolute;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:none;opacity:0;z-index:1001;pointer-events:none;top:110%;right:50%;\",\n \"X [data-title]:hover:before,X [data-title]:hover:after\": \"display:block;opacity:1;\",\n \"X [data-title]:before\": \"content:'';position:absolute;background:transparent;border:6px solid transparent;z-index:1002;margin-top:-12px;border-bottom-color:#69738a;margin-right:-6px;\",\n \"X [data-title]:after\": \"content:attr(data-title);background:#69738a;color:white;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap;margin-right:-18px;border-radius:2px;\",\n \"X .vertical [data-title]:before,X .vertical [data-title]:after\": \"top:0%;right:200%;\",\n \"X .vertical [data-title]:before\": \"border:6px solid transparent;border-left-color:#69738a;margin-top:8px;margin-right:-30px;\",\n \"X .select-outline\": \"fill:none;stroke-width:1;shape-rendering:crispEdges;\",\n \"X .select-outline-1\": \"stroke:white;\",\n \"X .select-outline-2\": \"stroke:black;stroke-dasharray:2px 2px;\",\n Y: \"font-family:'Open Sans';position:fixed;top:50px;right:20px;z-index:10000;font-size:10pt;max-width:180px;\",\n \"Y p\": \"margin:0;\",\n \"Y .notifier-note\": \"min-width:180px;max-width:250px;border:1px solid #fff;z-index:3000;margin:0;background-color:#8c97af;background-color:rgba(140,151,175,0.9);color:#fff;padding:10px;overflow-wrap:break-word;word-wrap:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;\",\n \"Y .notifier-close\": \"color:#fff;opacity:0.8;float:right;padding:0 5px;background:none;border:none;font-size:20px;font-weight:bold;line-height:20px;\",\n \"Y .notifier-close:hover\": \"color:#444;text-decoration:none;cursor:pointer;\"\n};\n\nfor(var selector in rules) {\n var fullSelector = selector.replace(/^,/,' ,')\n .replace(/X/g, '.js-plotly-plot .plotly')\n .replace(/Y/g, '.plotly-notifier');\n Lib.addStyleRule(fullSelector, rules[selector]);\n}\n","'use strict'\n\nvar createCamera = require('./camera.js')\nvar createAxes = require('gl-axes3d')\nvar axesRanges = require('gl-axes3d/properties')\nvar createSpikes = require('gl-spikes3d')\nvar createSelect = require('gl-select-static')\nvar createFBO = require('gl-fbo')\nvar drawTriangle = require('a-big-triangle')\nvar mouseChange = require('mouse-change')\nvar perspective = require('gl-mat4/perspective')\nvar ortho = require('gl-mat4/ortho')\nvar createShader = require('./lib/shader')\nvar isMobile = require('is-mobile')({ tablet: true })\n\nmodule.exports = {\n createScene: createScene,\n createCamera: createCamera\n}\n\nfunction MouseSelect() {\n this.mouse = [-1,-1]\n this.screen = null\n this.distance = Infinity\n this.index = null\n this.dataCoordinate = null\n this.dataPosition = null\n this.object = null\n this.data = null\n}\n\nfunction getContext(canvas, options) {\n var gl = null\n try {\n gl = canvas.getContext('webgl', options)\n if(!gl) {\n gl = canvas.getContext('experimental-webgl', options)\n }\n } catch(e) {\n return null\n }\n return gl\n}\n\nfunction roundUpPow10(x) {\n var y = Math.round(Math.log(Math.abs(x)) / Math.log(10))\n if(y < 0) {\n var base = Math.round(Math.pow(10, -y))\n return Math.ceil(x*base) / base\n } else if(y > 0) {\n var base = Math.round(Math.pow(10, y))\n return Math.ceil(x/base) * base\n }\n return Math.ceil(x)\n}\n\nfunction defaultBool(x) {\n if(typeof x === 'boolean') {\n return x\n }\n return true\n}\n\nfunction createScene(options) {\n options = options || {}\n options.camera = options.camera || {}\n\n var canvas = options.canvas\n if(!canvas) {\n canvas = document.createElement('canvas')\n if(options.container) {\n var container = options.container\n container.appendChild(canvas)\n } else {\n document.body.appendChild(canvas)\n }\n }\n\n var gl = options.gl\n if(!gl) {\n gl = getContext(canvas,\n options.glOptions || {\n premultipliedAlpha: true,\n antialias: true,\n preserveDrawingBuffer: isMobile\n })\n }\n if(!gl) {\n throw new Error('webgl not supported')\n }\n\n //Initial bounds\n var bounds = options.bounds || [[-10,-10,-10], [10,10,10]]\n\n //Create selection\n var selection = new MouseSelect()\n\n //Accumulation buffer\n var accumBuffer = createFBO(gl,\n [gl.drawingBufferWidth, gl.drawingBufferHeight], {\n preferFloat: !isMobile\n })\n\n var accumShader = createShader(gl)\n\n var isOrtho =\n (options.cameraObject && options.cameraObject._ortho === true) ||\n (options.camera.projection && options.camera.projection.type === 'orthographic') ||\n false\n\n //Create a camera\n var cameraOptions = {\n eye: options.camera.eye || [2,0,0],\n center: options.camera.center || [0,0,0],\n up: options.camera.up || [0,1,0],\n zoomMin: options.camera.zoomMax || 0.1,\n zoomMax: options.camera.zoomMin || 100,\n mode: options.camera.mode || 'turntable',\n _ortho: isOrtho\n }\n\n //Create axes\n var axesOptions = options.axes || {}\n var axes = createAxes(gl, axesOptions)\n axes.enable = !axesOptions.disable\n\n //Create spikes\n var spikeOptions = options.spikes || {}\n var spikes = createSpikes(gl, spikeOptions)\n\n //Object list is empty initially\n var objects = []\n var pickBufferIds = []\n var pickBufferCount = []\n var pickBuffers = []\n\n //Dirty flag, skip redraw if scene static\n var dirty = true\n var pickDirty = true\n\n var projection = new Array(16)\n var model = new Array(16)\n\n var cameraParams = {\n view: null,\n projection: projection,\n model: model,\n _ortho: false\n }\n\n var pickDirty = true\n\n var viewShape = [ gl.drawingBufferWidth, gl.drawingBufferHeight ]\n\n var camera = options.cameraObject || createCamera(canvas, cameraOptions)\n\n //Create scene object\n var scene = {\n gl: gl,\n contextLost: false,\n pixelRatio: options.pixelRatio || 1,\n canvas: canvas,\n selection: selection,\n camera: camera,\n axes: axes,\n axesPixels: null,\n spikes: spikes,\n bounds: bounds,\n objects: objects,\n shape: viewShape,\n aspect: options.aspectRatio || [1,1,1],\n pickRadius: options.pickRadius || 10,\n zNear: options.zNear || 0.01,\n zFar: options.zFar || 1000,\n fovy: options.fovy || Math.PI/4,\n clearColor: options.clearColor || [0,0,0,0],\n autoResize: defaultBool(options.autoResize),\n autoBounds: defaultBool(options.autoBounds),\n autoScale: !!options.autoScale,\n autoCenter: defaultBool(options.autoCenter),\n clipToBounds: defaultBool(options.clipToBounds),\n snapToData: !!options.snapToData,\n onselect: options.onselect || null,\n onrender: options.onrender || null,\n onclick: options.onclick || null,\n cameraParams: cameraParams,\n oncontextloss: null,\n mouseListener: null,\n _stopped: false,\n\n getAspectratio: function() {\n return {\n x: this.aspect[0],\n y: this.aspect[1],\n z: this.aspect[2]\n }\n },\n\n setAspectratio: function(aspectratio) {\n this.aspect[0] = aspectratio.x\n this.aspect[1] = aspectratio.y\n this.aspect[2] = aspectratio.z\n },\n\n setBounds: function(axisIndex, range) {\n this.bounds[0][axisIndex] = range.min\n this.bounds[1][axisIndex] = range.max\n },\n\n setClearColor: function(clearColor) {\n this.clearColor = clearColor\n },\n\n clearRGBA: function() {\n this.gl.clearColor(\n this.clearColor[0],\n this.clearColor[1],\n this.clearColor[2],\n this.clearColor[3]\n )\n\n this.gl.clear(\n this.gl.COLOR_BUFFER_BIT |\n this.gl.DEPTH_BUFFER_BIT\n )\n }\n }\n\n var pickShape = [ (gl.drawingBufferWidth/scene.pixelRatio)|0, (gl.drawingBufferHeight/scene.pixelRatio)|0 ]\n\n function resizeListener() {\n if(scene._stopped) {\n return\n }\n if(!scene.autoResize) {\n return\n }\n var parent = canvas.parentNode\n var width = 1\n var height = 1\n if(parent && parent !== document.body) {\n width = parent.clientWidth\n height = parent.clientHeight\n } else {\n width = window.innerWidth\n height = window.innerHeight\n }\n var nextWidth = Math.ceil(width * scene.pixelRatio)|0\n var nextHeight = Math.ceil(height * scene.pixelRatio)|0\n if(nextWidth !== canvas.width || nextHeight !== canvas.height) {\n canvas.width = nextWidth\n canvas.height = nextHeight\n var style = canvas.style\n style.position = style.position || 'absolute'\n style.left = '0px'\n style.top = '0px'\n style.width = width + 'px'\n style.height = height + 'px'\n dirty = true\n }\n }\n if(scene.autoResize) {\n resizeListener()\n }\n window.addEventListener('resize', resizeListener)\n\n function reallocPickIds() {\n var numObjs = objects.length\n var numPick = pickBuffers.length\n for(var i=0; i 0 && pickBufferCount[numPick-1] === 0) {\n pickBufferCount.pop()\n pickBuffers.pop().dispose()\n }\n }\n\n scene.update = function(options) {\n\n if(scene._stopped) {\n return\n }\n options = options || {}\n dirty = true\n pickDirty = true\n }\n\n scene.add = function(obj) {\n if(scene._stopped) {\n return\n }\n obj.axes = axes\n objects.push(obj)\n pickBufferIds.push(-1)\n dirty = true\n pickDirty = true\n reallocPickIds()\n }\n\n scene.remove = function(obj) {\n if(scene._stopped) {\n return\n }\n var idx = objects.indexOf(obj)\n if(idx < 0) {\n return\n }\n objects.splice(idx, 1)\n pickBufferIds.pop()\n dirty = true\n pickDirty = true\n reallocPickIds()\n }\n\n scene.dispose = function() {\n if(scene._stopped) {\n return\n }\n\n scene._stopped = true\n\n window.removeEventListener('resize', resizeListener)\n canvas.removeEventListener('webglcontextlost', checkContextLoss)\n scene.mouseListener.enabled = false\n\n if(scene.contextLost) {\n return\n }\n\n //Destroy objects\n axes.dispose()\n spikes.dispose()\n for(var i=0; i selection.distance) {\n continue\n }\n for(var j=0; j 0) {\n stepVal.push(stride(i, order[j-1]) + \"*\" + shape(order[j-1]) )\n }\n vars.push(step(i,order[j]) + \"=(\" + stepVal.join(\"-\") + \")|0\")\n }\n }\n //Create index variables\n for(var i=0; i=0; --i) {\n sizeVariable.push(shape(order[i]))\n }\n //Previous phases and vertex_ids\n vars.push(POOL_SIZE + \"=(\" + sizeVariable.join(\"*\") + \")|0\",\n PHASES + \"=mallocUint32(\" + POOL_SIZE + \")\",\n VERTEX_IDS + \"=mallocUint32(\" + POOL_SIZE + \")\",\n POINTER + \"=0\")\n //Create cube variables for phases\n vars.push(pcube(0) + \"=0\")\n for(var j=1; j<(1<=0; --i) {\n forLoopBegin(i, 0) \n }\n var phaseFuncArgs = []\n for(var i=0; i0; k=(k-1)&subset) {\n faceArgs.push(VERTEX_IDS + \"[\" + POINTER + \"+\" + pdelta(k) + \"]\")\n }\n faceArgs.push(vert(0))\n for(var k=0; k0){\",\n index(order[i]), \"=1;\")\n createLoop(i-1, mask|(1< 0\")\n }\n if(typeof args.vertex !== \"function\") {\n error(\"Must specify vertex creation function\")\n }\n if(typeof args.cell !== \"function\") {\n error(\"Must specify cell creation function\")\n }\n if(typeof args.phase !== \"function\") {\n error(\"Must specify phase function\")\n }\n var getters = args.getters || []\n var typesig = new Array(arrays)\n for(var i=0; i= 0) {\n typesig[i] = true\n } else {\n typesig[i] = false\n }\n }\n return compileSurfaceProcedure(\n args.vertex,\n args.cell,\n args.phase,\n scalars,\n order,\n typesig)\n}","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n nodeTextOffsetHorizontal: 4,\n nodeTextOffsetVertical: 3,\n nodePadAcross: 10,\n sankeyIterations: 50,\n forceIterations: 5,\n forceTicksPerFrame: 10,\n duration: 500,\n ease: 'linear',\n cn: {\n sankey: 'sankey',\n sankeyLinks: 'sankey-links',\n sankeyLink: 'sankey-link',\n sankeyNodeSet: 'sankey-node-set',\n sankeyNode: 'sankey-node',\n nodeRect: 'node-rect',\n nodeCapture: 'node-capture',\n nodeCentered: 'node-entered',\n nodeLabelGuide: 'node-label-guide',\n nodeLabel: 'node-label',\n nodeLabelTextPath: 'node-label-text-path'\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Registry = require('../../registry');\nvar Lib = require('../../lib');\nvar Axes = require('../../plots/cartesian/axes');\n\nvar histogram2dCalc = require('../histogram2d/calc');\nvar colorscaleCalc = require('../../components/colorscale/calc');\nvar convertColumnData = require('./convert_column_xyz');\nvar clean2dArray = require('./clean_2d_array');\nvar interp2d = require('./interp2d');\nvar findEmpties = require('./find_empties');\nvar makeBoundArray = require('./make_bound_array');\n\nmodule.exports = function calc(gd, trace) {\n // prepare the raw data\n // run makeCalcdata on x and y even for heatmaps, in case of category mappings\n var xa = Axes.getFromId(gd, trace.xaxis || 'x');\n var ya = Axes.getFromId(gd, trace.yaxis || 'y');\n var isContour = Registry.traceIs(trace, 'contour');\n var isHist = Registry.traceIs(trace, 'histogram');\n var isGL2D = Registry.traceIs(trace, 'gl2d');\n var zsmooth = isContour ? 'best' : trace.zsmooth;\n var x;\n var x0;\n var dx;\n var y;\n var y0;\n var dy;\n var z;\n var i;\n var binned;\n\n // cancel minimum tick spacings (only applies to bars and boxes)\n xa._minDtick = 0;\n ya._minDtick = 0;\n\n if(isHist) {\n binned = histogram2dCalc(gd, trace);\n x = binned.x;\n x0 = binned.x0;\n dx = binned.dx;\n y = binned.y;\n y0 = binned.y0;\n dy = binned.dy;\n z = binned.z;\n } else {\n var zIn = trace.z;\n if(Lib.isArray1D(zIn)) {\n convertColumnData(trace, xa, ya, 'x', 'y', ['z']);\n x = trace._x;\n y = trace._y;\n zIn = trace._z;\n } else {\n x = trace._x = trace.x ? xa.makeCalcdata(trace, 'x') : [];\n y = trace._y = trace.y ? ya.makeCalcdata(trace, 'y') : [];\n }\n\n x0 = trace.x0;\n dx = trace.dx;\n y0 = trace.y0;\n dy = trace.dy;\n\n z = clean2dArray(zIn, trace, xa, ya);\n\n if(isContour || trace.connectgaps) {\n trace._emptypoints = findEmpties(z);\n interp2d(z, trace._emptypoints);\n }\n }\n\n function noZsmooth(msg) {\n zsmooth = trace._input.zsmooth = trace.zsmooth = false;\n Lib.warn('cannot use zsmooth: \"fast\": ' + msg);\n }\n\n // check whether we really can smooth (ie all boxes are about the same size)\n if(zsmooth === 'fast') {\n if(xa.type === 'log' || ya.type === 'log') {\n noZsmooth('log axis found');\n } else if(!isHist) {\n if(x.length) {\n var avgdx = (x[x.length - 1] - x[0]) / (x.length - 1);\n var maxErrX = Math.abs(avgdx / 100);\n for(i = 0; i < x.length - 1; i++) {\n if(Math.abs(x[i + 1] - x[i] - avgdx) > maxErrX) {\n noZsmooth('x scale is not linear');\n break;\n }\n }\n }\n if(y.length && zsmooth === 'fast') {\n var avgdy = (y[y.length - 1] - y[0]) / (y.length - 1);\n var maxErrY = Math.abs(avgdy / 100);\n for(i = 0; i < y.length - 1; i++) {\n if(Math.abs(y[i + 1] - y[i] - avgdy) > maxErrY) {\n noZsmooth('y scale is not linear');\n break;\n }\n }\n }\n }\n }\n\n // create arrays of brick boundaries, to be used by autorange and heatmap.plot\n var xlen = Lib.maxRowLength(z);\n var xIn = trace.xtype === 'scaled' ? '' : x;\n var xArray = makeBoundArray(trace, xIn, x0, dx, xlen, xa);\n var yIn = trace.ytype === 'scaled' ? '' : y;\n var yArray = makeBoundArray(trace, yIn, y0, dy, z.length, ya);\n\n // handled in gl2d convert step\n if(!isGL2D) {\n trace._extremes[xa._id] = Axes.findExtremes(xa, xArray);\n trace._extremes[ya._id] = Axes.findExtremes(ya, yArray);\n }\n\n var cd0 = {\n x: xArray,\n y: yArray,\n z: z,\n text: trace._text || trace.text,\n hovertext: trace._hovertext || trace.hovertext\n };\n\n if(xIn && xIn.length === xArray.length - 1) cd0.xCenter = xIn;\n if(yIn && yIn.length === yArray.length - 1) cd0.yCenter = yIn;\n\n if(isHist) {\n cd0.xRanges = binned.xRanges;\n cd0.yRanges = binned.yRanges;\n cd0.pts = binned.pts;\n }\n\n if(!isContour) {\n colorscaleCalc(gd, trace, {vals: z, cLetter: 'z'});\n }\n\n if(isContour && trace.contours && trace.contours.coloring === 'heatmap') {\n var dummyTrace = {\n type: trace.type === 'contour' ? 'heatmap' : 'histogram2d',\n xcalendar: trace.xcalendar,\n ycalendar: trace.ycalendar\n };\n cd0.xfill = makeBoundArray(dummyTrace, xIn, x0, dx, xlen, xa);\n cd0.yfill = makeBoundArray(dummyTrace, yIn, y0, dy, z.length, ya);\n }\n\n return [cd0];\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar d3 = require('d3');\nvar isNumeric = require('fast-isnumeric');\nvar Plots = require('../../plots/plots');\n\nvar Registry = require('../../registry');\nvar Lib = require('../../lib');\nvar svgTextUtils = require('../../lib/svg_text_utils');\nvar Titles = require('../../components/titles');\nvar Color = require('../../components/color');\nvar Drawing = require('../../components/drawing');\n\nvar axAttrs = require('./layout_attributes');\nvar cleanTicks = require('./clean_ticks');\n\nvar constants = require('../../constants/numerical');\nvar ONEAVGYEAR = constants.ONEAVGYEAR;\nvar ONEAVGMONTH = constants.ONEAVGMONTH;\nvar ONEDAY = constants.ONEDAY;\nvar ONEHOUR = constants.ONEHOUR;\nvar ONEMIN = constants.ONEMIN;\nvar ONESEC = constants.ONESEC;\nvar MINUS_SIGN = constants.MINUS_SIGN;\nvar BADNUM = constants.BADNUM;\n\nvar alignmentConstants = require('../../constants/alignment');\nvar MID_SHIFT = alignmentConstants.MID_SHIFT;\nvar CAP_SHIFT = alignmentConstants.CAP_SHIFT;\nvar LINE_SPACING = alignmentConstants.LINE_SPACING;\nvar OPPOSITE_SIDE = alignmentConstants.OPPOSITE_SIDE;\n\nvar axes = module.exports = {};\n\naxes.setConvert = require('./set_convert');\nvar autoType = require('./axis_autotype');\n\nvar axisIds = require('./axis_ids');\naxes.id2name = axisIds.id2name;\naxes.name2id = axisIds.name2id;\naxes.cleanId = axisIds.cleanId;\naxes.list = axisIds.list;\naxes.listIds = axisIds.listIds;\naxes.getFromId = axisIds.getFromId;\naxes.getFromTrace = axisIds.getFromTrace;\n\nvar autorange = require('./autorange');\naxes.getAutoRange = autorange.getAutoRange;\naxes.findExtremes = autorange.findExtremes;\n\n/*\n * find the list of possible axes to reference with an xref or yref attribute\n * and coerce it to that list\n *\n * attr: the attribute we're generating a reference for. Should end in 'x' or 'y'\n * but can be prefixed, like 'ax' for annotation's arrow x\n * dflt: the default to coerce to, or blank to use the first axis (falling back on\n * extraOption if there is no axis)\n * extraOption: aside from existing axes with this letter, what non-axis value is allowed?\n * Only required if it's different from `dflt`\n */\naxes.coerceRef = function(containerIn, containerOut, gd, attr, dflt, extraOption) {\n var axLetter = attr.charAt(attr.length - 1);\n var axlist = gd._fullLayout._subplots[axLetter + 'axis'];\n var refAttr = attr + 'ref';\n var attrDef = {};\n\n if(!dflt) dflt = axlist[0] || extraOption;\n if(!extraOption) extraOption = dflt;\n\n // data-ref annotations are not supported in gl2d yet\n\n attrDef[refAttr] = {\n valType: 'enumerated',\n values: axlist.concat(extraOption ? [extraOption] : []),\n dflt: dflt\n };\n\n // xref, yref\n return Lib.coerce(containerIn, containerOut, attrDef, refAttr);\n};\n\n/*\n * coerce position attributes (range-type) that can be either on axes or absolute\n * (paper or pixel) referenced. The biggest complication here is that we don't know\n * before looking at the axis whether the value must be a number or not (it may be\n * a date string), so we can't use the regular valType='number' machinery\n *\n * axRef (string): the axis this position is referenced to, or:\n * paper: fraction of the plot area\n * pixel: pixels relative to some starting position\n * attr (string): the attribute in containerOut we are coercing\n * dflt (number): the default position, as a fraction or pixels. If the attribute\n * is to be axis-referenced, this will be converted to an axis data value\n *\n * Also cleans the values, since the attribute definition itself has to say\n * valType: 'any' to handle date axes. This allows us to accept:\n * - for category axes: category names, and convert them here into serial numbers.\n * Note that this will NOT work for axis range endpoints, because we don't know\n * the category list yet (it's set by ax.makeCalcdata during calc)\n * but it works for component (note, shape, images) positions.\n * - for date axes: JS Dates or milliseconds, and convert to date strings\n * - for other types: coerce them to numbers\n */\naxes.coercePosition = function(containerOut, gd, coerce, axRef, attr, dflt) {\n var cleanPos, pos;\n\n if(axRef === 'paper' || axRef === 'pixel') {\n cleanPos = Lib.ensureNumber;\n pos = coerce(attr, dflt);\n } else {\n var ax = axes.getFromId(gd, axRef);\n dflt = ax.fraction2r(dflt);\n pos = coerce(attr, dflt);\n cleanPos = ax.cleanPos;\n }\n\n containerOut[attr] = cleanPos(pos);\n};\n\naxes.cleanPosition = function(pos, gd, axRef) {\n var cleanPos = (axRef === 'paper' || axRef === 'pixel') ?\n Lib.ensureNumber :\n axes.getFromId(gd, axRef).cleanPos;\n\n return cleanPos(pos);\n};\n\naxes.redrawComponents = function(gd, axIds) {\n axIds = axIds ? axIds : axes.listIds(gd);\n\n var fullLayout = gd._fullLayout;\n\n function _redrawOneComp(moduleName, methodName, stashName, shortCircuit) {\n var method = Registry.getComponentMethod(moduleName, methodName);\n var stash = {};\n\n for(var i = 0; i < axIds.length; i++) {\n var ax = fullLayout[axes.id2name(axIds[i])];\n var indices = ax[stashName];\n\n for(var j = 0; j < indices.length; j++) {\n var ind = indices[j];\n\n if(!stash[ind]) {\n method(gd, ind);\n stash[ind] = 1;\n // once is enough for images (which doesn't use the `i` arg anyway)\n if(shortCircuit) return;\n }\n }\n }\n }\n\n // annotations and shapes 'draw' method is slow,\n // use the finer-grained 'drawOne' method instead\n _redrawOneComp('annotations', 'drawOne', '_annIndices');\n _redrawOneComp('shapes', 'drawOne', '_shapeIndices');\n _redrawOneComp('images', 'draw', '_imgIndices', true);\n};\n\nvar getDataConversions = axes.getDataConversions = function(gd, trace, target, targetArray) {\n var ax;\n\n // If target points to an axis, use the type we already have for that\n // axis to find the data type. Otherwise use the values to autotype.\n var d2cTarget = (target === 'x' || target === 'y' || target === 'z') ?\n target :\n targetArray;\n\n // In the case of an array target, make a mock data array\n // and call supplyDefaults to the data type and\n // setup the data-to-calc method.\n if(Array.isArray(d2cTarget)) {\n ax = {\n type: autoType(targetArray),\n _categories: []\n };\n axes.setConvert(ax);\n\n // build up ax._categories (usually done during ax.makeCalcdata()\n if(ax.type === 'category') {\n for(var i = 0; i < targetArray.length; i++) {\n ax.d2c(targetArray[i]);\n }\n }\n // TODO what to do for transforms?\n } else {\n ax = axes.getFromTrace(gd, trace, d2cTarget);\n }\n\n // if 'target' has corresponding axis\n // -> use setConvert method\n if(ax) return {d2c: ax.d2c, c2d: ax.c2d};\n\n // special case for 'ids'\n // -> cast to String\n if(d2cTarget === 'ids') return {d2c: toString, c2d: toString};\n\n // otherwise (e.g. numeric-array of 'marker.color' or 'marker.size')\n // -> cast to Number\n\n return {d2c: toNum, c2d: toNum};\n};\n\nfunction toNum(v) { return +v; }\nfunction toString(v) { return String(v); }\n\naxes.getDataToCoordFunc = function(gd, trace, target, targetArray) {\n return getDataConversions(gd, trace, target, targetArray).d2c;\n};\n\n// get counteraxis letter for this axis (name or id)\n// this can also be used as the id for default counter axis\naxes.counterLetter = function(id) {\n var axLetter = id.charAt(0);\n if(axLetter === 'x') return 'y';\n if(axLetter === 'y') return 'x';\n};\n\n// incorporate a new minimum difference and first tick into\n// forced\n// note that _forceTick0 is linearized, so needs to be turned into\n// a range value for setting tick0\naxes.minDtick = function(ax, newDiff, newFirst, allow) {\n // doesn't make sense to do forced min dTick on log or category axes,\n // and the plot itself may decide to cancel (ie non-grouped bars)\n if(['log', 'category', 'multicategory'].indexOf(ax.type) !== -1 || !allow) {\n ax._minDtick = 0;\n } else if(ax._minDtick === undefined) {\n // undefined means there's nothing there yet\n\n ax._minDtick = newDiff;\n ax._forceTick0 = newFirst;\n } else if(ax._minDtick) {\n if((ax._minDtick / newDiff + 1e-6) % 1 < 2e-6 &&\n // existing minDtick is an integer multiple of newDiff\n // (within rounding err)\n // and forceTick0 can be shifted to newFirst\n\n (((newFirst - ax._forceTick0) / newDiff % 1) +\n 1.000001) % 1 < 2e-6) {\n ax._minDtick = newDiff;\n ax._forceTick0 = newFirst;\n } else if((newDiff / ax._minDtick + 1e-6) % 1 > 2e-6 ||\n // if the converse is true (newDiff is a multiple of minDtick and\n // newFirst can be shifted to forceTick0) then do nothing - same\n // forcing stands. Otherwise, cancel forced minimum\n\n (((newFirst - ax._forceTick0) / ax._minDtick % 1) +\n 1.000001) % 1 > 2e-6) {\n ax._minDtick = 0;\n }\n }\n};\n\n// save a copy of the initial axis ranges in fullLayout\n// use them in mode bar and dblclick events\naxes.saveRangeInitial = function(gd, overwrite) {\n var axList = axes.list(gd, '', true);\n var hasOneAxisChanged = false;\n\n for(var i = 0; i < axList.length; i++) {\n var ax = axList[i];\n var isNew = (ax._rangeInitial === undefined);\n var hasChanged = isNew || !(\n ax.range[0] === ax._rangeInitial[0] &&\n ax.range[1] === ax._rangeInitial[1]\n );\n\n if((isNew && ax.autorange === false) || (overwrite && hasChanged)) {\n ax._rangeInitial = ax.range.slice();\n hasOneAxisChanged = true;\n }\n }\n\n return hasOneAxisChanged;\n};\n\n// save a copy of the initial spike visibility\naxes.saveShowSpikeInitial = function(gd, overwrite) {\n var axList = axes.list(gd, '', true);\n var hasOneAxisChanged = false;\n var allSpikesEnabled = 'on';\n\n for(var i = 0; i < axList.length; i++) {\n var ax = axList[i];\n var isNew = (ax._showSpikeInitial === undefined);\n var hasChanged = isNew || !(ax.showspikes === ax._showspikes);\n\n if(isNew || (overwrite && hasChanged)) {\n ax._showSpikeInitial = ax.showspikes;\n hasOneAxisChanged = true;\n }\n\n if(allSpikesEnabled === 'on' && !ax.showspikes) {\n allSpikesEnabled = 'off';\n }\n }\n gd._fullLayout._cartesianSpikesEnabled = allSpikesEnabled;\n return hasOneAxisChanged;\n};\n\naxes.autoBin = function(data, ax, nbins, is2d, calendar, size) {\n var dataMin = Lib.aggNums(Math.min, null, data);\n var dataMax = Lib.aggNums(Math.max, null, data);\n\n if(ax.type === 'category' || ax.type === 'multicategory') {\n return {\n start: dataMin - 0.5,\n end: dataMax + 0.5,\n size: Math.max(1, Math.round(size) || 1),\n _dataSpan: dataMax - dataMin,\n };\n }\n\n if(!calendar) calendar = ax.calendar;\n\n // piggyback off tick code to make \"nice\" bin sizes and edges\n var dummyAx;\n if(ax.type === 'log') {\n dummyAx = {\n type: 'linear',\n range: [dataMin, dataMax]\n };\n } else {\n dummyAx = {\n type: ax.type,\n range: Lib.simpleMap([dataMin, dataMax], ax.c2r, 0, calendar),\n calendar: calendar\n };\n }\n axes.setConvert(dummyAx);\n\n size = size && cleanTicks.dtick(size, dummyAx.type);\n\n if(size) {\n dummyAx.dtick = size;\n dummyAx.tick0 = cleanTicks.tick0(undefined, dummyAx.type, calendar);\n } else {\n var size0;\n if(nbins) size0 = ((dataMax - dataMin) / nbins);\n else {\n // totally auto: scale off std deviation so the highest bin is\n // somewhat taller than the total number of bins, but don't let\n // the size get smaller than the 'nice' rounded down minimum\n // difference between values\n var distinctData = Lib.distinctVals(data);\n var msexp = Math.pow(10, Math.floor(\n Math.log(distinctData.minDiff) / Math.LN10));\n var minSize = msexp * Lib.roundUp(\n distinctData.minDiff / msexp, [0.9, 1.9, 4.9, 9.9], true);\n size0 = Math.max(minSize, 2 * Lib.stdev(data) /\n Math.pow(data.length, is2d ? 0.25 : 0.4));\n\n // fallback if ax.d2c output BADNUMs\n // e.g. when user try to plot categorical bins\n // on a layout.xaxis.type: 'linear'\n if(!isNumeric(size0)) size0 = 1;\n }\n\n axes.autoTicks(dummyAx, size0);\n }\n\n var finalSize = dummyAx.dtick;\n var binStart = axes.tickIncrement(\n axes.tickFirst(dummyAx), finalSize, 'reverse', calendar);\n var binEnd, bincount;\n\n // check for too many data points right at the edges of bins\n // (>50% within 1% of bin edges) or all data points integral\n // and offset the bins accordingly\n if(typeof finalSize === 'number') {\n binStart = autoShiftNumericBins(binStart, data, dummyAx, dataMin, dataMax);\n\n bincount = 1 + Math.floor((dataMax - binStart) / finalSize);\n binEnd = binStart + bincount * finalSize;\n } else {\n // month ticks - should be the only nonlinear kind we have at this point.\n // dtick (as supplied by axes.autoTick) only has nonlinear values on\n // date and log axes, but even if you display a histogram on a log axis\n // we bin it on a linear axis (which one could argue against, but that's\n // a separate issue)\n if(dummyAx.dtick.charAt(0) === 'M') {\n binStart = autoShiftMonthBins(binStart, data, finalSize, dataMin, calendar);\n }\n\n // calculate the endpoint for nonlinear ticks - you have to\n // just increment until you're done\n binEnd = binStart;\n bincount = 0;\n while(binEnd <= dataMax) {\n binEnd = axes.tickIncrement(binEnd, finalSize, false, calendar);\n bincount++;\n }\n }\n\n return {\n start: ax.c2r(binStart, 0, calendar),\n end: ax.c2r(binEnd, 0, calendar),\n size: finalSize,\n _dataSpan: dataMax - dataMin\n };\n};\n\n\nfunction autoShiftNumericBins(binStart, data, ax, dataMin, dataMax) {\n var edgecount = 0;\n var midcount = 0;\n var intcount = 0;\n var blankCount = 0;\n\n function nearEdge(v) {\n // is a value within 1% of a bin edge?\n return (1 + (v - binStart) * 100 / ax.dtick) % 100 < 2;\n }\n\n for(var i = 0; i < data.length; i++) {\n if(data[i] % 1 === 0) intcount++;\n else if(!isNumeric(data[i])) blankCount++;\n\n if(nearEdge(data[i])) edgecount++;\n if(nearEdge(data[i] + ax.dtick / 2)) midcount++;\n }\n var dataCount = data.length - blankCount;\n\n if(intcount === dataCount && ax.type !== 'date') {\n if(ax.dtick < 1) {\n // all integers: if bin size is <1, it's because\n // that was specifically requested (large nbins)\n // so respect that... but center the bins containing\n // integers on those integers\n\n binStart = dataMin - 0.5 * ax.dtick;\n } else {\n // otherwise start half an integer down regardless of\n // the bin size, just enough to clear up endpoint\n // ambiguity about which integers are in which bins.\n\n binStart -= 0.5;\n if(binStart + ax.dtick < dataMin) binStart += ax.dtick;\n }\n } else if(midcount < dataCount * 0.1) {\n if(edgecount > dataCount * 0.3 ||\n nearEdge(dataMin) || nearEdge(dataMax)) {\n // lots of points at the edge, not many in the middle\n // shift half a bin\n var binshift = ax.dtick / 2;\n binStart += (binStart + binshift < dataMin) ? binshift : -binshift;\n }\n }\n return binStart;\n}\n\n\nfunction autoShiftMonthBins(binStart, data, dtick, dataMin, calendar) {\n var stats = Lib.findExactDates(data, calendar);\n // number of data points that needs to be an exact value\n // to shift that increment to (near) the bin center\n var threshold = 0.8;\n\n if(stats.exactDays > threshold) {\n var numMonths = Number(dtick.substr(1));\n\n if((stats.exactYears > threshold) && (numMonths % 12 === 0)) {\n // The exact middle of a non-leap-year is 1.5 days into July\n // so if we start the bins here, all but leap years will\n // get hover-labeled as exact years.\n binStart = axes.tickIncrement(binStart, 'M6', 'reverse') + ONEDAY * 1.5;\n } else if(stats.exactMonths > threshold) {\n // Months are not as clean, but if we shift half the *longest*\n // month (31/2 days) then 31-day months will get labeled exactly\n // and shorter months will get labeled with the correct month\n // but shifted 12-36 hours into it.\n binStart = axes.tickIncrement(binStart, 'M1', 'reverse') + ONEDAY * 15.5;\n } else {\n // Shifting half a day is exact, but since these are month bins it\n // will always give a somewhat odd-looking label, until we do something\n // smarter like showing the bin boundaries (or the bounds of the actual\n // data in each bin)\n binStart -= ONEDAY / 2;\n }\n var nextBinStart = axes.tickIncrement(binStart, dtick);\n\n if(nextBinStart <= dataMin) return nextBinStart;\n }\n return binStart;\n}\n\n// ----------------------------------------------------\n// Ticks and grids\n// ----------------------------------------------------\n\n// ensure we have tick0, dtick, and tick rounding calculated\naxes.prepTicks = function(ax) {\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n\n // calculate max number of (auto) ticks to display based on plot size\n if(ax.tickmode === 'auto' || !ax.dtick) {\n var nt = ax.nticks;\n var minPx;\n\n if(!nt) {\n if(ax.type === 'category' || ax.type === 'multicategory') {\n minPx = ax.tickfont ? (ax.tickfont.size || 12) * 1.2 : 15;\n nt = ax._length / minPx;\n } else {\n minPx = ax._id.charAt(0) === 'y' ? 40 : 80;\n nt = Lib.constrain(ax._length / minPx, 4, 9) + 1;\n }\n\n // radial axes span half their domain,\n // multiply nticks value by two to get correct number of auto ticks.\n if(ax._name === 'radialaxis') nt *= 2;\n }\n\n // add a couple of extra digits for filling in ticks when we\n // have explicit tickvals without tick text\n if(ax.tickmode === 'array') nt *= 100;\n\n axes.autoTicks(ax, Math.abs(rng[1] - rng[0]) / nt);\n // check for a forced minimum dtick\n if(ax._minDtick > 0 && ax.dtick < ax._minDtick * 2) {\n ax.dtick = ax._minDtick;\n ax.tick0 = ax.l2r(ax._forceTick0);\n }\n }\n\n // check for missing tick0\n if(!ax.tick0) {\n ax.tick0 = (ax.type === 'date') ? '2000-01-01' : 0;\n }\n\n // ensure we don't try to make ticks below our minimum precision\n // see https://github.com/plotly/plotly.js/issues/2892\n if(ax.type === 'date' && ax.dtick < 0.1) ax.dtick = 0.1;\n\n // now figure out rounding of tick values\n autoTickRound(ax);\n};\n\n// calculate the ticks: text, values, positioning\n// if ticks are set to automatic, determine the right values (tick0,dtick)\n// in any case, set tickround to # of digits to round tick labels to,\n// or codes to this effect for log and date scales\naxes.calcTicks = function calcTicks(ax) {\n axes.prepTicks(ax);\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n\n // now that we've figured out the auto values for formatting\n // in case we're missing some ticktext, we can break out for array ticks\n if(ax.tickmode === 'array') return arrayTicks(ax);\n\n // find the first tick\n ax._tmin = axes.tickFirst(ax);\n\n // add a tiny bit so we get ticks which may have rounded out\n var startTick = rng[0] * 1.0001 - rng[1] * 0.0001;\n var endTick = rng[1] * 1.0001 - rng[0] * 0.0001;\n // check for reversed axis\n var axrev = (rng[1] < rng[0]);\n\n // No visible ticks? Quit.\n // I've only seen this on category axes with all categories off the edge.\n if((ax._tmin < startTick) !== axrev) return [];\n\n // return the full set of tick vals\n var tickVals = [];\n if(ax.type === 'category' || ax.type === 'multicategory') {\n endTick = (axrev) ? Math.max(-0.5, endTick) :\n Math.min(ax._categories.length - 0.5, endTick);\n }\n\n var isDLog = (ax.type === 'log') && !(isNumeric(ax.dtick) || ax.dtick.charAt(0) === 'L');\n\n var xPrevious = null;\n var maxTicks = Math.max(1000, ax._length || 0);\n for(var x = ax._tmin;\n (axrev) ? (x >= endTick) : (x <= endTick);\n x = axes.tickIncrement(x, ax.dtick, axrev, ax.calendar)) {\n // prevent infinite loops - no more than one tick per pixel,\n // and make sure each value is different from the previous\n if(tickVals.length > maxTicks || x === xPrevious) break;\n xPrevious = x;\n\n var minor = false;\n if(isDLog && (x !== (x | 0))) {\n minor = true;\n }\n\n tickVals.push({\n minor: minor,\n value: x\n });\n }\n\n // If same angle over a full circle, the last tick vals is a duplicate.\n // TODO must do something similar for angular date axes.\n if(isAngular(ax) && Math.abs(rng[1] - rng[0]) === 360) {\n tickVals.pop();\n }\n\n // save the last tick as well as first, so we can\n // show the exponent only on the last one\n ax._tmax = (tickVals[tickVals.length - 1] || {}).value;\n\n // for showing the rest of a date when the main tick label is only the\n // latter part: ax._prevDateHead holds what we showed most recently.\n // Start with it cleared and mark that we're in calcTicks (ie calculating a\n // whole string of these so we should care what the previous date head was!)\n ax._prevDateHead = '';\n ax._inCalcTicks = true;\n\n var ticksOut = new Array(tickVals.length);\n for(var i = 0; i < tickVals.length; i++) {\n ticksOut[i] = axes.tickText(\n ax,\n tickVals[i].value,\n false, // hover\n tickVals[i].minor // noSuffixPrefix\n );\n }\n\n ax._inCalcTicks = false;\n\n return ticksOut;\n};\n\nfunction arrayTicks(ax) {\n var vals = ax.tickvals;\n var text = ax.ticktext;\n var ticksOut = new Array(vals.length);\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n var r0expanded = rng[0] * 1.0001 - rng[1] * 0.0001;\n var r1expanded = rng[1] * 1.0001 - rng[0] * 0.0001;\n var tickMin = Math.min(r0expanded, r1expanded);\n var tickMax = Math.max(r0expanded, r1expanded);\n var j = 0;\n\n // without a text array, just format the given values as any other ticks\n // except with more precision to the numbers\n if(!Array.isArray(text)) text = [];\n\n // make sure showing ticks doesn't accidentally add new categories\n // TODO multicategory, if we allow ticktext / tickvals\n var tickVal2l = ax.type === 'category' ? ax.d2l_noadd : ax.d2l;\n\n // array ticks on log axes always show the full number\n // (if no explicit ticktext overrides it)\n if(ax.type === 'log' && String(ax.dtick).charAt(0) !== 'L') {\n ax.dtick = 'L' + Math.pow(10, Math.floor(Math.min(ax.range[0], ax.range[1])) - 1);\n }\n\n for(var i = 0; i < vals.length; i++) {\n var vali = tickVal2l(vals[i]);\n if(vali > tickMin && vali < tickMax) {\n if(text[i] === undefined) ticksOut[j] = axes.tickText(ax, vali);\n else ticksOut[j] = tickTextObj(ax, vali, String(text[i]));\n j++;\n }\n }\n\n if(j < vals.length) ticksOut.splice(j, vals.length - j);\n\n return ticksOut;\n}\n\nvar roundBase10 = [2, 5, 10];\nvar roundBase24 = [1, 2, 3, 6, 12];\nvar roundBase60 = [1, 2, 5, 10, 15, 30];\n// 2&3 day ticks are weird, but need something btwn 1&7\nvar roundDays = [1, 2, 3, 7, 14];\n// approx. tick positions for log axes, showing all (1) and just 1, 2, 5 (2)\n// these don't have to be exact, just close enough to round to the right value\nvar roundLog1 = [-0.046, 0, 0.301, 0.477, 0.602, 0.699, 0.778, 0.845, 0.903, 0.954, 1];\nvar roundLog2 = [-0.301, 0, 0.301, 0.699, 1];\n// N.B. `thetaunit; 'radians' angular axes must be converted to degrees\nvar roundAngles = [15, 30, 45, 90, 180];\n\nfunction roundDTick(roughDTick, base, roundingSet) {\n return base * Lib.roundUp(roughDTick / base, roundingSet);\n}\n\n// autoTicks: calculate best guess at pleasant ticks for this axis\n// inputs:\n// ax - an axis object\n// roughDTick - rough tick spacing (to be turned into a nice round number)\n// outputs (into ax):\n// tick0: starting point for ticks (not necessarily on the graph)\n// usually 0 for numeric (=10^0=1 for log) or jan 1, 2000 for dates\n// dtick: the actual, nice round tick spacing, usually a little larger than roughDTick\n// if the ticks are spaced linearly (linear scale, categories,\n// log with only full powers, date ticks < month),\n// this will just be a number\n// months: M#\n// years: M# where # is 12*number of years\n// log with linear ticks: L# where # is the linear tick spacing\n// log showing powers plus some intermediates:\n// D1 shows all digits, D2 shows 2 and 5\naxes.autoTicks = function(ax, roughDTick) {\n var base;\n\n function getBase(v) {\n return Math.pow(v, Math.floor(Math.log(roughDTick) / Math.LN10));\n }\n\n if(ax.type === 'date') {\n ax.tick0 = Lib.dateTick0(ax.calendar);\n // the criteria below are all based on the rough spacing we calculate\n // being > half of the final unit - so precalculate twice the rough val\n var roughX2 = 2 * roughDTick;\n\n if(roughX2 > ONEAVGYEAR) {\n roughDTick /= ONEAVGYEAR;\n base = getBase(10);\n ax.dtick = 'M' + (12 * roundDTick(roughDTick, base, roundBase10));\n } else if(roughX2 > ONEAVGMONTH) {\n roughDTick /= ONEAVGMONTH;\n ax.dtick = 'M' + roundDTick(roughDTick, 1, roundBase24);\n } else if(roughX2 > ONEDAY) {\n ax.dtick = roundDTick(roughDTick, ONEDAY, roundDays);\n // get week ticks on sunday\n // this will also move the base tick off 2000-01-01 if dtick is\n // 2 or 3 days... but that's a weird enough case that we'll ignore it.\n ax.tick0 = Lib.dateTick0(ax.calendar, true);\n } else if(roughX2 > ONEHOUR) {\n ax.dtick = roundDTick(roughDTick, ONEHOUR, roundBase24);\n } else if(roughX2 > ONEMIN) {\n ax.dtick = roundDTick(roughDTick, ONEMIN, roundBase60);\n } else if(roughX2 > ONESEC) {\n ax.dtick = roundDTick(roughDTick, ONESEC, roundBase60);\n } else {\n // milliseconds\n base = getBase(10);\n ax.dtick = roundDTick(roughDTick, base, roundBase10);\n }\n } else if(ax.type === 'log') {\n ax.tick0 = 0;\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n\n if(roughDTick > 0.7) {\n // only show powers of 10\n ax.dtick = Math.ceil(roughDTick);\n } else if(Math.abs(rng[1] - rng[0]) < 1) {\n // span is less than one power of 10\n var nt = 1.5 * Math.abs((rng[1] - rng[0]) / roughDTick);\n\n // ticks on a linear scale, labeled fully\n roughDTick = Math.abs(Math.pow(10, rng[1]) -\n Math.pow(10, rng[0])) / nt;\n base = getBase(10);\n ax.dtick = 'L' + roundDTick(roughDTick, base, roundBase10);\n } else {\n // include intermediates between powers of 10,\n // labeled with small digits\n // ax.dtick = \"D2\" (show 2 and 5) or \"D1\" (show all digits)\n ax.dtick = (roughDTick > 0.3) ? 'D2' : 'D1';\n }\n } else if(ax.type === 'category' || ax.type === 'multicategory') {\n ax.tick0 = 0;\n ax.dtick = Math.ceil(Math.max(roughDTick, 1));\n } else if(isAngular(ax)) {\n ax.tick0 = 0;\n base = 1;\n ax.dtick = roundDTick(roughDTick, base, roundAngles);\n } else {\n // auto ticks always start at 0\n ax.tick0 = 0;\n base = getBase(10);\n ax.dtick = roundDTick(roughDTick, base, roundBase10);\n }\n\n // prevent infinite loops\n if(ax.dtick === 0) ax.dtick = 1;\n\n // TODO: this is from log axis histograms with autorange off\n if(!isNumeric(ax.dtick) && typeof ax.dtick !== 'string') {\n var olddtick = ax.dtick;\n ax.dtick = 1;\n throw 'ax.dtick error: ' + String(olddtick);\n }\n};\n\n// after dtick is already known, find tickround = precision\n// to display in tick labels\n// for numeric ticks, integer # digits after . to round to\n// for date ticks, the last date part to show (y,m,d,H,M,S)\n// or an integer # digits past seconds\nfunction autoTickRound(ax) {\n var dtick = ax.dtick;\n\n ax._tickexponent = 0;\n if(!isNumeric(dtick) && typeof dtick !== 'string') {\n dtick = 1;\n }\n\n if(ax.type === 'category' || ax.type === 'multicategory') {\n ax._tickround = null;\n }\n if(ax.type === 'date') {\n // If tick0 is unusual, give tickround a bit more information\n // not necessarily *all* the information in tick0 though, if it's really odd\n // minimal string length for tick0: 'd' is 10, 'M' is 16, 'S' is 19\n // take off a leading minus (year < 0) and i (intercalary month) so length is consistent\n var tick0ms = ax.r2l(ax.tick0);\n var tick0str = ax.l2r(tick0ms).replace(/(^-|i)/g, '');\n var tick0len = tick0str.length;\n\n if(String(dtick).charAt(0) === 'M') {\n // any tick0 more specific than a year: alway show the full date\n if(tick0len > 10 || tick0str.substr(5) !== '01-01') ax._tickround = 'd';\n // show the month unless ticks are full multiples of a year\n else ax._tickround = (+(dtick.substr(1)) % 12 === 0) ? 'y' : 'm';\n } else if((dtick >= ONEDAY && tick0len <= 10) || (dtick >= ONEDAY * 15)) ax._tickround = 'd';\n else if((dtick >= ONEMIN && tick0len <= 16) || (dtick >= ONEHOUR)) ax._tickround = 'M';\n else if((dtick >= ONESEC && tick0len <= 19) || (dtick >= ONEMIN)) ax._tickround = 'S';\n else {\n // tickround is a number of digits of fractional seconds\n // of any two adjacent ticks, at least one will have the maximum fractional digits\n // of all possible ticks - so take the max. length of tick0 and the next one\n var tick1len = ax.l2r(tick0ms + dtick).replace(/^-/, '').length;\n ax._tickround = Math.max(tick0len, tick1len) - 20;\n\n // We shouldn't get here... but in case there's a situation I'm\n // not thinking of where tick0str and tick1str are identical or\n // something, fall back on maximum precision\n if(ax._tickround < 0) ax._tickround = 4;\n }\n } else if(isNumeric(dtick) || dtick.charAt(0) === 'L') {\n // linear or log (except D1, D2)\n var rng = ax.range.map(ax.r2d || Number);\n if(!isNumeric(dtick)) dtick = Number(dtick.substr(1));\n // 2 digits past largest digit of dtick\n ax._tickround = 2 - Math.floor(Math.log(dtick) / Math.LN10 + 0.01);\n\n var maxend = Math.max(Math.abs(rng[0]), Math.abs(rng[1]));\n var rangeexp = Math.floor(Math.log(maxend) / Math.LN10 + 0.01);\n if(Math.abs(rangeexp) > 3) {\n if(isSIFormat(ax.exponentformat) && !beyondSI(rangeexp)) {\n ax._tickexponent = 3 * Math.round((rangeexp - 1) / 3);\n } else ax._tickexponent = rangeexp;\n }\n } else {\n // D1 or D2 (log)\n ax._tickround = null;\n }\n}\n\n// months and years don't have constant millisecond values\n// (but a year is always 12 months so we only need months)\n// log-scale ticks are also not consistently spaced, except\n// for pure powers of 10\n// numeric ticks always have constant differences, other datetime ticks\n// can all be calculated as constant number of milliseconds\naxes.tickIncrement = function(x, dtick, axrev, calendar) {\n var axSign = axrev ? -1 : 1;\n\n // includes linear, all dates smaller than month, and pure 10^n in log\n if(isNumeric(dtick)) return x + axSign * dtick;\n\n // everything else is a string, one character plus a number\n var tType = dtick.charAt(0);\n var dtSigned = axSign * Number(dtick.substr(1));\n\n // Dates: months (or years - see Lib.incrementMonth)\n if(tType === 'M') return Lib.incrementMonth(x, dtSigned, calendar);\n\n // Log scales: Linear, Digits\n else if(tType === 'L') return Math.log(Math.pow(10, x) + dtSigned) / Math.LN10;\n\n // log10 of 2,5,10, or all digits (logs just have to be\n // close enough to round)\n else if(tType === 'D') {\n var tickset = (dtick === 'D2') ? roundLog2 : roundLog1;\n var x2 = x + axSign * 0.01;\n var frac = Lib.roundUp(Lib.mod(x2, 1), tickset, axrev);\n\n return Math.floor(x2) +\n Math.log(d3.round(Math.pow(10, frac), 1)) / Math.LN10;\n } else throw 'unrecognized dtick ' + String(dtick);\n};\n\n// calculate the first tick on an axis\naxes.tickFirst = function(ax) {\n var r2l = ax.r2l || Number;\n var rng = Lib.simpleMap(ax.range, r2l);\n var axrev = rng[1] < rng[0];\n var sRound = axrev ? Math.floor : Math.ceil;\n // add a tiny extra bit to make sure we get ticks\n // that may have been rounded out\n var r0 = rng[0] * 1.0001 - rng[1] * 0.0001;\n var dtick = ax.dtick;\n var tick0 = r2l(ax.tick0);\n\n if(isNumeric(dtick)) {\n var tmin = sRound((r0 - tick0) / dtick) * dtick + tick0;\n\n // make sure no ticks outside the category list\n if(ax.type === 'category' || ax.type === 'multicategory') {\n tmin = Lib.constrain(tmin, 0, ax._categories.length - 1);\n }\n return tmin;\n }\n\n var tType = dtick.charAt(0);\n var dtNum = Number(dtick.substr(1));\n\n // Dates: months (or years)\n if(tType === 'M') {\n var cnt = 0;\n var t0 = tick0;\n var t1, mult, newDTick;\n\n // This algorithm should work for *any* nonlinear (but close to linear!)\n // tick spacing. Limit to 10 iterations, for gregorian months it's normally <=3.\n while(cnt < 10) {\n t1 = axes.tickIncrement(t0, dtick, axrev, ax.calendar);\n if((t1 - r0) * (t0 - r0) <= 0) {\n // t1 and t0 are on opposite sides of r0! we've succeeded!\n if(axrev) return Math.min(t0, t1);\n return Math.max(t0, t1);\n }\n mult = (r0 - ((t0 + t1) / 2)) / (t1 - t0);\n newDTick = tType + ((Math.abs(Math.round(mult)) || 1) * dtNum);\n t0 = axes.tickIncrement(t0, newDTick, mult < 0 ? !axrev : axrev, ax.calendar);\n cnt++;\n }\n Lib.error('tickFirst did not converge', ax);\n return t0;\n } else if(tType === 'L') {\n // Log scales: Linear, Digits\n\n return Math.log(sRound(\n (Math.pow(10, r0) - tick0) / dtNum) * dtNum + tick0) / Math.LN10;\n } else if(tType === 'D') {\n var tickset = (dtick === 'D2') ? roundLog2 : roundLog1;\n var frac = Lib.roundUp(Lib.mod(r0, 1), tickset, axrev);\n\n return Math.floor(r0) +\n Math.log(d3.round(Math.pow(10, frac), 1)) / Math.LN10;\n } else throw 'unrecognized dtick ' + String(dtick);\n};\n\n// draw the text for one tick.\n// px,py are the location on gd.paper\n// prefix is there so the x axis ticks can be dropped a line\n// ax is the axis layout, x is the tick value\n// hover is a (truthy) flag for whether to show numbers with a bit\n// more precision for hovertext\naxes.tickText = function(ax, x, hover, noSuffixPrefix) {\n var out = tickTextObj(ax, x);\n var arrayMode = ax.tickmode === 'array';\n var extraPrecision = hover || arrayMode;\n var axType = ax.type;\n // TODO multicategory, if we allow ticktext / tickvals\n var tickVal2l = axType === 'category' ? ax.d2l_noadd : ax.d2l;\n var i;\n\n if(arrayMode && Array.isArray(ax.ticktext)) {\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n var minDiff = Math.abs(rng[1] - rng[0]) / 10000;\n\n for(i = 0; i < ax.ticktext.length; i++) {\n if(Math.abs(x - tickVal2l(ax.tickvals[i])) < minDiff) break;\n }\n if(i < ax.ticktext.length) {\n out.text = String(ax.ticktext[i]);\n return out;\n }\n }\n\n function isHidden(showAttr) {\n if(showAttr === undefined) return true;\n if(hover) return showAttr === 'none';\n\n var firstOrLast = {\n first: ax._tmin,\n last: ax._tmax\n }[showAttr];\n\n return showAttr !== 'all' && x !== firstOrLast;\n }\n\n var hideexp = hover ?\n 'never' :\n ax.exponentformat !== 'none' && isHidden(ax.showexponent) ? 'hide' : '';\n\n if(axType === 'date') formatDate(ax, out, hover, extraPrecision);\n else if(axType === 'log') formatLog(ax, out, hover, extraPrecision, hideexp);\n else if(axType === 'category') formatCategory(ax, out);\n else if(axType === 'multicategory') formatMultiCategory(ax, out, hover);\n else if(isAngular(ax)) formatAngle(ax, out, hover, extraPrecision, hideexp);\n else formatLinear(ax, out, hover, extraPrecision, hideexp);\n\n // add prefix and suffix\n if(!noSuffixPrefix) {\n if(ax.tickprefix && !isHidden(ax.showtickprefix)) out.text = ax.tickprefix + out.text;\n if(ax.ticksuffix && !isHidden(ax.showticksuffix)) out.text += ax.ticksuffix;\n }\n\n // Setup ticks and grid lines boundaries\n // at 1/2 a 'category' to the left/bottom\n if(ax.tickson === 'boundaries' || ax.showdividers) {\n var inbounds = function(v) {\n var p = ax.l2p(v);\n return p >= 0 && p <= ax._length ? v : null;\n };\n\n out.xbnd = [\n inbounds(out.x - 0.5),\n inbounds(out.x + ax.dtick - 0.5)\n ];\n }\n\n return out;\n};\n\n/**\n * create text for a hover label on this axis, with special handling of\n * log axes (where negative values can't be displayed but can appear in hover text)\n *\n * @param {object} ax: the axis to format text for\n * @param {number} val: calcdata value to format\n * @param {Optional(number)} val2: a second value to display\n *\n * @returns {string} `val` formatted as a string appropriate to this axis, or\n * `val` and `val2` as a range (ie ' - ') if `val2` is provided and\n * it's different from `val`.\n */\naxes.hoverLabelText = function(ax, val, val2) {\n if(val2 !== BADNUM && val2 !== val) {\n return axes.hoverLabelText(ax, val) + ' - ' + axes.hoverLabelText(ax, val2);\n }\n\n var logOffScale = (ax.type === 'log' && val <= 0);\n var tx = axes.tickText(ax, ax.c2l(logOffScale ? -val : val), 'hover').text;\n\n if(logOffScale) {\n return val === 0 ? '0' : MINUS_SIGN + tx;\n }\n\n // TODO: should we do something special if the axis calendar and\n // the data calendar are different? Somehow display both dates with\n // their system names? Right now it will just display in the axis calendar\n // but users could add the other one as text.\n return tx;\n};\n\nfunction tickTextObj(ax, x, text) {\n var tf = ax.tickfont || {};\n\n return {\n x: x,\n dx: 0,\n dy: 0,\n text: text || '',\n fontSize: tf.size,\n font: tf.family,\n fontColor: tf.color\n };\n}\n\nfunction formatDate(ax, out, hover, extraPrecision) {\n var tr = ax._tickround;\n var fmt = (hover && ax.hoverformat) || axes.getTickFormat(ax);\n\n if(extraPrecision) {\n // second or sub-second precision: extra always shows max digits.\n // for other fields, extra precision just adds one field.\n if(isNumeric(tr)) tr = 4;\n else tr = {y: 'm', m: 'd', d: 'M', M: 'S', S: 4}[tr];\n }\n\n var dateStr = Lib.formatDate(out.x, fmt, tr, ax._dateFormat, ax.calendar, ax._extraFormat);\n var headStr;\n\n var splitIndex = dateStr.indexOf('\\n');\n if(splitIndex !== -1) {\n headStr = dateStr.substr(splitIndex + 1);\n dateStr = dateStr.substr(0, splitIndex);\n }\n\n if(extraPrecision) {\n // if extraPrecision led to trailing zeros, strip them off\n // actually, this can lead to removing even more zeros than\n // in the original rounding, but that's fine because in these\n // contexts uniformity is not so important (if there's even\n // anything to be uniform with!)\n\n // can we remove the whole time part?\n if(dateStr === '00:00:00' || dateStr === '00:00') {\n dateStr = headStr;\n headStr = '';\n } else if(dateStr.length === 8) {\n // strip off seconds if they're zero (zero fractional seconds\n // are already omitted)\n // but we never remove minutes and leave just hours\n dateStr = dateStr.replace(/:00$/, '');\n }\n }\n\n if(headStr) {\n if(hover) {\n // hover puts it all on one line, so headPart works best up front\n // except for year headPart: turn this into \"Jan 1, 2000\" etc.\n if(tr === 'd') dateStr += ', ' + headStr;\n else dateStr = headStr + (dateStr ? ', ' + dateStr : '');\n } else if(!ax._inCalcTicks || (headStr !== ax._prevDateHead)) {\n dateStr += '
' + headStr;\n ax._prevDateHead = headStr;\n }\n }\n\n out.text = dateStr;\n}\n\nfunction formatLog(ax, out, hover, extraPrecision, hideexp) {\n var dtick = ax.dtick;\n var x = out.x;\n var tickformat = ax.tickformat;\n var dtChar0 = typeof dtick === 'string' && dtick.charAt(0);\n\n if(hideexp === 'never') {\n // If this is a hover label, then we must *never* hide the exponent\n // for the sake of display, which could give the wrong value by\n // potentially many orders of magnitude. If hideexp was 'never', then\n // it's now succeeded by preventing the other condition from automating\n // this choice. Thus we can unset it so that the axis formatting takes\n // precedence.\n hideexp = '';\n }\n\n if(extraPrecision && (dtChar0 !== 'L')) {\n dtick = 'L3';\n dtChar0 = 'L';\n }\n\n if(tickformat || (dtChar0 === 'L')) {\n out.text = numFormat(Math.pow(10, x), ax, hideexp, extraPrecision);\n } else if(isNumeric(dtick) || ((dtChar0 === 'D') && (Lib.mod(x + 0.01, 1) < 0.1))) {\n var p = Math.round(x);\n var absP = Math.abs(p);\n var exponentFormat = ax.exponentformat;\n if(exponentFormat === 'power' || (isSIFormat(exponentFormat) && beyondSI(p))) {\n if(p === 0) out.text = 1;\n else if(p === 1) out.text = '10';\n else out.text = '10' + (p > 1 ? '' : MINUS_SIGN) + absP + '';\n\n out.fontSize *= 1.25;\n } else if((exponentFormat === 'e' || exponentFormat === 'E') && absP > 2) {\n out.text = '1' + exponentFormat + (p > 0 ? '+' : MINUS_SIGN) + absP;\n } else {\n out.text = numFormat(Math.pow(10, x), ax, '', 'fakehover');\n if(dtick === 'D1' && ax._id.charAt(0) === 'y') {\n out.dy -= out.fontSize / 6;\n }\n }\n } else if(dtChar0 === 'D') {\n out.text = String(Math.round(Math.pow(10, Lib.mod(x, 1))));\n out.fontSize *= 0.75;\n } else throw 'unrecognized dtick ' + String(dtick);\n\n // if 9's are printed on log scale, move the 10's away a bit\n if(ax.dtick === 'D1') {\n var firstChar = String(out.text).charAt(0);\n if(firstChar === '0' || firstChar === '1') {\n if(ax._id.charAt(0) === 'y') {\n out.dx -= out.fontSize / 4;\n } else {\n out.dy += out.fontSize / 2;\n out.dx += (ax.range[1] > ax.range[0] ? 1 : -1) *\n out.fontSize * (x < 0 ? 0.5 : 0.25);\n }\n }\n }\n}\n\nfunction formatCategory(ax, out) {\n var tt = ax._categories[Math.round(out.x)];\n if(tt === undefined) tt = '';\n out.text = String(tt);\n}\n\nfunction formatMultiCategory(ax, out, hover) {\n var v = Math.round(out.x);\n var cats = ax._categories[v] || [];\n var tt = cats[1] === undefined ? '' : String(cats[1]);\n var tt2 = cats[0] === undefined ? '' : String(cats[0]);\n\n if(hover) {\n // TODO is this what we want?\n out.text = tt2 + ' - ' + tt;\n } else {\n // setup for secondary labels\n out.text = tt;\n out.text2 = tt2;\n }\n}\n\nfunction formatLinear(ax, out, hover, extraPrecision, hideexp) {\n if(hideexp === 'never') {\n // If this is a hover label, then we must *never* hide the exponent\n // for the sake of display, which could give the wrong value by\n // potentially many orders of magnitude. If hideexp was 'never', then\n // it's now succeeded by preventing the other condition from automating\n // this choice. Thus we can unset it so that the axis formatting takes\n // precedence.\n hideexp = '';\n } else if(ax.showexponent === 'all' && Math.abs(out.x / ax.dtick) < 1e-6) {\n // don't add an exponent to zero if we're showing all exponents\n // so the only reason you'd show an exponent on zero is if it's the\n // ONLY tick to get an exponent (first or last)\n hideexp = 'hide';\n }\n out.text = numFormat(out.x, ax, hideexp, extraPrecision);\n}\n\nfunction formatAngle(ax, out, hover, extraPrecision, hideexp) {\n if(ax.thetaunit === 'radians' && !hover) {\n var num = out.x / 180;\n\n if(num === 0) {\n out.text = '0';\n } else {\n var frac = num2frac(num);\n\n if(frac[1] >= 100) {\n out.text = numFormat(Lib.deg2rad(out.x), ax, hideexp, extraPrecision);\n } else {\n var isNeg = out.x < 0;\n\n if(frac[1] === 1) {\n if(frac[0] === 1) out.text = 'π';\n else out.text = frac[0] + 'π';\n } else {\n out.text = [\n '', frac[0], '',\n '⁄',\n '', frac[1], '',\n 'π'\n ].join('');\n }\n\n if(isNeg) out.text = MINUS_SIGN + out.text;\n }\n }\n } else {\n out.text = numFormat(out.x, ax, hideexp, extraPrecision);\n }\n}\n\n// inspired by\n// https://github.com/yisibl/num2fraction/blob/master/index.js\nfunction num2frac(num) {\n function almostEq(a, b) {\n return Math.abs(a - b) <= 1e-6;\n }\n\n function findGCD(a, b) {\n return almostEq(b, 0) ? a : findGCD(b, a % b);\n }\n\n function findPrecision(n) {\n var e = 1;\n while(!almostEq(Math.round(n * e) / e, n)) {\n e *= 10;\n }\n return e;\n }\n\n var precision = findPrecision(num);\n var number = num * precision;\n var gcd = Math.abs(findGCD(number, precision));\n\n return [\n // numerator\n Math.round(number / gcd),\n // denominator\n Math.round(precision / gcd)\n ];\n}\n\n// format a number (tick value) according to the axis settings\n// new, more reliable procedure than d3.round or similar:\n// add half the rounding increment, then stringify and truncate\n// also automatically switch to sci. notation\nvar SIPREFIXES = ['f', 'p', 'n', 'μ', 'm', '', 'k', 'M', 'G', 'T'];\n\nfunction isSIFormat(exponentFormat) {\n return exponentFormat === 'SI' || exponentFormat === 'B';\n}\n\n// are we beyond the range of common SI prefixes?\n// 10^-16 -> 1x10^-16\n// 10^-15 -> 1f\n// ...\n// 10^14 -> 100T\n// 10^15 -> 1x10^15\n// 10^16 -> 1x10^16\nfunction beyondSI(exponent) {\n return exponent > 14 || exponent < -15;\n}\n\nfunction numFormat(v, ax, fmtoverride, hover) {\n var isNeg = v < 0;\n // max number of digits past decimal point to show\n var tickRound = ax._tickround;\n var exponentFormat = fmtoverride || ax.exponentformat || 'B';\n var exponent = ax._tickexponent;\n var tickformat = axes.getTickFormat(ax);\n var separatethousands = ax.separatethousands;\n\n // special case for hover: set exponent just for this value, and\n // add a couple more digits of precision over tick labels\n if(hover) {\n // make a dummy axis obj to get the auto rounding and exponent\n var ah = {\n exponentformat: exponentFormat,\n dtick: ax.showexponent === 'none' ? ax.dtick :\n (isNumeric(v) ? Math.abs(v) || 1 : 1),\n // if not showing any exponents, don't change the exponent\n // from what we calculate\n range: ax.showexponent === 'none' ? ax.range.map(ax.r2d) : [0, v || 1]\n };\n autoTickRound(ah);\n tickRound = (Number(ah._tickround) || 0) + 4;\n exponent = ah._tickexponent;\n if(ax.hoverformat) tickformat = ax.hoverformat;\n }\n\n if(tickformat) return ax._numFormat(tickformat)(v).replace(/-/g, MINUS_SIGN);\n\n // 'epsilon' - rounding increment\n var e = Math.pow(10, -tickRound) / 2;\n\n // exponentFormat codes:\n // 'e' (1.2e+6, default)\n // 'E' (1.2E+6)\n // 'SI' (1.2M)\n // 'B' (same as SI except 10^9=B not G)\n // 'none' (1200000)\n // 'power' (1.2x10^6)\n // 'hide' (1.2, use 3rd argument=='hide' to eg\n // only show exponent on last tick)\n if(exponentFormat === 'none') exponent = 0;\n\n // take the sign out, put it back manually at the end\n // - makes cases easier\n v = Math.abs(v);\n if(v < e) {\n // 0 is just 0, but may get exponent if it's the last tick\n v = '0';\n isNeg = false;\n } else {\n v += e;\n // take out a common exponent, if any\n if(exponent) {\n v *= Math.pow(10, -exponent);\n tickRound += exponent;\n }\n // round the mantissa\n if(tickRound === 0) v = String(Math.floor(v));\n else if(tickRound < 0) {\n v = String(Math.round(v));\n v = v.substr(0, v.length + tickRound);\n for(var i = tickRound; i < 0; i++) v += '0';\n } else {\n v = String(v);\n var dp = v.indexOf('.') + 1;\n if(dp) v = v.substr(0, dp + tickRound).replace(/\\.?0+$/, '');\n }\n // insert appropriate decimal point and thousands separator\n v = Lib.numSeparate(v, ax._separators, separatethousands);\n }\n\n // add exponent\n if(exponent && exponentFormat !== 'hide') {\n if(isSIFormat(exponentFormat) && beyondSI(exponent)) exponentFormat = 'power';\n\n var signedExponent;\n if(exponent < 0) signedExponent = MINUS_SIGN + -exponent;\n else if(exponentFormat !== 'power') signedExponent = '+' + exponent;\n else signedExponent = String(exponent);\n\n if(exponentFormat === 'e' || exponentFormat === 'E') {\n v += exponentFormat + signedExponent;\n } else if(exponentFormat === 'power') {\n v += '×10' + signedExponent + '';\n } else if(exponentFormat === 'B' && exponent === 9) {\n v += 'B';\n } else if(isSIFormat(exponentFormat)) {\n v += SIPREFIXES[exponent / 3 + 5];\n }\n }\n\n // put sign back in and return\n // replace standard minus character (which is technically a hyphen)\n // with a true minus sign\n if(isNeg) return MINUS_SIGN + v;\n return v;\n}\n\naxes.getTickFormat = function(ax) {\n var i;\n\n function convertToMs(dtick) {\n return typeof dtick !== 'string' ? dtick : Number(dtick.replace('M', '')) * ONEAVGMONTH;\n }\n\n function compareLogTicks(left, right) {\n var priority = ['L', 'D'];\n if(typeof left === typeof right) {\n if(typeof left === 'number') {\n return left - right;\n } else {\n var leftPriority = priority.indexOf(left.charAt(0));\n var rightPriority = priority.indexOf(right.charAt(0));\n if(leftPriority === rightPriority) {\n return Number(left.replace(/(L|D)/g, '')) - Number(right.replace(/(L|D)/g, ''));\n } else {\n return leftPriority - rightPriority;\n }\n }\n } else {\n return typeof left === 'number' ? 1 : -1;\n }\n }\n\n function isProperStop(dtick, range, convert) {\n var convertFn = convert || function(x) { return x;};\n var leftDtick = range[0];\n var rightDtick = range[1];\n return ((!leftDtick && typeof leftDtick !== 'number') || convertFn(leftDtick) <= convertFn(dtick)) &&\n ((!rightDtick && typeof rightDtick !== 'number') || convertFn(rightDtick) >= convertFn(dtick));\n }\n\n function isProperLogStop(dtick, range) {\n var isLeftDtickNull = range[0] === null;\n var isRightDtickNull = range[1] === null;\n var isDtickInRangeLeft = compareLogTicks(dtick, range[0]) >= 0;\n var isDtickInRangeRight = compareLogTicks(dtick, range[1]) <= 0;\n return (isLeftDtickNull || isDtickInRangeLeft) && (isRightDtickNull || isDtickInRangeRight);\n }\n\n var tickstop, stopi;\n if(ax.tickformatstops && ax.tickformatstops.length > 0) {\n switch(ax.type) {\n case 'date':\n case 'linear': {\n for(i = 0; i < ax.tickformatstops.length; i++) {\n stopi = ax.tickformatstops[i];\n if(stopi.enabled && isProperStop(ax.dtick, stopi.dtickrange, convertToMs)) {\n tickstop = stopi;\n break;\n }\n }\n break;\n }\n case 'log': {\n for(i = 0; i < ax.tickformatstops.length; i++) {\n stopi = ax.tickformatstops[i];\n if(stopi.enabled && isProperLogStop(ax.dtick, stopi.dtickrange)) {\n tickstop = stopi;\n break;\n }\n }\n break;\n }\n default:\n }\n }\n return tickstop ? tickstop.value : ax.tickformat;\n};\n\n// getSubplots - extract all subplot IDs we need\n// as an array of items like 'xy', 'x2y', 'x2y2'...\n// sorted by x (x,x2,x3...) then y\n// optionally restrict to only subplots containing axis object ax\n//\n// NOTE: this is currently only used OUTSIDE plotly.js (toolpanel, webapp)\n// ideally we get rid of it there (or just copy this there) and remove it here\naxes.getSubplots = function(gd, ax) {\n var subplotObj = gd._fullLayout._subplots;\n var allSubplots = subplotObj.cartesian.concat(subplotObj.gl2d || []);\n\n var out = ax ? axes.findSubplotsWithAxis(allSubplots, ax) : allSubplots;\n\n out.sort(function(a, b) {\n var aParts = a.substr(1).split('y');\n var bParts = b.substr(1).split('y');\n\n if(aParts[0] === bParts[0]) return +aParts[1] - +bParts[1];\n return +aParts[0] - +bParts[0];\n });\n\n return out;\n};\n\n// find all subplots with axis 'ax'\n// NOTE: this is only used in axes.getSubplots (only used outside plotly.js) and\n// gl2d/convert (where it restricts axis subplots to only those with gl2d)\naxes.findSubplotsWithAxis = function(subplots, ax) {\n var axMatch = new RegExp(\n (ax._id.charAt(0) === 'x') ? ('^' + ax._id + 'y') : (ax._id + '$')\n );\n var subplotsWithAx = [];\n\n for(var i = 0; i < subplots.length; i++) {\n var sp = subplots[i];\n if(axMatch.test(sp)) subplotsWithAx.push(sp);\n }\n\n return subplotsWithAx;\n};\n\n// makeClipPaths: prepare clipPaths for all single axes and all possible xy pairings\naxes.makeClipPaths = function(gd) {\n var fullLayout = gd._fullLayout;\n\n // for more info: https://github.com/plotly/plotly.js/issues/2595\n if(fullLayout._hasOnlyLargeSploms) return;\n\n var fullWidth = {_offset: 0, _length: fullLayout.width, _id: ''};\n var fullHeight = {_offset: 0, _length: fullLayout.height, _id: ''};\n var xaList = axes.list(gd, 'x', true);\n var yaList = axes.list(gd, 'y', true);\n var clipList = [];\n var i, j;\n\n for(i = 0; i < xaList.length; i++) {\n clipList.push({x: xaList[i], y: fullHeight});\n for(j = 0; j < yaList.length; j++) {\n if(i === 0) clipList.push({x: fullWidth, y: yaList[j]});\n clipList.push({x: xaList[i], y: yaList[j]});\n }\n }\n\n // selectors don't work right with camelCase tags,\n // have to use class instead\n // https://groups.google.com/forum/#!topic/d3-js/6EpAzQ2gU9I\n var axClips = fullLayout._clips.selectAll('.axesclip')\n .data(clipList, function(d) { return d.x._id + d.y._id; });\n\n axClips.enter().append('clipPath')\n .classed('axesclip', true)\n .attr('id', function(d) { return 'clip' + fullLayout._uid + d.x._id + d.y._id; })\n .append('rect');\n\n axClips.exit().remove();\n\n axClips.each(function(d) {\n d3.select(this).select('rect').attr({\n x: d.x._offset || 0,\n y: d.y._offset || 0,\n width: d.x._length || 1,\n height: d.y._length || 1\n });\n });\n};\n\n/**\n * Main multi-axis drawing routine!\n *\n * @param {DOM element} gd : graph div\n * @param {string or array of strings} arg : polymorphic argument\n * @param {object} opts:\n * - @param {boolean} skipTitle : optional flag to skip axis title draw/update\n *\n * Signature 1: Axes.draw(gd, 'redraw')\n * use this to clear and redraw all axes on graph\n *\n * Signature 2: Axes.draw(gd, '')\n * use this to draw all axes on graph w/o the selectAll().remove()\n * of the 'redraw' signature\n *\n * Signature 3: Axes.draw(gd, [axId, axId2, ...])\n * where the items are axis id string,\n * use this to update multiple axes in one call\n *\n * N.B draw updates:\n * - ax._r (stored range for use by zoom/pan)\n * - ax._rl (stored linearized range for use by zoom/pan)\n */\naxes.draw = function(gd, arg, opts) {\n var fullLayout = gd._fullLayout;\n\n if(arg === 'redraw') {\n fullLayout._paper.selectAll('g.subplot').each(function(d) {\n var id = d[0];\n var plotinfo = fullLayout._plots[id];\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n plotinfo.xaxislayer.selectAll('.' + xa._id + 'tick').remove();\n plotinfo.yaxislayer.selectAll('.' + ya._id + 'tick').remove();\n plotinfo.xaxislayer.selectAll('.' + xa._id + 'tick2').remove();\n plotinfo.yaxislayer.selectAll('.' + ya._id + 'tick2').remove();\n plotinfo.xaxislayer.selectAll('.' + xa._id + 'divider').remove();\n plotinfo.yaxislayer.selectAll('.' + ya._id + 'divider').remove();\n\n if(plotinfo.gridlayer) plotinfo.gridlayer.selectAll('path').remove();\n if(plotinfo.zerolinelayer) plotinfo.zerolinelayer.selectAll('path').remove();\n\n fullLayout._infolayer.select('.g-' + xa._id + 'title').remove();\n fullLayout._infolayer.select('.g-' + ya._id + 'title').remove();\n });\n }\n\n var axList = (!arg || arg === 'redraw') ? axes.listIds(gd) : arg;\n\n return Lib.syncOrAsync(axList.map(function(axId) {\n return function() {\n if(!axId) return;\n\n var ax = axes.getFromId(gd, axId);\n var axDone = axes.drawOne(gd, ax, opts);\n\n ax._r = ax.range.slice();\n ax._rl = Lib.simpleMap(ax._r, ax.r2l);\n\n return axDone;\n };\n }));\n};\n\n/**\n * Draw one cartesian axis\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * @param {object} opts\n * - @param {boolean} skipTitle (set to true to skip axis title draw call)\n *\n * Depends on:\n * - ax._mainSubplot (from linkSubplots)\n * - ax._mainAxis\n * - ax._anchorAxis\n * - ax._subplotsWith\n * - ax._counterDomainMin, ax._counterDomainMax (optionally, from linkSubplots)\n * - ax._tickAngles (on redraw only, old value relinked during supplyDefaults)\n * - ax._mainLinePosition (from lsInner)\n * - ax._mainMirrorPosition\n * - ax._linepositions\n *\n * Fills in:\n * - ax._vals:\n * - ax._gridVals:\n * - ax._selections:\n * - ax._tickAngles:\n * - ax._depth (when required only):\n * - and calls ax.setScale\n */\naxes.drawOne = function(gd, ax, opts) {\n opts = opts || {};\n\n var i, sp, plotinfo;\n\n ax.setScale();\n\n var fullLayout = gd._fullLayout;\n var axId = ax._id;\n var axLetter = axId.charAt(0);\n var counterLetter = axes.counterLetter(axId);\n var mainLinePosition = ax._mainLinePosition;\n var mainMirrorPosition = ax._mainMirrorPosition;\n var mainPlotinfo = fullLayout._plots[ax._mainSubplot];\n var mainAxLayer = mainPlotinfo[axLetter + 'axislayer'];\n\n var vals = ax._vals = axes.calcTicks(ax);\n\n // Add a couple of axis properties that should cause us to recreate\n // elements. Used in d3 data function.\n var axInfo = [ax.mirror, mainLinePosition, mainMirrorPosition].join('_');\n for(i = 0; i < vals.length; i++) {\n vals[i].axInfo = axInfo;\n }\n\n // stash selections to avoid DOM queries e.g.\n // - stash tickLabels selection, so that drawTitle can use it to scoot title\n ax._selections = {};\n // stash tick angle (including the computed 'auto' values) per tick-label class\n // linkup 'previous' tick angles on redraws\n if(ax._tickAngles) ax._prevTickAngles = ax._tickAngles;\n ax._tickAngles = {};\n // measure [in px] between axis position and outward-most part of bounding box\n // (touching either the tick label or ticks)\n // depth can be expansive to compute, so we only do so when required\n ax._depth = null;\n\n // calcLabelLevelBbox can be expensive,\n // so make sure to not call it twice during the same Axes.drawOne call\n // by stashing label-level bounding boxes per tick-label class\n var llbboxes = {};\n function getLabelLevelBbox(suffix) {\n var cls = axId + (suffix || 'tick');\n if(!llbboxes[cls]) llbboxes[cls] = calcLabelLevelBbox(ax, cls);\n return llbboxes[cls];\n }\n\n if(!ax.visible) return;\n\n var transFn = axes.makeTransFn(ax);\n var tickVals;\n // We remove zero lines, grid lines, and inside ticks if they're within 1px of the end\n // The key case here is removing zero lines when the axis bound is zero\n var valsClipped;\n\n if(ax.tickson === 'boundaries') {\n var boundaryVals = getBoundaryVals(ax, vals);\n valsClipped = axes.clipEnds(ax, boundaryVals);\n tickVals = ax.ticks === 'inside' ? valsClipped : boundaryVals;\n } else {\n valsClipped = axes.clipEnds(ax, vals);\n tickVals = ax.ticks === 'inside' ? valsClipped : vals;\n }\n\n var gridVals = ax._gridVals = valsClipped;\n var dividerVals = getDividerVals(ax, vals);\n\n if(!fullLayout._hasOnlyLargeSploms) {\n var subplotsWithAx = ax._subplotsWith;\n\n // keep track of which subplots (by main counter axis) we've already\n // drawn grids for, so we don't overdraw overlaying subplots\n var finishedGrids = {};\n\n for(i = 0; i < subplotsWithAx.length; i++) {\n sp = subplotsWithAx[i];\n plotinfo = fullLayout._plots[sp];\n\n var counterAxis = plotinfo[counterLetter + 'axis'];\n var mainCounterID = counterAxis._mainAxis._id;\n if(finishedGrids[mainCounterID]) continue;\n finishedGrids[mainCounterID] = 1;\n\n var gridPath = axLetter === 'x' ?\n 'M0,' + counterAxis._offset + 'v' + counterAxis._length :\n 'M' + counterAxis._offset + ',0h' + counterAxis._length;\n\n axes.drawGrid(gd, ax, {\n vals: gridVals,\n counterAxis: counterAxis,\n layer: plotinfo.gridlayer.select('.' + axId),\n path: gridPath,\n transFn: transFn\n });\n axes.drawZeroLine(gd, ax, {\n counterAxis: counterAxis,\n layer: plotinfo.zerolinelayer,\n path: gridPath,\n transFn: transFn\n });\n }\n }\n\n var tickSigns = axes.getTickSigns(ax);\n var tickSubplots = [];\n\n if(ax.ticks) {\n var mainTickPath = axes.makeTickPath(ax, mainLinePosition, tickSigns[2]);\n var mirrorTickPath;\n var fullTickPath;\n if(ax._anchorAxis && ax.mirror && ax.mirror !== true) {\n mirrorTickPath = axes.makeTickPath(ax, mainMirrorPosition, tickSigns[3]);\n fullTickPath = mainTickPath + mirrorTickPath;\n } else {\n mirrorTickPath = '';\n fullTickPath = mainTickPath;\n }\n\n var tickPath;\n if(ax.showdividers && ax.ticks === 'outside' && ax.tickson === 'boundaries') {\n var dividerLookup = {};\n for(i = 0; i < dividerVals.length; i++) {\n dividerLookup[dividerVals[i].x] = 1;\n }\n tickPath = function(d) {\n return dividerLookup[d.x] ? mirrorTickPath : fullTickPath;\n };\n } else {\n tickPath = fullTickPath;\n }\n\n axes.drawTicks(gd, ax, {\n vals: tickVals,\n layer: mainAxLayer,\n path: tickPath,\n transFn: transFn\n });\n\n if(ax.mirror === 'allticks') {\n tickSubplots = Object.keys(ax._linepositions || {});\n }\n }\n\n for(i = 0; i < tickSubplots.length; i++) {\n sp = tickSubplots[i];\n plotinfo = fullLayout._plots[sp];\n // [bottom or left, top or right], free and main are handled above\n var linepositions = ax._linepositions[sp] || [];\n var spTickPath = axes.makeTickPath(ax, linepositions[0], tickSigns[0]) +\n axes.makeTickPath(ax, linepositions[1], tickSigns[1]);\n\n axes.drawTicks(gd, ax, {\n vals: tickVals,\n layer: plotinfo[axLetter + 'axislayer'],\n path: spTickPath,\n transFn: transFn\n });\n }\n\n var seq = [];\n\n // tick labels - for now just the main labels.\n // TODO: mirror labels, esp for subplots\n\n seq.push(function() {\n return axes.drawLabels(gd, ax, {\n vals: vals,\n layer: mainAxLayer,\n transFn: transFn,\n labelFns: axes.makeLabelFns(ax, mainLinePosition)\n });\n });\n\n if(ax.type === 'multicategory') {\n var pad = {x: 2, y: 10}[axLetter];\n\n seq.push(function() {\n var bboxKey = {x: 'height', y: 'width'}[axLetter];\n var standoff = getLabelLevelBbox()[bboxKey] + pad +\n (ax._tickAngles[axId + 'tick'] ? ax.tickfont.size * LINE_SPACING : 0);\n\n return axes.drawLabels(gd, ax, {\n vals: getSecondaryLabelVals(ax, vals),\n layer: mainAxLayer,\n cls: axId + 'tick2',\n repositionOnUpdate: true,\n secondary: true,\n transFn: transFn,\n labelFns: axes.makeLabelFns(ax, mainLinePosition + standoff * tickSigns[4])\n });\n });\n\n seq.push(function() {\n ax._depth = tickSigns[4] * (getLabelLevelBbox('tick2')[ax.side] - mainLinePosition);\n\n return drawDividers(gd, ax, {\n vals: dividerVals,\n layer: mainAxLayer,\n path: axes.makeTickPath(ax, mainLinePosition, tickSigns[4], ax._depth),\n transFn: transFn\n });\n });\n } else if(ax.title.hasOwnProperty('standoff')) {\n seq.push(function() {\n ax._depth = tickSigns[4] * (getLabelLevelBbox()[ax.side] - mainLinePosition);\n });\n }\n\n var hasRangeSlider = Registry.getComponentMethod('rangeslider', 'isVisible')(ax);\n\n seq.push(function() {\n var s = ax.side.charAt(0);\n var sMirror = OPPOSITE_SIDE[ax.side].charAt(0);\n var pos = axes.getPxPosition(gd, ax);\n var outsideTickLen = ax.ticks === 'outside' ? ax.ticklen : 0;\n var llbbox;\n\n var push;\n var mirrorPush;\n var rangeSliderPush;\n\n if(ax.automargin || hasRangeSlider) {\n if(ax.type === 'multicategory') {\n llbbox = getLabelLevelBbox('tick2');\n } else {\n llbbox = getLabelLevelBbox();\n if(axLetter === 'x' && s === 'b') {\n ax._depth = Math.max(llbbox.width > 0 ? llbbox.bottom - pos : 0, outsideTickLen);\n }\n }\n }\n\n if(ax.automargin) {\n push = {x: 0, y: 0, r: 0, l: 0, t: 0, b: 0};\n var domainIndices = [0, 1];\n\n if(axLetter === 'x') {\n if(s === 'b') {\n push[s] = ax._depth;\n } else {\n push[s] = ax._depth = Math.max(llbbox.width > 0 ? pos - llbbox.top : 0, outsideTickLen);\n domainIndices.reverse();\n }\n\n if(llbbox.width > 0) {\n var rExtra = llbbox.right - (ax._offset + ax._length);\n if(rExtra > 0) {\n push.xr = 1;\n push.r = rExtra;\n }\n var lExtra = ax._offset - llbbox.left;\n if(lExtra > 0) {\n push.xl = 0;\n push.l = lExtra;\n }\n }\n } else {\n if(s === 'l') {\n push[s] = ax._depth = Math.max(llbbox.height > 0 ? pos - llbbox.left : 0, outsideTickLen);\n } else {\n push[s] = ax._depth = Math.max(llbbox.height > 0 ? llbbox.right - pos : 0, outsideTickLen);\n domainIndices.reverse();\n }\n\n if(llbbox.height > 0) {\n var bExtra = llbbox.bottom - (ax._offset + ax._length);\n if(bExtra > 0) {\n push.yb = 0;\n push.b = bExtra;\n }\n var tExtra = ax._offset - llbbox.top;\n if(tExtra > 0) {\n push.yt = 1;\n push.t = tExtra;\n }\n }\n }\n\n push[counterLetter] = ax.anchor === 'free' ?\n ax.position :\n ax._anchorAxis.domain[domainIndices[0]];\n\n if(ax.title.text !== fullLayout._dfltTitle[axLetter]) {\n push[s] += approxTitleDepth(ax) + (ax.title.standoff || 0);\n }\n\n if(ax.mirror && ax.anchor !== 'free') {\n mirrorPush = {x: 0, y: 0, r: 0, l: 0, t: 0, b: 0};\n\n mirrorPush[sMirror] = ax.linewidth;\n if(ax.mirror && ax.mirror !== true) mirrorPush[sMirror] += outsideTickLen;\n\n if(ax.mirror === true || ax.mirror === 'ticks') {\n mirrorPush[counterLetter] = ax._anchorAxis.domain[domainIndices[1]];\n } else if(ax.mirror === 'all' || ax.mirror === 'allticks') {\n mirrorPush[counterLetter] = [ax._counterDomainMin, ax._counterDomainMax][domainIndices[1]];\n }\n }\n }\n\n if(hasRangeSlider) {\n rangeSliderPush = Registry.getComponentMethod('rangeslider', 'autoMarginOpts')(gd, ax);\n }\n\n Plots.autoMargin(gd, axAutoMarginID(ax), push);\n Plots.autoMargin(gd, axMirrorAutoMarginID(ax), mirrorPush);\n Plots.autoMargin(gd, rangeSliderAutoMarginID(ax), rangeSliderPush);\n });\n\n if(!opts.skipTitle &&\n !(hasRangeSlider && ax.side === 'bottom')\n ) {\n seq.push(function() { return drawTitle(gd, ax); });\n }\n\n return Lib.syncOrAsync(seq);\n};\n\nfunction getBoundaryVals(ax, vals) {\n var out = [];\n var i;\n\n // boundaryVals are never used for labels;\n // no need to worry about the other tickTextObj keys\n var _push = function(d, bndIndex) {\n var xb = d.xbnd[bndIndex];\n if(xb !== null) {\n out.push(Lib.extendFlat({}, d, {x: xb}));\n }\n };\n\n if(vals.length) {\n for(i = 0; i < vals.length; i++) {\n _push(vals[i], 0);\n }\n _push(vals[i - 1], 1);\n }\n\n return out;\n}\n\nfunction getSecondaryLabelVals(ax, vals) {\n var out = [];\n var lookup = {};\n\n for(var i = 0; i < vals.length; i++) {\n var d = vals[i];\n if(lookup[d.text2]) {\n lookup[d.text2].push(d.x);\n } else {\n lookup[d.text2] = [d.x];\n }\n }\n\n for(var k in lookup) {\n out.push(tickTextObj(ax, Lib.interp(lookup[k], 0.5), k));\n }\n\n return out;\n}\n\nfunction getDividerVals(ax, vals) {\n var out = [];\n var i, current;\n\n // never used for labels;\n // no need to worry about the other tickTextObj keys\n var _push = function(d, bndIndex) {\n var xb = d.xbnd[bndIndex];\n if(xb !== null) {\n out.push(Lib.extendFlat({}, d, {x: xb}));\n }\n };\n\n if(ax.showdividers && vals.length) {\n for(i = 0; i < vals.length; i++) {\n var d = vals[i];\n if(d.text2 !== current) {\n _push(d, 0);\n }\n current = d.text2;\n }\n _push(vals[i - 1], 1);\n }\n\n return out;\n}\n\nfunction calcLabelLevelBbox(ax, cls) {\n var top, bottom;\n var left, right;\n\n if(ax._selections[cls].size()) {\n top = Infinity;\n bottom = -Infinity;\n left = Infinity;\n right = -Infinity;\n ax._selections[cls].each(function() {\n var thisLabel = selectTickLabel(this);\n // Use parent node , to make Drawing.bBox\n // retrieve a bbox computed with transform info\n //\n // To improve perf, it would be nice to use `thisLabel.node()`\n // (like in fixLabelOverlaps) instead and use Axes.getPxPosition\n // together with the makeLabelFns outputs and `tickangle`\n // to compute one bbox per (tick value x tick style)\n var bb = Drawing.bBox(thisLabel.node().parentNode);\n top = Math.min(top, bb.top);\n bottom = Math.max(bottom, bb.bottom);\n left = Math.min(left, bb.left);\n right = Math.max(right, bb.right);\n });\n } else {\n top = 0;\n bottom = 0;\n left = 0;\n right = 0;\n }\n\n return {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n height: bottom - top,\n width: right - left\n };\n}\n\n/**\n * Which direction do the 'ax.side' values, and free ticks go?\n *\n * @param {object} ax (full) axis object\n * - {string} _id (starting with 'x' or 'y')\n * - {string} side\n * - {string} ticks\n * @return {array} all entries are either -1 or 1\n * - [0]: sign for top/right ticks (i.e. negative SVG direction)\n * - [1]: sign for bottom/left ticks (i.e. positive SVG direction)\n * - [2]: sign for ticks corresponding to 'ax.side'\n * - [3]: sign for ticks mirroring 'ax.side'\n * - [4]: sign of arrow starting at axis pointing towards margin\n */\naxes.getTickSigns = function(ax) {\n var axLetter = ax._id.charAt(0);\n var sideOpposite = {x: 'top', y: 'right'}[axLetter];\n var main = ax.side === sideOpposite ? 1 : -1;\n var out = [-1, 1, main, -main];\n // then we flip if outside XOR y axis\n if((ax.ticks !== 'inside') === (axLetter === 'x')) {\n out = out.map(function(v) { return -v; });\n }\n // independent of `ticks`; do not flip this one\n if(ax.side) {\n out.push({l: -1, t: -1, r: 1, b: 1}[ax.side.charAt(0)]);\n }\n return out;\n};\n\n/**\n * Make axis translate transform function\n *\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {number} _offset\n * - {fn} l2p\n * @return {fn} function of calcTicks items\n */\naxes.makeTransFn = function(ax) {\n var axLetter = ax._id.charAt(0);\n var offset = ax._offset;\n return axLetter === 'x' ?\n function(d) { return 'translate(' + (offset + ax.l2p(d.x)) + ',0)'; } :\n function(d) { return 'translate(0,' + (offset + ax.l2p(d.x)) + ')'; };\n};\n\n/**\n * Make axis tick path string\n *\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {number} ticklen\n * - {number} linewidth\n * @param {number} shift along direction of ticklen\n * @param {1 or -1} sgn tick sign\n * @param {number (optional)} len tick length\n * @return {string}\n */\naxes.makeTickPath = function(ax, shift, sgn, len) {\n len = len !== undefined ? len : ax.ticklen;\n\n var axLetter = ax._id.charAt(0);\n var pad = (ax.linewidth || 1) / 2;\n\n return axLetter === 'x' ?\n 'M0,' + (shift + pad * sgn) + 'v' + (len * sgn) :\n 'M' + (shift + pad * sgn) + ',0h' + (len * sgn);\n};\n\n/**\n * Make axis tick label x, y and anchor functions\n *\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {string} ticks\n * - {number} ticklen\n * - {string} side\n * - {number} linewidth\n * - {number} tickfont.size\n * - {boolean} showline\n * @param {number} shift\n * @param {number} angle [in degrees] ...\n * @return {object}\n * - {fn} xFn\n * - {fn} yFn\n * - {fn} anchorFn\n * - {fn} heightFn\n * - {number} labelStandoff (gap parallel to ticks)\n * - {number} labelShift (gap perpendicular to ticks)\n */\naxes.makeLabelFns = function(ax, shift, angle) {\n var axLetter = ax._id.charAt(0);\n var ticksOnOutsideLabels = ax.tickson !== 'boundaries' && ax.ticks === 'outside';\n\n var labelStandoff = 0;\n var labelShift = 0;\n\n if(ticksOnOutsideLabels) {\n labelStandoff += ax.ticklen;\n }\n if(angle && ax.ticks === 'outside') {\n var rad = Lib.deg2rad(angle);\n labelStandoff = ax.ticklen * Math.cos(rad) + 1;\n labelShift = ax.ticklen * Math.sin(rad);\n }\n if(ax.showticklabels && (ticksOnOutsideLabels || ax.showline)) {\n labelStandoff += 0.2 * ax.tickfont.size;\n }\n labelStandoff += (ax.linewidth || 1) / 2;\n\n var out = {\n labelStandoff: labelStandoff,\n labelShift: labelShift\n };\n\n var x0, y0, ff, flipIt;\n\n if(axLetter === 'x') {\n flipIt = ax.side === 'bottom' ? 1 : -1;\n x0 = labelShift * flipIt;\n y0 = shift + labelStandoff * flipIt;\n ff = ax.side === 'bottom' ? 1 : -0.2;\n\n out.xFn = function(d) { return d.dx + x0; };\n out.yFn = function(d) { return d.dy + y0 + d.fontSize * ff; };\n out.anchorFn = function(d, a) {\n if(!isNumeric(a) || a === 0 || a === 180) {\n return 'middle';\n }\n return (a * flipIt < 0) ? 'end' : 'start';\n };\n out.heightFn = function(d, a, h) {\n return (a < -60 || a > 60) ? -0.5 * h :\n ax.side === 'top' ? -h :\n 0;\n };\n } else if(axLetter === 'y') {\n flipIt = ax.side === 'right' ? 1 : -1;\n x0 = labelStandoff;\n y0 = -labelShift * flipIt;\n ff = Math.abs(ax.tickangle) === 90 ? 0.5 : 0;\n\n out.xFn = function(d) { return d.dx + shift + (x0 + d.fontSize * ff) * flipIt; };\n out.yFn = function(d) { return d.dy + y0 + d.fontSize * MID_SHIFT; };\n out.anchorFn = function(d, a) {\n if(isNumeric(a) && Math.abs(a) === 90) {\n return 'middle';\n }\n return ax.side === 'right' ? 'start' : 'end';\n };\n out.heightFn = function(d, a, h) {\n a *= ax.side === 'left' ? 1 : -1;\n return a < -30 ? -h :\n a < 30 ? -0.5 * h :\n 0;\n };\n }\n\n return out;\n};\n\nfunction tickDataFn(d) {\n return [d.text, d.x, d.axInfo, d.font, d.fontSize, d.fontColor].join('_');\n}\n\n/**\n * Draw axis ticks\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {string} ticks\n * - {number} linewidth\n * - {string} tickcolor\n * @param {object} opts\n * - {array of object} vals (calcTicks output-like)\n * - {d3 selection} layer\n * - {string or fn} path\n * - {fn} transFn\n * - {boolean} crisp (set to false to unset crisp-edge SVG rendering)\n */\naxes.drawTicks = function(gd, ax, opts) {\n opts = opts || {};\n\n var cls = ax._id + 'tick';\n\n var ticks = opts.layer.selectAll('path.' + cls)\n .data(ax.ticks ? opts.vals : [], tickDataFn);\n\n ticks.exit().remove();\n\n ticks.enter().append('path')\n .classed(cls, 1)\n .classed('ticks', 1)\n .classed('crisp', opts.crisp !== false)\n .call(Color.stroke, ax.tickcolor)\n .style('stroke-width', Drawing.crispRound(gd, ax.tickwidth, 1) + 'px')\n .attr('d', opts.path);\n\n ticks.attr('transform', opts.transFn);\n};\n\n/**\n * Draw axis grid\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {boolean} showgrid\n * - {string} gridcolor\n * - {string} gridwidth\n * - {boolean} zeroline\n * - {string} type\n * - {string} dtick\n * @param {object} opts\n * - {array of object} vals (calcTicks output-like)\n * - {d3 selection} layer\n * - {object} counterAxis (full axis object corresponding to counter axis)\n * optional - only required if this axis supports zero lines\n * - {string or fn} path\n * - {fn} transFn\n * - {boolean} crisp (set to false to unset crisp-edge SVG rendering)\n */\naxes.drawGrid = function(gd, ax, opts) {\n opts = opts || {};\n\n var cls = ax._id + 'grid';\n var vals = opts.vals;\n var counterAx = opts.counterAxis;\n if(ax.showgrid === false) {\n vals = [];\n } else if(counterAx && axes.shouldShowZeroLine(gd, ax, counterAx)) {\n var isArrayMode = ax.tickmode === 'array';\n for(var i = 0; i < vals.length; i++) {\n var xi = vals[i].x;\n if(isArrayMode ? !xi : (Math.abs(xi) < ax.dtick / 100)) {\n vals = vals.slice(0, i).concat(vals.slice(i + 1));\n // In array mode you can in principle have multiple\n // ticks at 0, so test them all. Otherwise once we found\n // one we can stop.\n if(isArrayMode) i--;\n else break;\n }\n }\n }\n\n var grid = opts.layer.selectAll('path.' + cls)\n .data(vals, tickDataFn);\n\n grid.exit().remove();\n\n grid.enter().append('path')\n .classed(cls, 1)\n .classed('crisp', opts.crisp !== false);\n\n ax._gw = Drawing.crispRound(gd, ax.gridwidth, 1);\n\n grid.attr('transform', opts.transFn)\n .attr('d', opts.path)\n .call(Color.stroke, ax.gridcolor || '#ddd')\n .style('stroke-width', ax._gw + 'px');\n\n if(typeof opts.path === 'function') grid.attr('d', opts.path);\n};\n\n/**\n * Draw axis zero-line\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {boolean} zeroline\n * - {number} zerolinewidth\n * - {string} zerolinecolor\n * - {number (optional)} _gridWidthCrispRound\n * @param {object} opts\n * - {d3 selection} layer\n * - {object} counterAxis (full axis object corresponding to counter axis)\n * - {string or fn} path\n * - {fn} transFn\n * - {boolean} crisp (set to false to unset crisp-edge SVG rendering)\n */\naxes.drawZeroLine = function(gd, ax, opts) {\n opts = opts || opts;\n\n var cls = ax._id + 'zl';\n var show = axes.shouldShowZeroLine(gd, ax, opts.counterAxis);\n\n var zl = opts.layer.selectAll('path.' + cls)\n .data(show ? [{x: 0, id: ax._id}] : []);\n\n zl.exit().remove();\n\n zl.enter().append('path')\n .classed(cls, 1)\n .classed('zl', 1)\n .classed('crisp', opts.crisp !== false)\n .each(function() {\n // use the fact that only one element can enter to trigger a sort.\n // If several zerolines enter at the same time we will sort once per,\n // but generally this should be a minimal overhead.\n opts.layer.selectAll('path').sort(function(da, db) {\n return axisIds.idSort(da.id, db.id);\n });\n });\n\n zl.attr('transform', opts.transFn)\n .attr('d', opts.path)\n .call(Color.stroke, ax.zerolinecolor || Color.defaultLine)\n .style('stroke-width', Drawing.crispRound(gd, ax.zerolinewidth, ax._gw || 1) + 'px');\n};\n\n/**\n * Draw axis tick labels\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {boolean} showticklabels\n * - {number} tickangle\n * - {object (optional)} _selections\n * - {object} (optional)} _tickAngles\n * - {object} (optional)} _prevTickAngles\n * @param {object} opts\n * - {array of object} vals (calcTicks output-like)\n * - {d3 selection} layer\n * - {string (optional)} cls (node className)\n * - {boolean} repositionOnUpdate (set to true to reposition update selection)\n * - {boolean} secondary\n * - {fn} transFn\n * - {object} labelFns\n * + {fn} xFn\n * + {fn} yFn\n * + {fn} anchorFn\n * + {fn} heightFn\n */\naxes.drawLabels = function(gd, ax, opts) {\n opts = opts || {};\n\n var fullLayout = gd._fullLayout;\n var axId = ax._id;\n var axLetter = axId.charAt(0);\n var cls = opts.cls || axId + 'tick';\n var vals = opts.vals;\n var labelFns = opts.labelFns;\n var tickAngle = opts.secondary ? 0 : ax.tickangle;\n var prevAngle = (ax._prevTickAngles || {})[cls];\n\n var tickLabels = opts.layer.selectAll('g.' + cls)\n .data(ax.showticklabels ? vals : [], tickDataFn);\n\n var labelsReady = [];\n\n tickLabels.enter().append('g')\n .classed(cls, 1)\n .append('text')\n // only so tex has predictable alignment that we can\n // alter later\n .attr('text-anchor', 'middle')\n .each(function(d) {\n var thisLabel = d3.select(this);\n var newPromise = gd._promises.length;\n\n thisLabel\n .call(svgTextUtils.positionText, labelFns.xFn(d), labelFns.yFn(d))\n .call(Drawing.font, d.font, d.fontSize, d.fontColor)\n .text(d.text)\n .call(svgTextUtils.convertToTspans, gd);\n\n if(gd._promises[newPromise]) {\n // if we have an async label, we'll deal with that\n // all here so take it out of gd._promises and\n // instead position the label and promise this in\n // labelsReady\n labelsReady.push(gd._promises.pop().then(function() {\n positionLabels(thisLabel, tickAngle);\n }));\n } else {\n // sync label: just position it now.\n positionLabels(thisLabel, tickAngle);\n }\n });\n\n tickLabels.exit().remove();\n\n if(opts.repositionOnUpdate) {\n tickLabels.each(function(d) {\n d3.select(this).select('text')\n .call(svgTextUtils.positionText, labelFns.xFn(d), labelFns.yFn(d));\n });\n }\n\n function positionLabels(s, angle) {\n s.each(function(d) {\n var thisLabel = d3.select(this);\n var mathjaxGroup = thisLabel.select('.text-math-group');\n var anchor = labelFns.anchorFn(d, angle);\n\n var transform = opts.transFn.call(thisLabel.node(), d) +\n ((isNumeric(angle) && +angle !== 0) ?\n (' rotate(' + angle + ',' + labelFns.xFn(d) + ',' +\n (labelFns.yFn(d) - d.fontSize / 2) + ')') :\n '');\n\n // how much to shift a multi-line label to center it vertically.\n var nLines = svgTextUtils.lineCount(thisLabel);\n var lineHeight = LINE_SPACING * d.fontSize;\n var anchorHeight = labelFns.heightFn(d, isNumeric(angle) ? +angle : 0, (nLines - 1) * lineHeight);\n\n if(anchorHeight) {\n transform += ' translate(0, ' + anchorHeight + ')';\n }\n\n if(mathjaxGroup.empty()) {\n thisLabel.select('text').attr({\n transform: transform,\n 'text-anchor': anchor\n });\n } else {\n var mjWidth = Drawing.bBox(mathjaxGroup.node()).width;\n var mjShift = mjWidth * {end: -0.5, start: 0.5}[anchor];\n mathjaxGroup.attr('transform', transform + (mjShift ? 'translate(' + mjShift + ',0)' : ''));\n }\n });\n }\n\n // make sure all labels are correctly positioned at their base angle\n // the positionLabels call above is only for newly drawn labels.\n // do this without waiting, using the last calculated angle to\n // minimize flicker, then do it again when we know all labels are\n // there, putting back the prescribed angle to check for overlaps.\n positionLabels(tickLabels, (prevAngle + 1) ? prevAngle : tickAngle);\n\n function allLabelsReady() {\n return labelsReady.length && Promise.all(labelsReady);\n }\n\n var autoangle = null;\n\n function fixLabelOverlaps() {\n positionLabels(tickLabels, tickAngle);\n\n // check for auto-angling if x labels overlap\n // don't auto-angle at all for log axes with\n // base and digit format\n if(vals.length && axLetter === 'x' && !isNumeric(tickAngle) &&\n (ax.type !== 'log' || String(ax.dtick).charAt(0) !== 'D')\n ) {\n autoangle = 0;\n\n var maxFontSize = 0;\n var lbbArray = [];\n var i;\n\n tickLabels.each(function(d) {\n maxFontSize = Math.max(maxFontSize, d.fontSize);\n\n var x = ax.l2p(d.x);\n var thisLabel = selectTickLabel(this);\n var bb = Drawing.bBox(thisLabel.node());\n\n lbbArray.push({\n // ignore about y, just deal with x overlaps\n top: 0,\n bottom: 10,\n height: 10,\n left: x - bb.width / 2,\n // impose a 2px gap\n right: x + bb.width / 2 + 2,\n width: bb.width + 2\n });\n });\n\n if((ax.tickson === 'boundaries' || ax.showdividers) && !opts.secondary) {\n var gap = 2;\n if(ax.ticks) gap += ax.tickwidth / 2;\n\n // TODO should secondary labels also fall into this fix-overlap regime?\n\n for(i = 0; i < lbbArray.length; i++) {\n var xbnd = vals[i].xbnd;\n var lbb = lbbArray[i];\n if(\n (xbnd[0] !== null && (lbb.left - ax.l2p(xbnd[0])) < gap) ||\n (xbnd[1] !== null && (ax.l2p(xbnd[1]) - lbb.right) < gap)\n ) {\n autoangle = 90;\n break;\n }\n }\n } else {\n var vLen = vals.length;\n var tickSpacing = Math.abs((vals[vLen - 1].x - vals[0].x) * ax._m) / (vLen - 1);\n var rotate90 = (tickSpacing < maxFontSize * 2.5) || ax.type === 'multicategory';\n\n // any overlap at all - set 30 degrees or 90 degrees\n for(i = 0; i < lbbArray.length - 1; i++) {\n if(Lib.bBoxIntersect(lbbArray[i], lbbArray[i + 1])) {\n autoangle = rotate90 ? 90 : 30;\n break;\n }\n }\n }\n\n if(autoangle) {\n positionLabels(tickLabels, autoangle);\n }\n }\n }\n\n if(ax._selections) {\n ax._selections[cls] = tickLabels;\n }\n\n var seq = [allLabelsReady];\n\n // N.B. during auto-margin redraws, if the axis fixed its label overlaps\n // by rotating 90 degrees, do not attempt to re-fix its label overlaps\n // as this can lead to infinite redraw loops!\n if(ax.automargin && fullLayout._redrawFromAutoMarginCount && prevAngle === 90) {\n autoangle = 90;\n seq.push(function() {\n positionLabels(tickLabels, prevAngle);\n });\n } else {\n seq.push(fixLabelOverlaps);\n }\n\n // save current tick angle for future redraws\n if(ax._tickAngles) {\n seq.push(function() {\n ax._tickAngles[cls] = autoangle === null ?\n (isNumeric(tickAngle) ? tickAngle : 0) :\n autoangle;\n });\n }\n\n var done = Lib.syncOrAsync(seq);\n if(done && done.then) gd._promises.push(done);\n return done;\n};\n\n/**\n * Draw axis dividers\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {string} showdividers\n * - {number} dividerwidth\n * - {string} dividercolor\n * @param {object} opts\n * - {array of object} vals (calcTicks output-like)\n * - {d3 selection} layer\n * - {fn} path\n * - {fn} transFn\n */\nfunction drawDividers(gd, ax, opts) {\n var cls = ax._id + 'divider';\n var vals = opts.vals;\n\n var dividers = opts.layer.selectAll('path.' + cls)\n .data(vals, tickDataFn);\n\n dividers.exit().remove();\n\n dividers.enter().insert('path', ':first-child')\n .classed(cls, 1)\n .classed('crisp', 1)\n .call(Color.stroke, ax.dividercolor)\n .style('stroke-width', Drawing.crispRound(gd, ax.dividerwidth, 1) + 'px');\n\n dividers\n .attr('transform', opts.transFn)\n .attr('d', opts.path);\n}\n\n/**\n * Get axis position in px, that is the distance for the graph's\n * top (left) edge for x (y) axes.\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {string} side\n * if anchored:\n * - {object} _anchorAxis\n * Otherwise:\n * - {number} position\n * @return {number}\n */\naxes.getPxPosition = function(gd, ax) {\n var gs = gd._fullLayout._size;\n var axLetter = ax._id.charAt(0);\n var side = ax.side;\n var anchorAxis;\n\n if(ax.anchor !== 'free') {\n anchorAxis = ax._anchorAxis;\n } else if(axLetter === 'x') {\n anchorAxis = {\n _offset: gs.t + (1 - (ax.position || 0)) * gs.h,\n _length: 0\n };\n } else if(axLetter === 'y') {\n anchorAxis = {\n _offset: gs.l + (ax.position || 0) * gs.w,\n _length: 0\n };\n }\n\n if(side === 'top' || side === 'left') {\n return anchorAxis._offset;\n } else if(side === 'bottom' || side === 'right') {\n return anchorAxis._offset + anchorAxis._length;\n }\n};\n\n/**\n * Approximate axis title depth (w/o computing its bounding box)\n *\n * @param {object} ax (full) axis object\n * - {string} title.text\n * - {number} title.font.size\n * - {number} title.standoff\n * @return {number} (in px)\n */\nfunction approxTitleDepth(ax) {\n var fontSize = ax.title.font.size;\n var extraLines = (ax.title.text.match(svgTextUtils.BR_TAG_ALL) || []).length;\n if(ax.title.hasOwnProperty('standoff')) {\n return extraLines ?\n fontSize * (CAP_SHIFT + (extraLines * LINE_SPACING)) :\n fontSize * CAP_SHIFT;\n } else {\n return extraLines ?\n fontSize * (extraLines + 1) * LINE_SPACING :\n fontSize;\n }\n}\n\n/**\n * Draw axis title, compute default standoff if necessary\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {string} _name\n * - {string} side\n * - {number} title.font.size\n * - {object} _selections\n *\n * - {number} _depth\n * - {number} title.standoff\n * OR\n * - {number} linewidth\n * - {boolean} showticklabels\n */\nfunction drawTitle(gd, ax) {\n var fullLayout = gd._fullLayout;\n var axId = ax._id;\n var axLetter = axId.charAt(0);\n var fontSize = ax.title.font.size;\n\n var titleStandoff;\n\n if(ax.title.hasOwnProperty('standoff')) {\n titleStandoff = ax._depth + ax.title.standoff + approxTitleDepth(ax);\n } else {\n if(ax.type === 'multicategory') {\n titleStandoff = ax._depth;\n } else {\n var offsetBase = 1.5;\n titleStandoff = 10 + fontSize * offsetBase + (ax.linewidth ? ax.linewidth - 1 : 0);\n }\n\n if(axLetter === 'x') {\n titleStandoff += ax.side === 'top' ?\n fontSize * (ax.showticklabels ? 1 : 0) :\n fontSize * (ax.showticklabels ? 1.5 : 0.5);\n } else {\n titleStandoff += ax.side === 'right' ?\n fontSize * (ax.showticklabels ? 1 : 0.5) :\n fontSize * (ax.showticklabels ? 0.5 : 0);\n }\n }\n\n var pos = axes.getPxPosition(gd, ax);\n var transform, x, y;\n\n if(axLetter === 'x') {\n x = ax._offset + ax._length / 2;\n y = (ax.side === 'top') ? pos - titleStandoff : pos + titleStandoff;\n } else {\n y = ax._offset + ax._length / 2;\n x = (ax.side === 'right') ? pos + titleStandoff : pos - titleStandoff;\n transform = {rotate: '-90', offset: 0};\n }\n\n var avoid;\n\n if(ax.type !== 'multicategory') {\n var tickLabels = ax._selections[ax._id + 'tick'];\n\n avoid = {\n selection: tickLabels,\n side: ax.side\n };\n\n if(tickLabels && tickLabels.node() && tickLabels.node().parentNode) {\n var translation = Drawing.getTranslate(tickLabels.node().parentNode);\n avoid.offsetLeft = translation.x;\n avoid.offsetTop = translation.y;\n }\n\n if(ax.title.hasOwnProperty('standoff')) {\n avoid.pad = 0;\n }\n }\n\n return Titles.draw(gd, axId + 'title', {\n propContainer: ax,\n propName: ax._name + '.title.text',\n placeholder: fullLayout._dfltTitle[axLetter],\n avoid: avoid,\n transform: transform,\n attributes: {x: x, y: y, 'text-anchor': 'middle'}\n });\n}\n\naxes.shouldShowZeroLine = function(gd, ax, counterAxis) {\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n return (\n (rng[0] * rng[1] <= 0) &&\n ax.zeroline &&\n (ax.type === 'linear' || ax.type === '-') &&\n (\n clipEnds(ax, 0) ||\n !anyCounterAxLineAtZero(gd, ax, counterAxis, rng) ||\n hasBarsOrFill(gd, ax)\n )\n );\n};\n\naxes.clipEnds = function(ax, vals) {\n return vals.filter(function(d) { return clipEnds(ax, d.x); });\n};\n\nfunction clipEnds(ax, l) {\n var p = ax.l2p(l);\n return (p > 1 && p < ax._length - 1);\n}\n\nfunction anyCounterAxLineAtZero(gd, ax, counterAxis, rng) {\n var mainCounterAxis = counterAxis._mainAxis;\n if(!mainCounterAxis) return;\n\n var fullLayout = gd._fullLayout;\n var axLetter = ax._id.charAt(0);\n var counterLetter = axes.counterLetter(ax._id);\n\n var zeroPosition = ax._offset + (\n ((Math.abs(rng[0]) < Math.abs(rng[1])) === (axLetter === 'x')) ?\n 0 : ax._length\n );\n\n function lineNearZero(ax2) {\n if(!ax2.showline || !ax2.linewidth) return false;\n var tolerance = Math.max((ax2.linewidth + ax.zerolinewidth) / 2, 1);\n\n function closeEnough(pos2) {\n return typeof pos2 === 'number' && Math.abs(pos2 - zeroPosition) < tolerance;\n }\n\n if(closeEnough(ax2._mainLinePosition) || closeEnough(ax2._mainMirrorPosition)) {\n return true;\n }\n var linePositions = ax2._linepositions || {};\n for(var k in linePositions) {\n if(closeEnough(linePositions[k][0]) || closeEnough(linePositions[k][1])) {\n return true;\n }\n }\n }\n\n var plotinfo = fullLayout._plots[counterAxis._mainSubplot];\n if(!(plotinfo.mainplotinfo || plotinfo).overlays.length) {\n return lineNearZero(counterAxis, zeroPosition);\n }\n\n var counterLetterAxes = axes.list(gd, counterLetter);\n for(var i = 0; i < counterLetterAxes.length; i++) {\n var counterAxis2 = counterLetterAxes[i];\n if(\n counterAxis2._mainAxis === mainCounterAxis &&\n lineNearZero(counterAxis2, zeroPosition)\n ) {\n return true;\n }\n }\n}\n\nfunction hasBarsOrFill(gd, ax) {\n var fullData = gd._fullData;\n var subplot = ax._mainSubplot;\n var axLetter = ax._id.charAt(0);\n\n for(var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n\n if(trace.visible === true && (trace.xaxis + trace.yaxis) === subplot) {\n if(\n Registry.traceIs(trace, 'bar-like') &&\n trace.orientation === {x: 'h', y: 'v'}[axLetter]\n ) return true;\n\n if(\n trace.fill &&\n trace.fill.charAt(trace.fill.length - 1) === axLetter\n ) return true;\n }\n }\n return false;\n}\n\nfunction selectTickLabel(gTick) {\n var s = d3.select(gTick);\n var mj = s.select('.text-math-group');\n return mj.empty() ? s.select('text') : mj;\n}\n\n/**\n * Find all margin pushers for 2D axes and reserve them for later use\n * Both label and rangeslider automargin calculations happen later so\n * we need to explicitly allow their ids in order to not delete them.\n *\n * TODO: can we pull the actual automargin calls forward to avoid this hack?\n * We're probably also doing multiple redraws in this case, would be faster\n * if we can just do the whole calculation ahead of time and draw once.\n */\naxes.allowAutoMargin = function(gd) {\n var axList = axes.list(gd, '', true);\n for(var i = 0; i < axList.length; i++) {\n var ax = axList[i];\n if(ax.automargin) {\n Plots.allowAutoMargin(gd, axAutoMarginID(ax));\n if(ax.mirror) {\n Plots.allowAutoMargin(gd, axMirrorAutoMarginID(ax));\n }\n }\n if(Registry.getComponentMethod('rangeslider', 'isVisible')(ax)) {\n Plots.allowAutoMargin(gd, rangeSliderAutoMarginID(ax));\n }\n }\n};\n\nfunction axAutoMarginID(ax) { return ax._id + '.automargin'; }\nfunction axMirrorAutoMarginID(ax) { return axAutoMarginID(ax) + '.mirror'; }\nfunction rangeSliderAutoMarginID(ax) { return ax._id + '.rangeslider'; }\n\n// swap all the presentation attributes of the axes showing these traces\naxes.swap = function(gd, traces) {\n var axGroups = makeAxisGroups(gd, traces);\n\n for(var i = 0; i < axGroups.length; i++) {\n swapAxisGroup(gd, axGroups[i].x, axGroups[i].y);\n }\n};\n\nfunction makeAxisGroups(gd, traces) {\n var groups = [];\n var i, j;\n\n for(i = 0; i < traces.length; i++) {\n var groupsi = [];\n var xi = gd._fullData[traces[i]].xaxis;\n var yi = gd._fullData[traces[i]].yaxis;\n if(!xi || !yi) continue; // not a 2D cartesian trace?\n\n for(j = 0; j < groups.length; j++) {\n if(groups[j].x.indexOf(xi) !== -1 || groups[j].y.indexOf(yi) !== -1) {\n groupsi.push(j);\n }\n }\n\n if(!groupsi.length) {\n groups.push({x: [xi], y: [yi]});\n continue;\n }\n\n var group0 = groups[groupsi[0]];\n var groupj;\n\n if(groupsi.length > 1) {\n for(j = 1; j < groupsi.length; j++) {\n groupj = groups[groupsi[j]];\n mergeAxisGroups(group0.x, groupj.x);\n mergeAxisGroups(group0.y, groupj.y);\n }\n }\n mergeAxisGroups(group0.x, [xi]);\n mergeAxisGroups(group0.y, [yi]);\n }\n\n return groups;\n}\n\nfunction mergeAxisGroups(intoSet, fromSet) {\n for(var i = 0; i < fromSet.length; i++) {\n if(intoSet.indexOf(fromSet[i]) === -1) intoSet.push(fromSet[i]);\n }\n}\n\nfunction swapAxisGroup(gd, xIds, yIds) {\n var xFullAxes = [];\n var yFullAxes = [];\n var layout = gd.layout;\n var i, j;\n\n for(i = 0; i < xIds.length; i++) xFullAxes.push(axes.getFromId(gd, xIds[i]));\n for(i = 0; i < yIds.length; i++) yFullAxes.push(axes.getFromId(gd, yIds[i]));\n\n var allAxKeys = Object.keys(axAttrs);\n\n var noSwapAttrs = [\n 'anchor', 'domain', 'overlaying', 'position', 'side', 'tickangle', 'editType'\n ];\n var numericTypes = ['linear', 'log'];\n\n for(i = 0; i < allAxKeys.length; i++) {\n var keyi = allAxKeys[i];\n var xVal = xFullAxes[0][keyi];\n var yVal = yFullAxes[0][keyi];\n var allEqual = true;\n var coerceLinearX = false;\n var coerceLinearY = false;\n if(keyi.charAt(0) === '_' || typeof xVal === 'function' ||\n noSwapAttrs.indexOf(keyi) !== -1) {\n continue;\n }\n for(j = 1; j < xFullAxes.length && allEqual; j++) {\n var xVali = xFullAxes[j][keyi];\n if(keyi === 'type' && numericTypes.indexOf(xVal) !== -1 &&\n numericTypes.indexOf(xVali) !== -1 && xVal !== xVali) {\n // type is special - if we find a mixture of linear and log,\n // coerce them all to linear on flipping\n coerceLinearX = true;\n } else if(xVali !== xVal) allEqual = false;\n }\n for(j = 1; j < yFullAxes.length && allEqual; j++) {\n var yVali = yFullAxes[j][keyi];\n if(keyi === 'type' && numericTypes.indexOf(yVal) !== -1 &&\n numericTypes.indexOf(yVali) !== -1 && yVal !== yVali) {\n // type is special - if we find a mixture of linear and log,\n // coerce them all to linear on flipping\n coerceLinearY = true;\n } else if(yFullAxes[j][keyi] !== yVal) allEqual = false;\n }\n if(allEqual) {\n if(coerceLinearX) layout[xFullAxes[0]._name].type = 'linear';\n if(coerceLinearY) layout[yFullAxes[0]._name].type = 'linear';\n swapAxisAttrs(layout, keyi, xFullAxes, yFullAxes, gd._fullLayout._dfltTitle);\n }\n }\n\n // now swap x&y for any annotations anchored to these x & y\n for(i = 0; i < gd._fullLayout.annotations.length; i++) {\n var ann = gd._fullLayout.annotations[i];\n if(xIds.indexOf(ann.xref) !== -1 &&\n yIds.indexOf(ann.yref) !== -1) {\n Lib.swapAttrs(layout.annotations[i], ['?']);\n }\n }\n}\n\nfunction swapAxisAttrs(layout, key, xFullAxes, yFullAxes, dfltTitle) {\n // in case the value is the default for either axis,\n // look at the first axis in each list and see if\n // this key's value is undefined\n var np = Lib.nestedProperty;\n var xVal = np(layout[xFullAxes[0]._name], key).get();\n var yVal = np(layout[yFullAxes[0]._name], key).get();\n var i;\n\n if(key === 'title') {\n // special handling of placeholder titles\n if(xVal && xVal.text === dfltTitle.x) {\n xVal.text = dfltTitle.y;\n }\n if(yVal && yVal.text === dfltTitle.y) {\n yVal.text = dfltTitle.x;\n }\n }\n\n for(i = 0; i < xFullAxes.length; i++) {\n np(layout, xFullAxes[i]._name + '.' + key).set(yVal);\n }\n for(i = 0; i < yFullAxes.length; i++) {\n np(layout, yFullAxes[i]._name + '.' + key).set(xVal);\n }\n}\n\nfunction isAngular(ax) {\n return ax._id === 'angularaxis';\n}\n","// 300es builtins/reserved words that were previously valid in v100\r\nvar v100 = require('./builtins')\r\n\r\n// The texture2D|Cube functions have been removed\r\n// And the gl_ features are updated\r\nv100 = v100.slice().filter(function (b) {\r\n return !/^(gl\\_|texture)/.test(b)\r\n})\r\n\r\nmodule.exports = v100.concat([\r\n // the updated gl_ constants\r\n 'gl_VertexID'\r\n , 'gl_InstanceID'\r\n , 'gl_Position'\r\n , 'gl_PointSize'\r\n , 'gl_FragCoord'\r\n , 'gl_FrontFacing'\r\n , 'gl_FragDepth'\r\n , 'gl_PointCoord'\r\n , 'gl_MaxVertexAttribs'\r\n , 'gl_MaxVertexUniformVectors'\r\n , 'gl_MaxVertexOutputVectors'\r\n , 'gl_MaxFragmentInputVectors'\r\n , 'gl_MaxVertexTextureImageUnits'\r\n , 'gl_MaxCombinedTextureImageUnits'\r\n , 'gl_MaxTextureImageUnits'\r\n , 'gl_MaxFragmentUniformVectors'\r\n , 'gl_MaxDrawBuffers'\r\n , 'gl_MinProgramTexelOffset'\r\n , 'gl_MaxProgramTexelOffset'\r\n , 'gl_DepthRangeParameters'\r\n , 'gl_DepthRange'\r\n\r\n // other builtins\r\n , 'trunc'\r\n , 'round'\r\n , 'roundEven'\r\n , 'isnan'\r\n , 'isinf'\r\n , 'floatBitsToInt'\r\n , 'floatBitsToUint'\r\n , 'intBitsToFloat'\r\n , 'uintBitsToFloat'\r\n , 'packSnorm2x16'\r\n , 'unpackSnorm2x16'\r\n , 'packUnorm2x16'\r\n , 'unpackUnorm2x16'\r\n , 'packHalf2x16'\r\n , 'unpackHalf2x16'\r\n , 'outerProduct'\r\n , 'transpose'\r\n , 'determinant'\r\n , 'inverse'\r\n , 'texture'\r\n , 'textureSize'\r\n , 'textureProj'\r\n , 'textureLod'\r\n , 'textureOffset'\r\n , 'texelFetch'\r\n , 'texelFetchOffset'\r\n , 'textureProjOffset'\r\n , 'textureLodOffset'\r\n , 'textureProjLod'\r\n , 'textureProjLodOffset'\r\n , 'textureGrad'\r\n , 'textureGradOffset'\r\n , 'textureProjGrad'\r\n , 'textureProjGradOffset'\r\n])\r\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\n\n// Maybe add kernels more down the road,\n// but note that the default `spanmode: 'soft'` bounds might have\n// to become kernel-dependent\nvar kernels = {\n gaussian: function(v) {\n return (1 / Math.sqrt(2 * Math.PI)) * Math.exp(-0.5 * v * v);\n }\n};\n\nexports.makeKDE = function(calcItem, trace, vals) {\n var len = vals.length;\n var kernel = kernels.gaussian;\n var bandwidth = calcItem.bandwidth;\n var factor = 1 / (len * bandwidth);\n\n // don't use Lib.aggNums to skip isNumeric checks\n return function(x) {\n var sum = 0;\n for(var i = 0; i < len; i++) {\n sum += kernel((x - vals[i]) / bandwidth);\n }\n return factor * sum;\n };\n};\n\nexports.getPositionOnKdePath = function(calcItem, trace, valuePx) {\n var posLetter, valLetter;\n\n if(trace.orientation === 'h') {\n posLetter = 'y';\n valLetter = 'x';\n } else {\n posLetter = 'x';\n valLetter = 'y';\n }\n\n var pointOnPath = Lib.findPointOnPath(\n calcItem.path,\n valuePx,\n valLetter,\n {pathLength: calcItem.pathLength}\n );\n\n var posCenterPx = calcItem.posCenterPx;\n var posOnPath0 = pointOnPath[posLetter];\n var posOnPath1 = trace.side === 'both' ?\n 2 * posCenterPx - posOnPath0 :\n posCenterPx;\n\n return [posOnPath0, posOnPath1];\n};\n\nexports.getKdeValue = function(calcItem, trace, valueDist) {\n var vals = calcItem.pts.map(exports.extractVal);\n var kde = exports.makeKDE(calcItem, trace, vals);\n return kde(valueDist) / calcItem.posDensityScale;\n};\n\nexports.extractVal = function(o) { return o.v; };\n","\"use strict\";\n\nvar clear = require(\"es5-ext/array/#/clear\")\n , assign = require(\"es5-ext/object/assign\")\n , callable = require(\"es5-ext/object/valid-callable\")\n , value = require(\"es5-ext/object/valid-value\")\n , d = require(\"d\")\n , autoBind = require(\"d/auto-bind\")\n , Symbol = require(\"es6-symbol\");\n\nvar defineProperty = Object.defineProperty, defineProperties = Object.defineProperties, Iterator;\n\nmodule.exports = Iterator = function (list, context) {\n\tif (!(this instanceof Iterator)) throw new TypeError(\"Constructor requires 'new'\");\n\tdefineProperties(this, {\n\t\t__list__: d(\"w\", value(list)),\n\t\t__context__: d(\"w\", context),\n\t\t__nextIndex__: d(\"w\", 0)\n\t});\n\tif (!context) return;\n\tcallable(context.on);\n\tcontext.on(\"_add\", this._onAdd);\n\tcontext.on(\"_delete\", this._onDelete);\n\tcontext.on(\"_clear\", this._onClear);\n};\n\n// Internal %IteratorPrototype% doesn't expose its constructor\ndelete Iterator.prototype.constructor;\n\ndefineProperties(\n\tIterator.prototype,\n\tassign(\n\t\t{\n\t\t\t_next: d(function () {\n\t\t\t\tvar i;\n\t\t\t\tif (!this.__list__) return undefined;\n\t\t\t\tif (this.__redo__) {\n\t\t\t\t\ti = this.__redo__.shift();\n\t\t\t\t\tif (i !== undefined) return i;\n\t\t\t\t}\n\t\t\t\tif (this.__nextIndex__ < this.__list__.length) return this.__nextIndex__++;\n\t\t\t\tthis._unBind();\n\t\t\t\treturn undefined;\n\t\t\t}),\n\t\t\tnext: d(function () {\n\t\t\t\treturn this._createResult(this._next());\n\t\t\t}),\n\t\t\t_createResult: d(function (i) {\n\t\t\t\tif (i === undefined) return { done: true, value: undefined };\n\t\t\t\treturn { done: false, value: this._resolve(i) };\n\t\t\t}),\n\t\t\t_resolve: d(function (i) {\n\t\t\t\treturn this.__list__[i];\n\t\t\t}),\n\t\t\t_unBind: d(function () {\n\t\t\t\tthis.__list__ = null;\n\t\t\t\tdelete this.__redo__;\n\t\t\t\tif (!this.__context__) return;\n\t\t\t\tthis.__context__.off(\"_add\", this._onAdd);\n\t\t\t\tthis.__context__.off(\"_delete\", this._onDelete);\n\t\t\t\tthis.__context__.off(\"_clear\", this._onClear);\n\t\t\t\tthis.__context__ = null;\n\t\t\t}),\n\t\t\ttoString: d(function () {\n\t\t\t\treturn \"[object \" + (this[Symbol.toStringTag] || \"Object\") + \"]\";\n\t\t\t})\n\t\t},\n\t\tautoBind({\n\t\t\t_onAdd: d(function (index) {\n\t\t\t\tif (index >= this.__nextIndex__) return;\n\t\t\t\t++this.__nextIndex__;\n\t\t\t\tif (!this.__redo__) {\n\t\t\t\t\tdefineProperty(this, \"__redo__\", d(\"c\", [index]));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.__redo__.forEach(function (redo, i) {\n\t\t\t\t\tif (redo >= index) this.__redo__[i] = ++redo;\n\t\t\t\t}, this);\n\t\t\t\tthis.__redo__.push(index);\n\t\t\t}),\n\t\t\t_onDelete: d(function (index) {\n\t\t\t\tvar i;\n\t\t\t\tif (index >= this.__nextIndex__) return;\n\t\t\t\t--this.__nextIndex__;\n\t\t\t\tif (!this.__redo__) return;\n\t\t\t\ti = this.__redo__.indexOf(index);\n\t\t\t\tif (i !== -1) this.__redo__.splice(i, 1);\n\t\t\t\tthis.__redo__.forEach(function (redo, j) {\n\t\t\t\t\tif (redo > index) this.__redo__[j] = --redo;\n\t\t\t\t}, this);\n\t\t\t}),\n\t\t\t_onClear: d(function () {\n\t\t\t\tif (this.__redo__) clear.call(this.__redo__);\n\t\t\t\tthis.__nextIndex__ = 0;\n\t\t\t})\n\t\t})\n\t)\n);\n\ndefineProperty(\n\tIterator.prototype,\n\tSymbol.iterator,\n\td(function () {\n\t\treturn this;\n\t})\n);\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Registry = require('../../registry');\nvar Lib = require('../../lib');\nvar layoutAttributes = require('./layout_attributes');\n\nfunction _supply(layoutIn, layoutOut, fullData, coerce, traceType) {\n var category = traceType + 'Layout';\n var hasTraceType = false;\n\n for(var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n\n if(Registry.traceIs(trace, category)) {\n hasTraceType = true;\n break;\n }\n }\n if(!hasTraceType) return;\n\n coerce(traceType + 'mode');\n coerce(traceType + 'gap');\n coerce(traceType + 'groupgap');\n}\n\nfunction supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n _supply(layoutIn, layoutOut, fullData, coerce, 'box');\n}\n\nmodule.exports = {\n supplyLayoutDefaults: supplyLayoutDefaults,\n _supply: _supply\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var DEFAULT_NORMALS_EPSILON = 1e-6;\nvar DEFAULT_FACE_EPSILON = 1e-6;\n\n//Estimate the vertex normals of a mesh\nexports.vertexNormals = function(faces, positions, specifiedEpsilon) {\n\n var N = positions.length;\n var normals = new Array(N);\n var epsilon = specifiedEpsilon === void(0) ? DEFAULT_NORMALS_EPSILON : specifiedEpsilon;\n\n //Initialize normal array\n for(var i=0; i epsilon) {\n var norm = normals[c];\n var w = 1.0 / Math.sqrt(m01 * m21);\n for(var k=0; k<3; ++k) {\n var u = (k+1)%3;\n var v = (k+2)%3;\n norm[k] += w * (d21[u] * d01[v] - d21[v] * d01[u]);\n }\n }\n }\n }\n\n //Scale all normals to unit length\n for(var i=0; i epsilon) {\n var w = 1.0 / Math.sqrt(m);\n for(var k=0; k<3; ++k) {\n norm[k] *= w;\n }\n } else {\n for(var k=0; k<3; ++k) {\n norm[k] = 0.0;\n }\n }\n }\n\n //Return the resulting set of patches\n return normals;\n}\n\n//Compute face normals of a mesh\nexports.faceNormals = function(faces, positions, specifiedEpsilon) {\n\n var N = faces.length;\n var normals = new Array(N);\n var epsilon = specifiedEpsilon === void(0) ? DEFAULT_FACE_EPSILON : specifiedEpsilon;\n\n for(var i=0; i epsilon) {\n l = 1.0 / Math.sqrt(l);\n } else {\n l = 0.0;\n }\n for(var j=0; j<3; ++j) {\n n[j] *= l;\n }\n normals[i] = n;\n }\n return normals;\n}\n\n\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar Registry = require('../../registry');\n\nmodule.exports = function handleXYDefaults(traceIn, traceOut, layout, coerce) {\n var x = coerce('x');\n var y = coerce('y');\n var len;\n\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');\n handleCalendarDefaults(traceIn, traceOut, ['x', 'y'], layout);\n\n if(x) {\n var xlen = Lib.minRowLength(x);\n if(y) {\n len = Math.min(xlen, Lib.minRowLength(y));\n } else {\n len = xlen;\n coerce('y0');\n coerce('dy');\n }\n } else {\n if(!y) return 0;\n\n len = Lib.minRowLength(y);\n coerce('x0');\n coerce('dx');\n }\n\n traceOut._length = len;\n\n return len;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar overrideAll = require('../../plot_api/edit_types').overrideAll;\n\nvar Scene2D = require('./scene2d');\nvar layoutGlobalAttrs = require('../layout_attributes');\nvar xmlnsNamespaces = require('../../constants/xmlns_namespaces');\nvar constants = require('../cartesian/constants');\nvar Cartesian = require('../cartesian');\nvar fxAttrs = require('../../components/fx/layout_attributes');\nvar getSubplotData = require('../get_data').getSubplotData;\n\nexports.name = 'gl2d';\n\nexports.attr = ['xaxis', 'yaxis'];\n\nexports.idRoot = ['x', 'y'];\n\nexports.idRegex = constants.idRegex;\n\nexports.attrRegex = constants.attrRegex;\n\nexports.attributes = require('../cartesian/attributes');\n\nexports.supplyLayoutDefaults = function(layoutIn, layoutOut, fullData) {\n if(!layoutOut._has('cartesian')) {\n Cartesian.supplyLayoutDefaults(layoutIn, layoutOut, fullData);\n }\n};\n\n// gl2d uses svg axis attributes verbatim, but overrides editType\n// this could potentially be just `layoutAttributes` but it would\n// still need special handling somewhere to give it precedence over\n// the svg version when both are in use on one plot\nexports.layoutAttrOverrides = overrideAll(Cartesian.layoutAttributes, 'plot', 'from-root');\n\n// similar overrides for base plot attributes (and those added by components)\nexports.baseLayoutAttrOverrides = overrideAll({\n plot_bgcolor: layoutGlobalAttrs.plot_bgcolor,\n hoverlabel: fxAttrs.hoverlabel\n // dragmode needs calc but only when transitioning TO lasso or select\n // so for now it's left inside _relayout\n // dragmode: fxAttrs.dragmode\n}, 'plot', 'nested');\n\nexports.plot = function plot(gd) {\n var fullLayout = gd._fullLayout;\n var fullData = gd._fullData;\n var subplotIds = fullLayout._subplots.gl2d;\n\n for(var i = 0; i < subplotIds.length; i++) {\n var subplotId = subplotIds[i];\n var subplotObj = fullLayout._plots[subplotId];\n var fullSubplotData = getSubplotData(fullData, 'gl2d', subplotId);\n\n // ref. to corresp. Scene instance\n var scene = subplotObj._scene2d;\n\n // If Scene is not instantiated, create one!\n if(scene === undefined) {\n scene = new Scene2D({\n id: subplotId,\n graphDiv: gd,\n container: gd.querySelector('.gl-container'),\n staticPlot: gd._context.staticPlot,\n plotGlPixelRatio: gd._context.plotGlPixelRatio\n },\n fullLayout\n );\n\n // set ref to Scene instance\n subplotObj._scene2d = scene;\n }\n\n scene.plot(fullSubplotData, gd.calcdata, fullLayout, gd.layout);\n }\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldSceneKeys = oldFullLayout._subplots.gl2d || [];\n\n for(var i = 0; i < oldSceneKeys.length; i++) {\n var id = oldSceneKeys[i];\n var oldSubplot = oldFullLayout._plots[id];\n\n // old subplot wasn't gl2d; nothing to do\n if(!oldSubplot._scene2d) continue;\n\n // if no traces are present, delete gl2d subplot\n var subplotData = getSubplotData(newFullData, 'gl2d', id);\n if(subplotData.length === 0) {\n oldSubplot._scene2d.destroy();\n delete oldFullLayout._plots[id];\n }\n }\n\n // since we use cartesian interactions, do cartesian clean\n Cartesian.clean.apply(this, arguments);\n};\n\nexports.drawFramework = function(gd) {\n if(!gd._context.staticPlot) {\n Cartesian.drawFramework(gd);\n }\n};\n\nexports.toSVG = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots.gl2d;\n\n for(var i = 0; i < subplotIds.length; i++) {\n var subplot = fullLayout._plots[subplotIds[i]];\n var scene = subplot._scene2d;\n\n var imageData = scene.toImage('png');\n var image = fullLayout._glimages.append('svg:image');\n\n image.attr({\n xmlns: xmlnsNamespaces.svg,\n 'xlink:href': imageData,\n x: 0,\n y: 0,\n width: '100%',\n height: '100%',\n preserveAspectRatio: 'none'\n });\n\n scene.destroy();\n }\n};\n\nexports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots.gl2d;\n\n for(var i = 0; i < subplotIds.length; i++) {\n var subplotObj = fullLayout._plots[subplotIds[i]]._scene2d;\n subplotObj.updateFx(fullLayout.dragmode);\n }\n};\n","\nvar sprintf = require('sprintf-js').sprintf;\nvar glConstants = require('gl-constants/lookup');\nvar shaderName = require('glsl-shader-name');\nvar addLineNumbers = require('add-line-numbers');\n\nmodule.exports = formatCompilerError;\n\nfunction formatCompilerError(errLog, src, type) {\n \"use strict\";\n\n var name = shaderName(src) || 'of unknown name (see npm glsl-shader-name)';\n\n var typeName = 'unknown type';\n if (type !== undefined) {\n typeName = type === glConstants.FRAGMENT_SHADER ? 'fragment' : 'vertex'\n }\n\n var longForm = sprintf('Error compiling %s shader %s:\\n', typeName, name);\n var shortForm = sprintf(\"%s%s\", longForm, errLog);\n\n var errorStrings = errLog.split('\\n');\n var errors = {};\n\n for (var i = 0; i < errorStrings.length; i++) {\n var errorString = errorStrings[i];\n if (errorString === '' || errorString === \"\\0\") continue;\n var lineNo = parseInt(errorString.split(':')[2]);\n if (isNaN(lineNo)) {\n throw new Error(sprintf('Could not parse error: %s', errorString));\n }\n errors[lineNo] = errorString;\n }\n\n var lines = addLineNumbers(src).split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n if (!errors[i+3] && !errors[i+2] && !errors[i+1]) continue;\n var line = lines[i];\n longForm += line + '\\n';\n if (errors[i+1]) {\n var e = errors[i+1];\n e = e.substr(e.split(':', 3).join(':').length + 1).trim();\n longForm += sprintf('^^^ %s\\n\\n', e);\n }\n }\n\n return {\n long: longForm.trim(),\n short: shortForm.trim()\n };\n}\n\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar Registry = require('../../registry');\nvar attributes = require('./attributes');\nvar colorscaleDefaults = require('../../components/colorscale/defaults');\n\nfunction supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n supplyIsoDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n}\n\nfunction supplyIsoDefaults(traceIn, traceOut, defaultColor, layout, coerce) {\n var isomin = coerce('isomin');\n var isomax = coerce('isomax');\n\n if(isomax !== undefined && isomax !== null &&\n isomin !== undefined && isomin !== null &&\n isomin > isomax) {\n // applying default values in this case:\n traceOut.isomin = null;\n traceOut.isomax = null;\n }\n\n var x = coerce('x');\n var y = coerce('y');\n var z = coerce('z');\n var value = coerce('value');\n\n if(\n !x || !x.length ||\n !y || !y.length ||\n !z || !z.length ||\n !value || !value.length\n ) {\n traceOut.visible = false;\n return;\n }\n\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');\n handleCalendarDefaults(traceIn, traceOut, ['x', 'y', 'z'], layout);\n\n ['x', 'y', 'z'].forEach(function(dim) {\n var capDim = 'caps.' + dim;\n var showCap = coerce(capDim + '.show');\n if(showCap) {\n coerce(capDim + '.fill');\n }\n\n var sliceDim = 'slices.' + dim;\n var showSlice = coerce(sliceDim + '.show');\n if(showSlice) {\n coerce(sliceDim + '.fill');\n coerce(sliceDim + '.locations');\n }\n });\n\n var showSpaceframe = coerce('spaceframe.show');\n if(showSpaceframe) {\n coerce('spaceframe.fill');\n }\n\n var showSurface = coerce('surface.show');\n if(showSurface) {\n coerce('surface.count');\n coerce('surface.fill');\n coerce('surface.pattern');\n }\n\n var showContour = coerce('contour.show');\n if(showContour) {\n coerce('contour.color');\n coerce('contour.width');\n }\n\n // Coerce remaining properties\n [\n 'text',\n 'hovertext',\n 'hovertemplate',\n 'lighting.ambient',\n 'lighting.diffuse',\n 'lighting.specular',\n 'lighting.roughness',\n 'lighting.fresnel',\n 'lighting.vertexnormalsepsilon',\n 'lighting.facenormalsepsilon',\n 'lightposition.x',\n 'lightposition.y',\n 'lightposition.z',\n 'flatshading',\n 'opacity'\n ].forEach(function(x) { coerce(x); });\n\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'c'});\n\n // disable 1D transforms (for now)\n traceOut._length = null;\n}\n\nmodule.exports = {\n supplyDefaults: supplyDefaults,\n supplyIsoDefaults: supplyIsoDefaults\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\n// projection names to d3 function name\nexports.projNames = {\n // d3.geo.projection\n 'equirectangular': 'equirectangular',\n 'mercator': 'mercator',\n 'orthographic': 'orthographic',\n 'natural earth': 'naturalEarth',\n 'kavrayskiy7': 'kavrayskiy7',\n 'miller': 'miller',\n 'robinson': 'robinson',\n 'eckert4': 'eckert4',\n 'azimuthal equal area': 'azimuthalEqualArea',\n 'azimuthal equidistant': 'azimuthalEquidistant',\n 'conic equal area': 'conicEqualArea',\n 'conic conformal': 'conicConformal',\n 'conic equidistant': 'conicEquidistant',\n 'gnomonic': 'gnomonic',\n 'stereographic': 'stereographic',\n 'mollweide': 'mollweide',\n 'hammer': 'hammer',\n 'transverse mercator': 'transverseMercator',\n 'albers usa': 'albersUsa',\n 'winkel tripel': 'winkel3',\n 'aitoff': 'aitoff',\n 'sinusoidal': 'sinusoidal'\n};\n\n// name of the axes\nexports.axesNames = ['lonaxis', 'lataxis'];\n\n// max longitudinal angular span (EXPERIMENTAL)\nexports.lonaxisSpan = {\n 'orthographic': 180,\n 'azimuthal equal area': 360,\n 'azimuthal equidistant': 360,\n 'conic conformal': 180,\n 'gnomonic': 160,\n 'stereographic': 180,\n 'transverse mercator': 180,\n '*': 360\n};\n\n// max latitudinal angular span (EXPERIMENTAL)\nexports.lataxisSpan = {\n 'conic conformal': 150,\n 'stereographic': 179.5,\n '*': 180\n};\n\n// defaults for each scope\nexports.scopeDefaults = {\n world: {\n lonaxisRange: [-180, 180],\n lataxisRange: [-90, 90],\n projType: 'equirectangular',\n projRotate: [0, 0, 0]\n },\n usa: {\n lonaxisRange: [-180, -50],\n lataxisRange: [15, 80],\n projType: 'albers usa'\n },\n europe: {\n lonaxisRange: [-30, 60],\n lataxisRange: [30, 85],\n projType: 'conic conformal',\n projRotate: [15, 0, 0],\n projParallels: [0, 60]\n },\n asia: {\n lonaxisRange: [22, 160],\n lataxisRange: [-15, 55],\n projType: 'mercator',\n projRotate: [0, 0, 0]\n },\n africa: {\n lonaxisRange: [-30, 60],\n lataxisRange: [-40, 40],\n projType: 'mercator',\n projRotate: [0, 0, 0]\n },\n 'north america': {\n lonaxisRange: [-180, -45],\n lataxisRange: [5, 85],\n projType: 'conic conformal',\n projRotate: [-100, 0, 0],\n projParallels: [29.5, 45.5]\n },\n 'south america': {\n lonaxisRange: [-100, -30],\n lataxisRange: [-60, 15],\n projType: 'mercator',\n projRotate: [0, 0, 0]\n }\n};\n\n// angular pad to avoid rounding error around clip angles\nexports.clipPad = 1e-3;\n\n// map projection precision\nexports.precision = 0.1;\n\n// default land and water fill colors\nexports.landColor = '#F0DC82';\nexports.waterColor = '#3399FF';\n\n// locationmode to layer name\nexports.locationmodeToLayer = {\n 'ISO-3': 'countries',\n 'USA-states': 'subunits',\n 'country names': 'countries'\n};\n\n// SVG element for a sphere (use to frame maps)\nexports.sphereSVG = {type: 'Sphere'};\n\n// N.B. base layer names must be the same as in the topojson files\n\n// base layer with a fill color\nexports.fillLayers = {\n ocean: 1,\n land: 1,\n lakes: 1\n};\n\n// base layer with a only a line color\nexports.lineLayers = {\n subunits: 1,\n countries: 1,\n coastlines: 1,\n rivers: 1,\n frame: 1\n};\n\nexports.layers = [\n 'bg',\n 'ocean', 'land', 'lakes',\n 'subunits', 'countries', 'coastlines', 'rivers',\n 'lataxis', 'lonaxis', 'frame',\n 'backplot',\n 'frontplot'\n];\n\nexports.layersForChoropleth = [\n 'bg',\n 'ocean', 'land',\n 'subunits', 'countries', 'coastlines',\n 'lataxis', 'lonaxis', 'frame',\n 'backplot',\n 'rivers', 'lakes',\n 'frontplot'\n];\n\nexports.layerNameToAdjective = {\n ocean: 'ocean',\n land: 'land',\n lakes: 'lake',\n subunits: 'subunit',\n countries: 'country',\n coastlines: 'coastline',\n rivers: 'river',\n frame: 'frame'\n};\n","\"use strict\"\n\nvar doubleBits = require(\"double-bits\")\n\nvar SMALLEST_DENORM = Math.pow(2, -1074)\nvar UINT_MAX = (-1)>>>0\n\nmodule.exports = nextafter\n\nfunction nextafter(x, y) {\n if(isNaN(x) || isNaN(y)) {\n return NaN\n }\n if(x === y) {\n return x\n }\n if(x === 0) {\n if(y < 0) {\n return -SMALLEST_DENORM\n } else {\n return SMALLEST_DENORM\n }\n }\n var hi = doubleBits.hi(x)\n var lo = doubleBits.lo(x)\n if((y > x) === (x > 0)) {\n if(lo === UINT_MAX) {\n hi += 1\n lo = 0\n } else {\n lo += 1\n }\n } else {\n if(lo === 0) {\n lo = UINT_MAX\n hi -= 1\n } else {\n lo -= 1\n }\n }\n return doubleBits.pack(lo, hi)\n}","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nmodule.exports = {\n solid: [[], 0],\n dot: [[0.5, 1], 200],\n dash: [[0.5, 1], 50],\n longdash: [[0.5, 1], 10],\n dashdot: [[0.5, 0.625, 0.875, 1], 50],\n longdashdot: [[0.5, 0.7, 0.8, 1], 10]\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n moduleType: 'trace',\n name: 'barpolar',\n basePlotModule: require('../../plots/polar'),\n categories: ['polar', 'bar', 'showLegend'],\n\n attributes: require('./attributes'),\n layoutAttributes: require('./layout_attributes'),\n supplyDefaults: require('./defaults'),\n supplyLayoutDefaults: require('./layout_defaults'),\n\n calc: require('./calc').calc,\n crossTraceCalc: require('./calc').crossTraceCalc,\n\n plot: require('./plot'),\n colorbar: require('../scatter/marker_colorbar'),\n formatLabels: require('../scatterpolar/format_labels'),\n\n style: require('../bar/style').style,\n styleOnSelect: require('../bar/style').styleOnSelect,\n\n hoverPoints: require('./hover'),\n selectPoints: require('../bar/select'),\n\n meta: {\n \n \n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar d3 = require('d3');\nvar countryRegex = require('country-regex');\nvar turfArea = require('@turf/area');\nvar turfCentroid = require('@turf/centroid');\nvar turfBbox = require('@turf/bbox');\n\nvar identity = require('./identity');\nvar loggers = require('./loggers');\nvar isPlainObject = require('./is_plain_object');\nvar nestedProperty = require('./nested_property');\nvar polygon = require('./polygon');\n\n// make list of all country iso3 ids from at runtime\nvar countryIds = Object.keys(countryRegex);\n\nvar locationmodeToIdFinder = {\n 'ISO-3': identity,\n 'USA-states': identity,\n 'country names': countryNameToISO3\n};\n\nfunction countryNameToISO3(countryName) {\n for(var i = 0; i < countryIds.length; i++) {\n var iso3 = countryIds[i];\n var regex = new RegExp(countryRegex[iso3]);\n\n if(regex.test(countryName.trim().toLowerCase())) return iso3;\n }\n\n loggers.log('Unrecognized country name: ' + countryName + '.');\n\n return false;\n}\n\nfunction locationToFeature(locationmode, location, features) {\n if(!location || typeof location !== 'string') return false;\n\n var locationId = locationmodeToIdFinder[locationmode](location);\n var filteredFeatures;\n var f, i;\n\n if(locationId) {\n if(locationmode === 'USA-states') {\n // Filter out features out in USA\n //\n // This is important as the Natural Earth files\n // include state/provinces from USA, Canada, Australia and Brazil\n // which have some overlay in their two-letter ids. For example,\n // 'WA' is used for both Washington state and Western Australia.\n filteredFeatures = [];\n for(i = 0; i < features.length; i++) {\n f = features[i];\n if(f.properties && f.properties.gu && f.properties.gu === 'USA') {\n filteredFeatures.push(f);\n }\n }\n } else {\n filteredFeatures = features;\n }\n\n for(i = 0; i < filteredFeatures.length; i++) {\n f = filteredFeatures[i];\n if(f.id === locationId) return f;\n }\n\n loggers.log([\n 'Location with id', locationId,\n 'does not have a matching topojson feature at this resolution.'\n ].join(' '));\n }\n\n return false;\n}\n\nfunction feature2polygons(feature) {\n var geometry = feature.geometry;\n var coords = geometry.coordinates;\n var loc = feature.id;\n\n var polygons = [];\n var appendPolygon, j, k, m;\n\n function doesCrossAntiMerdian(pts) {\n for(var l = 0; l < pts.length - 1; l++) {\n if(pts[l][0] > 0 && pts[l + 1][0] < 0) return l;\n }\n return null;\n }\n\n if(loc === 'RUS' || loc === 'FJI') {\n // Russia and Fiji have landmasses that cross the antimeridian,\n // we need to add +360 to their longitude coordinates, so that\n // polygon 'contains' doesn't get confused when crossing the antimeridian.\n //\n // Note that other countries have polygons on either side of the antimeridian\n // (e.g. some Aleutian island for the USA), but those don't confuse\n // the 'contains' method; these are skipped here.\n appendPolygon = function(_pts) {\n var pts;\n\n if(doesCrossAntiMerdian(_pts) === null) {\n pts = _pts;\n } else {\n pts = new Array(_pts.length);\n for(m = 0; m < _pts.length; m++) {\n // do not mutate calcdata[i][j].geojson !!\n pts[m] = [\n _pts[m][0] < 0 ? _pts[m][0] + 360 : _pts[m][0],\n _pts[m][1]\n ];\n }\n }\n\n polygons.push(polygon.tester(pts));\n };\n } else if(loc === 'ATA') {\n // Antarctica has a landmass that wraps around every longitudes which\n // confuses the 'contains' methods.\n appendPolygon = function(pts) {\n var crossAntiMeridianIndex = doesCrossAntiMerdian(pts);\n\n // polygon that do not cross anti-meridian need no special handling\n if(crossAntiMeridianIndex === null) {\n return polygons.push(polygon.tester(pts));\n }\n\n // stitch polygon by adding pt over South Pole,\n // so that it covers the projected region covers all latitudes\n //\n // Note that the algorithm below only works for polygons that\n // start and end on longitude -180 (like the ones built by\n // https://github.com/etpinard/sane-topojson).\n var stitch = new Array(pts.length + 1);\n var si = 0;\n\n for(m = 0; m < pts.length; m++) {\n if(m > crossAntiMeridianIndex) {\n stitch[si++] = [pts[m][0] + 360, pts[m][1]];\n } else if(m === crossAntiMeridianIndex) {\n stitch[si++] = pts[m];\n stitch[si++] = [pts[m][0], -90];\n } else {\n stitch[si++] = pts[m];\n }\n }\n\n // polygon.tester by default appends pt[0] to the points list,\n // we must remove it here, to avoid a jump in longitude from 180 to -180,\n // that would confuse the 'contains' method\n var tester = polygon.tester(stitch);\n tester.pts.pop();\n polygons.push(tester);\n };\n } else {\n // otherwise using same array ref is fine\n appendPolygon = function(pts) {\n polygons.push(polygon.tester(pts));\n };\n }\n\n switch(geometry.type) {\n case 'MultiPolygon':\n for(j = 0; j < coords.length; j++) {\n for(k = 0; k < coords[j].length; k++) {\n appendPolygon(coords[j][k]);\n }\n }\n break;\n case 'Polygon':\n for(j = 0; j < coords.length; j++) {\n appendPolygon(coords[j]);\n }\n break;\n }\n\n return polygons;\n}\n\nfunction getTraceGeojson(trace) {\n var g = trace.geojson;\n var PlotlyGeoAssets = window.PlotlyGeoAssets || {};\n var geojsonIn = typeof g === 'string' ? PlotlyGeoAssets[g] : g;\n\n // This should not happen, but just in case something goes\n // really wrong when fetching the GeoJSON\n if(!isPlainObject(geojsonIn)) {\n loggers.error('Oops ... something went wrong when fetching ' + g);\n return false;\n }\n\n return geojsonIn;\n}\n\nfunction extractTraceFeature(calcTrace) {\n var trace = calcTrace[0].trace;\n\n var geojsonIn = getTraceGeojson(trace);\n if(!geojsonIn) return false;\n\n var lookup = {};\n var featuresOut = [];\n var i;\n\n for(i = 0; i < trace._length; i++) {\n var cdi = calcTrace[i];\n if(cdi.loc || cdi.loc === 0) {\n lookup[cdi.loc] = cdi;\n }\n }\n\n function appendFeature(fIn) {\n var id = nestedProperty(fIn, trace.featureidkey || 'id').get();\n var cdi = lookup[id];\n\n if(cdi) {\n var geometry = fIn.geometry;\n\n if(geometry.type === 'Polygon' || geometry.type === 'MultiPolygon') {\n var fOut = {\n type: 'Feature',\n id: id,\n geometry: geometry,\n properties: {}\n };\n\n // Compute centroid, add it to the properties\n fOut.properties.ct = findCentroid(fOut);\n\n // Mutate in in/out features into calcdata\n cdi.fIn = fIn;\n cdi.fOut = fOut;\n\n featuresOut.push(fOut);\n } else {\n loggers.log([\n 'Location', cdi.loc, 'does not have a valid GeoJSON geometry.',\n 'Traces with locationmode *geojson-id* only support',\n '*Polygon* and *MultiPolygon* geometries.'\n ].join(' '));\n }\n }\n\n // remove key from lookup, so that we can track (if any)\n // the locations that did not have a corresponding GeoJSON feature\n delete lookup[id];\n }\n\n switch(geojsonIn.type) {\n case 'FeatureCollection':\n var featuresIn = geojsonIn.features;\n for(i = 0; i < featuresIn.length; i++) {\n appendFeature(featuresIn[i]);\n }\n break;\n case 'Feature':\n appendFeature(geojsonIn);\n break;\n default:\n loggers.warn([\n 'Invalid GeoJSON type', (geojsonIn.type || 'none') + '.',\n 'Traces with locationmode *geojson-id* only support',\n '*FeatureCollection* and *Feature* types.'\n ].join(' '));\n return false;\n }\n\n for(var loc in lookup) {\n loggers.log([\n 'Location *' + loc + '*',\n 'does not have a matching feature with id-key',\n '*' + trace.featureidkey + '*.'\n ].join(' '));\n }\n\n return featuresOut;\n}\n\n// TODO this find the centroid of the polygon of maxArea\n// (just like we currently do for geo choropleth polygons),\n// maybe instead it would make more sense to compute the centroid\n// of each polygon and consider those on hover/select\nfunction findCentroid(feature) {\n var geometry = feature.geometry;\n var poly;\n\n if(geometry.type === 'MultiPolygon') {\n var coords = geometry.coordinates;\n var maxArea = 0;\n\n for(var i = 0; i < coords.length; i++) {\n var polyi = {type: 'Polygon', coordinates: coords[i]};\n var area = turfArea.default(polyi);\n if(area > maxArea) {\n maxArea = area;\n poly = polyi;\n }\n }\n } else {\n poly = geometry;\n }\n\n return turfCentroid.default(poly).geometry.coordinates;\n}\n\nfunction fetchTraceGeoData(calcData) {\n var PlotlyGeoAssets = window.PlotlyGeoAssets || {};\n var promises = [];\n\n function fetch(url) {\n return new Promise(function(resolve, reject) {\n d3.json(url, function(err, d) {\n if(err) {\n delete PlotlyGeoAssets[url];\n var msg = err.status === 404 ?\n ('GeoJSON at URL \"' + url + '\" does not exist.') :\n ('Unexpected error while fetching from ' + url);\n return reject(new Error(msg));\n }\n\n PlotlyGeoAssets[url] = d;\n return resolve(d);\n });\n });\n }\n\n function wait(url) {\n return new Promise(function(resolve, reject) {\n var cnt = 0;\n var interval = setInterval(function() {\n if(PlotlyGeoAssets[url] && PlotlyGeoAssets[url] !== 'pending') {\n clearInterval(interval);\n return resolve(PlotlyGeoAssets[url]);\n }\n if(cnt > 100) {\n clearInterval(interval);\n return reject('Unexpected error while fetching from ' + url);\n }\n cnt++;\n }, 50);\n });\n }\n\n for(var i = 0; i < calcData.length; i++) {\n var trace = calcData[i][0].trace;\n var url = trace.geojson;\n\n if(typeof url === 'string') {\n if(!PlotlyGeoAssets[url]) {\n PlotlyGeoAssets[url] = 'pending';\n promises.push(fetch(url));\n } else if(PlotlyGeoAssets[url] === 'pending') {\n promises.push(wait(url));\n }\n }\n }\n\n return promises;\n}\n\n// TODO `turf/bbox` gives wrong result when the input feature/geometry\n// crosses the anti-meridian. We should try to implement our own bbox logic.\nfunction computeBbox(d) {\n return turfBbox.default(d);\n}\n\nmodule.exports = {\n locationToFeature: locationToFeature,\n feature2polygons: feature2polygons,\n getTraceGeojson: getTraceGeojson,\n extractTraceFeature: extractTraceFeature,\n fetchTraceGeoData: fetchTraceGeoData,\n computeBbox: computeBbox\n};\n","'use strict'\n\nvar rat = require('big-rat')\nvar mul = require('big-rat/mul')\n\nmodule.exports = muls\n\nfunction muls(a, x) {\n var s = rat(x)\n var n = a.length\n var r = new Array(n)\n for(var i=0; i= 0xd800 && code <= 0xdbff) return char + this.__list__[this.__nextIndex__++];\n\t\treturn char;\n\t})\n});\ndefineProperty(StringIterator.prototype, Symbol.toStringTag, d(\"c\", \"String Iterator\"));\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar identity = require('./identity');\n\nfunction wrap(d) {return [d];}\n\nmodule.exports = {\n\n // The D3 data binding concept and the General Update Pattern promotes the idea of\n // traversing into the scenegraph by using the `.data(fun, keyFun)` call.\n // The `fun` is most often a `repeat`, ie. the elements beneath a `` element need\n // access to the same data, or a `descend`, which fans a scenegraph node into a bunch of\n // of elements, e.g. points, lines, rows, requiring an array as input.\n // The role of the `keyFun` is to identify what elements are being entered/exited/updated,\n // otherwise D3 reverts to using a plain index which would screw up `transition`s.\n keyFun: function(d) {return d.key;},\n repeat: wrap,\n descend: identity,\n\n // Plotly.js uses a convention of storing the actual contents of the `calcData` as the\n // element zero of a container array. These helpers are just used for clarity as a\n // newcomer to the codebase may not know what the `[0]` is, and whether there can be further\n // elements (not atm).\n wrap: wrap,\n unwrap: function(d) {return d[0];}\n};\n","export default function(x, y) {\n var nodes;\n\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force() {\n var i,\n n = nodes.length,\n node,\n sx = 0,\n sy = 0;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x, sy += node.y;\n }\n\n for (sx = sx / n - x, sy = sy / n - y, i = 0; i < n; ++i) {\n node = nodes[i], node.x -= sx, node.y -= sy;\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function() {\n return (Math.random() - 0.5) * 1e-6;\n}\n","export default function(d) {\n var x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n","export default function(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | (x < x0);\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z, y1 = y0 + z; break;\n case 1: x0 = x1 - z, y1 = y0 + z; break;\n case 2: x1 = x0 + z, y0 = y1 - z; break;\n case 3: x0 = x1 - z, y0 = y1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}\n","export default function(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","export function defaultY(d) {\n return d[1];\n}\n\nexport default function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\nimport tree_y, {defaultY} from \"./y.js\";\n\nexport default function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {quadtree} from \"d3-quadtree\";\n\nfunction x(d) {\n return d.x + d.vx;\n}\n\nfunction y(d) {\n return d.y + d.vy;\n}\n\nexport default function(radius) {\n var nodes,\n radii,\n strength = 1,\n iterations = 1;\n\n if (typeof radius !== \"function\") radius = constant(radius == null ? 1 : +radius);\n\n function force() {\n var i, n = nodes.length,\n tree,\n node,\n xi,\n yi,\n ri,\n ri2;\n\n for (var k = 0; k < iterations; ++k) {\n tree = quadtree(nodes, x, y).visitAfter(prepare);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n ri = radii[node.index], ri2 = ri * ri;\n xi = node.x + node.vx;\n yi = node.y + node.vy;\n tree.visit(apply);\n }\n }\n\n function apply(quad, x0, y0, x1, y1) {\n var data = quad.data, rj = quad.r, r = ri + rj;\n if (data) {\n if (data.index > node.index) {\n var x = xi - data.x - data.vx,\n y = yi - data.y - data.vy,\n l = x * x + y * y;\n if (l < r * r) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n l = (r - (l = Math.sqrt(l))) / l * strength;\n node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));\n node.vy += (y *= l) * r;\n data.vx -= x * (r = 1 - r);\n data.vy -= y * r;\n }\n }\n return;\n }\n return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;\n }\n }\n\n function prepare(quad) {\n if (quad.data) return quad.r = radii[quad.data.index];\n for (var i = quad.r = 0; i < 4; ++i) {\n if (quad[i] && quad[i].r > quad.r) {\n quad.r = quad[i].r;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n radii = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n return force;\n}\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {map} from \"d3-collection\";\n\nfunction index(d) {\n return d.index;\n}\n\nfunction find(nodeById, nodeId) {\n var node = nodeById.get(nodeId);\n if (!node) throw new Error(\"missing: \" + nodeId);\n return node;\n}\n\nexport default function(links) {\n var id = index,\n strength = defaultStrength,\n strengths,\n distance = constant(30),\n distances,\n nodes,\n count,\n bias,\n iterations = 1;\n\n if (links == null) links = [];\n\n function defaultStrength(link) {\n return 1 / Math.min(count[link.source.index], count[link.target.index]);\n }\n\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {\n link = links[i], source = link.source, target = link.target;\n x = target.x + target.vx - source.x - source.vx || jiggle();\n y = target.y + target.vy - source.y - source.vy || jiggle();\n l = Math.sqrt(x * x + y * y);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x *= l, y *= l;\n target.vx -= x * (b = bias[i]);\n target.vy -= y * b;\n source.vx += x * (b = 1 - b);\n source.vy += y * b;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n\n var i,\n n = nodes.length,\n m = links.length,\n nodeById = map(nodes, id),\n link;\n\n for (i = 0, count = new Array(n); i < m; ++i) {\n link = links[i], link.index = i;\n if (typeof link.source !== \"object\") link.source = find(nodeById, link.source);\n if (typeof link.target !== \"object\") link.target = find(nodeById, link.target);\n count[link.source.index] = (count[link.source.index] || 0) + 1;\n count[link.target.index] = (count[link.target.index] || 0) + 1;\n }\n\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);\n }\n\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n\n function initializeStrength() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n\n function initializeDistance() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initializeStrength(), force) : strength;\n };\n\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant(+_), initializeDistance(), force) : distance;\n };\n\n return force;\n}\n","var noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {map} from \"d3-collection\";\nimport {timer} from \"d3-timer\";\n\nexport function x(d) {\n return d.x;\n}\n\nexport function y(d) {\n return d.y;\n}\n\nvar initialRadius = 10,\n initialAngle = Math.PI * (3 - Math.sqrt(5));\n\nexport default function(nodes) {\n var simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = map(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\");\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick(iterations) {\n var i, n = nodes.length, node;\n\n if (iterations === undefined) iterations = 1;\n\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.each(function (force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n\n return simulation;\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function(x, y, radius) {\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n\n if (radius == null) radius = Infinity;\n else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {quadtree} from \"d3-quadtree\";\nimport {x, y} from \"./simulation\";\n\nexport default function() {\n var nodes,\n node,\n alpha,\n strength = constant(-30),\n strengths,\n distanceMin2 = 1,\n distanceMax2 = Infinity,\n theta2 = 0.81;\n\n function force(_) {\n var i, n = nodes.length, tree = quadtree(nodes, x, y).visitAfter(accumulate);\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);\n }\n\n function accumulate(quad) {\n var strength = 0, q, c, weight = 0, x, y, i;\n\n // For internal nodes, accumulate forces from child quadrants.\n if (quad.length) {\n for (x = y = i = 0; i < 4; ++i) {\n if ((q = quad[i]) && (c = Math.abs(q.value))) {\n strength += q.value, weight += c, x += c * q.x, y += c * q.y;\n }\n }\n quad.x = x / weight;\n quad.y = y / weight;\n }\n\n // For leaf nodes, accumulate forces from coincident quadrants.\n else {\n q = quad;\n q.x = q.data.x;\n q.y = q.data.y;\n do strength += strengths[q.data.index];\n while (q = q.next);\n }\n\n quad.value = strength;\n }\n\n function apply(quad, x1, _, x2) {\n if (!quad.value) return true;\n\n var x = quad.x - node.x,\n y = quad.y - node.y,\n w = x2 - x1,\n l = x * x + y * y;\n\n // Apply the Barnes-Hut approximation if possible.\n // Limit forces for very close nodes; randomize direction if coincident.\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x * quad.value * alpha / l;\n node.vy += y * quad.value * alpha / l;\n }\n return true;\n }\n\n // Otherwise, process points directly.\n else if (quad.length || l >= distanceMax2) return;\n\n // Limit forces for very close nodes; randomize direction if coincident.\n if (quad.data !== node || quad.next) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n\n do if (quad.data !== node) {\n w = strengths[quad.data.index] * alpha / l;\n node.vx += x * w;\n node.vy += y * w;\n } while (quad = quad.next);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n\n return force;\n}\n","import constant from \"./constant\";\n\nexport default function(radius, x, y) {\n var nodes,\n strength = constant(0.1),\n strengths,\n radiuses;\n\n if (typeof radius !== \"function\") radius = constant(+radius);\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force(alpha) {\n for (var i = 0, n = nodes.length; i < n; ++i) {\n var node = nodes[i],\n dx = node.x - x || 1e-6,\n dy = node.y - y || 1e-6,\n r = Math.sqrt(dx * dx + dy * dy),\n k = (radiuses[i] - r) * strengths[i] * alpha / r;\n node.vx += dx * k;\n node.vy += dy * k;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n radiuses = new Array(n);\n for (i = 0; i < n; ++i) {\n radiuses[i] = +radius(nodes[i], i, nodes);\n strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _, initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n}\n","import constant from \"./constant\";\n\nexport default function(x) {\n var strength = constant(0.1),\n nodes,\n strengths,\n xz;\n\n if (typeof x !== \"function\") x = constant(x == null ? 0 : +x);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n xz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : x;\n };\n\n return force;\n}\n","import constant from \"./constant\";\n\nexport default function(y) {\n var strength = constant(0.1),\n nodes,\n strengths,\n yz;\n\n if (typeof y !== \"function\") y = constant(y == null ? 0 : +y);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n yz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : y;\n };\n\n return force;\n}\n","export {default as forceCenter} from \"./center\";\nexport {default as forceCollide} from \"./collide\";\nexport {default as forceLink} from \"./link\";\nexport {default as forceManyBody} from \"./manyBody\";\nexport {default as forceRadial} from \"./radial\";\nexport {default as forceSimulation} from \"./simulation\";\nexport {default as forceX} from \"./x\";\nexport {default as forceY} from \"./y\";\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar colorscaleCalc = require('../../components/colorscale/calc');\nvar Lib = require('../../lib');\n\nvar convertColumnData = require('../heatmap/convert_column_xyz');\nvar clean2dArray = require('../heatmap/clean_2d_array');\nvar interp2d = require('../heatmap/interp2d');\nvar findEmpties = require('../heatmap/find_empties');\nvar makeBoundArray = require('../heatmap/make_bound_array');\nvar supplyDefaults = require('./defaults');\nvar lookupCarpet = require('../carpet/lookup_carpetid');\nvar setContours = require('../contour/set_contours');\n\n// most is the same as heatmap calc, then adjust it\n// though a few things inside heatmap calc still look for\n// contour maps, because the makeBoundArray calls are too entangled\nmodule.exports = function calc(gd, trace) {\n var carpet = trace._carpetTrace = lookupCarpet(gd, trace);\n if(!carpet || !carpet.visible || carpet.visible === 'legendonly') return;\n\n if(!trace.a || !trace.b) {\n // Look up the original incoming carpet data:\n var carpetdata = gd.data[carpet.index];\n\n // Look up the incoming trace data, *except* perform a shallow\n // copy so that we're not actually modifying it when we use it\n // to supply defaults:\n var tracedata = gd.data[trace.index];\n // var tracedata = extendFlat({}, gd.data[trace.index]);\n\n // If the data is not specified\n if(!tracedata.a) tracedata.a = carpetdata.a;\n if(!tracedata.b) tracedata.b = carpetdata.b;\n\n supplyDefaults(tracedata, trace, trace._defaultColor, gd._fullLayout);\n }\n\n var cd = heatmappishCalc(gd, trace);\n setContours(trace, trace._z);\n\n return cd;\n};\n\nfunction heatmappishCalc(gd, trace) {\n // prepare the raw data\n // run makeCalcdata on x and y even for heatmaps, in case of category mappings\n var carpet = trace._carpetTrace;\n var aax = carpet.aaxis;\n var bax = carpet.baxis;\n var a,\n a0,\n da,\n b,\n b0,\n db,\n z;\n\n // cancel minimum tick spacings (only applies to bars and boxes)\n aax._minDtick = 0;\n bax._minDtick = 0;\n\n if(Lib.isArray1D(trace.z)) convertColumnData(trace, aax, bax, 'a', 'b', ['z']);\n a = trace._a = trace._a || trace.a;\n b = trace._b = trace._b || trace.b;\n\n a = a ? aax.makeCalcdata(trace, '_a') : [];\n b = b ? bax.makeCalcdata(trace, '_b') : [];\n a0 = trace.a0 || 0;\n da = trace.da || 1;\n b0 = trace.b0 || 0;\n db = trace.db || 1;\n\n z = trace._z = clean2dArray(trace._z || trace.z, trace.transpose);\n\n trace._emptypoints = findEmpties(z);\n interp2d(z, trace._emptypoints);\n\n // create arrays of brick boundaries, to be used by autorange and heatmap.plot\n var xlen = Lib.maxRowLength(z);\n var xIn = trace.xtype === 'scaled' ? '' : a;\n var xArray = makeBoundArray(trace, xIn, a0, da, xlen, aax);\n var yIn = trace.ytype === 'scaled' ? '' : b;\n var yArray = makeBoundArray(trace, yIn, b0, db, z.length, bax);\n\n var cd0 = {\n a: xArray,\n b: yArray,\n z: z,\n };\n\n if(trace.contours.type === 'levels' && trace.contours.coloring !== 'none') {\n // auto-z and autocolorscale if applicable\n colorscaleCalc(gd, trace, {\n vals: z,\n containerStr: '',\n cLetter: 'z'\n });\n }\n\n return [cd0];\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar calcColorscale = require('../scatter/colorscale_calc');\nvar calcMarkerSize = require('../scatter/calc').calcMarkerSize;\nvar convert = require('../scattergl/convert');\nvar Axes = require('../../plots/cartesian/axes');\nvar TOO_MANY_POINTS = require('../scattergl/constants').TOO_MANY_POINTS;\n\nmodule.exports = function calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var subplotId = trace.subplot;\n var radialAxis = fullLayout[subplotId].radialaxis;\n var angularAxis = fullLayout[subplotId].angularaxis;\n var rArray = trace._r = radialAxis.makeCalcdata(trace, 'r');\n var thetaArray = trace._theta = angularAxis.makeCalcdata(trace, 'theta');\n var len = trace._length;\n var stash = {};\n\n if(len < rArray.length) rArray = rArray.slice(0, len);\n if(len < thetaArray.length) thetaArray = thetaArray.slice(0, len);\n\n stash.r = rArray;\n stash.theta = thetaArray;\n\n calcColorscale(gd, trace);\n\n // only compute 'style' options in calc, as position options\n // depend on the radial range and must be set in plot\n var opts = stash.opts = convert.style(gd, trace);\n\n // For graphs with very large number of points and array marker.size,\n // use average marker size instead to speed things up.\n var ppad;\n if(len < TOO_MANY_POINTS) {\n ppad = calcMarkerSize(trace, len);\n } else if(opts.marker) {\n ppad = 2 * (opts.marker.sizeAvg || Math.max(opts.marker.size, 3));\n }\n trace._extremes.x = Axes.findExtremes(radialAxis, rArray, {ppad: ppad});\n\n return [{x: false, y: false, t: stash, trace: trace}];\n};\n","\"use strict\"\n\nvar twoProduct = require(\"two-product\")\nvar robustSum = require(\"robust-sum\")\nvar robustDiff = require(\"robust-subtract\")\nvar robustScale = require(\"robust-scale\")\n\nvar NUM_EXPAND = 6\n\nfunction cofactor(m, c) {\n var result = new Array(m.length-1)\n for(var i=1; i>1\n return [\"sum(\", generateSum(expr.slice(0, m)), \",\", generateSum(expr.slice(m)), \")\"].join(\"\")\n }\n}\n\nfunction makeProduct(a, b) {\n if(a.charAt(0) === \"m\") {\n if(b.charAt(0) === \"w\") {\n var toks = a.split(\"[\")\n return [\"w\", b.substr(1), \"m\", toks[0].substr(1)].join(\"\")\n } else {\n return [\"prod(\", a, \",\", b, \")\"].join(\"\")\n }\n } else {\n return makeProduct(b, a)\n }\n}\n\nfunction sign(s) {\n if(s & 1 !== 0) {\n return \"-\"\n }\n return \"\"\n}\n\nfunction determinant(m) {\n if(m.length === 2) {\n return [[\"diff(\", makeProduct(m[0][0], m[1][1]), \",\", makeProduct(m[1][0], m[0][1]), \")\"].join(\"\")]\n } else {\n var expr = []\n for(var i=0; i ncnt * 2);\n}\n\n// are the (x,y)-values in gd.data mostly text?\n// require twice as many DISTINCT categories as distinct numbers\nfunction category(a) {\n // test at most 1000 points\n var inc = Math.max(1, (a.length - 1) / 1000);\n var curvenums = 0;\n var curvecats = 0;\n var seen = {};\n\n for(var i = 0; i < a.length; i += inc) {\n var ai = a[Math.round(i)];\n var stri = String(ai);\n if(seen[stri]) continue;\n seen[stri] = 1;\n\n if(typeof ai === 'boolean') curvecats++;\n else if(Lib.cleanNumber(ai) !== BADNUM) curvenums++;\n else if(typeof ai === 'string') curvecats++;\n }\n\n return curvecats > curvenums * 2;\n}\n\n// very-loose requirements for multicategory,\n// trace modules that should never auto-type to multicategory\n// should be declared with 'noMultiCategory'\nfunction multiCategory(a) {\n return Lib.isArrayOrTypedArray(a[0]) && Lib.isArrayOrTypedArray(a[1]);\n}\n","/*\n * World Calendars\n * https://github.com/alexcjohnson/world-calendars\n *\n * Batch-converted from kbwood/calendars\n * Many thanks to Keith Wood and all of the contributors to the original project!\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/* http://keith-wood.name/calendars.html\n Taiwanese (Minguo) calendar for jQuery v2.0.2.\n Written by Keith Wood (wood.keith{at}optusnet.com.au) February 2010.\n Available under the MIT (http://keith-wood.name/licence.html) license. \n Please attribute the author if you use it. */\n\nvar main = require('../main');\nvar assign = require('object-assign');\n\n\nvar gregorianCalendar = main.instance();\n\n/** Implementation of the Taiwanese calendar.\n See http://en.wikipedia.org/wiki/Minguo_calendar.\n @class TaiwanCalendar\n @param [language=''] {string} The language code (default English) for localisation. */\nfunction TaiwanCalendar(language) {\n this.local = this.regionalOptions[language || ''] || this.regionalOptions[''];\n}\n\nTaiwanCalendar.prototype = new main.baseCalendar;\n\nassign(TaiwanCalendar.prototype, {\n /** The calendar name.\n @memberof TaiwanCalendar */\n name: 'Taiwan',\n /** Julian date of start of Taiwan epoch: 1 January 1912 CE (Gregorian).\n @memberof TaiwanCalendar */\n jdEpoch: 2419402.5,\n /** Difference in years between Taiwan and Gregorian calendars.\n @memberof TaiwanCalendar */\n yearsOffset: 1911,\n /** Days per month in a common year.\n @memberof TaiwanCalendar */\n daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n /** true if has a year zero, false if not.\n @memberof TaiwanCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof TaiwanCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof TaiwanCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof TaiwanCalendar */\n minDay: 1,\n\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof TaiwanCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: { // Localisations\n '': {\n name: 'Taiwan',\n epochs: ['BROC', 'ROC'],\n monthNames: ['January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n digits: null,\n dateFormat: 'yyyy/mm/dd',\n firstDay: 1,\n isRTL: false\n }\n },\n\n /** Determine whether this date is in a leap year.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.leapYear(year);\n },\n\n /** Determine the week of the year for a date - ISO 8601.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.weekOfYear(year, date.month(), date.day());\n },\n\n /** Retrieve the number of days in a month.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] +\n (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0);\n },\n\n /** Determine whether this date is a week day.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.toJD(year, date.month(), date.day());\n },\n\n /** Create a new date from a Julian date.\n @memberof TaiwanCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var date = gregorianCalendar.fromJD(jd);\n var year = this._g2tYear(date.year());\n return this.newDate(year, date.month(), date.day());\n },\n\n /** Convert Taiwanese to Gregorian year.\n @memberof TaiwanCalendar\n @private\n @param year {number} The Taiwanese year.\n @return {number} The corresponding Gregorian year. */\n _t2gYear: function(year) {\n return year + this.yearsOffset + (year >= -this.yearsOffset && year <= -1 ? 1 : 0);\n },\n\n /** Convert Gregorian to Taiwanese year.\n @memberof TaiwanCalendar\n @private\n @param year {number} The Gregorian year.\n @return {number} The corresponding Taiwanese year. */\n _g2tYear: function(year) {\n return year - this.yearsOffset - (year >= 1 && year <= this.yearsOffset ? 1 : 0);\n }\n});\n\n// Taiwan calendar implementation\nmain.calendars.taiwan = TaiwanCalendar;\n\n","var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar TAU = Math.PI * 2;\n\nvar mapToEllipse = function mapToEllipse(_ref, rx, ry, cosphi, sinphi, centerx, centery) {\n var x = _ref.x,\n y = _ref.y;\n\n x *= rx;\n y *= ry;\n\n var xp = cosphi * x - sinphi * y;\n var yp = sinphi * x + cosphi * y;\n\n return {\n x: xp + centerx,\n y: yp + centery\n };\n};\n\nvar approxUnitArc = function approxUnitArc(ang1, ang2) {\n // If 90 degree circular arc, use a constant\n // as derived from http://spencermortensen.com/articles/bezier-circle\n var a = ang2 === 1.5707963267948966 ? 0.551915024494 : ang2 === -1.5707963267948966 ? -0.551915024494 : 4 / 3 * Math.tan(ang2 / 4);\n\n var x1 = Math.cos(ang1);\n var y1 = Math.sin(ang1);\n var x2 = Math.cos(ang1 + ang2);\n var y2 = Math.sin(ang1 + ang2);\n\n return [{\n x: x1 - y1 * a,\n y: y1 + x1 * a\n }, {\n x: x2 + y2 * a,\n y: y2 - x2 * a\n }, {\n x: x2,\n y: y2\n }];\n};\n\nvar vectorAngle = function vectorAngle(ux, uy, vx, vy) {\n var sign = ux * vy - uy * vx < 0 ? -1 : 1;\n\n var dot = ux * vx + uy * vy;\n\n if (dot > 1) {\n dot = 1;\n }\n\n if (dot < -1) {\n dot = -1;\n }\n\n return sign * Math.acos(dot);\n};\n\nvar getArcCenter = function getArcCenter(px, py, cx, cy, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp) {\n var rxsq = Math.pow(rx, 2);\n var rysq = Math.pow(ry, 2);\n var pxpsq = Math.pow(pxp, 2);\n var pypsq = Math.pow(pyp, 2);\n\n var radicant = rxsq * rysq - rxsq * pypsq - rysq * pxpsq;\n\n if (radicant < 0) {\n radicant = 0;\n }\n\n radicant /= rxsq * pypsq + rysq * pxpsq;\n radicant = Math.sqrt(radicant) * (largeArcFlag === sweepFlag ? -1 : 1);\n\n var centerxp = radicant * rx / ry * pyp;\n var centeryp = radicant * -ry / rx * pxp;\n\n var centerx = cosphi * centerxp - sinphi * centeryp + (px + cx) / 2;\n var centery = sinphi * centerxp + cosphi * centeryp + (py + cy) / 2;\n\n var vx1 = (pxp - centerxp) / rx;\n var vy1 = (pyp - centeryp) / ry;\n var vx2 = (-pxp - centerxp) / rx;\n var vy2 = (-pyp - centeryp) / ry;\n\n var ang1 = vectorAngle(1, 0, vx1, vy1);\n var ang2 = vectorAngle(vx1, vy1, vx2, vy2);\n\n if (sweepFlag === 0 && ang2 > 0) {\n ang2 -= TAU;\n }\n\n if (sweepFlag === 1 && ang2 < 0) {\n ang2 += TAU;\n }\n\n return [centerx, centery, ang1, ang2];\n};\n\nvar arcToBezier = function arcToBezier(_ref2) {\n var px = _ref2.px,\n py = _ref2.py,\n cx = _ref2.cx,\n cy = _ref2.cy,\n rx = _ref2.rx,\n ry = _ref2.ry,\n _ref2$xAxisRotation = _ref2.xAxisRotation,\n xAxisRotation = _ref2$xAxisRotation === undefined ? 0 : _ref2$xAxisRotation,\n _ref2$largeArcFlag = _ref2.largeArcFlag,\n largeArcFlag = _ref2$largeArcFlag === undefined ? 0 : _ref2$largeArcFlag,\n _ref2$sweepFlag = _ref2.sweepFlag,\n sweepFlag = _ref2$sweepFlag === undefined ? 0 : _ref2$sweepFlag;\n\n var curves = [];\n\n if (rx === 0 || ry === 0) {\n return [];\n }\n\n var sinphi = Math.sin(xAxisRotation * TAU / 360);\n var cosphi = Math.cos(xAxisRotation * TAU / 360);\n\n var pxp = cosphi * (px - cx) / 2 + sinphi * (py - cy) / 2;\n var pyp = -sinphi * (px - cx) / 2 + cosphi * (py - cy) / 2;\n\n if (pxp === 0 && pyp === 0) {\n return [];\n }\n\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n\n var lambda = Math.pow(pxp, 2) / Math.pow(rx, 2) + Math.pow(pyp, 2) / Math.pow(ry, 2);\n\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n\n var _getArcCenter = getArcCenter(px, py, cx, cy, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp),\n _getArcCenter2 = _slicedToArray(_getArcCenter, 4),\n centerx = _getArcCenter2[0],\n centery = _getArcCenter2[1],\n ang1 = _getArcCenter2[2],\n ang2 = _getArcCenter2[3];\n\n // If 'ang2' == 90.0000000001, then `ratio` will evaluate to\n // 1.0000000001. This causes `segments` to be greater than one, which is an\n // unecessary split, and adds extra points to the bezier curve. To alleviate\n // this issue, we round to 1.0 when the ratio is close to 1.0.\n\n\n var ratio = Math.abs(ang2) / (TAU / 4);\n if (Math.abs(1.0 - ratio) < 0.0000001) {\n ratio = 1.0;\n }\n\n var segments = Math.max(Math.ceil(ratio), 1);\n\n ang2 /= segments;\n\n for (var i = 0; i < segments; i++) {\n curves.push(approxUnitArc(ang1, ang2));\n ang1 += ang2;\n }\n\n return curves.map(function (curve) {\n var _mapToEllipse = mapToEllipse(curve[0], rx, ry, cosphi, sinphi, centerx, centery),\n x1 = _mapToEllipse.x,\n y1 = _mapToEllipse.y;\n\n var _mapToEllipse2 = mapToEllipse(curve[1], rx, ry, cosphi, sinphi, centerx, centery),\n x2 = _mapToEllipse2.x,\n y2 = _mapToEllipse2.y;\n\n var _mapToEllipse3 = mapToEllipse(curve[2], rx, ry, cosphi, sinphi, centerx, centery),\n x = _mapToEllipse3.x,\n y = _mapToEllipse3.y;\n\n return { x1: x1, y1: y1, x2: x2, y2: y2, x: x, y: y };\n });\n};\n\nexport default arcToBezier;","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar isNumeric = require('fast-isnumeric');\n\nvar Lib = require('../../lib');\nvar Registry = require('../../registry');\nvar Axes = require('../../plots/cartesian/axes');\n\nvar arraysToCalcdata = require('../bar/arrays_to_calcdata');\nvar binFunctions = require('./bin_functions');\nvar normFunctions = require('./norm_functions');\nvar doAvg = require('./average');\nvar getBinSpanLabelRound = require('./bin_label_vals');\n\nfunction calc(gd, trace) {\n var pos = [];\n var size = [];\n var pa = Axes.getFromId(gd, trace.orientation === 'h' ? trace.yaxis : trace.xaxis);\n var mainData = trace.orientation === 'h' ? 'y' : 'x';\n var counterData = {x: 'y', y: 'x'}[mainData];\n var calendar = trace[mainData + 'calendar'];\n var cumulativeSpec = trace.cumulative;\n var i;\n\n var binsAndPos = calcAllAutoBins(gd, trace, pa, mainData);\n var binSpec = binsAndPos[0];\n var pos0 = binsAndPos[1];\n\n var nonuniformBins = typeof binSpec.size === 'string';\n var binEdges = [];\n var bins = nonuniformBins ? binEdges : binSpec;\n // make the empty bin array\n var inc = [];\n var counts = [];\n var inputPoints = [];\n var total = 0;\n var norm = trace.histnorm;\n var func = trace.histfunc;\n var densityNorm = norm.indexOf('density') !== -1;\n var i2, binEnd, n;\n\n if(cumulativeSpec.enabled && densityNorm) {\n // we treat \"cumulative\" like it means \"integral\" if you use a density norm,\n // which in the end means it's the same as without \"density\"\n norm = norm.replace(/ ?density$/, '');\n densityNorm = false;\n }\n\n var extremeFunc = func === 'max' || func === 'min';\n var sizeInit = extremeFunc ? null : 0;\n var binFunc = binFunctions.count;\n var normFunc = normFunctions[norm];\n var isAvg = false;\n var pr2c = function(v) { return pa.r2c(v, 0, calendar); };\n var rawCounterData;\n\n if(Lib.isArrayOrTypedArray(trace[counterData]) && func !== 'count') {\n rawCounterData = trace[counterData];\n isAvg = func === 'avg';\n binFunc = binFunctions[func];\n }\n\n // create the bins (and any extra arrays needed)\n // assume more than 1e6 bins is an error, so we don't crash the browser\n i = pr2c(binSpec.start);\n\n // decrease end a little in case of rounding errors\n binEnd = pr2c(binSpec.end) + (i - Axes.tickIncrement(i, binSpec.size, false, calendar)) / 1e6;\n\n while(i < binEnd && pos.length < 1e6) {\n i2 = Axes.tickIncrement(i, binSpec.size, false, calendar);\n pos.push((i + i2) / 2);\n size.push(sizeInit);\n inputPoints.push([]);\n // nonuniform bins (like months) we need to search,\n // rather than straight calculate the bin we're in\n binEdges.push(i);\n // nonuniform bins also need nonuniform normalization factors\n if(densityNorm) inc.push(1 / (i2 - i));\n if(isAvg) counts.push(0);\n // break to avoid infinite loops\n if(i2 <= i) break;\n i = i2;\n }\n binEdges.push(i);\n\n // for date axes we need bin bounds to be calcdata. For nonuniform bins\n // we already have this, but uniform with start/end/size they're still strings.\n if(!nonuniformBins && pa.type === 'date') {\n bins = {\n start: pr2c(bins.start),\n end: pr2c(bins.end),\n size: bins.size\n };\n }\n\n // bin the data\n // and make histogram-specific pt-number-to-cd-index map object\n var nMax = size.length;\n var uniqueValsPerBin = true;\n var leftGap = Infinity;\n var rightGap = Infinity;\n var ptNumber2cdIndex = {};\n for(i = 0; i < pos0.length; i++) {\n var posi = pos0[i];\n n = Lib.findBin(posi, bins);\n if(n >= 0 && n < nMax) {\n total += binFunc(n, i, size, rawCounterData, counts);\n if(uniqueValsPerBin && inputPoints[n].length && posi !== pos0[inputPoints[n][0]]) {\n uniqueValsPerBin = false;\n }\n inputPoints[n].push(i);\n ptNumber2cdIndex[i] = n;\n\n leftGap = Math.min(leftGap, posi - binEdges[n]);\n rightGap = Math.min(rightGap, binEdges[n + 1] - posi);\n }\n }\n\n var roundFn;\n if(!uniqueValsPerBin) {\n roundFn = getBinSpanLabelRound(leftGap, rightGap, binEdges, pa, calendar);\n }\n\n // average and/or normalize the data, if needed\n if(isAvg) total = doAvg(size, counts);\n if(normFunc) normFunc(size, total, inc);\n\n // after all normalization etc, now we can accumulate if desired\n if(cumulativeSpec.enabled) cdf(size, cumulativeSpec.direction, cumulativeSpec.currentbin);\n\n var seriesLen = Math.min(pos.length, size.length);\n var cd = [];\n var firstNonzero = 0;\n var lastNonzero = seriesLen - 1;\n\n // look for empty bins at the ends to remove, so autoscale omits them\n for(i = 0; i < seriesLen; i++) {\n if(size[i]) {\n firstNonzero = i;\n break;\n }\n }\n for(i = seriesLen - 1; i >= firstNonzero; i--) {\n if(size[i]) {\n lastNonzero = i;\n break;\n }\n }\n\n // create the \"calculated data\" to plot\n for(i = firstNonzero; i <= lastNonzero; i++) {\n if((isNumeric(pos[i]) && isNumeric(size[i]))) {\n var cdi = {\n p: pos[i],\n s: size[i],\n b: 0\n };\n\n // setup hover and event data fields,\n // N.B. pts and \"hover\" positions ph0/ph1 don't seem to make much sense\n // for cumulative distributions\n if(!cumulativeSpec.enabled) {\n cdi.pts = inputPoints[i];\n if(uniqueValsPerBin) {\n cdi.ph0 = cdi.ph1 = (inputPoints[i].length) ? pos0[inputPoints[i][0]] : pos[i];\n } else {\n cdi.ph0 = roundFn(binEdges[i]);\n cdi.ph1 = roundFn(binEdges[i + 1], true);\n }\n }\n cd.push(cdi);\n }\n }\n\n if(cd.length === 1) {\n // when we collapse to a single bin, calcdata no longer describes bin size\n // so we need to explicitly specify it\n cd[0].width1 = Axes.tickIncrement(cd[0].p, binSpec.size, false, calendar) - cd[0].p;\n }\n\n arraysToCalcdata(cd, trace);\n\n if(Lib.isArrayOrTypedArray(trace.selectedpoints)) {\n Lib.tagSelected(cd, trace, ptNumber2cdIndex);\n }\n\n return cd;\n}\n\n/*\n * calcAllAutoBins: we want all histograms inside the same bingroup\n * (see logic in Histogram.crossTraceDefaults) to share bin specs\n *\n * If the user has explicitly specified differing\n * bin specs, there's nothing we can do, but if possible we will try to use the\n * smallest bins of any of the auto values for all histograms inside the same\n * bingroup.\n */\nfunction calcAllAutoBins(gd, trace, pa, mainData, _overlayEdgeCase) {\n var binAttr = mainData + 'bins';\n var fullLayout = gd._fullLayout;\n var groupName = trace['_' + mainData + 'bingroup'];\n var binOpts = fullLayout._histogramBinOpts[groupName];\n var isOverlay = fullLayout.barmode === 'overlay';\n var i, traces, tracei, calendar, pos0, autoVals, cumulativeSpec;\n\n var r2c = function(v) { return pa.r2c(v, 0, calendar); };\n var c2r = function(v) { return pa.c2r(v, 0, calendar); };\n\n var cleanBound = pa.type === 'date' ?\n function(v) { return (v || v === 0) ? Lib.cleanDate(v, null, calendar) : null; } :\n function(v) { return isNumeric(v) ? Number(v) : null; };\n\n function setBound(attr, bins, newBins) {\n if(bins[attr + 'Found']) {\n bins[attr] = cleanBound(bins[attr]);\n if(bins[attr] === null) bins[attr] = newBins[attr];\n } else {\n autoVals[attr] = bins[attr] = newBins[attr];\n Lib.nestedProperty(traces[0], binAttr + '.' + attr).set(newBins[attr]);\n }\n }\n\n // all but the first trace in this group has already been marked finished\n // clear this flag, so next time we run calc we will run autobin again\n if(trace['_' + mainData + 'autoBinFinished']) {\n delete trace['_' + mainData + 'autoBinFinished'];\n } else {\n traces = binOpts.traces;\n var allPos = [];\n\n // Note: we're including `legendonly` traces here for autobin purposes,\n // so that showing & hiding from the legend won't affect bins.\n // But this complicates things a bit since those traces don't `calc`,\n // hence `isFirstVisible`.\n var isFirstVisible = true;\n var has2dMap = false;\n var hasHist2dContour = false;\n for(i = 0; i < traces.length; i++) {\n tracei = traces[i];\n\n if(tracei.visible) {\n var mainDatai = binOpts.dirs[i];\n pos0 = tracei['_' + mainDatai + 'pos0'] = pa.makeCalcdata(tracei, mainDatai);\n\n allPos = Lib.concat(allPos, pos0);\n delete tracei['_' + mainData + 'autoBinFinished'];\n\n if(trace.visible === true) {\n if(isFirstVisible) {\n isFirstVisible = false;\n } else {\n delete tracei._autoBin;\n tracei['_' + mainData + 'autoBinFinished'] = 1;\n }\n if(Registry.traceIs(tracei, '2dMap')) {\n has2dMap = true;\n }\n if(tracei.type === 'histogram2dcontour') {\n hasHist2dContour = true;\n }\n }\n }\n }\n\n calendar = traces[0][mainData + 'calendar'];\n var newBinSpec = Axes.autoBin(allPos, pa, binOpts.nbins, has2dMap, calendar, binOpts.sizeFound && binOpts.size);\n\n var autoBin = traces[0]._autoBin = {};\n autoVals = autoBin[binOpts.dirs[0]] = {};\n\n if(hasHist2dContour) {\n // the \"true\" 2nd argument reverses the tick direction (which we can't\n // just do with a minus sign because of month bins)\n if(!binOpts.size) {\n newBinSpec.start = c2r(Axes.tickIncrement(\n r2c(newBinSpec.start), newBinSpec.size, true, calendar));\n }\n if(binOpts.end === undefined) {\n newBinSpec.end = c2r(Axes.tickIncrement(\n r2c(newBinSpec.end), newBinSpec.size, false, calendar));\n }\n }\n\n // Edge case: single-valued histogram overlaying others\n // Use them all together to calculate the bin size for the single-valued one\n if(isOverlay && !Registry.traceIs(trace, '2dMap') && newBinSpec._dataSpan === 0 &&\n pa.type !== 'category' && pa.type !== 'multicategory') {\n // Several single-valued histograms! Stop infinite recursion,\n // just return an extra flag that tells handleSingleValueOverlays\n // to sort out this trace too\n if(_overlayEdgeCase) return [newBinSpec, pos0, true];\n\n newBinSpec = handleSingleValueOverlays(gd, trace, pa, mainData, binAttr);\n }\n\n // adjust for CDF edge cases\n cumulativeSpec = tracei.cumulative || {};\n if(cumulativeSpec.enabled && (cumulativeSpec.currentbin !== 'include')) {\n if(cumulativeSpec.direction === 'decreasing') {\n newBinSpec.start = c2r(Axes.tickIncrement(\n r2c(newBinSpec.start), newBinSpec.size, true, calendar));\n } else {\n newBinSpec.end = c2r(Axes.tickIncrement(\n r2c(newBinSpec.end), newBinSpec.size, false, calendar));\n }\n }\n\n binOpts.size = newBinSpec.size;\n if(!binOpts.sizeFound) {\n autoVals.size = newBinSpec.size;\n Lib.nestedProperty(traces[0], binAttr + '.size').set(newBinSpec.size);\n }\n\n setBound('start', binOpts, newBinSpec);\n setBound('end', binOpts, newBinSpec);\n }\n\n pos0 = trace['_' + mainData + 'pos0'];\n delete trace['_' + mainData + 'pos0'];\n\n // Each trace can specify its own start/end, or if omitted\n // we ensure they're beyond the bounds of this trace's data,\n // and we need to make sure start is aligned with the main start\n var traceInputBins = trace._input[binAttr] || {};\n var traceBinOptsCalc = Lib.extendFlat({}, binOpts);\n var mainStart = binOpts.start;\n var startIn = pa.r2l(traceInputBins.start);\n var hasStart = startIn !== undefined;\n if((binOpts.startFound || hasStart) && startIn !== pa.r2l(mainStart)) {\n // We have an explicit start to reconcile across traces\n // if this trace has an explicit start, shift it down to a bin edge\n // if another trace had an explicit start, shift it down to a\n // bin edge past our data\n var traceStart = hasStart ?\n startIn :\n Lib.aggNums(Math.min, null, pos0);\n\n var dummyAx = {\n type: (pa.type === 'category' || pa.type === 'multicategory') ? 'linear' : pa.type,\n r2l: pa.r2l,\n dtick: binOpts.size,\n tick0: mainStart,\n calendar: calendar,\n range: ([traceStart, Axes.tickIncrement(traceStart, binOpts.size, false, calendar)]).map(pa.l2r)\n };\n var newStart = Axes.tickFirst(dummyAx);\n if(newStart > pa.r2l(traceStart)) {\n newStart = Axes.tickIncrement(newStart, binOpts.size, true, calendar);\n }\n traceBinOptsCalc.start = pa.l2r(newStart);\n if(!hasStart) Lib.nestedProperty(trace, binAttr + '.start').set(traceBinOptsCalc.start);\n }\n\n var mainEnd = binOpts.end;\n var endIn = pa.r2l(traceInputBins.end);\n var hasEnd = endIn !== undefined;\n if((binOpts.endFound || hasEnd) && endIn !== pa.r2l(mainEnd)) {\n // Reconciling an explicit end is easier, as it doesn't need to\n // match bin edges\n var traceEnd = hasEnd ?\n endIn :\n Lib.aggNums(Math.max, null, pos0);\n\n traceBinOptsCalc.end = pa.l2r(traceEnd);\n if(!hasEnd) Lib.nestedProperty(trace, binAttr + '.start').set(traceBinOptsCalc.end);\n }\n\n // Backward compatibility for one-time autobinning.\n // autobin: true is handled in cleanData, but autobin: false\n // needs to be here where we have determined the values.\n var autoBinAttr = 'autobin' + mainData;\n if(trace._input[autoBinAttr] === false) {\n trace._input[binAttr] = Lib.extendFlat({}, trace[binAttr] || {});\n delete trace._input[autoBinAttr];\n delete trace[autoBinAttr];\n }\n\n return [traceBinOptsCalc, pos0];\n}\n\n/*\n * Adjust single-value histograms in overlay mode to make as good a\n * guess as we can at autobin values the user would like.\n *\n * Returns the binSpec for the trace that sparked all this\n */\nfunction handleSingleValueOverlays(gd, trace, pa, mainData, binAttr) {\n var fullLayout = gd._fullLayout;\n var overlaidTraceGroup = getConnectedHistograms(gd, trace);\n var pastThisTrace = false;\n var minSize = Infinity;\n var singleValuedTraces = [trace];\n var i, tracei, binOpts;\n\n // first collect all the:\n // - min bin size from all multi-valued traces\n // - single-valued traces\n for(i = 0; i < overlaidTraceGroup.length; i++) {\n tracei = overlaidTraceGroup[i];\n\n if(tracei === trace) {\n pastThisTrace = true;\n } else if(!pastThisTrace) {\n // This trace has already had its autobins calculated, so either:\n // - it is part of a bingroup\n // - it is NOT a single-valued trace\n binOpts = fullLayout._histogramBinOpts[tracei['_' + mainData + 'bingroup']];\n minSize = Math.min(minSize, binOpts.size || tracei[binAttr].size);\n } else {\n var resulti = calcAllAutoBins(gd, tracei, pa, mainData, true);\n var binSpeci = resulti[0];\n var isSingleValued = resulti[2];\n\n // so we can use this result when we get to tracei in the normal\n // course of events, mark it as done and put _pos0 back\n tracei['_' + mainData + 'autoBinFinished'] = 1;\n tracei['_' + mainData + 'pos0'] = resulti[1];\n\n if(isSingleValued) {\n singleValuedTraces.push(tracei);\n } else {\n minSize = Math.min(minSize, binSpeci.size);\n }\n }\n }\n\n // find the real data values for each single-valued trace\n // hunt through pos0 for the first valid value\n var dataVals = new Array(singleValuedTraces.length);\n for(i = 0; i < singleValuedTraces.length; i++) {\n var pos0 = singleValuedTraces[i]['_' + mainData + 'pos0'];\n for(var j = 0; j < pos0.length; j++) {\n if(pos0[j] !== undefined) {\n dataVals[i] = pos0[j];\n break;\n }\n }\n }\n\n // are ALL traces are single-valued? use the min difference between\n // all of their values (which defaults to 1 if there's still only one)\n if(!isFinite(minSize)) {\n minSize = Lib.distinctVals(dataVals).minDiff;\n }\n\n // now apply the min size we found to all single-valued traces\n for(i = 0; i < singleValuedTraces.length; i++) {\n tracei = singleValuedTraces[i];\n var calendar = tracei[mainData + 'calendar'];\n\n var newBins = {\n start: pa.c2r(dataVals[i] - minSize / 2, 0, calendar),\n end: pa.c2r(dataVals[i] + minSize / 2, 0, calendar),\n size: minSize\n };\n\n tracei._input[binAttr] = tracei[binAttr] = newBins;\n\n binOpts = fullLayout._histogramBinOpts[tracei['_' + mainData + 'bingroup']];\n if(binOpts) Lib.extendFlat(binOpts, newBins);\n }\n\n return trace[binAttr];\n}\n\n/*\n * Return an array of histograms that share axes and orientation.\n *\n * Only considers histograms. In principle we could include bars in a\n * similar way to how we do manually binned histograms, though this\n * would have tons of edge cases and value judgments to make.\n */\nfunction getConnectedHistograms(gd, trace) {\n var xid = trace.xaxis;\n var yid = trace.yaxis;\n var orientation = trace.orientation;\n\n var out = [];\n var fullData = gd._fullData;\n for(var i = 0; i < fullData.length; i++) {\n var tracei = fullData[i];\n if(tracei.type === 'histogram' &&\n tracei.visible === true &&\n tracei.orientation === orientation &&\n tracei.xaxis === xid && tracei.yaxis === yid\n ) {\n out.push(tracei);\n }\n }\n\n return out;\n}\n\nfunction cdf(size, direction, currentBin) {\n var i, vi, prevSum;\n\n function firstHalfPoint(i) {\n prevSum = size[i];\n size[i] /= 2;\n }\n\n function nextHalfPoint(i) {\n vi = size[i];\n size[i] = prevSum + vi / 2;\n prevSum += vi;\n }\n\n if(currentBin === 'half') {\n if(direction === 'increasing') {\n firstHalfPoint(0);\n for(i = 1; i < size.length; i++) {\n nextHalfPoint(i);\n }\n } else {\n firstHalfPoint(size.length - 1);\n for(i = size.length - 2; i >= 0; i--) {\n nextHalfPoint(i);\n }\n }\n } else if(direction === 'increasing') {\n for(i = 1; i < size.length; i++) {\n size[i] += size[i - 1];\n }\n\n // 'exclude' is identical to 'include' just shifted one bin over\n if(currentBin === 'exclude') {\n size.unshift(0);\n size.pop();\n }\n } else {\n for(i = size.length - 2; i >= 0; i--) {\n size[i] += size[i + 1];\n }\n\n if(currentBin === 'exclude') {\n size.push(0);\n size.shift();\n }\n }\n}\n\nmodule.exports = {\n calc: calc,\n calcAllAutoBins: calcAllAutoBins\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar maxRowLength = require('../../lib').maxRowLength;\n\n/* Return a list of empty points in 2D array z\n * each empty point z[i][j] gives an array [i, j, neighborCount]\n * neighborCount is the count of 4 nearest neighbors that DO exist\n * this is to give us an order of points to evaluate for interpolation.\n * if no neighbors exist, we iteratively look for neighbors that HAVE\n * neighbors, and add a fractional neighborCount\n */\nmodule.exports = function findEmpties(z) {\n var empties = [];\n var neighborHash = {};\n var noNeighborList = [];\n var nextRow = z[0];\n var row = [];\n var blank = [0, 0, 0];\n var rowLength = maxRowLength(z);\n var prevRow;\n var i;\n var j;\n var thisPt;\n var p;\n var neighborCount;\n var newNeighborHash;\n var foundNewNeighbors;\n\n for(i = 0; i < z.length; i++) {\n prevRow = row;\n row = nextRow;\n nextRow = z[i + 1] || [];\n for(j = 0; j < rowLength; j++) {\n if(row[j] === undefined) {\n neighborCount = (row[j - 1] !== undefined ? 1 : 0) +\n (row[j + 1] !== undefined ? 1 : 0) +\n (prevRow[j] !== undefined ? 1 : 0) +\n (nextRow[j] !== undefined ? 1 : 0);\n\n if(neighborCount) {\n // for this purpose, don't count off-the-edge points\n // as undefined neighbors\n if(i === 0) neighborCount++;\n if(j === 0) neighborCount++;\n if(i === z.length - 1) neighborCount++;\n if(j === row.length - 1) neighborCount++;\n\n // if all neighbors that could exist do, we don't\n // need this for finding farther neighbors\n if(neighborCount < 4) {\n neighborHash[[i, j]] = [i, j, neighborCount];\n }\n\n empties.push([i, j, neighborCount]);\n } else noNeighborList.push([i, j]);\n }\n }\n }\n\n while(noNeighborList.length) {\n newNeighborHash = {};\n foundNewNeighbors = false;\n\n // look for cells that now have neighbors but didn't before\n for(p = noNeighborList.length - 1; p >= 0; p--) {\n thisPt = noNeighborList[p];\n i = thisPt[0];\n j = thisPt[1];\n\n neighborCount = ((neighborHash[[i - 1, j]] || blank)[2] +\n (neighborHash[[i + 1, j]] || blank)[2] +\n (neighborHash[[i, j - 1]] || blank)[2] +\n (neighborHash[[i, j + 1]] || blank)[2]) / 20;\n\n if(neighborCount) {\n newNeighborHash[thisPt] = [i, j, neighborCount];\n noNeighborList.splice(p, 1);\n foundNewNeighbors = true;\n }\n }\n\n if(!foundNewNeighbors) {\n throw 'findEmpties iterated with no new neighbors';\n }\n\n // put these new cells into the main neighbor list\n for(thisPt in newNeighborHash) {\n neighborHash[thisPt] = newNeighborHash[thisPt];\n empties.push(newNeighborHash[thisPt]);\n }\n }\n\n // sort the full list in descending order of neighbor count\n return empties.sort(function(a, b) { return b[2] - a[2]; });\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar Lib = require('../../lib');\n\nvar handleSampleDefaults = require('../histogram2d/sample_defaults');\nvar handleContoursDefaults = require('../contour/contours_defaults');\nvar handleStyleDefaults = require('../contour/style_defaults');\nvar attributes = require('./attributes');\n\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n function coerce2(attr) {\n return Lib.coerce2(traceIn, traceOut, attributes, attr);\n }\n\n handleSampleDefaults(traceIn, traceOut, coerce, layout);\n if(traceOut.visible === false) return;\n\n handleContoursDefaults(traceIn, traceOut, coerce, coerce2);\n handleStyleDefaults(traceIn, traceOut, coerce, layout);\n coerce('hovertemplate');\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar isArrayOrTypedArray = require('../../lib').isArrayOrTypedArray;\nvar Colorscale = require('../../components/colorscale');\nvar wrap = require('../../lib/gup').wrap;\n\nmodule.exports = function calc(gd, trace) {\n var lineColor;\n var cscale;\n\n if(Colorscale.hasColorscale(trace, 'line') && isArrayOrTypedArray(trace.line.color)) {\n lineColor = trace.line.color;\n cscale = Colorscale.extractOpts(trace.line).colorscale;\n\n Colorscale.calc(gd, trace, {\n vals: lineColor,\n containerStr: 'line',\n cLetter: 'c'\n });\n } else {\n lineColor = constHalf(trace._length);\n cscale = [[0, trace.line.color], [1, trace.line.color]];\n }\n\n return wrap({lineColor: lineColor, cscale: cscale});\n};\n\nfunction constHalf(len) {\n var out = new Array(len);\n for(var i = 0; i < len; i++) {\n out[i] = 0.5;\n }\n return out;\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar d3 = require('d3');\nvar Lib = require('../../lib');\nvar xmlnsNamespaces = require('../../constants/xmlns_namespaces');\nvar constants = require('./constants');\n\nmodule.exports = function plot(gd, plotinfo, cdimage, imageLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n Lib.makeTraceGroups(imageLayer, cdimage, 'im').each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n\n var z = cd0.z;\n var x0 = cd0.x0;\n var y0 = cd0.y0;\n var w = cd0.w;\n var h = cd0.h;\n var dx = trace.dx;\n var dy = trace.dy;\n\n var left, right, temp, top, bottom, i;\n // in case of log of a negative\n i = 0;\n while(left === undefined && i < w) {\n left = xa.c2p(x0 + i * dx);\n i++;\n }\n i = w;\n while(right === undefined && i > 0) {\n right = xa.c2p(x0 + i * dx);\n i--;\n }\n i = 0;\n while(top === undefined && i < h) {\n top = ya.c2p(y0 + i * dy);\n i++;\n }\n i = h;\n while(bottom === undefined && i > 0) {\n bottom = ya.c2p(y0 + i * dy);\n i--;\n }\n\n if(right < left) {\n temp = right;\n right = left;\n left = temp;\n }\n\n if(bottom < top) {\n temp = top;\n top = bottom;\n bottom = temp;\n }\n\n // Reduce image size when zoomed in to save memory\n var extra = 0.5; // half the axis size\n left = Math.max(-extra * xa._length, left);\n right = Math.min((1 + extra) * xa._length, right);\n top = Math.max(-extra * ya._length, top);\n bottom = Math.min((1 + extra) * ya._length, bottom);\n var imageWidth = Math.round(right - left);\n var imageHeight = Math.round(bottom - top);\n\n // if image is entirely off-screen, don't even draw it\n var isOffScreen = (imageWidth <= 0 || imageHeight <= 0);\n if(isOffScreen) {\n var noImage = plotGroup.selectAll('image').data([]);\n noImage.exit().remove();\n return;\n }\n\n // Draw each pixel\n var canvas = document.createElement('canvas');\n canvas.width = imageWidth;\n canvas.height = imageHeight;\n var context = canvas.getContext('2d');\n\n var ipx = function(i) {return Lib.constrain(Math.round(xa.c2p(x0 + i * dx) - left), 0, imageWidth);};\n var jpx = function(j) {return Lib.constrain(Math.round(ya.c2p(y0 + j * dy) - top), 0, imageHeight);};\n\n var fmt = constants.colormodel[trace.colormodel].fmt;\n var c;\n for(i = 0; i < cd0.w; i++) {\n var ipx0 = ipx(i); var ipx1 = ipx(i + 1);\n if(ipx1 === ipx0 || isNaN(ipx1) || isNaN(ipx0)) continue;\n for(var j = 0; j < cd0.h; j++) {\n var jpx0 = jpx(j); var jpx1 = jpx(j + 1);\n if(jpx1 === jpx0 || isNaN(jpx1) || isNaN(jpx0) || !z[j][i]) continue;\n c = trace._scaler(z[j][i]);\n if(c) {\n context.fillStyle = trace.colormodel + '(' + fmt(c).join(',') + ')';\n } else {\n // Return a transparent pixel\n context.fillStyle = 'rgba(0,0,0,0)';\n }\n context.fillRect(ipx0, jpx0, ipx1 - ipx0, jpx1 - jpx0);\n }\n }\n\n var image3 = plotGroup.selectAll('image')\n .data(cd);\n\n image3.enter().append('svg:image').attr({\n xmlns: xmlnsNamespaces.svg,\n preserveAspectRatio: 'none'\n });\n\n image3.attr({\n height: imageHeight,\n width: imageWidth,\n x: left,\n y: top,\n 'xlink:href': canvas.toDataURL('image/png')\n });\n });\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar isNumeric = require('fast-isnumeric');\nvar isArrayOrTypedArray = require('../../lib').isArrayOrTypedArray;\nvar BADNUM = require('../../constants/numerical').BADNUM;\n\nvar Registry = require('../../registry');\nvar Axes = require('../../plots/cartesian/axes');\nvar getAxisGroup = require('../../plots/cartesian/axis_ids').getAxisGroup;\nvar Sieve = require('./sieve.js');\n\n/*\n * Bar chart stacking/grouping positioning and autoscaling calculations\n * for each direction separately calculate the ranges and positions\n * note that this handles histograms too\n * now doing this one subplot at a time\n */\n\nfunction crossTraceCalc(gd, plotinfo) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n var fullLayout = gd._fullLayout;\n var fullTraces = gd._fullData;\n var calcTraces = gd.calcdata;\n var calcTracesHorz = [];\n var calcTracesVert = [];\n\n for(var i = 0; i < fullTraces.length; i++) {\n var fullTrace = fullTraces[i];\n if(\n fullTrace.visible === true &&\n Registry.traceIs(fullTrace, 'bar') &&\n fullTrace.xaxis === xa._id &&\n fullTrace.yaxis === ya._id\n ) {\n if(fullTrace.orientation === 'h') {\n calcTracesHorz.push(calcTraces[i]);\n } else {\n calcTracesVert.push(calcTraces[i]);\n }\n }\n }\n\n var opts = {\n mode: fullLayout.barmode,\n norm: fullLayout.barnorm,\n gap: fullLayout.bargap,\n groupgap: fullLayout.bargroupgap\n };\n\n setGroupPositions(gd, xa, ya, calcTracesVert, opts);\n setGroupPositions(gd, ya, xa, calcTracesHorz, opts);\n}\n\nfunction setGroupPositions(gd, pa, sa, calcTraces, opts) {\n if(!calcTraces.length) return;\n\n var excluded;\n var included;\n var i, calcTrace, fullTrace;\n\n initBase(sa, calcTraces);\n\n switch(opts.mode) {\n case 'overlay':\n setGroupPositionsInOverlayMode(pa, sa, calcTraces, opts);\n break;\n\n case 'group':\n // exclude from the group those traces for which the user set an offset\n excluded = [];\n included = [];\n for(i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n\n if(fullTrace.offset === undefined) included.push(calcTrace);\n else excluded.push(calcTrace);\n }\n\n if(included.length) {\n setGroupPositionsInGroupMode(gd, pa, sa, included, opts);\n }\n if(excluded.length) {\n setGroupPositionsInOverlayMode(pa, sa, excluded, opts);\n }\n break;\n\n case 'stack':\n case 'relative':\n // exclude from the stack those traces for which the user set a base\n excluded = [];\n included = [];\n for(i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n\n if(fullTrace.base === undefined) included.push(calcTrace);\n else excluded.push(calcTrace);\n }\n\n if(included.length) {\n setGroupPositionsInStackOrRelativeMode(gd, pa, sa, included, opts);\n }\n if(excluded.length) {\n setGroupPositionsInOverlayMode(pa, sa, excluded, opts);\n }\n break;\n }\n\n collectExtents(calcTraces, pa);\n}\n\nfunction initBase(sa, calcTraces) {\n var i, j;\n\n for(i = 0; i < calcTraces.length; i++) {\n var cd = calcTraces[i];\n var trace = cd[0].trace;\n var base = (trace.type === 'funnel') ? trace._base : trace.base;\n var b;\n\n // not sure if it really makes sense to have dates for bar size data...\n // ideally if we want to make gantt charts or something we'd treat\n // the actual size (trace.x or y) as time delta but base as absolute\n // time. But included here for completeness.\n var scalendar = trace.orientation === 'h' ? trace.xcalendar : trace.ycalendar;\n\n // 'base' on categorical axes makes no sense\n var d2c = sa.type === 'category' || sa.type === 'multicategory' ?\n function() { return null; } :\n sa.d2c;\n\n if(isArrayOrTypedArray(base)) {\n for(j = 0; j < Math.min(base.length, cd.length); j++) {\n b = d2c(base[j], 0, scalendar);\n if(isNumeric(b)) {\n cd[j].b = +b;\n cd[j].hasB = 1;\n } else cd[j].b = 0;\n }\n for(; j < cd.length; j++) {\n cd[j].b = 0;\n }\n } else {\n b = d2c(base, 0, scalendar);\n var hasBase = isNumeric(b);\n b = hasBase ? b : 0;\n for(j = 0; j < cd.length; j++) {\n cd[j].b = b;\n if(hasBase) cd[j].hasB = 1;\n }\n }\n }\n}\n\nfunction setGroupPositionsInOverlayMode(pa, sa, calcTraces, opts) {\n // update position axis and set bar offsets and widths\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n\n var sieve = new Sieve([calcTrace], {\n sepNegVal: false,\n overlapNoMerge: !opts.norm\n });\n\n // set bar offsets and widths, and update position axis\n setOffsetAndWidth(pa, sieve, opts);\n\n // set bar bases and sizes, and update size axis\n //\n // (note that `setGroupPositionsInOverlayMode` handles the case barnorm\n // is defined, because this function is also invoked for traces that\n // can't be grouped or stacked)\n if(opts.norm) {\n sieveBars(sieve);\n normalizeBars(sa, sieve, opts);\n } else {\n setBaseAndTop(sa, sieve);\n }\n }\n}\n\nfunction setGroupPositionsInGroupMode(gd, pa, sa, calcTraces, opts) {\n var sieve = new Sieve(calcTraces, {\n sepNegVal: false,\n overlapNoMerge: !opts.norm\n });\n\n // set bar offsets and widths, and update position axis\n setOffsetAndWidthInGroupMode(gd, pa, sieve, opts);\n\n // relative-stack bars within the same trace that would otherwise\n // be hidden\n unhideBarsWithinTrace(sieve);\n\n // set bar bases and sizes, and update size axis\n if(opts.norm) {\n sieveBars(sieve);\n normalizeBars(sa, sieve, opts);\n } else {\n setBaseAndTop(sa, sieve);\n }\n}\n\nfunction setGroupPositionsInStackOrRelativeMode(gd, pa, sa, calcTraces, opts) {\n var sieve = new Sieve(calcTraces, {\n sepNegVal: opts.mode === 'relative',\n overlapNoMerge: !(opts.norm || opts.mode === 'stack' || opts.mode === 'relative')\n });\n\n // set bar offsets and widths, and update position axis\n setOffsetAndWidth(pa, sieve, opts);\n\n // set bar bases and sizes, and update size axis\n stackBars(sa, sieve, opts);\n\n // flag the outmost bar (for text display purposes)\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n\n for(var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n\n if(bar.s !== BADNUM) {\n var isOutmostBar = ((bar.b + bar.s) === sieve.get(bar.p, bar.s));\n if(isOutmostBar) bar._outmost = true;\n }\n }\n }\n\n // Note that marking the outmost bars has to be done\n // before `normalizeBars` changes `bar.b` and `bar.s`.\n if(opts.norm) normalizeBars(sa, sieve, opts);\n}\n\nfunction setOffsetAndWidth(pa, sieve, opts) {\n var minDiff = sieve.minDiff;\n var calcTraces = sieve.traces;\n\n // set bar offsets and widths\n var barGroupWidth = minDiff * (1 - opts.gap);\n var barWidthPlusGap = barGroupWidth;\n var barWidth = barWidthPlusGap * (1 - (opts.groupgap || 0));\n\n // computer bar group center and bar offset\n var offsetFromCenter = -barWidth / 2;\n\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var t = calcTrace[0].t;\n\n // store bar width and offset for this trace\n t.barwidth = barWidth;\n t.poffset = offsetFromCenter;\n t.bargroupwidth = barGroupWidth;\n t.bardelta = minDiff;\n }\n\n // stack bars that only differ by rounding\n sieve.binWidth = calcTraces[0][0].t.barwidth / 100;\n\n // if defined, apply trace offset and width\n applyAttributes(sieve);\n\n // store the bar center in each calcdata item\n setBarCenterAndWidth(pa, sieve);\n\n // update position axes\n updatePositionAxis(pa, sieve);\n}\n\nfunction setOffsetAndWidthInGroupMode(gd, pa, sieve, opts) {\n var fullLayout = gd._fullLayout;\n var positions = sieve.positions;\n var distinctPositions = sieve.distinctPositions;\n var minDiff = sieve.minDiff;\n var calcTraces = sieve.traces;\n var nTraces = calcTraces.length;\n\n // if there aren't any overlapping positions,\n // let them have full width even if mode is group\n var overlap = (positions.length !== distinctPositions.length);\n var barGroupWidth = minDiff * (1 - opts.gap);\n\n var groupId = getAxisGroup(fullLayout, pa._id) + calcTraces[0][0].trace.orientation;\n var alignmentGroups = fullLayout._alignmentOpts[groupId] || {};\n\n for(var i = 0; i < nTraces; i++) {\n var calcTrace = calcTraces[i];\n var trace = calcTrace[0].trace;\n\n var alignmentGroupOpts = alignmentGroups[trace.alignmentgroup] || {};\n var nOffsetGroups = Object.keys(alignmentGroupOpts.offsetGroups || {}).length;\n\n var barWidthPlusGap;\n if(nOffsetGroups) {\n barWidthPlusGap = barGroupWidth / nOffsetGroups;\n } else {\n barWidthPlusGap = overlap ? barGroupWidth / nTraces : barGroupWidth;\n }\n\n var barWidth = barWidthPlusGap * (1 - (opts.groupgap || 0));\n\n var offsetFromCenter;\n if(nOffsetGroups) {\n offsetFromCenter = ((2 * trace._offsetIndex + 1 - nOffsetGroups) * barWidthPlusGap - barWidth) / 2;\n } else {\n offsetFromCenter = overlap ?\n ((2 * i + 1 - nTraces) * barWidthPlusGap - barWidth) / 2 :\n -barWidth / 2;\n }\n\n var t = calcTrace[0].t;\n t.barwidth = barWidth;\n t.poffset = offsetFromCenter;\n t.bargroupwidth = barGroupWidth;\n t.bardelta = minDiff;\n }\n\n // stack bars that only differ by rounding\n sieve.binWidth = calcTraces[0][0].t.barwidth / 100;\n\n // if defined, apply trace width\n applyAttributes(sieve);\n\n // store the bar center in each calcdata item\n setBarCenterAndWidth(pa, sieve);\n\n // update position axes\n updatePositionAxis(pa, sieve, overlap);\n}\n\nfunction applyAttributes(sieve) {\n var calcTraces = sieve.traces;\n var i, j;\n\n for(i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var calcTrace0 = calcTrace[0];\n var fullTrace = calcTrace0.trace;\n var t = calcTrace0.t;\n var offset = fullTrace._offset || fullTrace.offset;\n var initialPoffset = t.poffset;\n var newPoffset;\n\n if(isArrayOrTypedArray(offset)) {\n // if offset is an array, then clone it into t.poffset.\n newPoffset = Array.prototype.slice.call(offset, 0, calcTrace.length);\n\n // guard against non-numeric items\n for(j = 0; j < newPoffset.length; j++) {\n if(!isNumeric(newPoffset[j])) {\n newPoffset[j] = initialPoffset;\n }\n }\n\n // if the length of the array is too short,\n // then extend it with the initial value of t.poffset\n for(j = newPoffset.length; j < calcTrace.length; j++) {\n newPoffset.push(initialPoffset);\n }\n\n t.poffset = newPoffset;\n } else if(offset !== undefined) {\n t.poffset = offset;\n }\n\n var width = fullTrace._width || fullTrace.width;\n var initialBarwidth = t.barwidth;\n\n if(isArrayOrTypedArray(width)) {\n // if width is an array, then clone it into t.barwidth.\n var newBarwidth = Array.prototype.slice.call(width, 0, calcTrace.length);\n\n // guard against non-numeric items\n for(j = 0; j < newBarwidth.length; j++) {\n if(!isNumeric(newBarwidth[j])) newBarwidth[j] = initialBarwidth;\n }\n\n // if the length of the array is too short,\n // then extend it with the initial value of t.barwidth\n for(j = newBarwidth.length; j < calcTrace.length; j++) {\n newBarwidth.push(initialBarwidth);\n }\n\n t.barwidth = newBarwidth;\n\n // if user didn't set offset,\n // then correct t.poffset to ensure bars remain centered\n if(offset === undefined) {\n newPoffset = [];\n for(j = 0; j < calcTrace.length; j++) {\n newPoffset.push(\n initialPoffset + (initialBarwidth - newBarwidth[j]) / 2\n );\n }\n t.poffset = newPoffset;\n }\n } else if(width !== undefined) {\n t.barwidth = width;\n\n // if user didn't set offset,\n // then correct t.poffset to ensure bars remain centered\n if(offset === undefined) {\n t.poffset = initialPoffset + (initialBarwidth - width) / 2;\n }\n }\n }\n}\n\nfunction setBarCenterAndWidth(pa, sieve) {\n var calcTraces = sieve.traces;\n var pLetter = getAxisLetter(pa);\n\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var t = calcTrace[0].t;\n var poffset = t.poffset;\n var poffsetIsArray = Array.isArray(poffset);\n var barwidth = t.barwidth;\n var barwidthIsArray = Array.isArray(barwidth);\n\n for(var j = 0; j < calcTrace.length; j++) {\n var calcBar = calcTrace[j];\n\n // store the actual bar width and position, for use by hover\n var width = calcBar.w = barwidthIsArray ? barwidth[j] : barwidth;\n calcBar[pLetter] = calcBar.p + (poffsetIsArray ? poffset[j] : poffset) + width / 2;\n }\n }\n}\n\nfunction updatePositionAxis(pa, sieve, allowMinDtick) {\n var calcTraces = sieve.traces;\n var minDiff = sieve.minDiff;\n var vpad = minDiff / 2;\n\n Axes.minDtick(pa, sieve.minDiff, sieve.distinctPositions[0], allowMinDtick);\n\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var calcTrace0 = calcTrace[0];\n var fullTrace = calcTrace0.trace;\n var pts = [];\n var bar, l, r, j;\n\n for(j = 0; j < calcTrace.length; j++) {\n bar = calcTrace[j];\n l = bar.p - vpad;\n r = bar.p + vpad;\n pts.push(l, r);\n }\n\n if(fullTrace.width || fullTrace.offset) {\n var t = calcTrace0.t;\n var poffset = t.poffset;\n var barwidth = t.barwidth;\n var poffsetIsArray = Array.isArray(poffset);\n var barwidthIsArray = Array.isArray(barwidth);\n\n for(j = 0; j < calcTrace.length; j++) {\n bar = calcTrace[j];\n var calcBarOffset = poffsetIsArray ? poffset[j] : poffset;\n var calcBarWidth = barwidthIsArray ? barwidth[j] : barwidth;\n l = bar.p + calcBarOffset;\n r = l + calcBarWidth;\n pts.push(l, r);\n }\n }\n\n fullTrace._extremes[pa._id] = Axes.findExtremes(pa, pts, {padded: false});\n }\n}\n\n// store these bar bases and tops in calcdata\n// and make sure the size axis includes zero,\n// along with the bases and tops of each bar.\nfunction setBaseAndTop(sa, sieve) {\n var calcTraces = sieve.traces;\n var sLetter = getAxisLetter(sa);\n\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var fullTrace = calcTrace[0].trace;\n var pts = [];\n var allBaseAboveZero = true;\n\n for(var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n var base = bar.b;\n var top = base + bar.s;\n\n bar[sLetter] = top;\n pts.push(top);\n if(bar.hasB) pts.push(base);\n\n if(!bar.hasB || !(bar.b > 0 && bar.s > 0)) {\n allBaseAboveZero = false;\n }\n }\n\n fullTrace._extremes[sa._id] = Axes.findExtremes(sa, pts, {\n tozero: !allBaseAboveZero,\n padded: true\n });\n }\n}\n\nfunction stackBars(sa, sieve, opts) {\n var sLetter = getAxisLetter(sa);\n var calcTraces = sieve.traces;\n var calcTrace;\n var fullTrace;\n var isFunnel;\n var i, j;\n var bar;\n\n for(i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n\n if(fullTrace.type === 'funnel') {\n for(j = 0; j < calcTrace.length; j++) {\n bar = calcTrace[j];\n\n if(bar.s !== BADNUM) {\n // create base of funnels\n sieve.put(bar.p, -0.5 * bar.s);\n }\n }\n }\n }\n\n for(i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n\n isFunnel = (fullTrace.type === 'funnel');\n\n var pts = [];\n\n for(j = 0; j < calcTrace.length; j++) {\n bar = calcTrace[j];\n\n if(bar.s !== BADNUM) {\n // stack current bar and get previous sum\n var value;\n if(isFunnel) {\n value = bar.s;\n } else {\n value = bar.s + bar.b;\n }\n\n var base = sieve.put(bar.p, value);\n\n var top = base + value;\n\n // store the bar base and top in each calcdata item\n bar.b = base;\n bar[sLetter] = top;\n\n if(!opts.norm) {\n pts.push(top);\n if(bar.hasB) {\n pts.push(base);\n }\n }\n }\n }\n\n // if barnorm is set, let normalizeBars update the axis range\n if(!opts.norm) {\n fullTrace._extremes[sa._id] = Axes.findExtremes(sa, pts, {\n // N.B. we don't stack base with 'base',\n // so set tozero:true always!\n tozero: true,\n padded: true\n });\n }\n }\n}\n\nfunction sieveBars(sieve) {\n var calcTraces = sieve.traces;\n\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n\n for(var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n\n if(bar.s !== BADNUM) {\n sieve.put(bar.p, bar.b + bar.s);\n }\n }\n }\n}\n\nfunction unhideBarsWithinTrace(sieve) {\n var calcTraces = sieve.traces;\n\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var fullTrace = calcTrace[0].trace;\n\n if(fullTrace.base === undefined) {\n var inTraceSieve = new Sieve([calcTrace], {\n sepNegVal: true,\n overlapNoMerge: true\n });\n\n for(var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n\n if(bar.p !== BADNUM) {\n // stack current bar and get previous sum\n var base = inTraceSieve.put(bar.p, bar.b + bar.s);\n\n // if previous sum if non-zero, this means:\n // multiple bars have same starting point are potentially hidden,\n // shift them vertically so that all bars are visible by default\n if(base) bar.b = base;\n }\n }\n }\n }\n}\n\n// Note:\n//\n// normalizeBars requires that either sieveBars or stackBars has been\n// previously invoked.\nfunction normalizeBars(sa, sieve, opts) {\n var calcTraces = sieve.traces;\n var sLetter = getAxisLetter(sa);\n var sTop = opts.norm === 'fraction' ? 1 : 100;\n var sTiny = sTop / 1e9; // in case of rounding error in sum\n var sMin = sa.l2c(sa.c2l(0));\n var sMax = opts.mode === 'stack' ? sTop : sMin;\n\n function needsPadding(v) {\n return (\n isNumeric(sa.c2l(v)) &&\n ((v < sMin - sTiny) || (v > sMax + sTiny) || !isNumeric(sMin))\n );\n }\n\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var fullTrace = calcTrace[0].trace;\n var pts = [];\n var allBaseAboveZero = true;\n var padded = false;\n\n for(var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n\n if(bar.s !== BADNUM) {\n var scale = Math.abs(sTop / sieve.get(bar.p, bar.s));\n bar.b *= scale;\n bar.s *= scale;\n\n var base = bar.b;\n var top = base + bar.s;\n\n bar[sLetter] = top;\n pts.push(top);\n padded = padded || needsPadding(top);\n\n if(bar.hasB) {\n pts.push(base);\n padded = padded || needsPadding(base);\n }\n\n if(!bar.hasB || !(bar.b > 0 && bar.s > 0)) {\n allBaseAboveZero = false;\n }\n }\n }\n\n fullTrace._extremes[sa._id] = Axes.findExtremes(sa, pts, {\n tozero: !allBaseAboveZero,\n padded: padded\n });\n }\n}\n\n// find the full position span of bars at each position\n// for use by hover, to ensure labels move in if bars are\n// narrower than the space they're in.\n// run once per trace group (subplot & direction) and\n// the same mapping is attached to all calcdata traces\nfunction collectExtents(calcTraces, pa) {\n var pLetter = getAxisLetter(pa);\n var extents = {};\n var i, j, cd;\n\n var pMin = Infinity;\n var pMax = -Infinity;\n\n for(i = 0; i < calcTraces.length; i++) {\n cd = calcTraces[i];\n for(j = 0; j < cd.length; j++) {\n var p = cd[j].p;\n if(isNumeric(p)) {\n pMin = Math.min(pMin, p);\n pMax = Math.max(pMax, p);\n }\n }\n }\n\n // this is just for positioning of hover labels, and nobody will care if\n // the label is 1px too far out; so round positions to 1/10K in case\n // position values don't exactly match from trace to trace\n var roundFactor = 10000 / (pMax - pMin);\n var round = extents.round = function(p) {\n return String(Math.round(roundFactor * (p - pMin)));\n };\n\n for(i = 0; i < calcTraces.length; i++) {\n cd = calcTraces[i];\n cd[0].t.extents = extents;\n\n var poffset = cd[0].t.poffset;\n var poffsetIsArray = Array.isArray(poffset);\n\n for(j = 0; j < cd.length; j++) {\n var di = cd[j];\n var p0 = di[pLetter] - di.w / 2;\n\n if(isNumeric(p0)) {\n var p1 = di[pLetter] + di.w / 2;\n var pVal = round(di.p);\n if(extents[pVal]) {\n extents[pVal] = [Math.min(p0, extents[pVal][0]), Math.max(p1, extents[pVal][1])];\n } else {\n extents[pVal] = [p0, p1];\n }\n }\n\n di.p0 = di.p + (poffsetIsArray ? poffset[j] : poffset);\n di.p1 = di.p0 + di.w;\n di.s0 = di.b;\n di.s1 = di.s0 + di.s;\n }\n }\n}\n\nfunction getAxisLetter(ax) {\n return ax._id.charAt(0);\n}\n\nmodule.exports = {\n crossTraceCalc: crossTraceCalc,\n setGroupPositions: setGroupPositions\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n cellPad: 8,\n columnExtentOffset: 10,\n columnTitleOffset: 28,\n emptyHeaderHeight: 16,\n latexCheck: /^\\$.*\\$$/,\n goldenRatio: 1.618,\n lineBreaker: '
',\n maxDimensionCount: 60,\n overdrag: 45,\n releaseTransitionDuration: 120,\n releaseTransitionEase: 'cubic-out',\n scrollbarCaptureWidth: 18,\n scrollbarHideDelay: 1000,\n scrollbarHideDuration: 1000,\n scrollbarOffset: 5,\n scrollbarWidth: 8,\n transitionDuration: 100,\n transitionEase: 'cubic-out',\n uplift: 5,\n wrapSpacer: ' ',\n wrapSplitCharacter: ' ',\n cn: {\n // general class names\n table: 'table',\n tableControlView: 'table-control-view',\n scrollBackground: 'scroll-background',\n yColumn: 'y-column',\n columnBlock: 'column-block',\n scrollAreaClip: 'scroll-area-clip',\n scrollAreaClipRect: 'scroll-area-clip-rect',\n columnBoundary: 'column-boundary',\n columnBoundaryClippath: 'column-boundary-clippath',\n columnBoundaryRect: 'column-boundary-rect',\n columnCells: 'column-cells',\n columnCell: 'column-cell',\n cellRect: 'cell-rect',\n cellText: 'cell-text',\n cellTextHolder: 'cell-text-holder',\n\n // scroll related class names\n scrollbarKit: 'scrollbar-kit',\n scrollbar: 'scrollbar',\n scrollbarSlider: 'scrollbar-slider',\n scrollbarGlyph: 'scrollbar-glyph',\n scrollbarCaptureZone: 'scrollbar-capture-zone'\n }\n};\n","\"use strict\"\n\nvar twoProduct = require(\"two-product\")\nvar twoSum = require(\"two-sum\")\n\nmodule.exports = scaleLinearExpansion\n\nfunction scaleLinearExpansion(e, scale) {\n var n = e.length\n if(n === 1) {\n var ts = twoProduct(e[0], scale)\n if(ts[0]) {\n return ts\n }\n return [ ts[1] ]\n }\n var g = new Array(2 * n)\n var q = [0.1, 0.1]\n var t = [0.1, 0.1]\n var count = 0\n twoProduct(e[0], scale, q)\n if(q[0]) {\n g[count++] = q[0]\n }\n for(var i=1; i': makeInequalitySettings('>'),\n '<': makeInequalitySettings('<'),\n '=': makeInequalitySettings('=')\n};\n\n// This does not in any way shape or form support calendars. It's adapted from\n// transforms/filter.js.\nfunction coerceValue(operation, value) {\n var hasArrayValue = Array.isArray(value);\n\n var coercedValue;\n\n function coerce(value) {\n return isNumeric(value) ? (+value) : null;\n }\n\n if(filterOps.COMPARISON_OPS2.indexOf(operation) !== -1) {\n coercedValue = hasArrayValue ? coerce(value[0]) : coerce(value);\n } else if(filterOps.INTERVAL_OPS.indexOf(operation) !== -1) {\n coercedValue = hasArrayValue ?\n [coerce(value[0]), coerce(value[1])] :\n [coerce(value), coerce(value)];\n } else if(filterOps.SET_OPS.indexOf(operation) !== -1) {\n coercedValue = hasArrayValue ? value.map(coerce) : [coerce(value)];\n }\n\n return coercedValue;\n}\n\n// Returns a parabola scaled so that the min/max is either +/- 1 and zero at the two values\n// provided. The data is mapped by this function when constructing intervals so that it's\n// very easy to construct contours as normal.\nfunction makeRangeSettings(operation) {\n return function(value) {\n value = coerceValue(operation, value);\n\n // Ensure proper ordering:\n var min = Math.min(value[0], value[1]);\n var max = Math.max(value[0], value[1]);\n\n return {\n start: min,\n end: max,\n size: max - min\n };\n };\n}\n\nfunction makeInequalitySettings(operation) {\n return function(value) {\n value = coerceValue(operation, value);\n\n return {\n start: value,\n end: Infinity,\n size: Infinity\n };\n };\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Registry = require('../../registry');\nvar Lib = require('../../lib');\nvar Color = require('../../components/color');\n\nvar handleStyleDefaults = require('../bar/style_defaults');\nvar attributes = require('./attributes');\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var x = coerce('x');\n var y = coerce('y');\n\n var cumulative = coerce('cumulative.enabled');\n if(cumulative) {\n coerce('cumulative.direction');\n coerce('cumulative.currentbin');\n }\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n\n var orientation = coerce('orientation', (y && !x) ? 'h' : 'v');\n var sampleLetter = orientation === 'v' ? 'x' : 'y';\n var aggLetter = orientation === 'v' ? 'y' : 'x';\n\n var len = (x && y) ?\n Math.min(Lib.minRowLength(x) && Lib.minRowLength(y)) :\n Lib.minRowLength(traceOut[sampleLetter] || []);\n\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n traceOut._length = len;\n\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');\n handleCalendarDefaults(traceIn, traceOut, ['x', 'y'], layout);\n\n var hasAggregationData = traceOut[aggLetter];\n if(hasAggregationData) coerce('histfunc');\n coerce('histnorm');\n\n // Note: bin defaults are now handled in Histogram.crossTraceDefaults\n // autobin(x|y) are only included here to appease Plotly.validate\n coerce('autobin' + sampleLetter);\n\n handleStyleDefaults(traceIn, traceOut, coerce, defaultColor, layout);\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n\n var lineColor = (traceOut.marker.line || {}).color;\n\n // override defaultColor for error bars with defaultLine\n var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults');\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'y'});\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'x', inherit: 'y'});\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar Color = require('../../components/color');\nvar Template = require('../../plot_api/plot_template');\n\nvar handleSubplotDefaults = require('../subplot_defaults');\nvar getSubplotData = require('../get_data').getSubplotData;\n\nvar handleTickValueDefaults = require('../cartesian/tick_value_defaults');\nvar handleTickMarkDefaults = require('../cartesian/tick_mark_defaults');\nvar handleTickLabelDefaults = require('../cartesian/tick_label_defaults');\nvar handleCategoryOrderDefaults = require('../cartesian/category_order_defaults');\nvar handleLineGridDefaults = require('../cartesian/line_grid_defaults');\nvar autoType = require('../cartesian/axis_autotype');\n\nvar layoutAttributes = require('./layout_attributes');\nvar setConvert = require('./set_convert');\nvar constants = require('./constants');\nvar axisNames = constants.axisNames;\n\nfunction handleDefaults(contIn, contOut, coerce, opts) {\n var bgColor = coerce('bgcolor');\n opts.bgColor = Color.combine(bgColor, opts.paper_bgcolor);\n\n var sector = coerce('sector');\n coerce('hole');\n\n // could optimize, subplotData is not always needed!\n var subplotData = getSubplotData(opts.fullData, constants.name, opts.id);\n var layoutOut = opts.layoutOut;\n var axName;\n\n function coerceAxis(attr, dflt) {\n return coerce(axName + '.' + attr, dflt);\n }\n\n for(var i = 0; i < axisNames.length; i++) {\n axName = axisNames[i];\n\n if(!Lib.isPlainObject(contIn[axName])) {\n contIn[axName] = {};\n }\n\n var axIn = contIn[axName];\n var axOut = Template.newContainer(contOut, axName);\n axOut._id = axOut._name = axName;\n axOut._attr = opts.id + '.' + axName;\n axOut._traceIndices = subplotData.map(function(t) { return t._expandedIndex; });\n\n var dataAttr = constants.axisName2dataArray[axName];\n var axType = handleAxisTypeDefaults(axIn, axOut, coerceAxis, subplotData, dataAttr);\n\n handleCategoryOrderDefaults(axIn, axOut, coerceAxis, {\n axData: subplotData,\n dataAttr: dataAttr\n });\n\n var visible = coerceAxis('visible');\n setConvert(axOut, contOut, layoutOut);\n\n coerceAxis('uirevision', contOut.uirevision);\n\n var dfltColor;\n var dfltFontColor;\n\n if(visible) {\n dfltColor = coerceAxis('color');\n dfltFontColor = (dfltColor === axIn.color) ? dfltColor : opts.font.color;\n }\n\n // We don't want to make downstream code call ax.setScale,\n // as both radial and angular axes don't have a set domain.\n // Furthermore, angular axes don't have a set range.\n //\n // Mocked domains and ranges are set by the polar subplot instances,\n // but Axes.findExtremes uses the sign of _m to determine which padding value\n // to use.\n //\n // By setting, _m to 1 here, we make Axes.findExtremes think that\n // range[1] > range[0], and vice-versa for `autorange: 'reversed'` below.\n axOut._m = 1;\n\n switch(axName) {\n case 'radialaxis':\n var autoRange = coerceAxis('autorange', !axOut.isValidRange(axIn.range));\n axIn.autorange = autoRange;\n if(autoRange && (axType === 'linear' || axType === '-')) coerceAxis('rangemode');\n if(autoRange === 'reversed') axOut._m = -1;\n\n coerceAxis('range');\n axOut.cleanRange('range', {dfltRange: [0, 1]});\n\n if(visible) {\n coerceAxis('side');\n coerceAxis('angle', sector[0]);\n\n coerceAxis('title.text');\n Lib.coerceFont(coerceAxis, 'title.font', {\n family: opts.font.family,\n size: Math.round(opts.font.size * 1.2),\n color: dfltFontColor\n });\n }\n break;\n\n case 'angularaxis':\n // We do not support 'true' date angular axes yet,\n // users can still plot dates on angular axes by setting\n // `angularaxis.type: 'category'`.\n //\n // Here, if a date angular axes is detected, we make\n // all its corresponding traces invisible, so that\n // when we do add support for data angular axes, the new\n // behavior won't conflict with existing behavior\n if(axType === 'date') {\n Lib.log('Polar plots do not support date angular axes yet.');\n\n for(var j = 0; j < subplotData.length; j++) {\n subplotData[j].visible = false;\n }\n\n // turn this into a 'dummy' linear axis so that\n // the subplot still renders ok\n axType = axIn.type = axOut.type = 'linear';\n }\n\n if(axType === 'linear') {\n coerceAxis('thetaunit');\n } else {\n coerceAxis('period');\n }\n\n var direction = coerceAxis('direction');\n coerceAxis('rotation', {counterclockwise: 0, clockwise: 90}[direction]);\n break;\n }\n\n if(visible) {\n handleTickValueDefaults(axIn, axOut, coerceAxis, axOut.type);\n handleTickLabelDefaults(axIn, axOut, coerceAxis, axOut.type, {\n tickSuffixDflt: axOut.thetaunit === 'degrees' ? '°' : undefined\n });\n handleTickMarkDefaults(axIn, axOut, coerceAxis, {outerTicks: true});\n\n var showTickLabels = coerceAxis('showticklabels');\n if(showTickLabels) {\n Lib.coerceFont(coerceAxis, 'tickfont', {\n family: opts.font.family,\n size: opts.font.size,\n color: dfltFontColor\n });\n coerceAxis('tickangle');\n coerceAxis('tickformat');\n }\n\n handleLineGridDefaults(axIn, axOut, coerceAxis, {\n dfltColor: dfltColor,\n bgColor: opts.bgColor,\n // default grid color is darker here (60%, vs cartesian default ~91%)\n // because the grid is not square so the eye needs heavier cues to follow\n blend: 60,\n showLine: true,\n showGrid: true,\n noZeroLine: true,\n attributes: layoutAttributes[axName]\n });\n\n coerceAxis('layer');\n }\n\n if(axType !== 'category') coerceAxis('hoverformat');\n\n axOut._input = axIn;\n }\n\n if(contOut.angularaxis.type === 'category') {\n coerce('gridshape');\n }\n}\n\nfunction handleAxisTypeDefaults(axIn, axOut, coerce, subplotData, dataAttr) {\n var axType = coerce('type');\n\n if(axType === '-') {\n var trace;\n\n for(var i = 0; i < subplotData.length; i++) {\n if(subplotData[i].visible) {\n trace = subplotData[i];\n break;\n }\n }\n\n if(trace && trace[dataAttr]) {\n axOut.type = autoType(trace[dataAttr], 'gregorian');\n }\n\n if(axOut.type === '-') {\n axOut.type = 'linear';\n } else {\n // copy autoType back to input axis\n // note that if this object didn't exist\n // in the input layout, we have to put it in\n // this happens in the main supplyDefaults function\n axIn.type = axOut.type;\n }\n }\n\n return axOut.type;\n}\n\nmodule.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n handleSubplotDefaults(layoutIn, layoutOut, fullData, {\n type: constants.name,\n attributes: layoutAttributes,\n handleDefaults: handleDefaults,\n font: layoutOut.font,\n paper_bgcolor: layoutOut.paper_bgcolor,\n fullData: fullData,\n layoutOut: layoutOut\n });\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\n// Modified from https://github.com/ArthurClemens/Javascript-Undo-Manager\n// Copyright (c) 2010-2013 Arthur Clemens, arthur@visiblearea.com\nmodule.exports = function UndoManager() {\n var undoCommands = [];\n var index = -1;\n var isExecuting = false;\n var callback;\n\n function execute(command, action) {\n if(!command) return this;\n\n isExecuting = true;\n command[action]();\n isExecuting = false;\n\n return this;\n }\n\n return {\n add: function(command) {\n if(isExecuting) return this;\n undoCommands.splice(index + 1, undoCommands.length - index);\n undoCommands.push(command);\n index = undoCommands.length - 1;\n return this;\n },\n setCallback: function(callbackFunc) { callback = callbackFunc; },\n undo: function() {\n var command = undoCommands[index];\n if(!command) return this;\n execute(command, 'undo');\n index -= 1;\n if(callback) callback(command.undo);\n return this;\n },\n redo: function() {\n var command = undoCommands[index + 1];\n if(!command) return this;\n execute(command, 'redo');\n index += 1;\n if(callback) callback(command.redo);\n return this;\n },\n clear: function() {\n undoCommands = [];\n index = -1;\n },\n hasUndo: function() { return index !== -1; },\n hasRedo: function() { return index < (undoCommands.length - 1); },\n getCommands: function() { return undoCommands; },\n getPreviousCommand: function() { return undoCommands[index - 1]; },\n getIndex: function() { return index; }\n };\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\n// a trimmed down version of:\n// https://github.com/alexcjohnson/world-calendars/blob/master/dist/index.js\n\nmodule.exports = require('world-calendars/dist/main');\n\nrequire('world-calendars/dist/plus');\n\nrequire('world-calendars/dist/calendars/chinese');\nrequire('world-calendars/dist/calendars/coptic');\nrequire('world-calendars/dist/calendars/discworld');\nrequire('world-calendars/dist/calendars/ethiopian');\nrequire('world-calendars/dist/calendars/hebrew');\nrequire('world-calendars/dist/calendars/islamic');\nrequire('world-calendars/dist/calendars/julian');\nrequire('world-calendars/dist/calendars/mayan');\nrequire('world-calendars/dist/calendars/nanakshahi');\nrequire('world-calendars/dist/calendars/nepali');\nrequire('world-calendars/dist/calendars/persian');\nrequire('world-calendars/dist/calendars/taiwan');\nrequire('world-calendars/dist/calendars/thai');\nrequire('world-calendars/dist/calendars/ummalqura');\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar overrideAll = require('../../plot_api/edit_types').overrideAll;\nvar fxAttrs = require('../../components/fx/layout_attributes');\n\nvar Scene = require('./scene');\nvar getSubplotData = require('../get_data').getSubplotData;\nvar Lib = require('../../lib');\nvar xmlnsNamespaces = require('../../constants/xmlns_namespaces');\n\nvar GL3D = 'gl3d';\nvar SCENE = 'scene';\n\n\nexports.name = GL3D;\n\nexports.attr = SCENE;\n\nexports.idRoot = SCENE;\n\nexports.idRegex = exports.attrRegex = Lib.counterRegex('scene');\n\nexports.attributes = require('./layout/attributes');\n\nexports.layoutAttributes = require('./layout/layout_attributes');\n\nexports.baseLayoutAttrOverrides = overrideAll({\n hoverlabel: fxAttrs.hoverlabel\n}, 'plot', 'nested');\n\nexports.supplyLayoutDefaults = require('./layout/defaults');\n\nexports.plot = function plot(gd) {\n var fullLayout = gd._fullLayout;\n var fullData = gd._fullData;\n var sceneIds = fullLayout._subplots[GL3D];\n\n for(var i = 0; i < sceneIds.length; i++) {\n var sceneId = sceneIds[i];\n var fullSceneData = getSubplotData(fullData, GL3D, sceneId);\n var sceneLayout = fullLayout[sceneId];\n var camera = sceneLayout.camera;\n var scene = sceneLayout._scene;\n\n if(!scene) {\n scene = new Scene({\n id: sceneId,\n graphDiv: gd,\n container: gd.querySelector('.gl-container'),\n staticPlot: gd._context.staticPlot,\n plotGlPixelRatio: gd._context.plotGlPixelRatio,\n camera: camera\n },\n fullLayout\n );\n\n // set ref to Scene instance\n sceneLayout._scene = scene;\n }\n\n // save 'initial' camera view settings for modebar button\n if(!scene.viewInitial) {\n scene.viewInitial = {\n up: {\n x: camera.up.x,\n y: camera.up.y,\n z: camera.up.z\n },\n eye: {\n x: camera.eye.x,\n y: camera.eye.y,\n z: camera.eye.z\n },\n center: {\n x: camera.center.x,\n y: camera.center.y,\n z: camera.center.z\n }\n };\n }\n\n scene.plot(fullSceneData, fullLayout, gd.layout);\n }\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldSceneKeys = oldFullLayout._subplots[GL3D] || [];\n\n for(var i = 0; i < oldSceneKeys.length; i++) {\n var oldSceneKey = oldSceneKeys[i];\n\n if(!newFullLayout[oldSceneKey] && !!oldFullLayout[oldSceneKey]._scene) {\n oldFullLayout[oldSceneKey]._scene.destroy();\n\n if(oldFullLayout._infolayer) {\n oldFullLayout._infolayer\n .selectAll('.annotation-' + oldSceneKey)\n .remove();\n }\n }\n }\n};\n\nexports.toSVG = function(gd) {\n var fullLayout = gd._fullLayout;\n var sceneIds = fullLayout._subplots[GL3D];\n var size = fullLayout._size;\n\n for(var i = 0; i < sceneIds.length; i++) {\n var sceneLayout = fullLayout[sceneIds[i]];\n var domain = sceneLayout.domain;\n var scene = sceneLayout._scene;\n\n var imageData = scene.toImage('png');\n var image = fullLayout._glimages.append('svg:image');\n\n image.attr({\n xmlns: xmlnsNamespaces.svg,\n 'xlink:href': imageData,\n x: size.l + size.w * domain.x[0],\n y: size.t + size.h * (1 - domain.y[1]),\n width: size.w * (domain.x[1] - domain.x[0]),\n height: size.h * (domain.y[1] - domain.y[0]),\n preserveAspectRatio: 'none'\n });\n\n scene.destroy();\n }\n};\n\n// clean scene ids, 'scene1' -> 'scene'\nexports.cleanId = function cleanId(id) {\n if(!id.match(/^scene[0-9]*$/)) return;\n\n var sceneNum = id.substr(5);\n if(sceneNum === '1') sceneNum = '';\n\n return SCENE + sceneNum;\n};\n\nexports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[GL3D];\n\n for(var i = 0; i < subplotIds.length; i++) {\n var subplotObj = fullLayout[subplotIds[i]]._scene;\n subplotObj.updateFx(fullLayout.dragmode, fullLayout.hovermode);\n }\n};\n","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 3.3.1\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.ES6Promise = factory());\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n return typeof x === 'function' || typeof x === 'object' && x !== null;\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nvar _isArray = undefined;\nif (!Array.isArray) {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n} else {\n _isArray = Array.isArray;\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n return function () {\n vertxNext(flush);\n };\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n _resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n _reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n _reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n _reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return _resolve(promise, value);\n }, function (reason) {\n return _reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$) {\n if (maybeThenable.constructor === promise.constructor && then$$ === then && maybeThenable.constructor.resolve === resolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$ === GET_THEN_ERROR) {\n _reject(promise, GET_THEN_ERROR.error);\n } else if (then$$ === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$)) {\n handleForeignThenable(promise, maybeThenable, then$$);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction _resolve(promise, value) {\n if (promise === value) {\n _reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction _reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n _reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n _resolve(promise, value);\n } else if (failed) {\n _reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n _reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n _resolve(promise, value);\n }, function rejectPromise(reason) {\n _reject(promise, reason);\n });\n } catch (e) {\n _reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this._input = input;\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate();\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n _reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function () {\n var length = this.length;\n var _input = this._input;\n\n for (var i = 0; this._state === PENDING && i < length; i++) {\n this._eachEntry(_input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve$$ = c.resolve;\n\n if (resolve$$ === resolve) {\n var _then = getThen(entry);\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$) {\n return resolve$$(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n _reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = resolve;\nPromise.reject = reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};\n\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}\n\npolyfill();\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\n\nreturn Promise;\n\n})));\n//# sourceMappingURL=es6-promise.map","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\n// more info: http://stackoverflow.com/questions/18531624/isplainobject-thing\nmodule.exports = function isPlainObject(obj) {\n // We need to be a little less strict in the `imagetest` container because\n // of how async image requests are handled.\n //\n // N.B. isPlainObject(new Constructor()) will return true in `imagetest`\n if(window && window.process && window.process.versions) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n }\n\n return (\n Object.prototype.toString.call(obj) === '[object Object]' &&\n Object.getPrototypeOf(obj) === Object.prototype\n );\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar d3Hierarchy = require('d3-hierarchy');\nvar isNumeric = require('fast-isnumeric');\n\nvar Lib = require('../../lib');\nvar makeColorScaleFn = require('../../components/colorscale').makeColorScaleFuncFromTrace;\nvar makePullColorFn = require('../pie/calc').makePullColorFn;\nvar generateExtendedColors = require('../pie/calc').generateExtendedColors;\nvar colorscaleCalc = require('../../components/colorscale').calc;\n\nvar ALMOST_EQUAL = require('../../constants/numerical').ALMOST_EQUAL;\n\nvar sunburstExtendedColorWays = {};\nvar treemapExtendedColorWays = {};\n\nexports.calc = function(gd, trace) {\n var fullLayout = gd._fullLayout;\n var ids = trace.ids;\n var hasIds = Lib.isArrayOrTypedArray(ids);\n var labels = trace.labels;\n var parents = trace.parents;\n var values = trace.values;\n var hasValues = Lib.isArrayOrTypedArray(values);\n var cd = [];\n\n var parent2children = {};\n var refs = {};\n var addToLookup = function(parent, v) {\n if(parent2children[parent]) parent2children[parent].push(v);\n else parent2children[parent] = [v];\n refs[v] = 1;\n };\n\n // treat number `0` as valid\n var isValidKey = function(k) {\n return k || typeof k === 'number';\n };\n\n var isValidVal = function(i) {\n return !hasValues || (isNumeric(values[i]) && values[i] >= 0);\n };\n\n var len;\n var isValid;\n var getId;\n\n if(hasIds) {\n len = Math.min(ids.length, parents.length);\n isValid = function(i) { return isValidKey(ids[i]) && isValidVal(i); };\n getId = function(i) { return String(ids[i]); };\n } else {\n len = Math.min(labels.length, parents.length);\n isValid = function(i) { return isValidKey(labels[i]) && isValidVal(i); };\n // TODO We could allow some label / parent duplication\n //\n // From AJ:\n // It would work OK for one level\n // (multiple rows with the same name and different parents -\n // or even the same parent) but if that name is then used as a parent\n // which one is it?\n getId = function(i) { return String(labels[i]); };\n }\n\n if(hasValues) len = Math.min(len, values.length);\n\n for(var i = 0; i < len; i++) {\n if(isValid(i)) {\n var id = getId(i);\n var pid = isValidKey(parents[i]) ? String(parents[i]) : '';\n\n var cdi = {\n i: i,\n id: id,\n pid: pid,\n label: isValidKey(labels[i]) ? String(labels[i]) : ''\n };\n\n if(hasValues) cdi.v = +values[i];\n cd.push(cdi);\n addToLookup(pid, id);\n }\n }\n\n if(!parent2children['']) {\n var impliedRoots = [];\n var k;\n for(k in parent2children) {\n if(!refs[k]) {\n impliedRoots.push(k);\n }\n }\n\n // if an `id` has no ref in the `parents` array,\n // take it as being the root node\n\n if(impliedRoots.length === 1) {\n k = impliedRoots[0];\n cd.unshift({\n hasImpliedRoot: true,\n id: k,\n pid: '',\n label: k\n });\n } else {\n return Lib.warn('Multiple implied roots, cannot build ' + trace.type + ' hierarchy.');\n }\n } else if(parent2children[''].length > 1) {\n var dummyId = Lib.randstr();\n\n // if multiple rows linked to the root node,\n // add dummy \"root of roots\" node to make d3 build the hierarchy successfully\n\n for(var j = 0; j < cd.length; j++) {\n if(cd[j].pid === '') {\n cd[j].pid = dummyId;\n }\n }\n\n cd.unshift({\n hasMultipleRoots: true,\n id: dummyId,\n pid: '',\n label: ''\n });\n }\n\n // TODO might be better to replace stratify() with our own algorithm\n var root;\n try {\n root = d3Hierarchy.stratify()\n .id(function(d) { return d.id; })\n .parentId(function(d) { return d.pid; })(cd);\n } catch(e) {\n return Lib.warn('Failed to build ' + trace.type + ' hierarchy. Error: ' + e.message);\n }\n\n var hierarchy = d3Hierarchy.hierarchy(root);\n var failed = false;\n\n if(hasValues) {\n switch(trace.branchvalues) {\n case 'remainder':\n hierarchy.sum(function(d) { return d.data.v; });\n break;\n case 'total':\n hierarchy.each(function(d) {\n var cdi = d.data.data;\n var v = cdi.v;\n\n if(d.children) {\n var partialSum = d.children.reduce(function(a, c) {\n return a + c.data.data.v;\n }, 0);\n\n // N.B. we must fill in `value` for generated sectors\n // with the partialSum to compute the correct partition\n if(cdi.hasImpliedRoot || cdi.hasMultipleRoots) {\n v = partialSum;\n }\n\n if(v < partialSum * ALMOST_EQUAL) {\n failed = true;\n return Lib.warn([\n 'Total value for node', d.data.data.id,\n 'is smaller than the sum of its children.',\n '\\nparent value =', v,\n '\\nchildren sum =', partialSum\n ].join(' '));\n }\n }\n\n d.value = v;\n });\n break;\n }\n } else {\n countDescendants(hierarchy, trace, {\n branches: trace.count.indexOf('branches') !== -1,\n leaves: trace.count.indexOf('leaves') !== -1\n });\n }\n\n if(failed) return;\n\n // TODO add way to sort by height also?\n hierarchy.sort(function(a, b) { return b.value - a.value; });\n\n var pullColor;\n var scaleColor;\n var colors = trace.marker.colors || [];\n var hasColors = !!colors.length;\n\n if(trace._hasColorscale) {\n if(!hasColors) {\n colors = hasValues ? trace.values : trace._values;\n }\n\n colorscaleCalc(gd, trace, {\n vals: colors,\n containerStr: 'marker',\n cLetter: 'c'\n });\n\n scaleColor = makeColorScaleFn(trace.marker);\n } else {\n pullColor = makePullColorFn(fullLayout['_' + trace.type + 'colormap']);\n }\n\n // TODO keep track of 'root-children' (i.e. branch) for hover info etc.\n\n hierarchy.each(function(d) {\n var cdi = d.data.data;\n // N.B. this mutates items in `cd`\n cdi.color = trace._hasColorscale ?\n scaleColor(colors[cdi.i]) :\n pullColor(colors[cdi.i], cdi.id);\n });\n\n cd[0].hierarchy = hierarchy;\n\n return cd;\n};\n\n/*\n * `calc` filled in (and collated) explicit colors.\n * Now we need to propagate these explicit colors to other traces,\n * and fill in default colors.\n * This is done after sorting, so we pick defaults\n * in the order slices will be displayed\n */\nexports._runCrossTraceCalc = function(desiredType, gd) {\n var fullLayout = gd._fullLayout;\n var calcdata = gd.calcdata;\n var colorWay = fullLayout[desiredType + 'colorway'];\n var colorMap = fullLayout['_' + desiredType + 'colormap'];\n\n if(fullLayout['extend' + desiredType + 'colors']) {\n colorWay = generateExtendedColors(colorWay,\n desiredType === 'treemap' ? treemapExtendedColorWays : sunburstExtendedColorWays\n );\n }\n var dfltColorCount = 0;\n\n function pickColor(d) {\n var cdi = d.data.data;\n var id = cdi.id;\n\n if(cdi.color === false) {\n if(colorMap[id]) {\n // have we seen this label and assigned a color to it in a previous trace?\n cdi.color = colorMap[id];\n } else if(d.parent) {\n if(d.parent.parent) {\n // from third-level on, inherit from parent\n cdi.color = d.parent.data.data.color;\n } else {\n // pick new color for second level\n colorMap[id] = cdi.color = colorWay[dfltColorCount % colorWay.length];\n dfltColorCount++;\n }\n } else {\n // root gets no coloring by default\n cdi.color = 'rgba(0,0,0,0)';\n }\n }\n }\n\n for(var i = 0; i < calcdata.length; i++) {\n var cd = calcdata[i];\n var cd0 = cd[0];\n if(cd0.trace.type === desiredType && cd0.hierarchy) {\n cd0.hierarchy.each(pickColor);\n }\n }\n};\n\nexports.crossTraceCalc = function(gd) {\n return exports._runCrossTraceCalc('sunburst', gd);\n};\n\nfunction countDescendants(node, trace, opts) {\n var nChild = 0;\n\n var children = node.children;\n if(children) {\n var len = children.length;\n\n for(var i = 0; i < len; i++) {\n nChild += countDescendants(children[i], trace, opts);\n }\n\n if(opts.branches) nChild++; // count this branch\n } else {\n if(opts.leaves) nChild++; // count this leaf\n }\n\n // save to the node\n node.value = node.data.data.value = nChild;\n\n // save to the trace\n if(!trace._values) trace._values = [];\n trace._values[node.data.data.i] = nChild;\n\n return nChild;\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar Lib = require('../../lib');\n\n\n// set cursors pointing toward the closest corner/side,\n// to indicate alignment\n// x and y are 0-1, fractions of the plot area\nvar cursorset = [\n ['sw-resize', 's-resize', 'se-resize'],\n ['w-resize', 'move', 'e-resize'],\n ['nw-resize', 'n-resize', 'ne-resize']\n];\n\nmodule.exports = function getCursor(x, y, xanchor, yanchor) {\n if(xanchor === 'left') x = 0;\n else if(xanchor === 'center') x = 1;\n else if(xanchor === 'right') x = 2;\n else x = Lib.constrain(Math.floor(x * 3), 0, 2);\n\n if(yanchor === 'bottom') y = 0;\n else if(yanchor === 'middle') y = 1;\n else if(yanchor === 'top') y = 2;\n else y = Lib.constrain(Math.floor(y * 3), 0, 2);\n\n return cursorset[y][x];\n};\n","/**\n * @module color-space/hsl\n */\n'use strict'\n\nvar rgb = require('./rgb');\n\nmodule.exports = {\n\tname: 'hsl',\n\tmin: [0,0,0],\n\tmax: [360,100,100],\n\tchannel: ['hue', 'saturation', 'lightness'],\n\talias: ['HSL'],\n\n\trgb: function(hsl) {\n\t\tvar h = hsl[0] / 360,\n\t\t\t\ts = hsl[1] / 100,\n\t\t\t\tl = hsl[2] / 100,\n\t\t\t\tt1, t2, t3, rgb, val;\n\n\t\tif (s === 0) {\n\t\t\tval = l * 255;\n\t\t\treturn [val, val, val];\n\t\t}\n\n\t\tif (l < 0.5) {\n\t\t\tt2 = l * (1 + s);\n\t\t}\n\t\telse {\n\t\t\tt2 = l + s - l * s;\n\t\t}\n\t\tt1 = 2 * l - t2;\n\n\t\trgb = [0, 0, 0];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\tt3 = h + 1 / 3 * - (i - 1);\n\t\t\tif (t3 < 0) {\n\t\t\t\tt3++;\n\t\t\t}\n\t\t\telse if (t3 > 1) {\n\t\t\t\tt3--;\n\t\t\t}\n\n\t\t\tif (6 * t3 < 1) {\n\t\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t\t}\n\t\t\telse if (2 * t3 < 1) {\n\t\t\t\tval = t2;\n\t\t\t}\n\t\t\telse if (3 * t3 < 2) {\n\t\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tval = t1;\n\t\t\t}\n\n\t\t\trgb[i] = val * 255;\n\t\t}\n\n\t\treturn rgb;\n\t}\n};\n\n\n//extend rgb\nrgb.hsl = function(rgb) {\n\tvar r = rgb[0]/255,\n\t\t\tg = rgb[1]/255,\n\t\t\tb = rgb[2]/255,\n\t\t\tmin = Math.min(r, g, b),\n\t\t\tmax = Math.max(r, g, b),\n\t\t\tdelta = max - min,\n\t\t\th, s, l;\n\n\tif (max === min) {\n\t\th = 0;\n\t}\n\telse if (r === max) {\n\t\th = (g - b) / delta;\n\t}\n\telse if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t}\n\telse if (b === max) {\n\t\th = 4 + (r - g)/ delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t}\n\telse if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t}\n\telse {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Registry = require('../../registry');\nvar Plots = require('../../plots/plots');\nvar axisIds = require('../../plots/cartesian/axis_ids');\nvar Lib = require('../../lib');\nvar Icons = require('../../fonts/ploticon');\n\nvar _ = Lib._;\n\nvar modeBarButtons = module.exports = {};\n\n/**\n * ModeBar buttons configuration\n *\n * @param {string} name\n * name / id of the buttons (for tracking)\n * @param {string} title\n * text that appears while hovering over the button,\n * enter null, false or '' for no hover text\n * @param {string} icon\n * svg icon object associated with the button\n * can be linked to Plotly.Icons to use the default plotly icons\n * @param {string} [gravity]\n * icon positioning\n * @param {function} click\n * click handler associated with the button, a function of\n * 'gd' (the main graph object) and\n * 'ev' (the event object)\n * @param {string} [attr]\n * attribute associated with button,\n * use this with 'val' to keep track of the state\n * @param {*} [val]\n * initial 'attr' value, can be a function of gd\n * @param {boolean} [toggle]\n * is the button a toggle button?\n */\nmodeBarButtons.toImage = {\n name: 'toImage',\n title: function(gd) {\n var opts = gd._context.toImageButtonOptions || {};\n var format = opts.format || 'png';\n return format === 'png' ?\n _(gd, 'Download plot as a png') : // legacy text\n _(gd, 'Download plot'); // generic non-PNG text\n },\n icon: Icons.camera,\n click: function(gd) {\n var toImageButtonOptions = gd._context.toImageButtonOptions;\n var opts = {format: toImageButtonOptions.format || 'png'};\n\n Lib.notifier(_(gd, 'Taking snapshot - this may take a few seconds'), 'long');\n\n if(opts.format !== 'svg' && Lib.isIE()) {\n Lib.notifier(_(gd, 'IE only supports svg. Changing format to svg.'), 'long');\n opts.format = 'svg';\n }\n\n ['filename', 'width', 'height', 'scale'].forEach(function(key) {\n if(key in toImageButtonOptions) {\n opts[key] = toImageButtonOptions[key];\n }\n });\n\n Registry.call('downloadImage', gd, opts)\n .then(function(filename) {\n Lib.notifier(_(gd, 'Snapshot succeeded') + ' - ' + filename, 'long');\n })\n .catch(function() {\n Lib.notifier(_(gd, 'Sorry, there was a problem downloading your snapshot!'), 'long');\n });\n }\n};\n\nmodeBarButtons.sendDataToCloud = {\n name: 'sendDataToCloud',\n title: function(gd) { return _(gd, 'Edit in Chart Studio'); },\n icon: Icons.disk,\n click: function(gd) {\n Plots.sendDataToCloud(gd);\n }\n};\n\nmodeBarButtons.editInChartStudio = {\n name: 'editInChartStudio',\n title: function(gd) { return _(gd, 'Edit in Chart Studio'); },\n icon: Icons.pencil,\n click: function(gd) {\n Plots.sendDataToCloud(gd);\n }\n};\n\nmodeBarButtons.zoom2d = {\n name: 'zoom2d',\n title: function(gd) { return _(gd, 'Zoom'); },\n attr: 'dragmode',\n val: 'zoom',\n icon: Icons.zoombox,\n click: handleCartesian\n};\n\nmodeBarButtons.pan2d = {\n name: 'pan2d',\n title: function(gd) { return _(gd, 'Pan'); },\n attr: 'dragmode',\n val: 'pan',\n icon: Icons.pan,\n click: handleCartesian\n};\n\nmodeBarButtons.select2d = {\n name: 'select2d',\n title: function(gd) { return _(gd, 'Box Select'); },\n attr: 'dragmode',\n val: 'select',\n icon: Icons.selectbox,\n click: handleCartesian\n};\n\nmodeBarButtons.lasso2d = {\n name: 'lasso2d',\n title: function(gd) { return _(gd, 'Lasso Select'); },\n attr: 'dragmode',\n val: 'lasso',\n icon: Icons.lasso,\n click: handleCartesian\n};\n\nmodeBarButtons.zoomIn2d = {\n name: 'zoomIn2d',\n title: function(gd) { return _(gd, 'Zoom in'); },\n attr: 'zoom',\n val: 'in',\n icon: Icons.zoom_plus,\n click: handleCartesian\n};\n\nmodeBarButtons.zoomOut2d = {\n name: 'zoomOut2d',\n title: function(gd) { return _(gd, 'Zoom out'); },\n attr: 'zoom',\n val: 'out',\n icon: Icons.zoom_minus,\n click: handleCartesian\n};\n\nmodeBarButtons.autoScale2d = {\n name: 'autoScale2d',\n title: function(gd) { return _(gd, 'Autoscale'); },\n attr: 'zoom',\n val: 'auto',\n icon: Icons.autoscale,\n click: handleCartesian\n};\n\nmodeBarButtons.resetScale2d = {\n name: 'resetScale2d',\n title: function(gd) { return _(gd, 'Reset axes'); },\n attr: 'zoom',\n val: 'reset',\n icon: Icons.home,\n click: handleCartesian\n};\n\nmodeBarButtons.hoverClosestCartesian = {\n name: 'hoverClosestCartesian',\n title: function(gd) { return _(gd, 'Show closest data on hover'); },\n attr: 'hovermode',\n val: 'closest',\n icon: Icons.tooltip_basic,\n gravity: 'ne',\n click: handleCartesian\n};\n\nmodeBarButtons.hoverCompareCartesian = {\n name: 'hoverCompareCartesian',\n title: function(gd) { return _(gd, 'Compare data on hover'); },\n attr: 'hovermode',\n val: function(gd) {\n return gd._fullLayout._isHoriz ? 'y' : 'x';\n },\n icon: Icons.tooltip_compare,\n gravity: 'ne',\n click: handleCartesian\n};\n\nfunction handleCartesian(gd, ev) {\n var button = ev.currentTarget;\n var astr = button.getAttribute('data-attr');\n var val = button.getAttribute('data-val') || true;\n var fullLayout = gd._fullLayout;\n var aobj = {};\n var axList = axisIds.list(gd, null, true);\n var allSpikesEnabled = fullLayout._cartesianSpikesEnabled;\n\n var ax, i;\n\n if(astr === 'zoom') {\n var mag = (val === 'in') ? 0.5 : 2;\n var r0 = (1 + mag) / 2;\n var r1 = (1 - mag) / 2;\n var axName;\n\n for(i = 0; i < axList.length; i++) {\n ax = axList[i];\n\n if(!ax.fixedrange) {\n axName = ax._name;\n if(val === 'auto') {\n aobj[axName + '.autorange'] = true;\n } else if(val === 'reset') {\n if(ax._rangeInitial === undefined) {\n aobj[axName + '.autorange'] = true;\n } else {\n var rangeInitial = ax._rangeInitial.slice();\n aobj[axName + '.range[0]'] = rangeInitial[0];\n aobj[axName + '.range[1]'] = rangeInitial[1];\n }\n\n // N.B. \"reset\" also resets showspikes\n if(ax._showSpikeInitial !== undefined) {\n aobj[axName + '.showspikes'] = ax._showSpikeInitial;\n if(allSpikesEnabled === 'on' && !ax._showSpikeInitial) {\n allSpikesEnabled = 'off';\n }\n }\n } else {\n var rangeNow = [\n ax.r2l(ax.range[0]),\n ax.r2l(ax.range[1]),\n ];\n\n var rangeNew = [\n r0 * rangeNow[0] + r1 * rangeNow[1],\n r0 * rangeNow[1] + r1 * rangeNow[0]\n ];\n\n aobj[axName + '.range[0]'] = ax.l2r(rangeNew[0]);\n aobj[axName + '.range[1]'] = ax.l2r(rangeNew[1]);\n }\n }\n }\n } else {\n // if ALL traces have orientation 'h', 'hovermode': 'x' otherwise: 'y'\n if(astr === 'hovermode' && (val === 'x' || val === 'y')) {\n val = fullLayout._isHoriz ? 'y' : 'x';\n button.setAttribute('data-val', val);\n }\n\n aobj[astr] = val;\n }\n\n fullLayout._cartesianSpikesEnabled = allSpikesEnabled;\n\n Registry.call('_guiRelayout', gd, aobj);\n}\n\nmodeBarButtons.zoom3d = {\n name: 'zoom3d',\n title: function(gd) { return _(gd, 'Zoom'); },\n attr: 'scene.dragmode',\n val: 'zoom',\n icon: Icons.zoombox,\n click: handleDrag3d\n};\n\nmodeBarButtons.pan3d = {\n name: 'pan3d',\n title: function(gd) { return _(gd, 'Pan'); },\n attr: 'scene.dragmode',\n val: 'pan',\n icon: Icons.pan,\n click: handleDrag3d\n};\n\nmodeBarButtons.orbitRotation = {\n name: 'orbitRotation',\n title: function(gd) { return _(gd, 'Orbital rotation'); },\n attr: 'scene.dragmode',\n val: 'orbit',\n icon: Icons['3d_rotate'],\n click: handleDrag3d\n};\n\nmodeBarButtons.tableRotation = {\n name: 'tableRotation',\n title: function(gd) { return _(gd, 'Turntable rotation'); },\n attr: 'scene.dragmode',\n val: 'turntable',\n icon: Icons['z-axis'],\n click: handleDrag3d\n};\n\nfunction handleDrag3d(gd, ev) {\n var button = ev.currentTarget;\n var attr = button.getAttribute('data-attr');\n var val = button.getAttribute('data-val') || true;\n var sceneIds = gd._fullLayout._subplots.gl3d || [];\n var layoutUpdate = {};\n\n var parts = attr.split('.');\n\n for(var i = 0; i < sceneIds.length; i++) {\n layoutUpdate[sceneIds[i] + '.' + parts[1]] = val;\n }\n\n // for multi-type subplots\n var val2d = (val === 'pan') ? val : 'zoom';\n layoutUpdate.dragmode = val2d;\n\n Registry.call('_guiRelayout', gd, layoutUpdate);\n}\n\nmodeBarButtons.resetCameraDefault3d = {\n name: 'resetCameraDefault3d',\n title: function(gd) { return _(gd, 'Reset camera to default'); },\n attr: 'resetDefault',\n icon: Icons.home,\n click: handleCamera3d\n};\n\nmodeBarButtons.resetCameraLastSave3d = {\n name: 'resetCameraLastSave3d',\n title: function(gd) { return _(gd, 'Reset camera to last save'); },\n attr: 'resetLastSave',\n icon: Icons.movie,\n click: handleCamera3d\n};\n\nfunction handleCamera3d(gd, ev) {\n var button = ev.currentTarget;\n var attr = button.getAttribute('data-attr');\n var fullLayout = gd._fullLayout;\n var sceneIds = fullLayout._subplots.gl3d || [];\n var aobj = {};\n\n for(var i = 0; i < sceneIds.length; i++) {\n var sceneId = sceneIds[i];\n var camera = sceneId + '.camera';\n var aspectratio = sceneId + '.aspectratio';\n var scene = fullLayout[sceneId]._scene;\n var didUpdate;\n\n if(attr === 'resetLastSave') {\n aobj[camera + '.up'] = scene.viewInitial.up;\n aobj[camera + '.eye'] = scene.viewInitial.eye;\n aobj[camera + '.center'] = scene.viewInitial.center;\n didUpdate = true;\n } else if(attr === 'resetDefault') {\n aobj[camera + '.up'] = null;\n aobj[camera + '.eye'] = null;\n aobj[camera + '.center'] = null;\n didUpdate = true;\n }\n\n if(didUpdate) {\n aobj[aspectratio + '.x'] = scene.viewInitial.aspectratio.x;\n aobj[aspectratio + '.y'] = scene.viewInitial.aspectratio.y;\n aobj[aspectratio + '.z'] = scene.viewInitial.aspectratio.z;\n }\n }\n\n Registry.call('_guiRelayout', gd, aobj);\n}\n\nmodeBarButtons.hoverClosest3d = {\n name: 'hoverClosest3d',\n title: function(gd) { return _(gd, 'Toggle show closest data on hover'); },\n attr: 'hovermode',\n val: null,\n toggle: true,\n icon: Icons.tooltip_basic,\n gravity: 'ne',\n click: handleHover3d\n};\n\nfunction getNextHover3d(gd, ev) {\n var button = ev.currentTarget;\n var val = button._previousVal;\n var fullLayout = gd._fullLayout;\n var sceneIds = fullLayout._subplots.gl3d || [];\n\n var axes = ['xaxis', 'yaxis', 'zaxis'];\n\n // initialize 'current spike' object to be stored in the DOM\n var currentSpikes = {};\n var layoutUpdate = {};\n\n if(val) {\n layoutUpdate = val;\n button._previousVal = null;\n } else {\n for(var i = 0; i < sceneIds.length; i++) {\n var sceneId = sceneIds[i];\n var sceneLayout = fullLayout[sceneId];\n\n var hovermodeAStr = sceneId + '.hovermode';\n currentSpikes[hovermodeAStr] = sceneLayout.hovermode;\n layoutUpdate[hovermodeAStr] = false;\n\n // copy all the current spike attrs\n for(var j = 0; j < 3; j++) {\n var axis = axes[j];\n var spikeAStr = sceneId + '.' + axis + '.showspikes';\n layoutUpdate[spikeAStr] = false;\n currentSpikes[spikeAStr] = sceneLayout[axis].showspikes;\n }\n }\n\n button._previousVal = currentSpikes;\n }\n return layoutUpdate;\n}\n\nfunction handleHover3d(gd, ev) {\n var layoutUpdate = getNextHover3d(gd, ev);\n Registry.call('_guiRelayout', gd, layoutUpdate);\n}\n\nmodeBarButtons.zoomInGeo = {\n name: 'zoomInGeo',\n title: function(gd) { return _(gd, 'Zoom in'); },\n attr: 'zoom',\n val: 'in',\n icon: Icons.zoom_plus,\n click: handleGeo\n};\n\nmodeBarButtons.zoomOutGeo = {\n name: 'zoomOutGeo',\n title: function(gd) { return _(gd, 'Zoom out'); },\n attr: 'zoom',\n val: 'out',\n icon: Icons.zoom_minus,\n click: handleGeo\n};\n\nmodeBarButtons.resetGeo = {\n name: 'resetGeo',\n title: function(gd) { return _(gd, 'Reset'); },\n attr: 'reset',\n val: null,\n icon: Icons.autoscale,\n click: handleGeo\n};\n\nmodeBarButtons.hoverClosestGeo = {\n name: 'hoverClosestGeo',\n title: function(gd) { return _(gd, 'Toggle show closest data on hover'); },\n attr: 'hovermode',\n val: null,\n toggle: true,\n icon: Icons.tooltip_basic,\n gravity: 'ne',\n click: toggleHover\n};\n\nfunction handleGeo(gd, ev) {\n var button = ev.currentTarget;\n var attr = button.getAttribute('data-attr');\n var val = button.getAttribute('data-val') || true;\n var fullLayout = gd._fullLayout;\n var geoIds = fullLayout._subplots.geo || [];\n\n for(var i = 0; i < geoIds.length; i++) {\n var id = geoIds[i];\n var geoLayout = fullLayout[id];\n\n if(attr === 'zoom') {\n var scale = geoLayout.projection.scale;\n var newScale = (val === 'in') ? 2 * scale : 0.5 * scale;\n\n Registry.call('_guiRelayout', gd, id + '.projection.scale', newScale);\n }\n }\n\n if(attr === 'reset') {\n resetView(gd, 'geo');\n }\n}\n\nmodeBarButtons.hoverClosestGl2d = {\n name: 'hoverClosestGl2d',\n title: function(gd) { return _(gd, 'Toggle show closest data on hover'); },\n attr: 'hovermode',\n val: null,\n toggle: true,\n icon: Icons.tooltip_basic,\n gravity: 'ne',\n click: toggleHover\n};\n\nmodeBarButtons.hoverClosestPie = {\n name: 'hoverClosestPie',\n title: function(gd) { return _(gd, 'Toggle show closest data on hover'); },\n attr: 'hovermode',\n val: 'closest',\n icon: Icons.tooltip_basic,\n gravity: 'ne',\n click: toggleHover\n};\n\nfunction getNextHover(gd) {\n var fullLayout = gd._fullLayout;\n\n if(fullLayout.hovermode) return false;\n\n if(fullLayout._has('cartesian')) {\n return fullLayout._isHoriz ? 'y' : 'x';\n }\n return 'closest';\n}\n\nfunction toggleHover(gd) {\n var newHover = getNextHover(gd);\n Registry.call('_guiRelayout', gd, 'hovermode', newHover);\n}\n\nmodeBarButtons.resetViewSankey = {\n name: 'resetSankeyGroup',\n title: function(gd) { return _(gd, 'Reset view'); },\n icon: Icons.home,\n click: function(gd) {\n var aObj = {\n 'node.groups': [],\n 'node.x': [],\n 'node.y': []\n };\n for(var i = 0; i < gd._fullData.length; i++) {\n var viewInitial = gd._fullData[i]._viewInitial;\n aObj['node.groups'].push(viewInitial.node.groups.slice());\n aObj['node.x'].push(viewInitial.node.x.slice());\n aObj['node.y'].push(viewInitial.node.y.slice());\n }\n Registry.call('restyle', gd, aObj);\n }\n};\n\n// buttons when more then one plot types are present\n\nmodeBarButtons.toggleHover = {\n name: 'toggleHover',\n title: function(gd) { return _(gd, 'Toggle show closest data on hover'); },\n attr: 'hovermode',\n val: null,\n toggle: true,\n icon: Icons.tooltip_basic,\n gravity: 'ne',\n click: function(gd, ev) {\n var layoutUpdate = getNextHover3d(gd, ev);\n layoutUpdate.hovermode = getNextHover(gd);\n\n Registry.call('_guiRelayout', gd, layoutUpdate);\n }\n};\n\nmodeBarButtons.resetViews = {\n name: 'resetViews',\n title: function(gd) { return _(gd, 'Reset views'); },\n icon: Icons.home,\n click: function(gd, ev) {\n var button = ev.currentTarget;\n\n button.setAttribute('data-attr', 'zoom');\n button.setAttribute('data-val', 'reset');\n handleCartesian(gd, ev);\n\n button.setAttribute('data-attr', 'resetLastSave');\n handleCamera3d(gd, ev);\n\n resetView(gd, 'geo');\n resetView(gd, 'mapbox');\n }\n};\n\nmodeBarButtons.toggleSpikelines = {\n name: 'toggleSpikelines',\n title: function(gd) { return _(gd, 'Toggle Spike Lines'); },\n icon: Icons.spikeline,\n attr: '_cartesianSpikesEnabled',\n val: 'on',\n click: function(gd) {\n var fullLayout = gd._fullLayout;\n var allSpikesEnabled = fullLayout._cartesianSpikesEnabled;\n\n fullLayout._cartesianSpikesEnabled = allSpikesEnabled === 'on' ? 'off' : 'on';\n Registry.call('_guiRelayout', gd, setSpikelineVisibility(gd));\n }\n};\n\nfunction setSpikelineVisibility(gd) {\n var fullLayout = gd._fullLayout;\n var areSpikesOn = fullLayout._cartesianSpikesEnabled === 'on';\n var axList = axisIds.list(gd, null, true);\n var aobj = {};\n\n for(var i = 0; i < axList.length; i++) {\n var ax = axList[i];\n aobj[ax._name + '.showspikes'] = areSpikesOn ? true : ax._showSpikeInitial;\n }\n\n return aobj;\n}\n\nmodeBarButtons.resetViewMapbox = {\n name: 'resetViewMapbox',\n title: function(gd) { return _(gd, 'Reset view'); },\n attr: 'reset',\n icon: Icons.home,\n click: function(gd) {\n resetView(gd, 'mapbox');\n }\n};\n\nmodeBarButtons.zoomInMapbox = {\n name: 'zoomInMapbox',\n title: function(gd) { return _(gd, 'Zoom in'); },\n attr: 'zoom',\n val: 'in',\n icon: Icons.zoom_plus,\n click: handleMapboxZoom\n};\n\nmodeBarButtons.zoomOutMapbox = {\n name: 'zoomOutMapbox',\n title: function(gd) { return _(gd, 'Zoom out'); },\n attr: 'zoom',\n val: 'out',\n icon: Icons.zoom_minus,\n click: handleMapboxZoom\n};\n\nfunction handleMapboxZoom(gd, ev) {\n var button = ev.currentTarget;\n var val = button.getAttribute('data-val');\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots.mapbox || [];\n var scalar = 1.05;\n var aObj = {};\n\n for(var i = 0; i < subplotIds.length; i++) {\n var id = subplotIds[i];\n var current = fullLayout[id].zoom;\n var next = (val === 'in') ? scalar * current : current / scalar;\n aObj[id + '.zoom'] = next;\n }\n\n Registry.call('_guiRelayout', gd, aObj);\n}\n\nfunction resetView(gd, subplotType) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[subplotType] || [];\n var aObj = {};\n\n for(var i = 0; i < subplotIds.length; i++) {\n var id = subplotIds[i];\n var subplotObj = fullLayout[id]._subplot;\n var viewInitial = subplotObj.viewInitial;\n var viewKeys = Object.keys(viewInitial);\n\n for(var j = 0; j < viewKeys.length; j++) {\n var key = viewKeys[j];\n aObj[id + '.' + key] = viewInitial[key];\n }\n }\n\n Registry.call('_guiRelayout', gd, aObj);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","module.exports = multiply;\n\n/**\n * Multiplies two mat4's\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the first operand\n * @param {mat4} b the second operand\n * @returns {mat4} out\n */\nfunction multiply(out, a, b) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3],\n a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7],\n a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11],\n a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\n\n // Cache only the current line of the second matrix\n var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3]; \n out[0] = b0*a00 + b1*a10 + b2*a20 + b3*a30;\n out[1] = b0*a01 + b1*a11 + b2*a21 + b3*a31;\n out[2] = b0*a02 + b1*a12 + b2*a22 + b3*a32;\n out[3] = b0*a03 + b1*a13 + b2*a23 + b3*a33;\n\n b0 = b[4]; b1 = b[5]; b2 = b[6]; b3 = b[7];\n out[4] = b0*a00 + b1*a10 + b2*a20 + b3*a30;\n out[5] = b0*a01 + b1*a11 + b2*a21 + b3*a31;\n out[6] = b0*a02 + b1*a12 + b2*a22 + b3*a32;\n out[7] = b0*a03 + b1*a13 + b2*a23 + b3*a33;\n\n b0 = b[8]; b1 = b[9]; b2 = b[10]; b3 = b[11];\n out[8] = b0*a00 + b1*a10 + b2*a20 + b3*a30;\n out[9] = b0*a01 + b1*a11 + b2*a21 + b3*a31;\n out[10] = b0*a02 + b1*a12 + b2*a22 + b3*a32;\n out[11] = b0*a03 + b1*a13 + b2*a23 + b3*a33;\n\n b0 = b[12]; b1 = b[13]; b2 = b[14]; b3 = b[15];\n out[12] = b0*a00 + b1*a10 + b2*a20 + b3*a30;\n out[13] = b0*a01 + b1*a11 + b2*a21 + b3*a31;\n out[14] = b0*a02 + b1*a12 + b2*a22 + b3*a32;\n out[15] = b0*a03 + b1*a13 + b2*a23 + b3*a33;\n return out;\n};","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar getModuleCalcData = require('../../plots/get_data').getModuleCalcData;\nvar parcatsPlot = require('./plot');\n\nvar PARCATS = 'parcats';\nexports.name = PARCATS;\n\nexports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n var cdModuleAndOthers = getModuleCalcData(gd.calcdata, PARCATS);\n\n if(cdModuleAndOthers.length) {\n var calcData = cdModuleAndOthers[0];\n parcatsPlot(gd, calcData, transitionOpts, makeOnCompleteCallback);\n }\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var hadTable = (oldFullLayout._has && oldFullLayout._has('parcats'));\n var hasTable = (newFullLayout._has && newFullLayout._has('parcats'));\n\n if(hadTable && !hasTable) {\n oldFullLayout._paperdiv.selectAll('.parcats').remove();\n }\n};\n","'use strict'\r\n\r\nvar isBrowser = require('is-browser')\r\n\r\nfunction detect() {\r\n\tvar supported = false\r\n\r\n\ttry {\r\n\t\tvar opts = Object.defineProperty({}, 'passive', {\r\n\t\t\tget: function() {\r\n\t\t\t\tsupported = true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\twindow.addEventListener('test', null, opts)\r\n\t\twindow.removeEventListener('test', null, opts)\r\n\t} catch(e) {\r\n\t\tsupported = false\r\n\t}\r\n\r\n\treturn supported\r\n}\r\n\r\nmodule.exports = isBrowser && detect()\r\n","\"use strict\";\n\nmodule.exports = function () {\n\tvar assign = Object.assign, obj;\n\tif (typeof assign !== \"function\") return false;\n\tobj = { foo: \"raz\" };\n\tassign(obj, { bar: \"dwa\" }, { trzy: \"trzy\" });\n\treturn obj.foo + obj.bar + obj.trzy === \"razdwatrzy\";\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar annAttrs = require('../annotations/attributes');\nvar overrideAll = require('../../plot_api/edit_types').overrideAll;\nvar templatedArray = require('../../plot_api/plot_template').templatedArray;\n\nmodule.exports = overrideAll(templatedArray('annotation', {\n visible: annAttrs.visible,\n x: {\n valType: 'any',\n \n \n },\n y: {\n valType: 'any',\n \n \n },\n z: {\n valType: 'any',\n \n \n },\n ax: {\n valType: 'number',\n \n \n },\n ay: {\n valType: 'number',\n \n \n },\n\n xanchor: annAttrs.xanchor,\n xshift: annAttrs.xshift,\n yanchor: annAttrs.yanchor,\n yshift: annAttrs.yshift,\n\n text: annAttrs.text,\n textangle: annAttrs.textangle,\n font: annAttrs.font,\n width: annAttrs.width,\n height: annAttrs.height,\n opacity: annAttrs.opacity,\n align: annAttrs.align,\n valign: annAttrs.valign,\n bgcolor: annAttrs.bgcolor,\n bordercolor: annAttrs.bordercolor,\n borderpad: annAttrs.borderpad,\n borderwidth: annAttrs.borderwidth,\n showarrow: annAttrs.showarrow,\n arrowcolor: annAttrs.arrowcolor,\n arrowhead: annAttrs.arrowhead,\n startarrowhead: annAttrs.startarrowhead,\n arrowside: annAttrs.arrowside,\n arrowsize: annAttrs.arrowsize,\n startarrowsize: annAttrs.startarrowsize,\n arrowwidth: annAttrs.arrowwidth,\n standoff: annAttrs.standoff,\n startstandoff: annAttrs.startstandoff,\n hovertext: annAttrs.hovertext,\n hoverlabel: annAttrs.hoverlabel,\n captureevents: annAttrs.captureevents,\n\n // maybes later?\n // clicktoshow: annAttrs.clicktoshow,\n // xclick: annAttrs.xclick,\n // yclick: annAttrs.yclick,\n\n // not needed!\n // axref: 'pixel'\n // ayref: 'pixel'\n // xref: 'x'\n // yref: 'y\n // zref: 'z'\n}), 'calc', 'from-root');\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","\"use strict\";\n\nmodule.exports = function () {\n\tvar from = Array.from, arr, result;\n\tif (typeof from !== \"function\") return false;\n\tarr = [\"raz\", \"dwa\"];\n\tresult = from(arr);\n\treturn Boolean(result && result !== arr && result[1] === \"dwa\");\n};\n","'use strict'\n\nmodule.exports = findMedian\n\nvar genPartition = require('./partition')\n\nvar partitionStartLessThan = genPartition('lostart && boxes[ptr+axis] > x; \n --j, ptr-=elemSize) {\n //Swap\n var aPtr = ptr\n var bPtr = ptr+elemSize\n for(var k=0; k>> 1)\n var elemSize = 2*d\n var pivot = mid\n var value = boxes[elemSize*mid+axis]\n \n while(lo < hi) {\n if(hi - lo < PARTITION_THRESHOLD) {\n insertionSort(d, axis, lo, hi, boxes, ids)\n value = boxes[elemSize*mid+axis]\n break\n }\n \n //Select pivot using median-of-3\n var count = hi - lo\n var pivot0 = (Math.random()*count+lo)|0\n var value0 = boxes[elemSize*pivot0 + axis]\n var pivot1 = (Math.random()*count+lo)|0\n var value1 = boxes[elemSize*pivot1 + axis]\n var pivot2 = (Math.random()*count+lo)|0\n var value2 = boxes[elemSize*pivot2 + axis]\n if(value0 <= value1) {\n if(value2 >= value1) {\n pivot = pivot1\n value = value1\n } else if(value0 >= value2) {\n pivot = pivot0\n value = value0\n } else {\n pivot = pivot2\n value = value2\n }\n } else {\n if(value1 >= value2) {\n pivot = pivot1\n value = value1\n } else if(value2 >= value0) {\n pivot = pivot0\n value = value0\n } else {\n pivot = pivot2\n value = value2\n }\n }\n\n //Swap pivot to end of array\n var aPtr = elemSize * (hi-1)\n var bPtr = elemSize * pivot\n for(var i=0; i 0) {\n\t\t\tfor (var a = 0; a < facets; a++) {\n\t\t\t\tvar a1 = (a+1) % facets;\n\t\t\t\tverts.push(\n\t\t\t\t\tpreviousVerts[a],\n\t\t\t\t\tcurrentVerts[a],\n\t\t\t\t\tcurrentVerts[a1],\n\n\t\t\t\t\tcurrentVerts[a1],\n\t\t\t\t\tpreviousVerts[a1],\n\t\t\t\t\tpreviousVerts[a]\n\t\t\t\t);\n\t\t\t\tvectors.push(\n\t\t\t\t\tpreviousVector,\n\t\t\t\t\tcurrentVector,\n\t\t\t\t\tcurrentVector,\n\n\t\t\t\t\tcurrentVector,\n\t\t\t\t\tpreviousVector,\n\t\t\t\t\tpreviousVector\n\t\t\t\t);\n\t\t\t\tintensities.push(\n\t\t\t\t\tpreviousIntensity,\n\t\t\t\t\tcurrentIntensity,\n\t\t\t\t\tcurrentIntensity,\n\n\t\t\t\t\tcurrentIntensity,\n\t\t\t\t\tpreviousIntensity,\n\t\t\t\t\tpreviousIntensity\n\t\t\t\t);\n\n\t\t\t\tvar len = verts.length;\n\t\t\t\tfaces.push(\n\t\t\t\t\t[len-6, len-5, len-4],\n\t\t\t\t\t[len-3, len-2, len-1]\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tvar tmp1 = previousVerts;\n\t\tpreviousVerts = currentVerts;\n\t\tcurrentVerts = tmp1;\n\n\t\tvar tmp2 = previousVector;\n\t\tpreviousVector = currentVector;\n\t\tcurrentVector = tmp2;\n\n\t\tvar tmp3 = previousIntensity;\n\t\tpreviousIntensity = currentIntensity;\n\t\tcurrentIntensity = tmp3;\n\t}\n\treturn {\n\t\tpositions: verts,\n\t\tcells: faces,\n\t\tvectors: vectors,\n\t\tvertexIntensity: intensities\n\t};\n};\n\nvar createTubes = function(streams, colormap, maxDivergence, minDistance) {\n\n\tvar maxNorm = 0;\n\tfor (var i=0; i v) return i-1;\n }\n return i;\n};\n\nvar clamp = function(v, min, max) {\n\treturn v < min ? min : (v > max ? max : v);\n};\n\nvar sampleMeshgrid = function(point, vectorField, gridInfo) {\n\tvar vectors = vectorField.vectors;\n\tvar meshgrid = vectorField.meshgrid;\n\n\tvar x = point[0];\n\tvar y = point[1];\n\tvar z = point[2];\n\n\tvar w = meshgrid[0].length;\n\tvar h = meshgrid[1].length;\n\tvar d = meshgrid[2].length;\n\n\t// Find the index of the nearest smaller value in the meshgrid for each coordinate of (x,y,z).\n\t// The nearest smaller value index for x is the index x0 such that\n\t// meshgrid[0][x0] < x and for all x1 > x0, meshgrid[0][x1] >= x.\n\tvar x0 = findLastSmallerIndex(meshgrid[0], x);\n\tvar y0 = findLastSmallerIndex(meshgrid[1], y);\n\tvar z0 = findLastSmallerIndex(meshgrid[2], z);\n\n\t// Get the nearest larger meshgrid value indices.\n\t// From the above \"nearest smaller value\", we know that\n\t// meshgrid[0][x0] < x\n\t// meshgrid[0][x0+1] >= x\n\tvar x1 = x0 + 1;\n\tvar y1 = y0 + 1;\n\tvar z1 = z0 + 1;\n\n\tx0 = clamp(x0, 0, w-1);\n\tx1 = clamp(x1, 0, w-1);\n\ty0 = clamp(y0, 0, h-1);\n\ty1 = clamp(y1, 0, h-1);\n\tz0 = clamp(z0, 0, d-1);\n\tz1 = clamp(z1, 0, d-1);\n\n\t// Reject points outside the meshgrid, return a zero vector.\n\tif (x0 < 0 || y0 < 0 || z0 < 0 || x1 > w-1 || y1 > h-1 || z1 > d-1) {\n\t\treturn vec3.create();\n\t}\n\n\t// Normalize point coordinates to 0..1 scaling factor between x0 and x1.\n\tvar mX0 = meshgrid[0][x0];\n\tvar mX1 = meshgrid[0][x1];\n\tvar mY0 = meshgrid[1][y0];\n\tvar mY1 = meshgrid[1][y1];\n\tvar mZ0 = meshgrid[2][z0];\n\tvar mZ1 = meshgrid[2][z1];\n\tvar xf = (x - mX0) / (mX1 - mX0);\n\tvar yf = (y - mY0) / (mY1 - mY0);\n\tvar zf = (z - mZ0) / (mZ1 - mZ0);\n\n\tif (!isFinite(xf)) xf = 0.5;\n\tif (!isFinite(yf)) yf = 0.5;\n\tif (!isFinite(zf)) zf = 0.5;\n\n\tvar x0off;\n\tvar x1off;\n\tvar y0off;\n\tvar y1off;\n\tvar z0off;\n\tvar z1off;\n\n\tif(gridInfo.reversedX) {\n\t\tx0 = w - 1 - x0;\n\t\tx1 = w - 1 - x1;\n\t}\n\n\tif(gridInfo.reversedY) {\n\t\ty0 = h - 1 - y0;\n\t\ty1 = h - 1 - y1;\n\t}\n\n\tif(gridInfo.reversedZ) {\n\t\tz0 = d - 1 - z0;\n\t\tz1 = d - 1 - z1;\n\t}\n\n\tswitch(gridInfo.filled) {\n\t\tcase 5: // 'zyx'\n\t\t\tz0off = z0;\n\t\t\tz1off = z1;\n\t\t\ty0off = y0*d;\n\t\t\ty1off = y1*d;\n\t\t\tx0off = x0*d*h;\n\t\t\tx1off = x1*d*h;\n\t\t\tbreak;\n\n\t\tcase 4: // 'zxy'\n\t\t\tz0off = z0;\n\t\t\tz1off = z1;\n\t\t\tx0off = x0*d;\n\t\t\tx1off = x1*d;\n\t\t\ty0off = y0*d*w;\n\t\t\ty1off = y1*d*w;\n\t\t\tbreak;\n\n\t\tcase 3: // 'yzx'\n\t\t\ty0off = y0;\n\t\t\ty1off = y1;\n\t\t\tz0off = z0*h;\n\t\t\tz1off = z1*h;\n\t\t\tx0off = x0*h*d;\n\t\t\tx1off = x1*h*d;\n\t\t\tbreak;\n\n\t\tcase 2: // 'yxz'\n\t\t\ty0off = y0;\n\t\t\ty1off = y1;\n\t\t\tx0off = x0*h;\n\t\t\tx1off = x1*h;\n\t\t\tz0off = z0*h*w;\n\t\t\tz1off = z1*h*w;\n\t\t\tbreak;\n\n\t\tcase 1: // 'xzy'\n\t\t\tx0off = x0;\n\t\t\tx1off = x1;\n\t\t\tz0off = z0*w;\n\t\t\tz1off = z1*w;\n\t\t\ty0off = y0*w*d;\n\t\t\ty1off = y1*w*d;\n\t\t\tbreak;\n\n\t\tdefault: // case 0: // 'xyz'\n\t\t\tx0off = x0;\n\t\t\tx1off = x1;\n\t\t\ty0off = y0*w;\n\t\t\ty1off = y1*w;\n\t\t\tz0off = z0*w*h;\n\t\t\tz1off = z1*w*h;\n\t\t\tbreak;\n\t}\n\n\t// Sample data vectors around the (x,y,z) point.\n\tvar v000 = vectors[x0off + y0off + z0off];\n\tvar v001 = vectors[x0off + y0off + z1off];\n\tvar v010 = vectors[x0off + y1off + z0off];\n\tvar v011 = vectors[x0off + y1off + z1off];\n\tvar v100 = vectors[x1off + y0off + z0off];\n\tvar v101 = vectors[x1off + y0off + z1off];\n\tvar v110 = vectors[x1off + y1off + z0off];\n\tvar v111 = vectors[x1off + y1off + z1off];\n\n\tvar c00 = vec3.create();\n\tvar c01 = vec3.create();\n\tvar c10 = vec3.create();\n\tvar c11 = vec3.create();\n\n\tvec3.lerp(c00, v000, v100, xf);\n\tvec3.lerp(c01, v001, v101, xf);\n\tvec3.lerp(c10, v010, v110, xf);\n\tvec3.lerp(c11, v011, v111, xf);\n\n\tvar c0 = vec3.create();\n\tvar c1 = vec3.create();\n\n\tvec3.lerp(c0, c00, c10, yf);\n\tvec3.lerp(c1, c01, c11, yf);\n\n\tvar c = vec3.create();\n\n\tvec3.lerp(c, c0, c1, zf);\n\n\treturn c;\n};\n\n\nvar vabs = function(dst, v) {\n\tvar x = v[0];\n\tvar y = v[1];\n\tvar z = v[2];\n\tdst[0] = x < 0 ? -x : x;\n\tdst[1] = y < 0 ? -y : y;\n\tdst[2] = z < 0 ? -z : z;\n\treturn dst;\n};\n\nvar findMinSeparation = function(xs) {\n\tvar minSeparation = Infinity;\n\txs.sort(function(a, b) { return a - b; });\n\tvar len = xs.length;\n\tfor (var i=1; i maxX ||\n\t\t\ty < minY || y > maxY ||\n\t\t\tz < minZ || z > maxZ\n\t\t);\n\t};\n\n\tvar boundsSize = vec3.distance(bounds[0], bounds[1]);\n\tvar maxStepSize = 10 * boundsSize / maxLength;\n\tvar maxStepSizeSq = maxStepSize * maxStepSize;\n\n\tvar minDistance = 1;\n\tvar maxDivergence = 0; // For component-wise divergence vec3.create();\n\n\t// In case we need to do component-wise divergence visualization\n\t// var tmp = vec3.create();\n\n\tvar len = positions.length;\n\tif (len > 1) {\n\t\tminDistance = calculateMinPositionDistance(positions);\n\t}\n\n\tfor (var i = 0; i < len; i++) {\n\t\tvar p = vec3.create();\n\t\tvec3.copy(p, positions[i]);\n\n\t\tvar stream = [p];\n\t\tvar velocities = [];\n\t\tvar v = getVelocity(p);\n\t\tvar op = p;\n\t\tvelocities.push(v);\n\n\t\tvar divergences = [];\n\n\t\tvar dv = getDivergence(p, v);\n\t\tvar dvLength = vec3.length(dv);\n\t\tif (isFinite(dvLength) && dvLength > maxDivergence) {\n\t\t\tmaxDivergence = dvLength;\n\t\t}\n\t\t// In case we need to do component-wise divergence visualization\n\t\t// vec3.max(maxDivergence, maxDivergence, vabs(tmp, dv));\n\t\tdivergences.push(dvLength);\n\n\t\tstreams.push({points: stream, velocities: velocities, divergences: divergences});\n\n\t\tvar j = 0;\n\n\t\twhile (j < maxLength * 100 && stream.length < maxLength && inBounds(p)) {\n\t\t\tj++;\n\t\t\tvar np = vec3.clone(v);\n\t\t\tvar sqLen = vec3.squaredLength(np);\n\t\t\tif (sqLen === 0) {\n\t\t\t\tbreak;\n\t\t\t} else if (sqLen > maxStepSizeSq) {\n\t\t\t\tvec3.scale(np, np, maxStepSize / Math.sqrt(sqLen));\n\t\t\t}\n\t\t\tvec3.add(np, np, p);\n\n\t\t\tv = getVelocity(np);\n\n\t\t\tif (vec3.squaredDistance(op, np) - maxStepSizeSq > -0.0001 * maxStepSizeSq) {\n\t\t\t\tstream.push(np);\n\t\t\t\top = np;\n\t\t\t\tvelocities.push(v);\n\t\t\t\tvar dv = getDivergence(np, v);\n\t\t\t\tvar dvLength = vec3.length(dv);\n\t\t\t\tif (isFinite(dvLength) && dvLength > maxDivergence) {\n\t\t\t\t\tmaxDivergence = dvLength;\n\t\t\t\t}\n\t\t\t\t// In case we need to do component-wise divergence visualization\n\t\t\t\t//vec3.max(maxDivergence, maxDivergence, vabs(tmp, dv));\n\t\t\t\tdivergences.push(dvLength);\n\t\t\t}\n\n\t\t\tp = np;\n\t\t}\n\t}\n\n\tvar tubes = createTubes(streams, vectorField.colormap, maxDivergence, minDistance);\n\n\tif (absoluteTubeSize) {\n\t\ttubes.tubeScale = absoluteTubeSize;\n\t} else {\n\t\t// Avoid division by zero.\n\t\tif (maxDivergence === 0) {\n\t\t\tmaxDivergence = 1;\n\t\t}\n\t\ttubes.tubeScale = tubeSize * 0.5 * minDistance / maxDivergence;\n\t}\n\n\treturn tubes;\n};\n\nvar shaders = require('./lib/shaders');\nvar createMesh = require('gl-cone3d').createMesh;\nmodule.exports.createTubeMesh = function(gl, params) {\n\treturn createMesh(gl, params, {\n\t\tshaders: shaders,\n\t\ttraceType: 'streamtube'\n\t});\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n attributes: require('./attributes'),\n layoutAttributes: require('./layout_attributes'),\n supplyDefaults: require('./defaults'),\n crossTraceDefaults: require('../box/defaults').crossTraceDefaults,\n supplyLayoutDefaults: require('./layout_defaults'),\n calc: require('./calc'),\n crossTraceCalc: require('./cross_trace_calc'),\n plot: require('./plot'),\n style: require('./style'),\n styleOnSelect: require('../scatter/style').styleOnSelect,\n hoverPoints: require('./hover'),\n selectPoints: require('../box/select'),\n\n moduleType: 'trace',\n name: 'violin',\n basePlotModule: require('../../plots/cartesian'),\n categories: ['cartesian', 'svg', 'symbols', 'oriented', 'box-violin', 'showLegend', 'violinLayout', 'zoomScale'],\n meta: {\n \n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar Color = require('../color');\n\n// defaults common to 'annotations' and 'annotations3d'\nmodule.exports = function handleAnnotationCommonDefaults(annIn, annOut, fullLayout, coerce) {\n coerce('opacity');\n var bgColor = coerce('bgcolor');\n\n var borderColor = coerce('bordercolor');\n var borderOpacity = Color.opacity(borderColor);\n\n coerce('borderpad');\n\n var borderWidth = coerce('borderwidth');\n var showArrow = coerce('showarrow');\n\n coerce('text', showArrow ? ' ' : fullLayout._dfltTitle.annotation);\n coerce('textangle');\n Lib.coerceFont(coerce, 'font', fullLayout.font);\n\n coerce('width');\n coerce('align');\n\n var h = coerce('height');\n if(h) coerce('valign');\n\n if(showArrow) {\n var arrowside = coerce('arrowside');\n var arrowhead;\n var arrowsize;\n\n if(arrowside.indexOf('end') !== -1) {\n arrowhead = coerce('arrowhead');\n arrowsize = coerce('arrowsize');\n }\n\n if(arrowside.indexOf('start') !== -1) {\n coerce('startarrowhead', arrowhead);\n coerce('startarrowsize', arrowsize);\n }\n coerce('arrowcolor', borderOpacity ? annOut.bordercolor : Color.defaultLine);\n coerce('arrowwidth', ((borderOpacity && borderWidth) || 1) * 2);\n coerce('standoff');\n coerce('startstandoff');\n }\n\n var hoverText = coerce('hovertext');\n var globalHoverLabel = fullLayout.hoverlabel || {};\n\n if(hoverText) {\n var hoverBG = coerce('hoverlabel.bgcolor', globalHoverLabel.bgcolor ||\n (Color.opacity(bgColor) ? Color.rgb(bgColor) : Color.defaultLine)\n );\n\n var hoverBorder = coerce('hoverlabel.bordercolor', globalHoverLabel.bordercolor ||\n Color.contrast(hoverBG)\n );\n\n Lib.coerceFont(coerce, 'hoverlabel.font', {\n family: globalHoverLabel.font.family,\n size: globalHoverLabel.font.size,\n color: globalHoverLabel.font.color || hoverBorder\n });\n }\n\n coerce('captureevents', !!hoverText);\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n attributes: require('./attributes'),\n supplyDefaults: require('./defaults'),\n colorbar: {\n min: 'cmin',\n max: 'cmax'\n },\n calc: require('./calc'),\n plot: require('./convert'),\n\n moduleType: 'trace',\n name: 'surface',\n basePlotModule: require('../../plots/gl3d'),\n categories: ['gl3d', '2dMap', 'showLegend'],\n meta: {\n \n }\n};\n","\"use strict\"\n\nfunction unique_pred(list, compare) {\n var ptr = 1\n , len = list.length\n , a=list[0], b=list[0]\n for(var i=1; i 1.0) {\n t = 1.0\n }\n var ti = 1.0 - t\n var n = a.length\n var r = new Array(n)\n for(var i=0; i 0) || (a > 0 && b < 0)) {\n var p = lerpW(s, b, t, a)\n pos.push(p)\n neg.push(p.slice())\n }\n if(b < 0) {\n neg.push(t.slice())\n } else if(b > 0) {\n pos.push(t.slice())\n } else {\n pos.push(t.slice())\n neg.push(t.slice())\n }\n a = b\n }\n return { positive: pos, negative: neg }\n}\n\nfunction positive(points, plane) {\n var pos = []\n var a = planeT(points[points.length-1], plane)\n for(var s=points[points.length-1], t=points[0], i=0; i 0) || (a > 0 && b < 0)) {\n pos.push(lerpW(s, b, t, a))\n }\n if(b >= 0) {\n pos.push(t.slice())\n }\n a = b\n }\n return pos\n}\n\nfunction negative(points, plane) {\n var neg = []\n var a = planeT(points[points.length-1], plane)\n for(var s=points[points.length-1], t=points[0], i=0; i 0) || (a > 0 && b < 0)) {\n neg.push(lerpW(s, b, t, a))\n }\n if(b <= 0) {\n neg.push(t.slice())\n }\n a = b\n }\n return neg\n}","\"use strict\";\n\nvar isFunction = require(\"../function/is\");\n\nvar classRe = /^\\s*class[\\s{/}]/, functionToString = Function.prototype.toString;\n\nmodule.exports = function (value) {\n\tif (!isFunction(value)) return false;\n\tif (classRe.test(functionToString.call(value))) return false;\n\treturn true;\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar getModuleCalcData = require('../../plots/get_data').getModuleCalcData;\nvar tablePlot = require('./plot');\n\nvar TABLE = 'table';\n\nexports.name = TABLE;\n\nexports.plot = function(gd) {\n var calcData = getModuleCalcData(gd.calcdata, TABLE)[0];\n if(calcData.length) tablePlot(gd, calcData);\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var hadTable = (oldFullLayout._has && oldFullLayout._has(TABLE));\n var hasTable = (newFullLayout._has && newFullLayout._has(TABLE));\n\n if(hadTable && !hasTable) {\n oldFullLayout._paperdiv.selectAll('.table').remove();\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar polybool = require('polybooljs');\n\nvar Registry = require('../../registry');\nvar Color = require('../../components/color');\nvar Fx = require('../../components/fx');\n\nvar Lib = require('../../lib');\nvar polygon = require('../../lib/polygon');\nvar throttle = require('../../lib/throttle');\nvar makeEventData = require('../../components/fx/helpers').makeEventData;\nvar getFromId = require('./axis_ids').getFromId;\nvar clearGlCanvases = require('../../lib/clear_gl_canvases');\n\nvar redrawReglTraces = require('../../plot_api/subroutines').redrawReglTraces;\n\nvar constants = require('./constants');\nvar MINSELECT = constants.MINSELECT;\n\nvar filteredPolygon = polygon.filter;\nvar polygonTester = polygon.tester;\n\nfunction getAxId(ax) { return ax._id; }\n\nfunction prepSelect(e, startX, startY, dragOptions, mode) {\n var gd = dragOptions.gd;\n var fullLayout = gd._fullLayout;\n var zoomLayer = fullLayout._zoomlayer;\n var dragBBox = dragOptions.element.getBoundingClientRect();\n var plotinfo = dragOptions.plotinfo;\n var xs = plotinfo.xaxis._offset;\n var ys = plotinfo.yaxis._offset;\n var x0 = startX - dragBBox.left;\n var y0 = startY - dragBBox.top;\n var x1 = x0;\n var y1 = y0;\n var path0 = 'M' + x0 + ',' + y0;\n var pw = dragOptions.xaxes[0]._length;\n var ph = dragOptions.yaxes[0]._length;\n var allAxes = dragOptions.xaxes.concat(dragOptions.yaxes);\n var subtract = e.altKey;\n\n var filterPoly, selectionTester, mergedPolygons, currentPolygon;\n var i, searchInfo, eventData;\n\n coerceSelectionsCache(e, gd, dragOptions);\n\n if(mode === 'lasso') {\n filterPoly = filteredPolygon([[x0, y0]], constants.BENDPX);\n }\n\n var outlines = zoomLayer.selectAll('path.select-outline-' + plotinfo.id).data([1, 2]);\n\n outlines.enter()\n .append('path')\n .attr('class', function(d) { return 'select-outline select-outline-' + d + ' select-outline-' + plotinfo.id; })\n .attr('transform', 'translate(' + xs + ', ' + ys + ')')\n .attr('d', path0 + 'Z');\n\n var corners = zoomLayer.append('path')\n .attr('class', 'zoombox-corners')\n .style({\n fill: Color.background,\n stroke: Color.defaultLine,\n 'stroke-width': 1\n })\n .attr('transform', 'translate(' + xs + ', ' + ys + ')')\n .attr('d', 'M0,0Z');\n\n\n var throttleID = fullLayout._uid + constants.SELECTID;\n var selection = [];\n\n // find the traces to search for selection points\n var searchTraces = determineSearchTraces(gd, dragOptions.xaxes,\n dragOptions.yaxes, dragOptions.subplot);\n\n // in v2 (once log ranges are fixed),\n // we'll be able to p2r here for all axis types\n function p2r(ax, v) {\n return ax.type === 'log' ? ax.p2d(v) : ax.p2r(v);\n }\n\n function axValue(ax) {\n var index = (ax._id.charAt(0) === 'y') ? 1 : 0;\n return function(v) { return p2r(ax, v[index]); };\n }\n\n function ascending(a, b) { return a - b; }\n\n // allow subplots to override fillRangeItems routine\n var fillRangeItems;\n\n if(plotinfo.fillRangeItems) {\n fillRangeItems = plotinfo.fillRangeItems;\n } else {\n if(mode === 'select') {\n fillRangeItems = function(eventData, poly) {\n var ranges = eventData.range = {};\n\n for(i = 0; i < allAxes.length; i++) {\n var ax = allAxes[i];\n var axLetter = ax._id.charAt(0);\n\n ranges[ax._id] = [\n p2r(ax, poly[axLetter + 'min']),\n p2r(ax, poly[axLetter + 'max'])\n ].sort(ascending);\n }\n };\n } else {\n fillRangeItems = function(eventData, poly, filterPoly) {\n var dataPts = eventData.lassoPoints = {};\n\n for(i = 0; i < allAxes.length; i++) {\n var ax = allAxes[i];\n dataPts[ax._id] = filterPoly.filtered.map(axValue(ax));\n }\n };\n }\n }\n\n dragOptions.moveFn = function(dx0, dy0) {\n x1 = Math.max(0, Math.min(pw, dx0 + x0));\n y1 = Math.max(0, Math.min(ph, dy0 + y0));\n\n var dx = Math.abs(x1 - x0);\n var dy = Math.abs(y1 - y0);\n\n if(mode === 'select') {\n var direction = fullLayout.selectdirection;\n\n if(fullLayout.selectdirection === 'any') {\n if(dy < Math.min(dx * 0.6, MINSELECT)) direction = 'h';\n else if(dx < Math.min(dy * 0.6, MINSELECT)) direction = 'v';\n else direction = 'd';\n } else {\n direction = fullLayout.selectdirection;\n }\n\n if(direction === 'h') {\n // horizontal motion: make a vertical box\n currentPolygon = [[x0, 0], [x0, ph], [x1, ph], [x1, 0]];\n currentPolygon.xmin = Math.min(x0, x1);\n currentPolygon.xmax = Math.max(x0, x1);\n currentPolygon.ymin = Math.min(0, ph);\n currentPolygon.ymax = Math.max(0, ph);\n // extras to guide users in keeping a straight selection\n corners.attr('d', 'M' + currentPolygon.xmin + ',' + (y0 - MINSELECT) +\n 'h-4v' + (2 * MINSELECT) + 'h4Z' +\n 'M' + (currentPolygon.xmax - 1) + ',' + (y0 - MINSELECT) +\n 'h4v' + (2 * MINSELECT) + 'h-4Z');\n } else if(direction === 'v') {\n // vertical motion: make a horizontal box\n currentPolygon = [[0, y0], [0, y1], [pw, y1], [pw, y0]];\n currentPolygon.xmin = Math.min(0, pw);\n currentPolygon.xmax = Math.max(0, pw);\n currentPolygon.ymin = Math.min(y0, y1);\n currentPolygon.ymax = Math.max(y0, y1);\n corners.attr('d', 'M' + (x0 - MINSELECT) + ',' + currentPolygon.ymin +\n 'v-4h' + (2 * MINSELECT) + 'v4Z' +\n 'M' + (x0 - MINSELECT) + ',' + (currentPolygon.ymax - 1) +\n 'v4h' + (2 * MINSELECT) + 'v-4Z');\n } else if(direction === 'd') {\n // diagonal motion\n currentPolygon = [[x0, y0], [x0, y1], [x1, y1], [x1, y0]];\n currentPolygon.xmin = Math.min(x0, x1);\n currentPolygon.xmax = Math.max(x0, x1);\n currentPolygon.ymin = Math.min(y0, y1);\n currentPolygon.ymax = Math.max(y0, y1);\n corners.attr('d', 'M0,0Z');\n }\n } else if(mode === 'lasso') {\n filterPoly.addPt([x1, y1]);\n currentPolygon = filterPoly.filtered;\n }\n\n // create outline & tester\n if(dragOptions.selectionDefs && dragOptions.selectionDefs.length) {\n mergedPolygons = mergePolygons(dragOptions.mergedPolygons, currentPolygon, subtract);\n currentPolygon.subtract = subtract;\n selectionTester = multiTester(dragOptions.selectionDefs.concat([currentPolygon]));\n } else {\n mergedPolygons = [currentPolygon];\n selectionTester = polygonTester(currentPolygon);\n }\n\n // draw selection\n drawSelection(mergedPolygons, outlines);\n\n\n throttle.throttle(\n throttleID,\n constants.SELECTDELAY,\n function() {\n selection = [];\n\n var thisSelection;\n var traceSelections = [];\n var traceSelection;\n for(i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n\n traceSelection = searchInfo._module.selectPoints(searchInfo, selectionTester);\n traceSelections.push(traceSelection);\n\n thisSelection = fillSelectionItem(traceSelection, searchInfo);\n\n if(selection.length) {\n for(var j = 0; j < thisSelection.length; j++) {\n selection.push(thisSelection[j]);\n }\n } else selection = thisSelection;\n }\n\n eventData = {points: selection};\n updateSelectedState(gd, searchTraces, eventData);\n fillRangeItems(eventData, currentPolygon, filterPoly);\n dragOptions.gd.emit('plotly_selecting', eventData);\n }\n );\n };\n\n dragOptions.clickFn = function(numClicks, evt) {\n var clickmode = fullLayout.clickmode;\n\n corners.remove();\n\n throttle.done(throttleID).then(function() {\n throttle.clear(throttleID);\n if(numClicks === 2) {\n // clear selection on doubleclick\n outlines.remove();\n for(i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n searchInfo._module.selectPoints(searchInfo, false);\n }\n\n updateSelectedState(gd, searchTraces);\n\n clearSelectionsCache(dragOptions);\n\n gd.emit('plotly_deselect', null);\n } else {\n if(clickmode.indexOf('select') > -1) {\n selectOnClick(evt, gd, dragOptions.xaxes, dragOptions.yaxes,\n dragOptions.subplot, dragOptions, outlines);\n }\n\n if(clickmode === 'event') {\n // TODO: remove in v2 - this was probably never intended to work as it does,\n // but in case anyone depends on it we don't want to break it now.\n // Note that click-to-select introduced pre v2 also emitts proper\n // event data when clickmode is having 'select' in its flag list.\n gd.emit('plotly_selected', undefined);\n }\n }\n\n Fx.click(gd, evt);\n }).catch(Lib.error);\n };\n\n dragOptions.doneFn = function() {\n corners.remove();\n\n throttle.done(throttleID).then(function() {\n throttle.clear(throttleID);\n dragOptions.gd.emit('plotly_selected', eventData);\n\n if(currentPolygon && dragOptions.selectionDefs) {\n // save last polygons\n currentPolygon.subtract = subtract;\n dragOptions.selectionDefs.push(currentPolygon);\n\n // we have to keep reference to arrays container\n dragOptions.mergedPolygons.length = 0;\n [].push.apply(dragOptions.mergedPolygons, mergedPolygons);\n }\n\n if(dragOptions.doneFnCompleted) {\n dragOptions.doneFnCompleted(selection);\n }\n }).catch(Lib.error);\n };\n}\n\nfunction selectOnClick(evt, gd, xAxes, yAxes, subplot, dragOptions, polygonOutlines) {\n var hoverData = gd._hoverdata;\n var clickmode = gd._fullLayout.clickmode;\n var sendEvents = clickmode.indexOf('event') > -1;\n var selection = [];\n var searchTraces, searchInfo, currentSelectionDef, selectionTester, traceSelection;\n var thisTracesSelection, pointOrBinSelected, subtract, eventData, i;\n\n if(isHoverDataSet(hoverData)) {\n coerceSelectionsCache(evt, gd, dragOptions);\n searchTraces = determineSearchTraces(gd, xAxes, yAxes, subplot);\n var clickedPtInfo = extractClickedPtInfo(hoverData, searchTraces);\n var isBinnedTrace = clickedPtInfo.pointNumbers.length > 0;\n\n\n // Note: potentially costly operation isPointOrBinSelected is\n // called as late as possible through the use of an assignment\n // in an if condition.\n if(isBinnedTrace ?\n isOnlyThisBinSelected(searchTraces, clickedPtInfo) :\n isOnlyOnePointSelected(searchTraces) &&\n (pointOrBinSelected = isPointOrBinSelected(clickedPtInfo))) {\n if(polygonOutlines) polygonOutlines.remove();\n for(i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n searchInfo._module.selectPoints(searchInfo, false);\n }\n\n updateSelectedState(gd, searchTraces);\n\n clearSelectionsCache(dragOptions);\n\n if(sendEvents) {\n gd.emit('plotly_deselect', null);\n }\n } else {\n subtract = evt.shiftKey &&\n (pointOrBinSelected !== undefined ?\n pointOrBinSelected :\n isPointOrBinSelected(clickedPtInfo));\n currentSelectionDef = newPointSelectionDef(clickedPtInfo.pointNumber, clickedPtInfo.searchInfo, subtract);\n\n var allSelectionDefs = dragOptions.selectionDefs.concat([currentSelectionDef]);\n selectionTester = multiTester(allSelectionDefs);\n\n for(i = 0; i < searchTraces.length; i++) {\n traceSelection = searchTraces[i]._module.selectPoints(searchTraces[i], selectionTester);\n thisTracesSelection = fillSelectionItem(traceSelection, searchTraces[i]);\n\n if(selection.length) {\n for(var j = 0; j < thisTracesSelection.length; j++) {\n selection.push(thisTracesSelection[j]);\n }\n } else selection = thisTracesSelection;\n }\n\n eventData = {points: selection};\n updateSelectedState(gd, searchTraces, eventData);\n\n if(currentSelectionDef && dragOptions) {\n dragOptions.selectionDefs.push(currentSelectionDef);\n }\n\n if(polygonOutlines) drawSelection(dragOptions.mergedPolygons, polygonOutlines);\n\n if(sendEvents) {\n gd.emit('plotly_selected', eventData);\n }\n }\n }\n}\n\n/**\n * Constructs a new point selection definition object.\n */\nfunction newPointSelectionDef(pointNumber, searchInfo, subtract) {\n return {\n pointNumber: pointNumber,\n searchInfo: searchInfo,\n subtract: subtract\n };\n}\n\nfunction isPointSelectionDef(o) {\n return 'pointNumber' in o && 'searchInfo' in o;\n}\n\n/*\n * Constructs a new point number tester.\n */\nfunction newPointNumTester(pointSelectionDef) {\n return {\n xmin: 0,\n xmax: 0,\n ymin: 0,\n ymax: 0,\n pts: [],\n contains: function(pt, omitFirstEdge, pointNumber, searchInfo) {\n var idxWantedTrace = pointSelectionDef.searchInfo.cd[0].trace._expandedIndex;\n var idxActualTrace = searchInfo.cd[0].trace._expandedIndex;\n return idxActualTrace === idxWantedTrace &&\n pointNumber === pointSelectionDef.pointNumber;\n },\n isRect: false,\n degenerate: false,\n subtract: pointSelectionDef.subtract\n };\n}\n\n/**\n * Wraps multiple selection testers.\n *\n * @param {Array} list - An array of selection testers.\n *\n * @return a selection tester object with a contains function\n * that can be called to evaluate a point against all wrapped\n * selection testers that were passed in list.\n */\nfunction multiTester(list) {\n var testers = [];\n var xmin = isPointSelectionDef(list[0]) ? 0 : list[0][0][0];\n var xmax = xmin;\n var ymin = isPointSelectionDef(list[0]) ? 0 : list[0][0][1];\n var ymax = ymin;\n\n for(var i = 0; i < list.length; i++) {\n if(isPointSelectionDef(list[i])) {\n testers.push(newPointNumTester(list[i]));\n } else {\n var tester = polygon.tester(list[i]);\n tester.subtract = list[i].subtract;\n testers.push(tester);\n xmin = Math.min(xmin, tester.xmin);\n xmax = Math.max(xmax, tester.xmax);\n ymin = Math.min(ymin, tester.ymin);\n ymax = Math.max(ymax, tester.ymax);\n }\n }\n\n /**\n * Tests if the given point is within this tester.\n *\n * @param {Array} pt - [0] is the x coordinate, [1] is the y coordinate of the point.\n * @param {*} arg - An optional parameter to pass down to wrapped testers.\n * @param {number} pointNumber - The point number of the point within the underlying data array.\n * @param {number} searchInfo - An object identifying the trace the point is contained in.\n *\n * @return {boolean} true if point is considered to be selected, false otherwise.\n */\n function contains(pt, arg, pointNumber, searchInfo) {\n var contained = false;\n for(var i = 0; i < testers.length; i++) {\n if(testers[i].contains(pt, arg, pointNumber, searchInfo)) {\n // if contained by subtract tester - exclude the point\n contained = testers[i].subtract === false;\n }\n }\n\n return contained;\n }\n\n return {\n xmin: xmin,\n xmax: xmax,\n ymin: ymin,\n ymax: ymax,\n pts: [],\n contains: contains,\n isRect: false,\n degenerate: false\n };\n}\n\nfunction coerceSelectionsCache(evt, gd, dragOptions) {\n var fullLayout = gd._fullLayout;\n var plotinfo = dragOptions.plotinfo;\n\n var selectingOnSameSubplot = (\n fullLayout._lastSelectedSubplot &&\n fullLayout._lastSelectedSubplot === plotinfo.id\n );\n var hasModifierKey = evt.shiftKey || evt.altKey;\n\n if(selectingOnSameSubplot && hasModifierKey &&\n (plotinfo.selection && plotinfo.selection.selectionDefs) && !dragOptions.selectionDefs) {\n // take over selection definitions from prev mode, if any\n dragOptions.selectionDefs = plotinfo.selection.selectionDefs;\n dragOptions.mergedPolygons = plotinfo.selection.mergedPolygons;\n } else if(!hasModifierKey || !plotinfo.selection) {\n clearSelectionsCache(dragOptions);\n }\n\n // clear selection outline when selecting a different subplot\n if(!selectingOnSameSubplot) {\n clearSelect(gd);\n fullLayout._lastSelectedSubplot = plotinfo.id;\n }\n}\n\nfunction clearSelectionsCache(dragOptions) {\n var plotinfo = dragOptions.plotinfo;\n\n plotinfo.selection = {};\n plotinfo.selection.selectionDefs = dragOptions.selectionDefs = [];\n plotinfo.selection.mergedPolygons = dragOptions.mergedPolygons = [];\n}\n\nfunction determineSearchTraces(gd, xAxes, yAxes, subplot) {\n var searchTraces = [];\n var xAxisIds = xAxes.map(getAxId);\n var yAxisIds = yAxes.map(getAxId);\n var cd, trace, i;\n\n for(i = 0; i < gd.calcdata.length; i++) {\n cd = gd.calcdata[i];\n trace = cd[0].trace;\n\n if(trace.visible !== true || !trace._module || !trace._module.selectPoints) continue;\n\n if(subplot && (trace.subplot === subplot || trace.geo === subplot)) {\n searchTraces.push(createSearchInfo(trace._module, cd, xAxes[0], yAxes[0]));\n } else if(\n trace.type === 'splom' &&\n // FIXME: make sure we don't have more than single axis for splom\n trace._xaxes[xAxisIds[0]] && trace._yaxes[yAxisIds[0]]\n ) {\n var info = createSearchInfo(trace._module, cd, xAxes[0], yAxes[0]);\n info.scene = gd._fullLayout._splomScenes[trace.uid];\n searchTraces.push(info);\n } else if(\n trace.type === 'sankey'\n ) {\n var sankeyInfo = createSearchInfo(trace._module, cd, xAxes[0], yAxes[0]);\n searchTraces.push(sankeyInfo);\n } else {\n if(xAxisIds.indexOf(trace.xaxis) === -1) continue;\n if(yAxisIds.indexOf(trace.yaxis) === -1) continue;\n\n searchTraces.push(createSearchInfo(trace._module, cd,\n getFromId(gd, trace.xaxis), getFromId(gd, trace.yaxis)));\n }\n }\n\n return searchTraces;\n\n function createSearchInfo(module, calcData, xaxis, yaxis) {\n return {\n _module: module,\n cd: calcData,\n xaxis: xaxis,\n yaxis: yaxis\n };\n }\n}\n\nfunction drawSelection(polygons, outlines) {\n var paths = [];\n var i, d;\n\n for(i = 0; i < polygons.length; i++) {\n var ppts = polygons[i];\n paths.push(ppts.join('L') + 'L' + ppts[0]);\n }\n\n d = polygons.length > 0 ?\n 'M' + paths.join('M') + 'Z' :\n 'M0,0Z';\n outlines.attr('d', d);\n}\n\nfunction isHoverDataSet(hoverData) {\n return hoverData &&\n Array.isArray(hoverData) &&\n hoverData[0].hoverOnBox !== true;\n}\n\nfunction extractClickedPtInfo(hoverData, searchTraces) {\n var hoverDatum = hoverData[0];\n var pointNumber = -1;\n var pointNumbers = [];\n var searchInfo, i;\n\n for(i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n if(hoverDatum.fullData._expandedIndex === searchInfo.cd[0].trace._expandedIndex) {\n // Special case for box (and violin)\n if(hoverDatum.hoverOnBox === true) {\n break;\n }\n\n // Hint: in some traces like histogram, one graphical element\n // doesn't correspond to one particular data point, but to\n // bins of data points. Thus, hoverDatum can have a binNumber\n // property instead of pointNumber.\n if(hoverDatum.pointNumber !== undefined) {\n pointNumber = hoverDatum.pointNumber;\n } else if(hoverDatum.binNumber !== undefined) {\n pointNumber = hoverDatum.binNumber;\n pointNumbers = hoverDatum.pointNumbers;\n }\n\n break;\n }\n }\n\n return {\n pointNumber: pointNumber,\n pointNumbers: pointNumbers,\n searchInfo: searchInfo\n };\n}\n\nfunction isPointOrBinSelected(clickedPtInfo) {\n var trace = clickedPtInfo.searchInfo.cd[0].trace;\n var ptNum = clickedPtInfo.pointNumber;\n var ptNums = clickedPtInfo.pointNumbers;\n var ptNumsSet = ptNums.length > 0;\n\n // When pointsNumbers is set (e.g. histogram's binning),\n // it is assumed that when the first point of\n // a bin is selected, all others are as well\n var ptNumToTest = ptNumsSet ? ptNums[0] : ptNum;\n\n // TODO potential performance improvement\n // Primarily we need this function to determine if a click adds\n // or subtracts from a selection.\n // In cases `trace.selectedpoints` is a huge array, indexOf\n // might be slow. One remedy would be to introduce a hash somewhere.\n return trace.selectedpoints ? trace.selectedpoints.indexOf(ptNumToTest) > -1 : false;\n}\n\nfunction isOnlyThisBinSelected(searchTraces, clickedPtInfo) {\n var tracesWithSelectedPts = [];\n var searchInfo, trace, isSameTrace, i;\n\n for(i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n if(searchInfo.cd[0].trace.selectedpoints && searchInfo.cd[0].trace.selectedpoints.length > 0) {\n tracesWithSelectedPts.push(searchInfo);\n }\n }\n\n if(tracesWithSelectedPts.length === 1) {\n isSameTrace = tracesWithSelectedPts[0] === clickedPtInfo.searchInfo;\n if(isSameTrace) {\n trace = clickedPtInfo.searchInfo.cd[0].trace;\n if(trace.selectedpoints.length === clickedPtInfo.pointNumbers.length) {\n for(i = 0; i < clickedPtInfo.pointNumbers.length; i++) {\n if(trace.selectedpoints.indexOf(clickedPtInfo.pointNumbers[i]) < 0) {\n return false;\n }\n }\n return true;\n }\n }\n }\n\n return false;\n}\n\nfunction isOnlyOnePointSelected(searchTraces) {\n var len = 0;\n var searchInfo, trace, i;\n\n for(i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n trace = searchInfo.cd[0].trace;\n if(trace.selectedpoints) {\n if(trace.selectedpoints.length > 1) return false;\n\n len += trace.selectedpoints.length;\n if(len > 1) return false;\n }\n }\n\n return len === 1;\n}\n\nfunction updateSelectedState(gd, searchTraces, eventData) {\n var i, searchInfo, cd, trace;\n\n // before anything else, update preGUI if necessary\n for(i = 0; i < searchTraces.length; i++) {\n var fullInputTrace = searchTraces[i].cd[0].trace._fullInput;\n var tracePreGUI = gd._fullLayout._tracePreGUI[fullInputTrace.uid] || {};\n if(tracePreGUI.selectedpoints === undefined) {\n tracePreGUI.selectedpoints = fullInputTrace._input.selectedpoints || null;\n }\n }\n\n if(eventData) {\n var pts = eventData.points || [];\n\n for(i = 0; i < searchTraces.length; i++) {\n trace = searchTraces[i].cd[0].trace;\n trace._input.selectedpoints = trace._fullInput.selectedpoints = [];\n if(trace._fullInput !== trace) trace.selectedpoints = [];\n }\n\n for(i = 0; i < pts.length; i++) {\n var pt = pts[i];\n var data = pt.data;\n var fullData = pt.fullData;\n\n if(pt.pointIndices) {\n [].push.apply(data.selectedpoints, pt.pointIndices);\n if(trace._fullInput !== trace) {\n [].push.apply(fullData.selectedpoints, pt.pointIndices);\n }\n } else {\n data.selectedpoints.push(pt.pointIndex);\n if(trace._fullInput !== trace) {\n fullData.selectedpoints.push(pt.pointIndex);\n }\n }\n }\n } else {\n for(i = 0; i < searchTraces.length; i++) {\n trace = searchTraces[i].cd[0].trace;\n delete trace.selectedpoints;\n delete trace._input.selectedpoints;\n if(trace._fullInput !== trace) {\n delete trace._fullInput.selectedpoints;\n }\n }\n }\n\n var hasRegl = false;\n\n for(i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n cd = searchInfo.cd;\n trace = cd[0].trace;\n\n if(Registry.traceIs(trace, 'regl')) {\n hasRegl = true;\n }\n\n var _module = searchInfo._module;\n var fn = _module.styleOnSelect || _module.style;\n if(fn) {\n fn(gd, cd, cd[0].node3);\n if(cd[0].nodeRangePlot3) fn(gd, cd, cd[0].nodeRangePlot3);\n }\n }\n\n if(hasRegl) {\n clearGlCanvases(gd);\n redrawReglTraces(gd);\n }\n}\n\nfunction mergePolygons(list, poly, subtract) {\n var res;\n\n if(subtract) {\n res = polybool.difference({\n regions: list,\n inverted: false\n }, {\n regions: [poly],\n inverted: false\n });\n\n return res.regions;\n }\n\n res = polybool.union({\n regions: list,\n inverted: false\n }, {\n regions: [poly],\n inverted: false\n });\n\n return res.regions;\n}\n\nfunction fillSelectionItem(selection, searchInfo) {\n if(Array.isArray(selection)) {\n var cd = searchInfo.cd;\n var trace = searchInfo.cd[0].trace;\n\n for(var i = 0; i < selection.length; i++) {\n selection[i] = makeEventData(selection[i], trace, cd);\n }\n }\n\n return selection;\n}\n\n// until we get around to persistent selections, remove the outline\n// here. The selection itself will be removed when the plot redraws\n// at the end.\nfunction clearSelect(gd) {\n var fullLayout = gd._fullLayout || {};\n var zoomlayer = fullLayout._zoomlayer;\n if(zoomlayer) {\n zoomlayer.selectAll('.select-outline').remove();\n }\n}\n\nmodule.exports = {\n prepSelect: prepSelect,\n clearSelect: clearSelect,\n selectOnClick: selectOnClick\n};\n","'use strict'\n\nvar rationalize = require('./lib/rationalize')\n\nmodule.exports = div\n\nfunction div(a, b) {\n return rationalize(a[0].mul(b[1]), a[1].mul(b[0]))\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar attributes = require('./attributes');\nvar handleDomainDefaults = require('../../plots/domain').defaults;\nvar Template = require('../../plot_api/plot_template');\nvar handleArrayContainerDefaults = require('../../plots/array_container_defaults');\nvar cn = require('./constants.js');\n\nvar handleTickValueDefaults = require('../../plots/cartesian/tick_value_defaults');\nvar handleTickMarkDefaults = require('../../plots/cartesian/tick_mark_defaults');\nvar handleTickLabelDefaults = require('../../plots/cartesian/tick_label_defaults');\n\nfunction supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n handleDomainDefaults(traceOut, layout, coerce);\n\n // Mode\n coerce('mode');\n traceOut._hasNumber = traceOut.mode.indexOf('number') !== -1;\n traceOut._hasDelta = traceOut.mode.indexOf('delta') !== -1;\n traceOut._hasGauge = traceOut.mode.indexOf('gauge') !== -1;\n\n var value = coerce('value');\n traceOut._range = [0, (typeof value === 'number' ? 1.5 * value : 1)];\n\n // Number attributes\n var auto = new Array(2);\n var bignumberFontSize;\n if(traceOut._hasNumber) {\n coerce('number.valueformat');\n coerce('number.font.color', layout.font.color);\n coerce('number.font.family', layout.font.family);\n coerce('number.font.size');\n if(traceOut.number.font.size === undefined) {\n traceOut.number.font.size = cn.defaultNumberFontSize;\n auto[0] = true;\n }\n coerce('number.prefix');\n coerce('number.suffix');\n bignumberFontSize = traceOut.number.font.size;\n }\n\n // delta attributes\n var deltaFontSize;\n if(traceOut._hasDelta) {\n coerce('delta.font.color', layout.font.color);\n coerce('delta.font.family', layout.font.family);\n coerce('delta.font.size');\n if(traceOut.delta.font.size === undefined) {\n traceOut.delta.font.size = (traceOut._hasNumber ? 0.5 : 1) * (bignumberFontSize || cn.defaultNumberFontSize);\n auto[1] = true;\n }\n coerce('delta.reference', traceOut.value);\n coerce('delta.relative');\n coerce('delta.valueformat', traceOut.delta.relative ? '2%' : '');\n coerce('delta.increasing.symbol');\n coerce('delta.increasing.color');\n coerce('delta.decreasing.symbol');\n coerce('delta.decreasing.color');\n coerce('delta.position');\n deltaFontSize = traceOut.delta.font.size;\n }\n traceOut._scaleNumbers = (!traceOut._hasNumber || auto[0]) && (!traceOut._hasDelta || auto[1]) || false;\n\n // Title attributes\n coerce('title.font.color', layout.font.color);\n coerce('title.font.family', layout.font.family);\n coerce('title.font.size', 0.25 * (bignumberFontSize || deltaFontSize || cn.defaultNumberFontSize));\n coerce('title.text');\n\n // Gauge attributes\n var gaugeIn, gaugeOut, axisIn, axisOut;\n function coerceGauge(attr, dflt) {\n return Lib.coerce(gaugeIn, gaugeOut, attributes.gauge, attr, dflt);\n }\n function coerceGaugeAxis(attr, dflt) {\n return Lib.coerce(axisIn, axisOut, attributes.gauge.axis, attr, dflt);\n }\n\n if(traceOut._hasGauge) {\n gaugeIn = traceIn.gauge;\n if(!gaugeIn) gaugeIn = {};\n gaugeOut = Template.newContainer(traceOut, 'gauge');\n coerceGauge('shape');\n var isBullet = traceOut._isBullet = traceOut.gauge.shape === 'bullet';\n if(!isBullet) {\n coerce('title.align', 'center');\n }\n var isAngular = traceOut._isAngular = traceOut.gauge.shape === 'angular';\n if(!isAngular) {\n coerce('align', 'center');\n }\n\n // gauge background\n coerceGauge('bgcolor', layout.paper_bgcolor);\n coerceGauge('borderwidth');\n coerceGauge('bordercolor');\n\n // gauge bar indicator\n coerceGauge('bar.color');\n coerceGauge('bar.line.color');\n coerceGauge('bar.line.width');\n var defaultBarThickness = cn.valueThickness * (traceOut.gauge.shape === 'bullet' ? 0.5 : 1);\n coerceGauge('bar.thickness', defaultBarThickness);\n\n // Gauge steps\n handleArrayContainerDefaults(gaugeIn, gaugeOut, {\n name: 'steps',\n handleItemDefaults: stepDefaults\n });\n\n // Gauge threshold\n coerceGauge('threshold.value');\n coerceGauge('threshold.thickness');\n coerceGauge('threshold.line.width');\n coerceGauge('threshold.line.color');\n\n // Gauge axis\n axisIn = {};\n if(gaugeIn) axisIn = gaugeIn.axis || {};\n axisOut = Template.newContainer(gaugeOut, 'axis');\n coerceGaugeAxis('visible');\n traceOut._range = coerceGaugeAxis('range', traceOut._range);\n\n var opts = {outerTicks: true};\n handleTickValueDefaults(axisIn, axisOut, coerceGaugeAxis, 'linear');\n handleTickLabelDefaults(axisIn, axisOut, coerceGaugeAxis, 'linear', opts);\n handleTickMarkDefaults(axisIn, axisOut, coerceGaugeAxis, opts);\n } else {\n coerce('title.align', 'center');\n coerce('align', 'center');\n traceOut._isAngular = traceOut._isBullet = false;\n }\n\n // disable 1D transforms\n traceOut._length = null;\n}\n\nfunction stepDefaults(stepIn, stepOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(stepIn, stepOut, attributes.gauge.steps, attr, dflt);\n }\n\n coerce('color');\n coerce('line.color');\n coerce('line.width');\n coerce('range');\n coerce('thickness');\n}\n\nmodule.exports = {\n supplyDefaults: supplyDefaults\n};\n","\"use strict\";\n\nvar str = \"razdwatrzy\";\n\nmodule.exports = function () {\n\tif (typeof str.contains !== \"function\") return false;\n\treturn str.contains(\"dwa\") === true && str.contains(\"foo\") === false;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar Lib = require('../../lib');\n\nvar constants = require('../scatter/constants');\nvar subTypes = require('../scatter/subtypes');\nvar handleMarkerDefaults = require('../scatter/marker_defaults');\nvar handleLineDefaults = require('../scatter/line_defaults');\nvar handleLineShapeDefaults = require('../scatter/line_shape_defaults');\nvar handleTextDefaults = require('../scatter/text_defaults');\nvar handleFillColorDefaults = require('../scatter/fillcolor_defaults');\n\nvar attributes = require('./attributes');\n\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var a = coerce('a');\n var b = coerce('b');\n var c = coerce('c');\n var len;\n\n // allow any one array to be missing, len is the minimum length of those\n // present. Note that after coerce data_array's are either Arrays (which\n // are truthy even if empty) or undefined. As in scatter, an empty array\n // is different from undefined, because it can signify that this data is\n // not known yet but expected in the future\n if(a) {\n len = a.length;\n if(b) {\n len = Math.min(len, b.length);\n if(c) len = Math.min(len, c.length);\n } else if(c) len = Math.min(len, c.length);\n else len = 0;\n } else if(b && c) {\n len = Math.min(b.length, c.length);\n }\n\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n traceOut._length = len;\n\n coerce('sum');\n\n coerce('text');\n coerce('hovertext');\n if(traceOut.hoveron !== 'fills') coerce('hovertemplate');\n\n var defaultMode = len < constants.PTS_LINESONLY ? 'lines+markers' : 'lines';\n coerce('mode', defaultMode);\n\n if(subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n handleLineShapeDefaults(traceIn, traceOut, coerce);\n coerce('connectgaps');\n }\n\n if(subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, {gradient: true});\n }\n\n if(subTypes.hasText(traceOut)) {\n coerce('texttemplate');\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n\n var dfltHoverOn = [];\n\n if(subTypes.hasMarkers(traceOut) || subTypes.hasText(traceOut)) {\n coerce('cliponaxis');\n coerce('marker.maxdisplayed');\n dfltHoverOn.push('points');\n }\n\n coerce('fill');\n if(traceOut.fill !== 'none') {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n if(!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);\n }\n\n if(traceOut.fill === 'tonext' || traceOut.fill === 'toself') {\n dfltHoverOn.push('fills');\n }\n coerce('hoveron', dfltHoverOn.join('+') || 'points');\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n};\n","module.exports = [\r\n // current\r\n 'precision'\r\n , 'highp'\r\n , 'mediump'\r\n , 'lowp'\r\n , 'attribute'\r\n , 'const'\r\n , 'uniform'\r\n , 'varying'\r\n , 'break'\r\n , 'continue'\r\n , 'do'\r\n , 'for'\r\n , 'while'\r\n , 'if'\r\n , 'else'\r\n , 'in'\r\n , 'out'\r\n , 'inout'\r\n , 'float'\r\n , 'int'\r\n , 'uint'\r\n , 'void'\r\n , 'bool'\r\n , 'true'\r\n , 'false'\r\n , 'discard'\r\n , 'return'\r\n , 'mat2'\r\n , 'mat3'\r\n , 'mat4'\r\n , 'vec2'\r\n , 'vec3'\r\n , 'vec4'\r\n , 'ivec2'\r\n , 'ivec3'\r\n , 'ivec4'\r\n , 'bvec2'\r\n , 'bvec3'\r\n , 'bvec4'\r\n , 'sampler1D'\r\n , 'sampler2D'\r\n , 'sampler3D'\r\n , 'samplerCube'\r\n , 'sampler1DShadow'\r\n , 'sampler2DShadow'\r\n , 'struct'\r\n\r\n // future\r\n , 'asm'\r\n , 'class'\r\n , 'union'\r\n , 'enum'\r\n , 'typedef'\r\n , 'template'\r\n , 'this'\r\n , 'packed'\r\n , 'goto'\r\n , 'switch'\r\n , 'default'\r\n , 'inline'\r\n , 'noinline'\r\n , 'volatile'\r\n , 'public'\r\n , 'static'\r\n , 'extern'\r\n , 'external'\r\n , 'interface'\r\n , 'long'\r\n , 'short'\r\n , 'double'\r\n , 'half'\r\n , 'fixed'\r\n , 'unsigned'\r\n , 'input'\r\n , 'output'\r\n , 'hvec2'\r\n , 'hvec3'\r\n , 'hvec4'\r\n , 'dvec2'\r\n , 'dvec3'\r\n , 'dvec4'\r\n , 'fvec2'\r\n , 'fvec3'\r\n , 'fvec4'\r\n , 'sampler2DRect'\r\n , 'sampler3DRect'\r\n , 'sampler2DRectShadow'\r\n , 'sizeof'\r\n , 'cast'\r\n , 'namespace'\r\n , 'using'\r\n]\r\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar isNumeric = require('fast-isnumeric');\n\n\n// used in the drawing step for 'scatter' and 'scattegeo' and\n// in the convert step for 'scatter3d'\nmodule.exports = function makeBubbleSizeFn(trace) {\n var marker = trace.marker;\n var sizeRef = marker.sizeref || 1;\n var sizeMin = marker.sizemin || 0;\n\n // for bubble charts, allow scaling the provided value linearly\n // and by area or diameter.\n // Note this only applies to the array-value sizes\n\n var baseFn = (marker.sizemode === 'area') ?\n function(v) { return Math.sqrt(v / sizeRef); } :\n function(v) { return v / sizeRef; };\n\n // TODO add support for position/negative bubbles?\n // TODO add 'sizeoffset' attribute?\n return function(v) {\n var baseSize = baseFn(v / 2);\n\n // don't show non-numeric and negative sizes\n return (isNumeric(baseSize) && (baseSize > 0)) ?\n Math.max(baseSize, sizeMin) :\n 0;\n };\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar d3 = require('d3');\nvar isNumeric = require('fast-isnumeric');\n\nvar Plots = require('../../plots/plots');\nvar Registry = require('../../registry');\nvar Lib = require('../../lib');\nvar Drawing = require('../drawing');\nvar Color = require('../color');\nvar svgTextUtils = require('../../lib/svg_text_utils');\nvar interactConstants = require('../../constants/interactions');\n\nvar OPPOSITE_SIDE = require('../../constants/alignment').OPPOSITE_SIDE;\nvar numStripRE = / [XY][0-9]* /;\n\n/**\n * Titles - (re)draw titles on the axes and plot:\n * @param {DOM element} gd - the graphDiv\n * @param {string} titleClass - the css class of this title\n * @param {object} options - how and what to draw\n * propContainer - the layout object containing `title` and `titlefont`\n * attributes that apply to this title\n * propName - the full name of the title property (for Plotly.relayout)\n * [traceIndex] - include only if this property applies to one trace\n * (such as a colorbar title) - then editing pipes to Plotly.restyle\n * instead of Plotly.relayout\n * placeholder - placeholder text for an empty editable title\n * [avoid] {object} - include if this title should move to avoid other elements\n * selection - d3 selection of elements to avoid\n * side - which direction to move if there is a conflict\n * [offsetLeft] - if these elements are subject to a translation\n * wrt the title element\n * [offsetTop]\n * attributes {object} - position and alignment attributes\n * x - pixels\n * y - pixels\n * text-anchor - start|middle|end\n * transform {object} - how to transform the title after positioning\n * rotate - degrees\n * offset - shift up/down in the rotated frame (unused?)\n * containerGroup - if an svg element already exists to hold this\n * title, include here. Otherwise it will go in fullLayout._infolayer\n * _meta {object (optional} - meta key-value to for title with\n * Lib.templateString, default to fullLayout._meta, if not provided\n *\n * @return {selection} d3 selection of title container group\n */\nfunction draw(gd, titleClass, options) {\n var cont = options.propContainer;\n var prop = options.propName;\n var placeholder = options.placeholder;\n var traceIndex = options.traceIndex;\n var avoid = options.avoid || {};\n var attributes = options.attributes;\n var transform = options.transform;\n var group = options.containerGroup;\n\n var fullLayout = gd._fullLayout;\n\n var opacity = 1;\n var isplaceholder = false;\n var title = cont.title;\n var txt = (title && title.text ? title.text : '').trim();\n\n var font = title && title.font ? title.font : {};\n var fontFamily = font.family;\n var fontSize = font.size;\n var fontColor = font.color;\n\n // only make this title editable if we positively identify its property\n // as one that has editing enabled.\n var editAttr;\n if(prop === 'title.text') editAttr = 'titleText';\n else if(prop.indexOf('axis') !== -1) editAttr = 'axisTitleText';\n else if(prop.indexOf('colorbar' !== -1)) editAttr = 'colorbarTitleText';\n var editable = gd._context.edits[editAttr];\n\n if(txt === '') opacity = 0;\n // look for placeholder text while stripping out numbers from eg X2, Y3\n // this is just for backward compatibility with the old version that had\n // \"Click to enter X2 title\" and may have gotten saved in some old plots,\n // we don't want this to show up when these are displayed.\n else if(txt.replace(numStripRE, ' % ') === placeholder.replace(numStripRE, ' % ')) {\n opacity = 0.2;\n isplaceholder = true;\n if(!editable) txt = '';\n }\n\n if(options._meta) {\n txt = Lib.templateString(txt, options._meta);\n } else if(fullLayout._meta) {\n txt = Lib.templateString(txt, fullLayout._meta);\n }\n\n var elShouldExist = txt || editable;\n\n if(!group) {\n group = Lib.ensureSingle(fullLayout._infolayer, 'g', 'g-' + titleClass);\n }\n\n var el = group.selectAll('text')\n .data(elShouldExist ? [0] : []);\n el.enter().append('text');\n el.text(txt)\n // this is hacky, but convertToTspans uses the class\n // to determine whether to rotate mathJax...\n // so we need to clear out any old class and put the\n // correct one (only relevant for colorbars, at least\n // for now) - ie don't use .classed\n .attr('class', titleClass);\n el.exit().remove();\n\n if(!elShouldExist) return group;\n\n function titleLayout(titleEl) {\n Lib.syncOrAsync([drawTitle, scootTitle], titleEl);\n }\n\n function drawTitle(titleEl) {\n var transformVal;\n\n if(transform) {\n transformVal = '';\n if(transform.rotate) {\n transformVal += 'rotate(' + [transform.rotate, attributes.x, attributes.y] + ')';\n }\n if(transform.offset) {\n transformVal += 'translate(0, ' + transform.offset + ')';\n }\n } else {\n transformVal = null;\n }\n\n titleEl.attr('transform', transformVal);\n\n titleEl.style({\n 'font-family': fontFamily,\n 'font-size': d3.round(fontSize, 2) + 'px',\n fill: Color.rgb(fontColor),\n opacity: opacity * Color.opacity(fontColor),\n 'font-weight': Plots.fontWeight\n })\n .attr(attributes)\n .call(svgTextUtils.convertToTspans, gd);\n\n return Plots.previousPromises(gd);\n }\n\n function scootTitle(titleElIn) {\n var titleGroup = d3.select(titleElIn.node().parentNode);\n\n if(avoid && avoid.selection && avoid.side && txt) {\n titleGroup.attr('transform', null);\n\n // move toward avoid.side (= left, right, top, bottom) if needed\n // can include pad (pixels, default 2)\n var backside = OPPOSITE_SIDE[avoid.side];\n var shiftSign = (avoid.side === 'left' || avoid.side === 'top') ? -1 : 1;\n var pad = isNumeric(avoid.pad) ? avoid.pad : 2;\n\n var titlebb = Drawing.bBox(titleGroup.node());\n var paperbb = {\n left: 0,\n top: 0,\n right: fullLayout.width,\n bottom: fullLayout.height\n };\n\n var maxshift = avoid.maxShift ||\n shiftSign * (paperbb[avoid.side] - titlebb[avoid.side]);\n var shift = 0;\n\n // Prevent the title going off the paper\n if(maxshift < 0) {\n shift = maxshift;\n } else {\n // so we don't have to offset each avoided element,\n // give the title the opposite offset\n var offsetLeft = avoid.offsetLeft || 0;\n var offsetTop = avoid.offsetTop || 0;\n titlebb.left -= offsetLeft;\n titlebb.right -= offsetLeft;\n titlebb.top -= offsetTop;\n titlebb.bottom -= offsetTop;\n\n // iterate over a set of elements (avoid.selection)\n // to avoid collisions with\n avoid.selection.each(function() {\n var avoidbb = Drawing.bBox(this);\n\n if(Lib.bBoxIntersect(titlebb, avoidbb, pad)) {\n shift = Math.max(shift, shiftSign * (\n avoidbb[avoid.side] - titlebb[backside]) + pad);\n }\n });\n shift = Math.min(maxshift, shift);\n }\n\n if(shift > 0 || maxshift < 0) {\n var shiftTemplate = {\n left: [-shift, 0],\n right: [shift, 0],\n top: [0, -shift],\n bottom: [0, shift]\n }[avoid.side];\n titleGroup.attr('transform', 'translate(' + shiftTemplate + ')');\n }\n }\n }\n\n el.call(titleLayout);\n\n function setPlaceholder() {\n opacity = 0;\n isplaceholder = true;\n el.text(placeholder)\n .on('mouseover.opacity', function() {\n d3.select(this).transition()\n .duration(interactConstants.SHOW_PLACEHOLDER).style('opacity', 1);\n })\n .on('mouseout.opacity', function() {\n d3.select(this).transition()\n .duration(interactConstants.HIDE_PLACEHOLDER).style('opacity', 0);\n });\n }\n\n if(editable) {\n if(!txt) setPlaceholder();\n else el.on('.opacity', null);\n\n el.call(svgTextUtils.makeEditable, {gd: gd})\n .on('edit', function(text) {\n if(traceIndex !== undefined) {\n Registry.call('_guiRestyle', gd, prop, text, traceIndex);\n } else {\n Registry.call('_guiRelayout', gd, prop, text);\n }\n })\n .on('cancel', function() {\n this.text(this.attr('data-unformatted'))\n .call(titleLayout);\n })\n .on('input', function(d) {\n this.text(d || ' ')\n .call(svgTextUtils.positionText, attributes.x, attributes.y);\n });\n }\n el.classed('js-placeholder', isplaceholder);\n\n return group;\n}\n\nmodule.exports = {\n draw: draw\n};\n","/**\n * inspired by is-number \n * but significantly simplified and sped up by ignoring number and string constructors\n * ie these return false:\n * new Number(1)\n * new String('1')\n */\n\n'use strict';\n\nvar allBlankCharCodes = require('is-string-blank');\n\nmodule.exports = function(n) {\n var type = typeof n;\n if(type === 'string') {\n var original = n;\n n = +n;\n // whitespace strings cast to zero - filter them out\n if(n===0 && allBlankCharCodes(original)) return false;\n }\n else if(type !== 'number') return false;\n\n return n - n < 1;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar mod = require('./mod').mod;\n\n/*\n * look for intersection of two line segments\n * (1->2 and 3->4) - returns array [x,y] if they do, null if not\n */\nexports.segmentsIntersect = segmentsIntersect;\nfunction segmentsIntersect(x1, y1, x2, y2, x3, y3, x4, y4) {\n var a = x2 - x1;\n var b = x3 - x1;\n var c = x4 - x3;\n var d = y2 - y1;\n var e = y3 - y1;\n var f = y4 - y3;\n var det = a * f - c * d;\n // parallel lines? intersection is undefined\n // ignore the case where they are colinear\n if(det === 0) return null;\n var t = (b * f - c * e) / det;\n var u = (b * d - a * e) / det;\n // segments do not intersect?\n if(u < 0 || u > 1 || t < 0 || t > 1) return null;\n\n return {x: x1 + a * t, y: y1 + d * t};\n}\n\n/*\n * find the minimum distance between two line segments (1->2 and 3->4)\n */\nexports.segmentDistance = function segmentDistance(x1, y1, x2, y2, x3, y3, x4, y4) {\n if(segmentsIntersect(x1, y1, x2, y2, x3, y3, x4, y4)) return 0;\n\n // the two segments and their lengths squared\n var x12 = x2 - x1;\n var y12 = y2 - y1;\n var x34 = x4 - x3;\n var y34 = y4 - y3;\n var ll12 = x12 * x12 + y12 * y12;\n var ll34 = x34 * x34 + y34 * y34;\n\n // calculate distance squared, then take the sqrt at the very end\n var dist2 = Math.min(\n perpDistance2(x12, y12, ll12, x3 - x1, y3 - y1),\n perpDistance2(x12, y12, ll12, x4 - x1, y4 - y1),\n perpDistance2(x34, y34, ll34, x1 - x3, y1 - y3),\n perpDistance2(x34, y34, ll34, x2 - x3, y2 - y3)\n );\n\n return Math.sqrt(dist2);\n};\n\n/*\n * distance squared from segment ab to point c\n * [xab, yab] is the vector b-a\n * [xac, yac] is the vector c-a\n * llab is the length squared of (b-a), just to simplify calculation\n */\nfunction perpDistance2(xab, yab, llab, xac, yac) {\n var fcAB = (xac * xab + yac * yab);\n if(fcAB < 0) {\n // point c is closer to point a\n return xac * xac + yac * yac;\n } else if(fcAB > llab) {\n // point c is closer to point b\n var xbc = xac - xab;\n var ybc = yac - yab;\n return xbc * xbc + ybc * ybc;\n } else {\n // perpendicular distance is the shortest\n var crossProduct = xac * yab - yac * xab;\n return crossProduct * crossProduct / llab;\n }\n}\n\n// a very short-term cache for getTextLocation, just because\n// we're often looping over the same locations multiple times\n// invalidated as soon as we look at a different path\nvar locationCache, workingPath, workingTextWidth;\n\n// turn a path and position along it into x, y, and angle for the given text\nexports.getTextLocation = function getTextLocation(path, totalPathLen, positionOnPath, textWidth) {\n if(path !== workingPath || textWidth !== workingTextWidth) {\n locationCache = {};\n workingPath = path;\n workingTextWidth = textWidth;\n }\n if(locationCache[positionOnPath]) {\n return locationCache[positionOnPath];\n }\n\n // for the angle, use points on the path separated by the text width\n // even though due to curvature, the text will cover a bit more than that\n var p0 = path.getPointAtLength(mod(positionOnPath - textWidth / 2, totalPathLen));\n var p1 = path.getPointAtLength(mod(positionOnPath + textWidth / 2, totalPathLen));\n // note: atan handles 1/0 nicely\n var theta = Math.atan((p1.y - p0.y) / (p1.x - p0.x));\n // center the text at 2/3 of the center position plus 1/3 the p0/p1 midpoint\n // that's the average position of this segment, assuming it's roughly quadratic\n var pCenter = path.getPointAtLength(mod(positionOnPath, totalPathLen));\n var x = (pCenter.x * 4 + p0.x + p1.x) / 6;\n var y = (pCenter.y * 4 + p0.y + p1.y) / 6;\n\n var out = {x: x, y: y, theta: theta};\n locationCache[positionOnPath] = out;\n return out;\n};\n\nexports.clearLocationCache = function() {\n workingPath = null;\n};\n\n/*\n * Find the segment of `path` that's within the visible area\n * given by `bounds` {left, right, top, bottom}, to within a\n * precision of `buffer` px\n *\n * returns: undefined if nothing is visible, else object:\n * {\n * min: position where the path first enters bounds, or 0 if it\n * starts within bounds\n * max: position where the path last exits bounds, or the path length\n * if it finishes within bounds\n * len: max - min, ie the length of visible path\n * total: the total path length - just included so the caller doesn't\n * need to call path.getTotalLength() again\n * isClosed: true iff the start and end points of the path are both visible\n * and are at the same point\n * }\n *\n * Works by starting from either end and repeatedly finding the distance from\n * that point to the plot area, and if it's outside the plot, moving along the\n * path by that distance (because the plot must be at least that far away on\n * the path). Note that if a path enters, exits, and re-enters the plot, we\n * will not capture this behavior.\n */\nexports.getVisibleSegment = function getVisibleSegment(path, bounds, buffer) {\n var left = bounds.left;\n var right = bounds.right;\n var top = bounds.top;\n var bottom = bounds.bottom;\n\n var pMin = 0;\n var pTotal = path.getTotalLength();\n var pMax = pTotal;\n\n var pt0, ptTotal;\n\n function getDistToPlot(len) {\n var pt = path.getPointAtLength(len);\n\n // hold on to the start and end points for `closed`\n if(len === 0) pt0 = pt;\n else if(len === pTotal) ptTotal = pt;\n\n var dx = (pt.x < left) ? left - pt.x : (pt.x > right ? pt.x - right : 0);\n var dy = (pt.y < top) ? top - pt.y : (pt.y > bottom ? pt.y - bottom : 0);\n return Math.sqrt(dx * dx + dy * dy);\n }\n\n var distToPlot = getDistToPlot(pMin);\n while(distToPlot) {\n pMin += distToPlot + buffer;\n if(pMin > pMax) return;\n distToPlot = getDistToPlot(pMin);\n }\n\n distToPlot = getDistToPlot(pMax);\n while(distToPlot) {\n pMax -= distToPlot + buffer;\n if(pMin > pMax) return;\n distToPlot = getDistToPlot(pMax);\n }\n\n return {\n min: pMin,\n max: pMax,\n len: pMax - pMin,\n total: pTotal,\n isClosed: pMin === 0 && pMax === pTotal &&\n Math.abs(pt0.x - ptTotal.x) < 0.1 &&\n Math.abs(pt0.y - ptTotal.y) < 0.1\n };\n};\n\n/**\n * Find point on SVG path corresponding to a given constraint coordinate\n *\n * @param {SVGPathElement} path\n * @param {Number} val : constraint coordinate value\n * @param {String} coord : 'x' or 'y' the constraint coordinate\n * @param {Object} opts :\n * - {Number} pathLength : supply total path length before hand\n * - {Number} tolerance\n * - {Number} iterationLimit\n * @return {SVGPoint}\n */\nexports.findPointOnPath = function findPointOnPath(path, val, coord, opts) {\n opts = opts || {};\n\n var pathLength = opts.pathLength || path.getTotalLength();\n var tolerance = opts.tolerance || 1e-3;\n var iterationLimit = opts.iterationLimit || 30;\n\n // if path starts at a val greater than the path tail (like on vertical violins),\n // we must flip the sign of the computed diff.\n var mul = path.getPointAtLength(0)[coord] > path.getPointAtLength(pathLength)[coord] ? -1 : 1;\n\n var i = 0;\n var b0 = 0;\n var b1 = pathLength;\n var mid;\n var pt;\n var diff;\n\n while(i < iterationLimit) {\n mid = (b0 + b1) / 2;\n pt = path.getPointAtLength(mid);\n diff = pt[coord] - val;\n\n if(Math.abs(diff) < tolerance) {\n return pt;\n } else {\n if(mul * diff > 0) {\n b1 = mid;\n } else {\n b0 = mid;\n }\n i++;\n }\n }\n return pt;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\n\nvar handleXYZDefaults = require('../heatmap/xyz_defaults');\nvar handleConstraintDefaults = require('./constraint_defaults');\nvar handleContoursDefaults = require('./contours_defaults');\nvar handleStyleDefaults = require('./style_defaults');\nvar attributes = require('./attributes');\n\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n function coerce2(attr) {\n return Lib.coerce2(traceIn, traceOut, attributes, attr);\n }\n\n var len = handleXYZDefaults(traceIn, traceOut, coerce, layout);\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n coerce('hoverongaps');\n\n var isConstraint = (coerce('contours.type') === 'constraint');\n coerce('connectgaps', Lib.isArray1D(traceOut.z));\n\n if(isConstraint) {\n handleConstraintDefaults(traceIn, traceOut, coerce, layout, defaultColor);\n } else {\n handleContoursDefaults(traceIn, traceOut, coerce, coerce2);\n handleStyleDefaults(traceIn, traceOut, coerce, layout);\n }\n};\n","\"use strict\"\n\nvar convexHull1d = require('./lib/ch1d')\nvar convexHull2d = require('./lib/ch2d')\nvar convexHullnd = require('./lib/chnd')\n\nmodule.exports = convexHull\n\nfunction convexHull(points) {\n var n = points.length\n if(n === 0) {\n return []\n } else if(n === 1) {\n return [[0]]\n }\n var d = points[0].length\n if(d === 0) {\n return []\n } else if(d === 1) {\n return convexHull1d(points)\n } else if(d === 2) {\n return convexHull2d(points)\n }\n return convexHullnd(points, d)\n}","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar d3 = require('d3');\nvar isNumeric = require('fast-isnumeric');\n\nvar Lib = require('../../lib');\nvar cleanNumber = Lib.cleanNumber;\nvar ms2DateTime = Lib.ms2DateTime;\nvar dateTime2ms = Lib.dateTime2ms;\nvar ensureNumber = Lib.ensureNumber;\nvar isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n\nvar numConstants = require('../../constants/numerical');\nvar FP_SAFE = numConstants.FP_SAFE;\nvar BADNUM = numConstants.BADNUM;\nvar LOG_CLIP = numConstants.LOG_CLIP;\n\nvar constants = require('./constants');\nvar axisIds = require('./axis_ids');\n\nfunction fromLog(v) {\n return Math.pow(10, v);\n}\n\nfunction isValidCategory(v) {\n return v !== null && v !== undefined;\n}\n\n/**\n * Define the conversion functions for an axis data is used in 5 ways:\n *\n * d: data, in whatever form it's provided\n * c: calcdata: turned into numbers, but not linearized\n * l: linearized - same as c except for log axes (and other nonlinear\n * mappings later?) this is used when we need to know if it's\n * *possible* to show some data on this axis, without caring about\n * the current range\n * p: pixel value - mapped to the screen with current size and zoom\n * r: ranges, tick0, and annotation positions match one of the above\n * but are handled differently for different types:\n * - linear and date: data format (d)\n * - category: calcdata format (c), and will stay that way because\n * the data format has no continuous mapping\n * - log: linearized (l) format\n * TODO: in v2.0 we plan to change it to data format. At that point\n * shapes will work the same way as ranges, tick0, and annotations\n * so they can use this conversion too.\n *\n * Creates/updates these conversion functions, and a few more utilities\n * like cleanRange, and makeCalcdata\n *\n * also clears the autotick constraints ._minDtick, ._forceTick0\n */\nmodule.exports = function setConvert(ax, fullLayout) {\n fullLayout = fullLayout || {};\n\n var axId = (ax._id || 'x');\n var axLetter = axId.charAt(0);\n\n function toLog(v, clip) {\n if(v > 0) return Math.log(v) / Math.LN10;\n\n else if(v <= 0 && clip && ax.range && ax.range.length === 2) {\n // clip NaN (ie past negative infinity) to LOG_CLIP axis\n // length past the negative edge\n var r0 = ax.range[0];\n var r1 = ax.range[1];\n return 0.5 * (r0 + r1 - 2 * LOG_CLIP * Math.abs(r0 - r1));\n } else return BADNUM;\n }\n\n /*\n * wrapped dateTime2ms that:\n * - accepts ms numbers for backward compatibility\n * - inserts a dummy arg so calendar is the 3rd arg (see notes below).\n * - defaults to ax.calendar\n */\n function dt2ms(v, _, calendar) {\n // NOTE: Changed this behavior: previously we took any numeric value\n // to be a ms, even if it was a string that could be a bare year.\n // Now we convert it as a date if at all possible, and only try\n // as (local) ms if that fails.\n var ms = dateTime2ms(v, calendar || ax.calendar);\n if(ms === BADNUM) {\n if(isNumeric(v)) {\n v = +v;\n // keep track of tenths of ms, that `new Date` will drop\n // same logic as in Lib.ms2DateTime\n var msecTenths = Math.floor(Lib.mod(v + 0.05, 1) * 10);\n var msRounded = Math.round(v - msecTenths / 10);\n ms = dateTime2ms(new Date(msRounded)) + msecTenths / 10;\n } else return BADNUM;\n }\n return ms;\n }\n\n // wrapped ms2DateTime to insert default ax.calendar\n function ms2dt(v, r, calendar) {\n return ms2DateTime(v, r, calendar || ax.calendar);\n }\n\n function getCategoryName(v) {\n return ax._categories[Math.round(v)];\n }\n\n /*\n * setCategoryIndex: return the index of category v,\n * inserting it in the list if it's not already there\n *\n * this will enter the categories in the order it\n * encounters them, ie all the categories from the\n * first data set, then all the ones from the second\n * that aren't in the first etc.\n *\n * it is assumed that this function is being invoked in the\n * already sorted category order; otherwise there would be\n * a disconnect between the array and the index returned\n */\n function setCategoryIndex(v) {\n if(isValidCategory(v)) {\n if(ax._categoriesMap === undefined) {\n ax._categoriesMap = {};\n }\n\n if(ax._categoriesMap[v] !== undefined) {\n return ax._categoriesMap[v];\n } else {\n ax._categories.push(typeof v === 'number' ? String(v) : v);\n\n var curLength = ax._categories.length - 1;\n ax._categoriesMap[v] = curLength;\n\n return curLength;\n }\n }\n return BADNUM;\n }\n\n function setMultiCategoryIndex(arrayIn, len) {\n var arrayOut = new Array(len);\n\n for(var i = 0; i < len; i++) {\n var v0 = (arrayIn[0] || [])[i];\n var v1 = (arrayIn[1] || [])[i];\n arrayOut[i] = getCategoryIndex([v0, v1]);\n }\n\n return arrayOut;\n }\n\n function getCategoryIndex(v) {\n if(ax._categoriesMap) {\n return ax._categoriesMap[v];\n }\n }\n\n function getCategoryPosition(v) {\n // d2l/d2c variant that that won't add categories but will also\n // allow numbers to be mapped to the linearized axis positions\n var index = getCategoryIndex(v);\n if(index !== undefined) return index;\n if(isNumeric(v)) return +v;\n }\n\n function l2p(v) {\n if(!isNumeric(v)) return BADNUM;\n\n // include 2 fractional digits on pixel, for PDF zooming etc\n return d3.round(ax._b + ax._m * v, 2);\n }\n\n function p2l(px) { return (px - ax._b) / ax._m; }\n\n // conversions among c/l/p are fairly simple - do them together for all axis types\n ax.c2l = (ax.type === 'log') ? toLog : ensureNumber;\n ax.l2c = (ax.type === 'log') ? fromLog : ensureNumber;\n\n ax.l2p = l2p;\n ax.p2l = p2l;\n\n ax.c2p = (ax.type === 'log') ? function(v, clip) { return l2p(toLog(v, clip)); } : l2p;\n ax.p2c = (ax.type === 'log') ? function(px) { return fromLog(p2l(px)); } : p2l;\n\n /*\n * now type-specific conversions for **ALL** other combinations\n * they're all written out, instead of being combinations of each other, for\n * both clarity and speed.\n */\n if(['linear', '-'].indexOf(ax.type) !== -1) {\n // all are data vals, but d and r need cleaning\n ax.d2r = ax.r2d = ax.d2c = ax.r2c = ax.d2l = ax.r2l = cleanNumber;\n ax.c2d = ax.c2r = ax.l2d = ax.l2r = ensureNumber;\n\n ax.d2p = ax.r2p = function(v) { return ax.l2p(cleanNumber(v)); };\n ax.p2d = ax.p2r = p2l;\n\n ax.cleanPos = ensureNumber;\n } else if(ax.type === 'log') {\n // d and c are data vals, r and l are logged (but d and r need cleaning)\n ax.d2r = ax.d2l = function(v, clip) { return toLog(cleanNumber(v), clip); };\n ax.r2d = ax.r2c = function(v) { return fromLog(cleanNumber(v)); };\n\n ax.d2c = ax.r2l = cleanNumber;\n ax.c2d = ax.l2r = ensureNumber;\n\n ax.c2r = toLog;\n ax.l2d = fromLog;\n\n ax.d2p = function(v, clip) { return ax.l2p(ax.d2r(v, clip)); };\n ax.p2d = function(px) { return fromLog(p2l(px)); };\n\n ax.r2p = function(v) { return ax.l2p(cleanNumber(v)); };\n ax.p2r = p2l;\n\n ax.cleanPos = ensureNumber;\n } else if(ax.type === 'date') {\n // r and d are date strings, l and c are ms\n\n /*\n * Any of these functions with r and d on either side, calendar is the\n * **3rd** argument. log has reserved the second argument.\n *\n * Unless you need the special behavior of the second arg (ms2DateTime\n * uses this to limit precision, toLog uses true to clip negatives\n * to offscreen low rather than undefined), it's safe to pass 0.\n */\n ax.d2r = ax.r2d = Lib.identity;\n\n ax.d2c = ax.r2c = ax.d2l = ax.r2l = dt2ms;\n ax.c2d = ax.c2r = ax.l2d = ax.l2r = ms2dt;\n\n ax.d2p = ax.r2p = function(v, _, calendar) { return ax.l2p(dt2ms(v, 0, calendar)); };\n ax.p2d = ax.p2r = function(px, r, calendar) { return ms2dt(p2l(px), r, calendar); };\n\n ax.cleanPos = function(v) { return Lib.cleanDate(v, BADNUM, ax.calendar); };\n } else if(ax.type === 'category') {\n // d is categories (string)\n // c and l are indices (numbers)\n // r is categories or numbers\n\n ax.d2c = ax.d2l = setCategoryIndex;\n ax.r2d = ax.c2d = ax.l2d = getCategoryName;\n\n ax.d2r = ax.d2l_noadd = getCategoryPosition;\n\n ax.r2c = function(v) {\n var index = getCategoryPosition(v);\n return index !== undefined ? index : ax.fraction2r(0.5);\n };\n\n ax.l2r = ax.c2r = ensureNumber;\n ax.r2l = getCategoryPosition;\n\n ax.d2p = function(v) { return ax.l2p(ax.r2c(v)); };\n ax.p2d = function(px) { return getCategoryName(p2l(px)); };\n ax.r2p = ax.d2p;\n ax.p2r = p2l;\n\n ax.cleanPos = function(v) {\n if(typeof v === 'string' && v !== '') return v;\n return ensureNumber(v);\n };\n } else if(ax.type === 'multicategory') {\n // N.B. multicategory axes don't define d2c and d2l,\n // as 'data-to-calcdata' conversion needs to take into\n // account all data array items as in ax.makeCalcdata.\n\n ax.r2d = ax.c2d = ax.l2d = getCategoryName;\n ax.d2r = ax.d2l_noadd = getCategoryPosition;\n\n ax.r2c = function(v) {\n var index = getCategoryPosition(v);\n return index !== undefined ? index : ax.fraction2r(0.5);\n };\n\n ax.r2c_just_indices = getCategoryIndex;\n\n ax.l2r = ax.c2r = ensureNumber;\n ax.r2l = getCategoryPosition;\n\n ax.d2p = function(v) { return ax.l2p(ax.r2c(v)); };\n ax.p2d = function(px) { return getCategoryName(p2l(px)); };\n ax.r2p = ax.d2p;\n ax.p2r = p2l;\n\n ax.cleanPos = function(v) {\n if(Array.isArray(v) || (typeof v === 'string' && v !== '')) return v;\n return ensureNumber(v);\n };\n\n ax.setupMultiCategory = function(fullData) {\n var traceIndices = ax._traceIndices;\n var i, j;\n\n var matchGroups = fullLayout._axisMatchGroups;\n if(matchGroups && matchGroups.length && ax._categories.length === 0) {\n for(i = 0; i < matchGroups.length; i++) {\n var group = matchGroups[i];\n if(group[axId]) {\n for(var axId2 in group) {\n if(axId2 !== axId) {\n var ax2 = fullLayout[axisIds.id2name(axId2)];\n traceIndices = traceIndices.concat(ax2._traceIndices);\n }\n }\n }\n }\n }\n\n // [ [cnt, {$cat: index}], for 1,2 ]\n var seen = [[0, {}], [0, {}]];\n // [ [arrayIn[0][i], arrayIn[1][i]], for i .. N ]\n var list = [];\n\n for(i = 0; i < traceIndices.length; i++) {\n var trace = fullData[traceIndices[i]];\n\n if(axLetter in trace) {\n var arrayIn = trace[axLetter];\n var len = trace._length || Lib.minRowLength(arrayIn);\n\n if(isArrayOrTypedArray(arrayIn[0]) && isArrayOrTypedArray(arrayIn[1])) {\n for(j = 0; j < len; j++) {\n var v0 = arrayIn[0][j];\n var v1 = arrayIn[1][j];\n\n if(isValidCategory(v0) && isValidCategory(v1)) {\n list.push([v0, v1]);\n\n if(!(v0 in seen[0][1])) {\n seen[0][1][v0] = seen[0][0]++;\n }\n if(!(v1 in seen[1][1])) {\n seen[1][1][v1] = seen[1][0]++;\n }\n }\n }\n }\n }\n }\n\n list.sort(function(a, b) {\n var ind0 = seen[0][1];\n var d = ind0[a[0]] - ind0[b[0]];\n if(d) return d;\n\n var ind1 = seen[1][1];\n return ind1[a[1]] - ind1[b[1]];\n });\n\n for(i = 0; i < list.length; i++) {\n setCategoryIndex(list[i]);\n }\n };\n }\n\n // find the range value at the specified (linear) fraction of the axis\n ax.fraction2r = function(v) {\n var rl0 = ax.r2l(ax.range[0]);\n var rl1 = ax.r2l(ax.range[1]);\n return ax.l2r(rl0 + v * (rl1 - rl0));\n };\n\n // find the fraction of the range at the specified range value\n ax.r2fraction = function(v) {\n var rl0 = ax.r2l(ax.range[0]);\n var rl1 = ax.r2l(ax.range[1]);\n return (ax.r2l(v) - rl0) / (rl1 - rl0);\n };\n\n /*\n * cleanRange: make sure range is a couplet of valid & distinct values\n * keep numbers away from the limits of floating point numbers,\n * and dates away from the ends of our date system (+/- 9999 years)\n *\n * optional param rangeAttr: operate on a different attribute, like\n * ax._r, rather than ax.range\n */\n ax.cleanRange = function(rangeAttr, opts) {\n if(!opts) opts = {};\n if(!rangeAttr) rangeAttr = 'range';\n\n var range = Lib.nestedProperty(ax, rangeAttr).get();\n var i, dflt;\n\n if(ax.type === 'date') dflt = Lib.dfltRange(ax.calendar);\n else if(axLetter === 'y') dflt = constants.DFLTRANGEY;\n else dflt = opts.dfltRange || constants.DFLTRANGEX;\n\n // make sure we don't later mutate the defaults\n dflt = dflt.slice();\n\n if(ax.rangemode === 'tozero' || ax.rangemode === 'nonnegative') {\n dflt[0] = 0;\n }\n\n if(!range || range.length !== 2) {\n Lib.nestedProperty(ax, rangeAttr).set(dflt);\n return;\n }\n\n if(ax.type === 'date' && !ax.autorange) {\n // check if milliseconds or js date objects are provided for range\n // and convert to date strings\n range[0] = Lib.cleanDate(range[0], BADNUM, ax.calendar);\n range[1] = Lib.cleanDate(range[1], BADNUM, ax.calendar);\n }\n\n for(i = 0; i < 2; i++) {\n if(ax.type === 'date') {\n if(!Lib.isDateTime(range[i], ax.calendar)) {\n ax[rangeAttr] = dflt;\n break;\n }\n\n if(ax.r2l(range[0]) === ax.r2l(range[1])) {\n // split by +/- 1 second\n var linCenter = Lib.constrain(ax.r2l(range[0]),\n Lib.MIN_MS + 1000, Lib.MAX_MS - 1000);\n range[0] = ax.l2r(linCenter - 1000);\n range[1] = ax.l2r(linCenter + 1000);\n break;\n }\n } else {\n if(!isNumeric(range[i])) {\n if(isNumeric(range[1 - i])) {\n range[i] = range[1 - i] * (i ? 10 : 0.1);\n } else {\n ax[rangeAttr] = dflt;\n break;\n }\n }\n\n if(range[i] < -FP_SAFE) range[i] = -FP_SAFE;\n else if(range[i] > FP_SAFE) range[i] = FP_SAFE;\n\n if(range[0] === range[1]) {\n // somewhat arbitrary: split by 1 or 1ppm, whichever is bigger\n var inc = Math.max(1, Math.abs(range[0] * 1e-6));\n range[0] -= inc;\n range[1] += inc;\n }\n }\n }\n };\n\n // set scaling to pixels\n ax.setScale = function(usePrivateRange) {\n var gs = fullLayout._size;\n\n // make sure we have a domain (pull it in from the axis\n // this one is overlaying if necessary)\n if(ax.overlaying) {\n var ax2 = axisIds.getFromId({ _fullLayout: fullLayout }, ax.overlaying);\n ax.domain = ax2.domain;\n }\n\n // While transitions are occuring, occurring, we get a double-transform\n // issue if we transform the drawn layer *and* use the new axis range to\n // draw the data. This allows us to construct setConvert using the pre-\n // interaction values of the range:\n var rangeAttr = (usePrivateRange && ax._r) ? '_r' : 'range';\n var calendar = ax.calendar;\n ax.cleanRange(rangeAttr);\n\n var rl0 = ax.r2l(ax[rangeAttr][0], calendar);\n var rl1 = ax.r2l(ax[rangeAttr][1], calendar);\n\n if(axLetter === 'y') {\n ax._offset = gs.t + (1 - ax.domain[1]) * gs.h;\n ax._length = gs.h * (ax.domain[1] - ax.domain[0]);\n ax._m = ax._length / (rl0 - rl1);\n ax._b = -ax._m * rl1;\n } else {\n ax._offset = gs.l + ax.domain[0] * gs.w;\n ax._length = gs.w * (ax.domain[1] - ax.domain[0]);\n ax._m = ax._length / (rl1 - rl0);\n ax._b = -ax._m * rl0;\n }\n\n if(!isFinite(ax._m) || !isFinite(ax._b) || ax._length < 0) {\n fullLayout._replotting = false;\n throw new Error('Something went wrong with axis scaling');\n }\n };\n\n // makeCalcdata: takes an x or y array and converts it\n // to a position on the axis object \"ax\"\n // inputs:\n // trace - a data object from gd.data\n // axLetter - a string, either 'x' or 'y', for which item\n // to convert (TODO: is this now always the same as\n // the first letter of ax._id?)\n // in case the expected data isn't there, make a list of\n // integers based on the opposite data\n ax.makeCalcdata = function(trace, axLetter) {\n var arrayIn, arrayOut, i, len;\n\n var axType = ax.type;\n var cal = axType === 'date' && trace[axLetter + 'calendar'];\n\n if(axLetter in trace) {\n arrayIn = trace[axLetter];\n len = trace._length || Lib.minRowLength(arrayIn);\n\n if(Lib.isTypedArray(arrayIn) && (axType === 'linear' || axType === 'log')) {\n if(len === arrayIn.length) {\n return arrayIn;\n } else if(arrayIn.subarray) {\n return arrayIn.subarray(0, len);\n }\n }\n\n if(axType === 'multicategory') {\n return setMultiCategoryIndex(arrayIn, len);\n }\n\n arrayOut = new Array(len);\n for(i = 0; i < len; i++) {\n arrayOut[i] = ax.d2c(arrayIn[i], 0, cal);\n }\n } else {\n var v0 = ((axLetter + '0') in trace) ? ax.d2c(trace[axLetter + '0'], 0, cal) : 0;\n var dv = (trace['d' + axLetter]) ? Number(trace['d' + axLetter]) : 1;\n\n // the opposing data, for size if we have x and dx etc\n arrayIn = trace[{x: 'y', y: 'x'}[axLetter]];\n len = trace._length || arrayIn.length;\n arrayOut = new Array(len);\n\n for(i = 0; i < len; i++) {\n arrayOut[i] = v0 + i * dv;\n }\n }\n\n return arrayOut;\n };\n\n ax.isValidRange = function(range) {\n return (\n Array.isArray(range) &&\n range.length === 2 &&\n isNumeric(ax.r2l(range[0])) &&\n isNumeric(ax.r2l(range[1]))\n );\n };\n\n ax.isPtWithinRange = function(d, calendar) {\n var coord = ax.c2l(d[axLetter], null, calendar);\n var r0 = ax.r2l(ax.range[0]);\n var r1 = ax.r2l(ax.range[1]);\n\n if(r0 < r1) {\n return r0 <= coord && coord <= r1;\n } else {\n // Reversed axis case.\n return r1 <= coord && coord <= r0;\n }\n };\n\n // should skip if not category nor multicategory\n ax.clearCalc = function() {\n var emptyCategories = function() {\n ax._categories = [];\n ax._categoriesMap = {};\n };\n\n var matchGroups = fullLayout._axisMatchGroups;\n\n if(matchGroups && matchGroups.length) {\n var found = false;\n\n for(var i = 0; i < matchGroups.length; i++) {\n var group = matchGroups[i];\n\n if(group[axId]) {\n found = true;\n var categories = null;\n var categoriesMap = null;\n\n for(var axId2 in group) {\n var ax2 = fullLayout[axisIds.id2name(axId2)];\n if(ax2._categories) {\n categories = ax2._categories;\n categoriesMap = ax2._categoriesMap;\n break;\n }\n }\n\n if(categories && categoriesMap) {\n ax._categories = categories;\n ax._categoriesMap = categoriesMap;\n } else {\n emptyCategories();\n }\n break;\n }\n }\n if(!found) emptyCategories();\n } else {\n emptyCategories();\n }\n\n if(ax._initialCategories) {\n for(var j = 0; j < ax._initialCategories.length; j++) {\n setCategoryIndex(ax._initialCategories[j]);\n }\n }\n };\n\n // sort the axis (and all the matching ones) by _initialCategories\n // returns the indices of the traces affected by the reordering\n ax.sortByInitialCategories = function() {\n var affectedTraces = [];\n var emptyCategories = function() {\n ax._categories = [];\n ax._categoriesMap = {};\n };\n\n emptyCategories();\n\n if(ax._initialCategories) {\n for(var j = 0; j < ax._initialCategories.length; j++) {\n setCategoryIndex(ax._initialCategories[j]);\n }\n }\n\n affectedTraces = affectedTraces.concat(ax._traceIndices);\n\n // Propagate to matching axes\n var group = ax._matchGroup;\n for(var axId2 in group) {\n if(axId === axId2) continue;\n var ax2 = fullLayout[axisIds.id2name(axId2)];\n ax2._categories = ax._categories;\n ax2._categoriesMap = ax._categoriesMap;\n affectedTraces = affectedTraces.concat(ax2._traceIndices);\n }\n return affectedTraces;\n };\n\n // Propagate localization into the axis so that\n // methods in Axes can use it w/o having to pass fullLayout\n // Default (non-d3) number formatting uses separators directly\n // dates and d3-formatted numbers use the d3 locale\n // Fall back on default format for dummy axes that don't care about formatting\n var locale = fullLayout._d3locale;\n if(ax.type === 'date') {\n ax._dateFormat = locale ? locale.timeFormat.utc : d3.time.format.utc;\n ax._extraFormat = fullLayout._extraFormat;\n }\n // occasionally we need _numFormat to pass through\n // even though it won't be needed by this axis\n ax._separators = fullLayout.separators;\n ax._numFormat = locale ? locale.numberFormat : d3.format;\n\n // and for bar charts and box plots: reset forced minimum tick spacing\n delete ax._minDtick;\n delete ax._forceTick0;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nmodule.exports = {\n // padding in pixels around text\n TEXTPAD: 3,\n // 'value' and 'label' are not really necessary for bar traces,\n // but they were made available to `texttemplate` (maybe by accident)\n // via tokens `%{value}` and `%{label}` starting in 1.50.0,\n // so let's include them in the event data also.\n eventDataKeys: ['value', 'label']\n};\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export var slice = Array.prototype.slice;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import {path} from \"d3-path\";\nimport {slice} from \"../array.js\";\nimport constant from \"../constant.js\";\nimport {x as pointX, y as pointY} from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\n\nexport function linkVertical() {\n return link(curveVertical);\n}\n\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","\"use strict\";\n\nmodule.exports = function (fn) {\n\tif (typeof fn !== \"function\") throw new TypeError(fn + \" is not a function\");\n\treturn fn;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar d3 = require('d3');\n\nvar Fx = require('../../components/fx');\nvar dragElement = require('../../components/dragelement');\nvar setCursor = require('../../lib/setcursor');\n\nvar makeDragBox = require('./dragbox').makeDragBox;\nvar DRAGGERSIZE = require('./constants').DRAGGERSIZE;\n\nexports.initInteractions = function initInteractions(gd) {\n var fullLayout = gd._fullLayout;\n\n if(gd._context.staticPlot) {\n // this sweeps up more than just cartesian drag elements...\n d3.select(gd).selectAll('.drag').remove();\n return;\n }\n\n if(!fullLayout._has('cartesian') && !fullLayout._has('splom')) return;\n\n var subplots = Object.keys(fullLayout._plots || {}).sort(function(a, b) {\n // sort overlays last, then by x axis number, then y axis number\n if((fullLayout._plots[a].mainplot && true) ===\n (fullLayout._plots[b].mainplot && true)) {\n var aParts = a.split('y');\n var bParts = b.split('y');\n return (aParts[0] === bParts[0]) ?\n (Number(aParts[1] || 1) - Number(bParts[1] || 1)) :\n (Number(aParts[0] || 1) - Number(bParts[0] || 1));\n }\n return fullLayout._plots[a].mainplot ? 1 : -1;\n });\n\n subplots.forEach(function(subplot) {\n var plotinfo = fullLayout._plots[subplot];\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n // main and corner draggers need not be repeated for\n // overlaid subplots - these draggers drag them all\n if(!plotinfo.mainplot) {\n // main dragger goes over the grids and data, so we use its\n // mousemove events for all data hover effects\n var maindrag = makeDragBox(gd, plotinfo, xa._offset, ya._offset,\n xa._length, ya._length, 'ns', 'ew');\n\n maindrag.onmousemove = function(evt) {\n // This is on `gd._fullLayout`, *not* fullLayout because the reference\n // changes by the time this is called again.\n gd._fullLayout._rehover = function() {\n if((gd._fullLayout._hoversubplot === subplot) && gd._fullLayout._plots[subplot]) {\n Fx.hover(gd, evt, subplot);\n }\n };\n\n Fx.hover(gd, evt, subplot);\n\n // Note that we have *not* used the cached fullLayout variable here\n // since that may be outdated when this is called as a callback later on\n gd._fullLayout._lasthover = maindrag;\n gd._fullLayout._hoversubplot = subplot;\n };\n\n /*\n * IMPORTANT:\n * We must check for the presence of the drag cover here.\n * If we don't, a 'mouseout' event is triggered on the\n * maindrag before each 'click' event, which has the effect\n * of clearing the hoverdata; thus, cancelling the click event.\n */\n maindrag.onmouseout = function(evt) {\n if(gd._dragging) return;\n\n // When the mouse leaves this maindrag, unset the hovered subplot.\n // This may cause problems if it leaves the subplot directly *onto*\n // another subplot, but that's a tiny corner case at the moment.\n gd._fullLayout._hoversubplot = null;\n\n dragElement.unhover(gd, evt);\n };\n\n // corner draggers\n if(gd._context.showAxisDragHandles) {\n makeDragBox(gd, plotinfo, xa._offset - DRAGGERSIZE, ya._offset - DRAGGERSIZE,\n DRAGGERSIZE, DRAGGERSIZE, 'n', 'w');\n makeDragBox(gd, plotinfo, xa._offset + xa._length, ya._offset - DRAGGERSIZE,\n DRAGGERSIZE, DRAGGERSIZE, 'n', 'e');\n makeDragBox(gd, plotinfo, xa._offset - DRAGGERSIZE, ya._offset + ya._length,\n DRAGGERSIZE, DRAGGERSIZE, 's', 'w');\n makeDragBox(gd, plotinfo, xa._offset + xa._length, ya._offset + ya._length,\n DRAGGERSIZE, DRAGGERSIZE, 's', 'e');\n }\n }\n if(gd._context.showAxisDragHandles) {\n // x axis draggers - if you have overlaid plots,\n // these drag each axis separately\n if(subplot === xa._mainSubplot) {\n // the y position of the main x axis line\n var y0 = xa._mainLinePosition;\n if(xa.side === 'top') y0 -= DRAGGERSIZE;\n makeDragBox(gd, plotinfo, xa._offset + xa._length * 0.1, y0,\n xa._length * 0.8, DRAGGERSIZE, '', 'ew');\n makeDragBox(gd, plotinfo, xa._offset, y0,\n xa._length * 0.1, DRAGGERSIZE, '', 'w');\n makeDragBox(gd, plotinfo, xa._offset + xa._length * 0.9, y0,\n xa._length * 0.1, DRAGGERSIZE, '', 'e');\n }\n // y axis draggers\n if(subplot === ya._mainSubplot) {\n // the x position of the main y axis line\n var x0 = ya._mainLinePosition;\n if(ya.side !== 'right') x0 -= DRAGGERSIZE;\n makeDragBox(gd, plotinfo, x0, ya._offset + ya._length * 0.1,\n DRAGGERSIZE, ya._length * 0.8, 'ns', '');\n makeDragBox(gd, plotinfo, x0, ya._offset + ya._length * 0.9,\n DRAGGERSIZE, ya._length * 0.1, 's', '');\n makeDragBox(gd, plotinfo, x0, ya._offset,\n DRAGGERSIZE, ya._length * 0.1, 'n', '');\n }\n }\n });\n\n // In case you mousemove over some hovertext, send it to Fx.hover too\n // we do this so that we can put the hover text in front of everything,\n // but still be able to interact with everything as if it isn't there\n var hoverLayer = fullLayout._hoverlayer.node();\n\n hoverLayer.onmousemove = function(evt) {\n evt.target = gd._fullLayout._lasthover;\n Fx.hover(gd, evt, fullLayout._hoversubplot);\n };\n\n hoverLayer.onclick = function(evt) {\n evt.target = gd._fullLayout._lasthover;\n Fx.click(gd, evt);\n };\n\n // also delegate mousedowns... TODO: does this actually work?\n hoverLayer.onmousedown = function(evt) {\n gd._fullLayout._lasthover.onmousedown(evt);\n };\n\n exports.updateFx(gd);\n};\n\n// Minimal set of update needed on 'modebar' edits.\n// We only need to update the cursor style.\n//\n// Note that changing the axis configuration and/or the fixedrange attribute\n// should trigger a full initInteractions.\nexports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n var cursor = fullLayout.dragmode === 'pan' ? 'move' : 'crosshair';\n setCursor(fullLayout._draggers, cursor);\n};\n","module.exports = lerp;\n\n/**\n * Performs a linear interpolation between two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @param {Number} t interpolation amount between the two inputs\n * @returns {vec3} out\n */\nfunction lerp(out, a, b, t) {\n var ax = a[0],\n ay = a[1],\n az = a[2]\n out[0] = ax + t * (b[0] - ax)\n out[1] = ay + t * (b[1] - ay)\n out[2] = az + t * (b[2] - az)\n return out\n}","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar isNumeric = require('fast-isnumeric');\nvar Lib = require('../../lib');\nvar BADNUM = require('../../constants/numerical').BADNUM;\n\nmodule.exports = function clean2dArray(zOld, trace, xa, ya) {\n var rowlen, collen, getCollen, old2new, i, j;\n\n function cleanZvalue(v) {\n if(!isNumeric(v)) return undefined;\n return +v;\n }\n\n if(trace && trace.transpose) {\n rowlen = 0;\n for(i = 0; i < zOld.length; i++) rowlen = Math.max(rowlen, zOld[i].length);\n if(rowlen === 0) return false;\n getCollen = function(zOld) { return zOld.length; };\n old2new = function(zOld, i, j) { return (zOld[j] || [])[i]; };\n } else {\n rowlen = zOld.length;\n getCollen = function(zOld, i) { return zOld[i].length; };\n old2new = function(zOld, i, j) { return (zOld[i] || [])[j]; };\n }\n\n var padOld2new = function(zOld, i, j) {\n if(i === BADNUM || j === BADNUM) return BADNUM;\n return old2new(zOld, i, j);\n };\n\n function axisMapping(ax) {\n if(trace && trace.type !== 'carpet' && trace.type !== 'contourcarpet' &&\n ax && ax.type === 'category' && trace['_' + ax._id.charAt(0)].length) {\n var axLetter = ax._id.charAt(0);\n var axMapping = {};\n var traceCategories = trace['_' + axLetter + 'CategoryMap'] || trace[axLetter];\n for(i = 0; i < traceCategories.length; i++) {\n axMapping[traceCategories[i]] = i;\n }\n return function(i) {\n var ind = axMapping[ax._categories[i]];\n return ind + 1 ? ind : BADNUM;\n };\n } else {\n return Lib.identity;\n }\n }\n\n var xMap = axisMapping(xa);\n var yMap = axisMapping(ya);\n\n if(ya && ya.type === 'category') rowlen = ya._categories.length;\n var zNew = new Array(rowlen);\n\n for(i = 0; i < rowlen; i++) {\n if(xa && xa.type === 'category') {\n collen = xa._categories.length;\n } else {\n collen = getCollen(zOld, i);\n }\n zNew[i] = new Array(collen);\n for(j = 0; j < collen; j++) zNew[i][j] = cleanZvalue(padOld2new(zOld, yMap(i), xMap(j)));\n }\n\n return zNew;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar d3 = require('d3');\nvar loggers = require('./loggers');\n\n/**\n * Allow referencing a graph DOM element either directly\n * or by its id string\n *\n * @param {HTMLDivElement|string} gd: a graph element or its id\n *\n * @returns {HTMLDivElement} the DOM element of the graph\n */\nfunction getGraphDiv(gd) {\n var gdElement;\n\n if(typeof gd === 'string') {\n gdElement = document.getElementById(gd);\n\n if(gdElement === null) {\n throw new Error('No DOM element with id \\'' + gd + '\\' exists on the page.');\n }\n\n return gdElement;\n } else if(gd === null || gd === undefined) {\n throw new Error('DOM element provided is null or undefined');\n }\n\n // otherwise assume that gd is a DOM element\n return gd;\n}\n\nfunction isPlotDiv(el) {\n var el3 = d3.select(el);\n return el3.node() instanceof HTMLElement &&\n el3.size() &&\n el3.classed('js-plotly-plot');\n}\n\nfunction removeElement(el) {\n var elParent = el && el.parentNode;\n if(elParent) elParent.removeChild(el);\n}\n\n/**\n * for dynamically adding style rules\n * makes one stylesheet that contains all rules added\n * by all calls to this function\n */\nfunction addStyleRule(selector, styleString) {\n addRelatedStyleRule('global', selector, styleString);\n}\n\n/**\n * for dynamically adding style rules\n * to a stylesheet uniquely identified by a uid\n */\nfunction addRelatedStyleRule(uid, selector, styleString) {\n var id = 'plotly.js-style-' + uid;\n var style = document.getElementById(id);\n if(!style) {\n style = document.createElement('style');\n style.setAttribute('id', id);\n // WebKit hack :(\n style.appendChild(document.createTextNode(''));\n document.head.appendChild(style);\n }\n var styleSheet = style.sheet;\n\n if(styleSheet.insertRule) {\n styleSheet.insertRule(selector + '{' + styleString + '}', 0);\n } else if(styleSheet.addRule) {\n styleSheet.addRule(selector, styleString, 0);\n } else loggers.warn('addStyleRule failed');\n}\n\n/**\n * to remove from the page a stylesheet identified by a given uid\n */\nfunction deleteRelatedStyleRule(uid) {\n var id = 'plotly.js-style-' + uid;\n var style = document.getElementById(id);\n if(style) removeElement(style);\n}\n\nmodule.exports = {\n getGraphDiv: getGraphDiv,\n isPlotDiv: isPlotDiv,\n removeElement: removeElement,\n addStyleRule: addStyleRule,\n addRelatedStyleRule: addRelatedStyleRule,\n deleteRelatedStyleRule: deleteRelatedStyleRule\n};\n","/*\n * World Calendars\n * https://github.com/alexcjohnson/world-calendars\n *\n * Batch-converted from kbwood/calendars\n * Many thanks to Keith Wood and all of the contributors to the original project!\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/* http://keith-wood.name/calendars.html\n Thai calendar for jQuery v2.0.2.\n Written by Keith Wood (wood.keith{at}optusnet.com.au) February 2010.\n Available under the MIT (http://keith-wood.name/licence.html) license. \n Please attribute the author if you use it. */\n\nvar main = require('../main');\nvar assign = require('object-assign');\n\n\nvar gregorianCalendar = main.instance();\n\n/** Implementation of the Thai calendar.\n See http://en.wikipedia.org/wiki/Thai_calendar.\n @class ThaiCalendar\n @param [language=''] {string} The language code (default English) for localisation. */\nfunction ThaiCalendar(language) {\n this.local = this.regionalOptions[language || ''] || this.regionalOptions[''];\n}\n\nThaiCalendar.prototype = new main.baseCalendar;\n\nassign(ThaiCalendar.prototype, {\n /** The calendar name.\n @memberof ThaiCalendar */\n name: 'Thai',\n /** Julian date of start of Thai epoch: 1 January 543 BCE (Gregorian).\n @memberof ThaiCalendar */\n jdEpoch: 1523098.5,\n /** Difference in years between Thai and Gregorian calendars.\n @memberof ThaiCalendar */\n yearsOffset: 543, \n /** Days per month in a common year.\n @memberof ThaiCalendar */\n daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n /** true if has a year zero, false if not.\n @memberof ThaiCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof ThaiCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof ThaiCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof ThaiCalendar */\n minDay: 1,\n\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof ThaiCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: { // Localisations\n '': {\n name: 'Thai',\n epochs: ['BBE', 'BE'],\n monthNames: ['January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n digits: null,\n dateFormat: 'dd/mm/yyyy',\n firstDay: 0,\n isRTL: false\n }\n },\n\n /** Determine whether this date is in a leap year.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.leapYear(year);\n },\n\n /** Determine the week of the year for a date - ISO 8601.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.weekOfYear(year, date.month(), date.day());\n },\n\n /** Retrieve the number of days in a month.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] +\n (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0);\n },\n\n /** Determine whether this date is a week day.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.toJD(year, date.month(), date.day());\n },\n\n /** Create a new date from a Julian date.\n @memberof ThaiCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var date = gregorianCalendar.fromJD(jd);\n var year = this._g2tYear(date.year());\n return this.newDate(year, date.month(), date.day());\n },\n\n /** Convert Thai to Gregorian year.\n @memberof ThaiCalendar\n @private\n @param year {number} The Thai year.\n @return {number} The corresponding Gregorian year. */\n _t2gYear: function(year) {\n return year - this.yearsOffset - (year >= 1 && year <= this.yearsOffset ? 1 : 0);\n },\n\n /** Convert Gregorian to Thai year.\n @memberof ThaiCalendar\n @private\n @param year {number} The Gregorian year.\n @return {number} The corresponding Thai year. */\n _g2tYear: function(year) {\n return year + this.yearsOffset + (year >= -this.yearsOffset && year <= -1 ? 1 : 0);\n }\n});\n\n// Thai calendar implementation\nmain.calendars.thai = ThaiCalendar;\n\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar d3 = require('d3');\nvar isNumeric = require('fast-isnumeric');\n\nvar Lib = require('../../lib');\nvar Icons = require('../../fonts/ploticon');\nvar Parser = new DOMParser();\n\n/**\n * UI controller for interactive plots\n * @Class\n * @Param {object} opts\n * @Param {object} opts.buttons nested arrays of grouped buttons config objects\n * @Param {object} opts.container container div to append modeBar\n * @Param {object} opts.graphInfo primary plot object containing data and layout\n */\nfunction ModeBar(opts) {\n this.container = opts.container;\n this.element = document.createElement('div');\n\n this.update(opts.graphInfo, opts.buttons);\n\n this.container.appendChild(this.element);\n}\n\nvar proto = ModeBar.prototype;\n\n/**\n * Update modeBar (buttons and logo)\n *\n * @param {object} graphInfo primary plot object containing data and layout\n * @param {array of arrays} buttons nested arrays of grouped buttons to initialize\n *\n */\nproto.update = function(graphInfo, buttons) {\n this.graphInfo = graphInfo;\n\n var context = this.graphInfo._context;\n var fullLayout = this.graphInfo._fullLayout;\n var modeBarId = 'modebar-' + fullLayout._uid;\n\n this.element.setAttribute('id', modeBarId);\n this._uid = modeBarId;\n\n this.element.className = 'modebar';\n if(context.displayModeBar === 'hover') this.element.className += ' modebar--hover ease-bg';\n\n if(fullLayout.modebar.orientation === 'v') {\n this.element.className += ' vertical';\n buttons = buttons.reverse();\n }\n\n var style = fullLayout.modebar;\n var bgSelector = context.displayModeBar === 'hover' ? '.js-plotly-plot .plotly:hover ' : '';\n\n Lib.deleteRelatedStyleRule(modeBarId);\n Lib.addRelatedStyleRule(modeBarId, bgSelector + '#' + modeBarId + ' .modebar-group', 'background-color: ' + style.bgcolor);\n Lib.addRelatedStyleRule(modeBarId, '#' + modeBarId + ' .modebar-btn .icon path', 'fill: ' + style.color);\n Lib.addRelatedStyleRule(modeBarId, '#' + modeBarId + ' .modebar-btn:hover .icon path', 'fill: ' + style.activecolor);\n Lib.addRelatedStyleRule(modeBarId, '#' + modeBarId + ' .modebar-btn.active .icon path', 'fill: ' + style.activecolor);\n\n // if buttons or logo have changed, redraw modebar interior\n var needsNewButtons = !this.hasButtons(buttons);\n var needsNewLogo = (this.hasLogo !== context.displaylogo);\n var needsNewLocale = (this.locale !== context.locale);\n\n this.locale = context.locale;\n\n if(needsNewButtons || needsNewLogo || needsNewLocale) {\n this.removeAllButtons();\n\n this.updateButtons(buttons);\n\n if(context.watermark || context.displaylogo) {\n var logoGroup = this.getLogo();\n if(context.watermark) {\n logoGroup.className = logoGroup.className + ' watermark';\n }\n\n if(fullLayout.modebar.orientation === 'v') {\n this.element.insertBefore(logoGroup, this.element.childNodes[0]);\n } else {\n this.element.appendChild(logoGroup);\n }\n\n this.hasLogo = true;\n }\n }\n\n this.updateActiveButton();\n};\n\nproto.updateButtons = function(buttons) {\n var _this = this;\n\n this.buttons = buttons;\n this.buttonElements = [];\n this.buttonsNames = [];\n\n this.buttons.forEach(function(buttonGroup) {\n var group = _this.createGroup();\n\n buttonGroup.forEach(function(buttonConfig) {\n var buttonName = buttonConfig.name;\n if(!buttonName) {\n throw new Error('must provide button \\'name\\' in button config');\n }\n if(_this.buttonsNames.indexOf(buttonName) !== -1) {\n throw new Error('button name \\'' + buttonName + '\\' is taken');\n }\n _this.buttonsNames.push(buttonName);\n\n var button = _this.createButton(buttonConfig);\n _this.buttonElements.push(button);\n group.appendChild(button);\n });\n\n _this.element.appendChild(group);\n });\n};\n\n/**\n * Empty div for containing a group of buttons\n * @Return {HTMLelement}\n */\nproto.createGroup = function() {\n var group = document.createElement('div');\n group.className = 'modebar-group';\n return group;\n};\n\n/**\n * Create a new button div and set constant and configurable attributes\n * @Param {object} config (see ./buttons.js for more info)\n * @Return {HTMLelement}\n */\nproto.createButton = function(config) {\n var _this = this;\n var button = document.createElement('a');\n\n button.setAttribute('rel', 'tooltip');\n button.className = 'modebar-btn';\n\n var title = config.title;\n if(title === undefined) title = config.name;\n // for localization: allow title to be a callable that takes gd as arg\n else if(typeof title === 'function') title = title(this.graphInfo);\n\n if(title || title === 0) button.setAttribute('data-title', title);\n\n if(config.attr !== undefined) button.setAttribute('data-attr', config.attr);\n\n var val = config.val;\n if(val !== undefined) {\n if(typeof val === 'function') val = val(this.graphInfo);\n button.setAttribute('data-val', val);\n }\n\n var click = config.click;\n if(typeof click !== 'function') {\n throw new Error('must provide button \\'click\\' function in button config');\n } else {\n button.addEventListener('click', function(ev) {\n config.click(_this.graphInfo, ev);\n\n // only needed for 'hoverClosestGeo' which does not call relayout\n _this.updateActiveButton(ev.currentTarget);\n });\n }\n\n button.setAttribute('data-toggle', config.toggle || false);\n if(config.toggle) d3.select(button).classed('active', true);\n\n var icon = config.icon;\n if(typeof icon === 'function') {\n button.appendChild(icon());\n } else {\n button.appendChild(this.createIcon(icon || Icons.question));\n }\n button.setAttribute('data-gravity', config.gravity || 'n');\n\n return button;\n};\n\n/**\n * Add an icon to a button\n * @Param {object} thisIcon\n * @Param {number} thisIcon.width\n * @Param {string} thisIcon.path\n * @Param {string} thisIcon.color\n * @Return {HTMLelement}\n */\nproto.createIcon = function(thisIcon) {\n var iconHeight = isNumeric(thisIcon.height) ?\n Number(thisIcon.height) :\n thisIcon.ascent - thisIcon.descent;\n var svgNS = 'http://www.w3.org/2000/svg';\n var icon;\n\n if(thisIcon.path) {\n icon = document.createElementNS(svgNS, 'svg');\n icon.setAttribute('viewBox', [0, 0, thisIcon.width, iconHeight].join(' '));\n icon.setAttribute('class', 'icon');\n\n var path = document.createElementNS(svgNS, 'path');\n path.setAttribute('d', thisIcon.path);\n\n if(thisIcon.transform) {\n path.setAttribute('transform', thisIcon.transform);\n } else if(thisIcon.ascent !== undefined) {\n // Legacy icon transform calculation\n path.setAttribute('transform', 'matrix(1 0 0 -1 0 ' + thisIcon.ascent + ')');\n }\n\n icon.appendChild(path);\n }\n\n if(thisIcon.svg) {\n var svgDoc = Parser.parseFromString(thisIcon.svg, 'application/xml');\n icon = svgDoc.childNodes[0];\n }\n\n icon.setAttribute('height', '1em');\n icon.setAttribute('width', '1em');\n\n return icon;\n};\n\n/**\n * Updates active button with attribute specified in layout\n * @Param {object} graphInfo plot object containing data and layout\n * @Return {HTMLelement}\n */\nproto.updateActiveButton = function(buttonClicked) {\n var fullLayout = this.graphInfo._fullLayout;\n var dataAttrClicked = (buttonClicked !== undefined) ?\n buttonClicked.getAttribute('data-attr') :\n null;\n\n this.buttonElements.forEach(function(button) {\n var thisval = button.getAttribute('data-val') || true;\n var dataAttr = button.getAttribute('data-attr');\n var isToggleButton = (button.getAttribute('data-toggle') === 'true');\n var button3 = d3.select(button);\n\n // Use 'data-toggle' and 'buttonClicked' to toggle buttons\n // that have no one-to-one equivalent in fullLayout\n if(isToggleButton) {\n if(dataAttr === dataAttrClicked) {\n button3.classed('active', !button3.classed('active'));\n }\n } else {\n var val = (dataAttr === null) ?\n dataAttr :\n Lib.nestedProperty(fullLayout, dataAttr).get();\n\n button3.classed('active', val === thisval);\n }\n });\n};\n\n/**\n * Check if modeBar is configured as button configuration argument\n *\n * @Param {object} buttons 2d array of grouped button config objects\n * @Return {boolean}\n */\nproto.hasButtons = function(buttons) {\n var currentButtons = this.buttons;\n\n if(!currentButtons) return false;\n\n if(buttons.length !== currentButtons.length) return false;\n\n for(var i = 0; i < buttons.length; ++i) {\n if(buttons[i].length !== currentButtons[i].length) return false;\n for(var j = 0; j < buttons[i].length; j++) {\n if(buttons[i][j].name !== currentButtons[i][j].name) return false;\n }\n }\n\n return true;\n};\n\n/**\n * @return {HTMLDivElement} The logo image wrapped in a group\n */\nproto.getLogo = function() {\n var group = this.createGroup();\n var a = document.createElement('a');\n\n a.href = 'https://plot.ly/';\n a.target = '_blank';\n a.setAttribute('data-title', Lib._(this.graphInfo, 'Produced with Plotly'));\n a.className = 'modebar-btn plotlyjsicon modebar-btn--logo';\n\n a.appendChild(this.createIcon(Icons.newplotlylogo));\n\n group.appendChild(a);\n return group;\n};\n\nproto.removeAllButtons = function() {\n while(this.element.firstChild) {\n this.element.removeChild(this.element.firstChild);\n }\n\n this.hasLogo = false;\n};\n\nproto.destroy = function() {\n Lib.removeElement(this.container.querySelector('.modebar'));\n Lib.deleteRelatedStyleRule(this._uid);\n};\n\nfunction createModeBar(gd, buttons) {\n var fullLayout = gd._fullLayout;\n\n var modeBar = new ModeBar({\n graphInfo: gd,\n container: fullLayout._modebardiv.node(),\n buttons: buttons\n });\n\n if(fullLayout._privateplot) {\n d3.select(modeBar.element).append('span')\n .classed('badge-private float--left', true)\n .text('PRIVATE');\n }\n\n return modeBar;\n}\n\nmodule.exports = createModeBar;\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","/**\n * RGB space.\n *\n * @module color-space/rgb\n */\n'use strict'\n\nmodule.exports = {\n\tname: 'rgb',\n\tmin: [0,0,0],\n\tmax: [255,255,255],\n\tchannel: ['red', 'green', 'blue'],\n\talias: ['RGB']\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar subtypes = require('../scatter/subtypes');\nvar BADNUM = require('../../constants/numerical').BADNUM;\n\nmodule.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var trace = cd[0].trace;\n var i;\n\n if(!subtypes.hasMarkers(trace)) return [];\n\n if(selectionTester === false) {\n for(i = 0; i < cd.length; i++) {\n cd[i].selected = 0;\n }\n } else {\n for(i = 0; i < cd.length; i++) {\n var di = cd[i];\n var lonlat = di.lonlat;\n\n if(lonlat[0] !== BADNUM) {\n var lonlat2 = [Lib.modHalf(lonlat[0], 360), lonlat[1]];\n var xy = [xa.c2p(lonlat2), ya.c2p(lonlat2)];\n\n if(selectionTester.contains(xy, null, i, searchInfo)) {\n selection.push({\n pointNumber: i,\n lon: lonlat[0],\n lat: lonlat[1]\n });\n di.selected = 1;\n } else {\n di.selected = 0;\n }\n }\n }\n }\n\n return selection;\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar attrs = require('./attributes');\nvar oppAxisAttrs = require('./oppaxis_attributes');\nvar helpers = require('./helpers');\n\nmodule.exports = {\n moduleType: 'component',\n name: 'rangeslider',\n\n schema: {\n subplots: {\n xaxis: {\n rangeslider: Lib.extendFlat({}, attrs, {\n yaxis: oppAxisAttrs\n })\n }\n }\n },\n\n layoutAttributes: require('./attributes'),\n handleDefaults: require('./defaults'),\n calcAutorange: require('./calc_autorange'),\n draw: require('./draw'),\n isVisible: helpers.isVisible,\n makeData: helpers.makeData,\n autoMarginOpts: helpers.autoMarginOpts\n};\n","\"use strict\";\n\nvar isValue = require(\"es5-ext/object/is-value\")\n , setPrototypeOf = require(\"es5-ext/object/set-prototype-of\")\n , object = require(\"es5-ext/object/valid-object\")\n , ensureValue = require(\"es5-ext/object/valid-value\")\n , randomUniq = require(\"es5-ext/string/random-uniq\")\n , d = require(\"d\")\n , getIterator = require(\"es6-iterator/get\")\n , forOf = require(\"es6-iterator/for-of\")\n , toStringTagSymbol = require(\"es6-symbol\").toStringTag\n , isNative = require(\"./is-native-implemented\")\n\n , isArray = Array.isArray, defineProperty = Object.defineProperty\n , objHasOwnProperty = Object.prototype.hasOwnProperty, getPrototypeOf = Object.getPrototypeOf\n , WeakMapPoly;\n\nmodule.exports = WeakMapPoly = function (/* Iterable*/) {\n\tvar iterable = arguments[0], self;\n\n\tif (!(this instanceof WeakMapPoly)) throw new TypeError(\"Constructor requires 'new'\");\n\tself = isNative && setPrototypeOf && (WeakMap !== WeakMapPoly)\n\t\t? setPrototypeOf(new WeakMap(), getPrototypeOf(this)) : this;\n\n\tif (isValue(iterable)) {\n\t\tif (!isArray(iterable)) iterable = getIterator(iterable);\n\t}\n\tdefineProperty(self, \"__weakMapData__\", d(\"c\", \"$weakMap$\" + randomUniq()));\n\tif (!iterable) return self;\n\tforOf(iterable, function (val) {\n\t\tensureValue(val);\n\t\tself.set(val[0], val[1]);\n\t});\n\treturn self;\n};\n\nif (isNative) {\n\tif (setPrototypeOf) setPrototypeOf(WeakMapPoly, WeakMap);\n\tWeakMapPoly.prototype = Object.create(WeakMap.prototype, { constructor: d(WeakMapPoly) });\n}\n\nObject.defineProperties(WeakMapPoly.prototype, {\n\tdelete: d(function (key) {\n\t\tif (objHasOwnProperty.call(object(key), this.__weakMapData__)) {\n\t\t\tdelete key[this.__weakMapData__];\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}),\n\tget: d(function (key) {\n\t\tif (!objHasOwnProperty.call(object(key), this.__weakMapData__)) return undefined;\n\t\treturn key[this.__weakMapData__];\n\t}),\n\thas: d(function (key) {\n\t\treturn objHasOwnProperty.call(object(key), this.__weakMapData__);\n\t}),\n\tset: d(function (key, value) {\n\t\tdefineProperty(object(key), this.__weakMapData__, d(\"c\", value));\n\t\treturn this;\n\t}),\n\ttoString: d(function () {\n\t\treturn \"[object WeakMap]\";\n\t})\n});\ndefineProperty(WeakMapPoly.prototype, toStringTagSymbol, d(\"c\", \"WeakMap\"));\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar Color = require('../../components/color');\nvar Registry = require('../../registry');\n\nvar handleXYDefaults = require('../scatter/xy_defaults');\nvar handleStyleDefaults = require('./style_defaults');\nvar getAxisGroup = require('../../plots/cartesian/axis_ids').getAxisGroup;\nvar attributes = require('./attributes');\n\nvar coerceFont = Lib.coerceFont;\n\nfunction supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var len = handleXYDefaults(traceIn, traceOut, layout, coerce);\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n coerce('orientation', (traceOut.x && !traceOut.y) ? 'h' : 'v');\n coerce('base');\n coerce('offset');\n coerce('width');\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n\n var textposition = coerce('textposition');\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n moduleHasSelected: true,\n moduleHasUnselected: true,\n moduleHasConstrain: true,\n moduleHasCliponaxis: true,\n moduleHasTextangle: true,\n moduleHasInsideanchor: true\n });\n\n handleStyleDefaults(traceIn, traceOut, coerce, defaultColor, layout);\n\n var lineColor = (traceOut.marker.line || {}).color;\n\n // override defaultColor for error bars with defaultLine\n var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults');\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'y'});\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'x', inherit: 'y'});\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n}\n\nfunction handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce) {\n var orientation = traceOut.orientation;\n // N.B. grouping is done across all trace types that support it\n var posAxId = traceOut[{v: 'x', h: 'y'}[orientation] + 'axis'];\n var groupId = getAxisGroup(fullLayout, posAxId) + orientation;\n\n var alignmentOpts = fullLayout._alignmentOpts || {};\n var alignmentgroup = coerce('alignmentgroup');\n\n var alignmentGroups = alignmentOpts[groupId];\n if(!alignmentGroups) alignmentGroups = alignmentOpts[groupId] = {};\n\n var alignmentGroupOpts = alignmentGroups[alignmentgroup];\n\n if(alignmentGroupOpts) {\n alignmentGroupOpts.traces.push(traceOut);\n } else {\n alignmentGroupOpts = alignmentGroups[alignmentgroup] = {\n traces: [traceOut],\n alignmentIndex: Object.keys(alignmentGroups).length,\n offsetGroups: {}\n };\n }\n\n var offsetgroup = coerce('offsetgroup');\n var offsetGroups = alignmentGroupOpts.offsetGroups;\n var offsetGroupOpts = offsetGroups[offsetgroup];\n\n if(offsetgroup) {\n if(!offsetGroupOpts) {\n offsetGroupOpts = offsetGroups[offsetgroup] = {\n offsetIndex: Object.keys(offsetGroups).length\n };\n }\n\n traceOut._offsetIndex = offsetGroupOpts.offsetIndex;\n }\n}\n\nfunction crossTraceDefaults(fullData, fullLayout) {\n var traceIn, traceOut;\n\n function coerce(attr) {\n return Lib.coerce(traceOut._input, traceOut, attributes, attr);\n }\n\n if(fullLayout.barmode === 'group') {\n for(var i = 0; i < fullData.length; i++) {\n traceOut = fullData[i];\n\n if(traceOut.type === 'bar') {\n traceIn = traceOut._input;\n handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce);\n }\n }\n }\n}\n\nfunction handleText(traceIn, traceOut, layout, coerce, textposition, opts) {\n opts = opts || {};\n var moduleHasSelected = !(opts.moduleHasSelected === false);\n var moduleHasUnselected = !(opts.moduleHasUnselected === false);\n var moduleHasConstrain = !(opts.moduleHasConstrain === false);\n var moduleHasCliponaxis = !(opts.moduleHasCliponaxis === false);\n var moduleHasTextangle = !(opts.moduleHasTextangle === false);\n var moduleHasInsideanchor = !(opts.moduleHasInsideanchor === false);\n var hasPathbar = !!opts.hasPathbar;\n\n var hasBoth = Array.isArray(textposition) || textposition === 'auto';\n var hasInside = hasBoth || textposition === 'inside';\n var hasOutside = hasBoth || textposition === 'outside';\n\n if(hasInside || hasOutside) {\n var dfltFont = coerceFont(coerce, 'textfont', layout.font);\n\n // Note that coercing `insidetextfont` is always needed –\n // even if `textposition` is `outside` for each trace – since\n // an outside label can become an inside one, for example because\n // of a bar being stacked on top of it.\n var insideTextFontDefault = Lib.extendFlat({}, dfltFont);\n var isTraceTextfontColorSet = traceIn.textfont && traceIn.textfont.color;\n var isColorInheritedFromLayoutFont = !isTraceTextfontColorSet;\n if(isColorInheritedFromLayoutFont) {\n delete insideTextFontDefault.color;\n }\n coerceFont(coerce, 'insidetextfont', insideTextFontDefault);\n\n if(hasPathbar) {\n var pathbarTextFontDefault = Lib.extendFlat({}, dfltFont);\n if(isColorInheritedFromLayoutFont) {\n delete pathbarTextFontDefault.color;\n }\n coerceFont(coerce, 'pathbar.textfont', pathbarTextFontDefault);\n }\n\n if(hasOutside) coerceFont(coerce, 'outsidetextfont', dfltFont);\n\n if(moduleHasSelected) coerce('selected.textfont.color');\n if(moduleHasUnselected) coerce('unselected.textfont.color');\n if(moduleHasConstrain) coerce('constraintext');\n if(moduleHasCliponaxis) coerce('cliponaxis');\n if(moduleHasTextangle) coerce('textangle');\n\n coerce('texttemplate');\n }\n\n if(hasInside) {\n if(moduleHasInsideanchor) coerce('insidetextanchor');\n }\n}\n\nmodule.exports = {\n supplyDefaults: supplyDefaults,\n crossTraceDefaults: crossTraceDefaults,\n handleGroupingDefaults: handleGroupingDefaults,\n handleText: handleText\n};\n","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")()\n\t? require(\"ext/global-this\").Symbol\n\t: require(\"./polyfill\");\n","'use strict'\r\n\r\nvar sizes = require('css-font-size-keywords')\r\n\r\nmodule.exports = {\r\n\tisSize: function isSize(value) {\r\n\t\treturn /^[\\d\\.]/.test(value)\r\n\t\t\t|| value.indexOf('/') !== -1\r\n\t\t\t|| sizes.indexOf(value) !== -1\r\n\t}\r\n}\r\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar extendFlat = require('../../lib/extend').extendFlat;\nvar extendDeep = require('../../lib/extend').extendDeep;\nvar overrideAll = require('../../plot_api/edit_types').overrideAll;\nvar fontAttrs = require('../../plots/font_attributes');\nvar colorAttrs = require('../../components/color/attributes');\nvar domainAttrs = require('../../plots/domain').attributes;\nvar axesAttrs = require('../../plots/cartesian/layout_attributes');\nvar templatedArray = require('../../plot_api/plot_template').templatedArray;\nvar delta = require('../../constants/delta.js');\nvar FORMAT_LINK = require('../../constants/docs').FORMAT_LINK;\n\nvar textFontAttrs = fontAttrs({\n editType: 'plot',\n colorEditType: 'plot'\n});\n\nvar gaugeBarAttrs = {\n color: {\n valType: 'color',\n editType: 'plot',\n \n \n },\n line: {\n color: {\n valType: 'color',\n \n dflt: colorAttrs.defaultLine,\n editType: 'plot',\n \n },\n width: {\n valType: 'number',\n \n min: 0,\n dflt: 0,\n editType: 'plot',\n \n },\n editType: 'calc'\n },\n thickness: {\n valType: 'number',\n \n min: 0,\n max: 1,\n dflt: 1,\n editType: 'plot',\n \n },\n editType: 'calc'\n};\n\nvar rangeAttr = {\n valType: 'info_array',\n \n items: [\n {valType: 'number', editType: 'plot'},\n {valType: 'number', editType: 'plot'}\n ],\n editType: 'plot',\n \n};\n\nvar stepsAttrs = templatedArray('step', extendDeep({}, gaugeBarAttrs, {\n range: rangeAttr\n}));\n\nmodule.exports = {\n mode: {\n valType: 'flaglist',\n editType: 'calc',\n \n flags: ['number', 'delta', 'gauge'],\n dflt: 'number',\n \n },\n value: {\n valType: 'number',\n editType: 'calc',\n \n anim: true,\n \n },\n align: {\n valType: 'enumerated',\n values: ['left', 'center', 'right'],\n \n editType: 'plot',\n \n },\n // position\n domain: domainAttrs({name: 'indicator', trace: true, editType: 'calc'}),\n\n title: {\n text: {\n valType: 'string',\n \n editType: 'plot',\n \n },\n align: {\n valType: 'enumerated',\n values: ['left', 'center', 'right'],\n \n editType: 'plot',\n \n },\n font: extendFlat({}, textFontAttrs, {\n \n }),\n editType: 'plot'\n },\n number: {\n valueformat: {\n valType: 'string',\n dflt: '',\n \n editType: 'plot',\n \n },\n font: extendFlat({}, textFontAttrs, {\n \n }),\n prefix: {\n valType: 'string',\n dflt: '',\n \n editType: 'plot',\n \n },\n suffix: {\n valType: 'string',\n dflt: '',\n \n editType: 'plot',\n \n },\n editType: 'plot'\n },\n delta: {\n reference: {\n valType: 'number',\n \n editType: 'calc',\n \n },\n position: {\n valType: 'enumerated',\n values: ['top', 'bottom', 'left', 'right'],\n \n dflt: 'bottom',\n editType: 'plot',\n \n },\n relative: {\n valType: 'boolean',\n editType: 'plot',\n \n dflt: false,\n \n },\n valueformat: {\n valType: 'string',\n \n editType: 'plot',\n \n },\n increasing: {\n symbol: {\n valType: 'string',\n \n dflt: delta.INCREASING.SYMBOL,\n editType: 'plot',\n \n },\n color: {\n valType: 'color',\n \n dflt: delta.INCREASING.COLOR,\n editType: 'plot',\n \n },\n // TODO: add attribute to show sign\n editType: 'plot'\n },\n decreasing: {\n symbol: {\n valType: 'string',\n \n dflt: delta.DECREASING.SYMBOL,\n editType: 'plot',\n \n },\n color: {\n valType: 'color',\n \n dflt: delta.DECREASING.COLOR,\n editType: 'plot',\n \n },\n // TODO: add attribute to hide sign\n editType: 'plot'\n },\n font: extendFlat({}, textFontAttrs, {\n \n }),\n editType: 'calc'\n },\n gauge: {\n shape: {\n valType: 'enumerated',\n editType: 'plot',\n \n dflt: 'angular',\n values: ['angular', 'bullet'],\n \n },\n bar: extendDeep({}, gaugeBarAttrs, {\n color: {dflt: 'green'},\n \n }),\n // Background of the gauge\n bgcolor: {\n valType: 'color',\n \n editType: 'plot',\n \n },\n bordercolor: {\n valType: 'color',\n dflt: colorAttrs.defaultLine,\n \n editType: 'plot',\n \n },\n borderwidth: {\n valType: 'number',\n min: 0,\n dflt: 1,\n \n editType: 'plot',\n \n },\n axis: overrideAll({\n range: rangeAttr,\n visible: extendFlat({}, axesAttrs.visible, {\n dflt: true\n }),\n // tick and title properties named and function exactly as in axes\n tickmode: axesAttrs.tickmode,\n nticks: axesAttrs.nticks,\n tick0: axesAttrs.tick0,\n dtick: axesAttrs.dtick,\n tickvals: axesAttrs.tickvals,\n ticktext: axesAttrs.ticktext,\n ticks: extendFlat({}, axesAttrs.ticks, {dflt: 'outside'}),\n ticklen: axesAttrs.ticklen,\n tickwidth: axesAttrs.tickwidth,\n tickcolor: axesAttrs.tickcolor,\n showticklabels: axesAttrs.showticklabels,\n tickfont: fontAttrs({\n \n }),\n tickangle: axesAttrs.tickangle,\n tickformat: axesAttrs.tickformat,\n tickformatstops: axesAttrs.tickformatstops,\n tickprefix: axesAttrs.tickprefix,\n showtickprefix: axesAttrs.showtickprefix,\n ticksuffix: axesAttrs.ticksuffix,\n showticksuffix: axesAttrs.showticksuffix,\n separatethousands: axesAttrs.separatethousands,\n exponentformat: axesAttrs.exponentformat,\n showexponent: axesAttrs.showexponent,\n editType: 'plot'\n }, 'plot'),\n // Steps (or ranges) and thresholds\n steps: stepsAttrs,\n threshold: {\n line: {\n color: extendFlat({}, gaugeBarAttrs.line.color, {\n \n }),\n width: extendFlat({}, gaugeBarAttrs.line.width, {\n dflt: 1,\n \n }),\n editType: 'plot'\n },\n thickness: extendFlat({}, gaugeBarAttrs.thickness, {\n dflt: 0.85,\n \n }),\n value: {\n valType: 'number',\n editType: 'calc',\n dflt: false,\n \n \n },\n editType: 'plot'\n },\n \n editType: 'plot'\n // TODO: in future version, add marker: (bar|needle)\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/scatterpolar');\n","/* @module to-float32 */\r\n\r\n'use strict'\r\n\r\nmodule.exports = float32\r\nmodule.exports.float32 =\r\nmodule.exports.float = float32\r\nmodule.exports.fract32 =\r\nmodule.exports.fract = fract32\r\n\r\nvar narr = new Float32Array(1)\r\n\r\n// return fractional part of float32 array\r\nfunction fract32 (arr) {\r\n\tif (arr.length) {\r\n\t\tvar fract = float32(arr)\r\n\t\tfor (var i = 0, l = fract.length; i < l; i++) {\r\n\t\t\tfract[i] = arr[i] - fract[i]\r\n\t\t}\r\n\t\treturn fract\r\n\t}\r\n\r\n\t// number\r\n\treturn float32(arr - float32(arr))\r\n}\r\n\r\n// make sure data is float32 array\r\nfunction float32 (arr) {\r\n\tif (arr.length) {\r\n\t\tif (arr instanceof Float32Array) return arr\r\n\t\tvar float = new Float32Array(arr)\r\n\t\tfloat.set(arr)\r\n\t\treturn float\r\n\t}\r\n\r\n\t// number\r\n\tnarr[0] = arr\r\n\treturn narr[0]\r\n}\r\n","\"use strict\"\n\nvar compile = require(\"./lib/compile_sort.js\")\nvar CACHE = {}\n\nfunction sort(array) {\n var order = array.order\n var dtype = array.dtype\n var typeSig = [order, dtype ]\n var typeName = typeSig.join(\":\")\n var compiled = CACHE[typeName]\n if(!compiled) {\n CACHE[typeName] = compiled = compile(order, dtype)\n }\n compiled(array)\n return array\n}\n\nmodule.exports = sort","'use strict'\n\nvar ndarray = require('ndarray')\nvar ops = require('ndarray-ops')\nvar pool = require('typedarray-pool')\n\nmodule.exports = createTexture2D\n\nvar linearTypes = null\nvar filterTypes = null\nvar wrapTypes = null\n\nfunction lazyInitLinearTypes(gl) {\n linearTypes = [\n gl.LINEAR,\n gl.NEAREST_MIPMAP_LINEAR,\n gl.LINEAR_MIPMAP_NEAREST,\n gl.LINEAR_MIPMAP_NEAREST\n ]\n filterTypes = [\n gl.NEAREST,\n gl.LINEAR,\n gl.NEAREST_MIPMAP_NEAREST,\n gl.NEAREST_MIPMAP_LINEAR,\n gl.LINEAR_MIPMAP_NEAREST,\n gl.LINEAR_MIPMAP_LINEAR\n ]\n wrapTypes = [\n gl.REPEAT,\n gl.CLAMP_TO_EDGE,\n gl.MIRRORED_REPEAT\n ]\n}\n\nfunction acceptTextureDOM (obj) {\n return (\n ('undefined' != typeof HTMLCanvasElement && obj instanceof HTMLCanvasElement) ||\n ('undefined' != typeof HTMLImageElement && obj instanceof HTMLImageElement) ||\n ('undefined' != typeof HTMLVideoElement && obj instanceof HTMLVideoElement) ||\n ('undefined' != typeof ImageData && obj instanceof ImageData))\n}\n\nvar convertFloatToUint8 = function(out, inp) {\n ops.muls(out, inp, 255.0)\n}\n\nfunction reshapeTexture(tex, w, h) {\n var gl = tex.gl\n var maxSize = gl.getParameter(gl.MAX_TEXTURE_SIZE)\n if(w < 0 || w > maxSize || h < 0 || h > maxSize) {\n throw new Error('gl-texture2d: Invalid texture size')\n }\n tex._shape = [w, h]\n tex.bind()\n gl.texImage2D(gl.TEXTURE_2D, 0, tex.format, w, h, 0, tex.format, tex.type, null)\n tex._mipLevels = [0]\n return tex\n}\n\nfunction Texture2D(gl, handle, width, height, format, type) {\n this.gl = gl\n this.handle = handle\n this.format = format\n this.type = type\n this._shape = [width, height]\n this._mipLevels = [0]\n this._magFilter = gl.NEAREST\n this._minFilter = gl.NEAREST\n this._wrapS = gl.CLAMP_TO_EDGE\n this._wrapT = gl.CLAMP_TO_EDGE\n this._anisoSamples = 1\n\n var parent = this\n var wrapVector = [this._wrapS, this._wrapT]\n Object.defineProperties(wrapVector, [\n {\n get: function() {\n return parent._wrapS\n },\n set: function(v) {\n return parent.wrapS = v\n }\n },\n {\n get: function() {\n return parent._wrapT\n },\n set: function(v) {\n return parent.wrapT = v\n }\n }\n ])\n this._wrapVector = wrapVector\n\n var shapeVector = [this._shape[0], this._shape[1]]\n Object.defineProperties(shapeVector, [\n {\n get: function() {\n return parent._shape[0]\n },\n set: function(v) {\n return parent.width = v\n }\n },\n {\n get: function() {\n return parent._shape[1]\n },\n set: function(v) {\n return parent.height = v\n }\n }\n ])\n this._shapeVector = shapeVector\n}\n\nvar proto = Texture2D.prototype\n\nObject.defineProperties(proto, {\n minFilter: {\n get: function() {\n return this._minFilter\n },\n set: function(v) {\n this.bind()\n var gl = this.gl\n if(this.type === gl.FLOAT && linearTypes.indexOf(v) >= 0) {\n if(!gl.getExtension('OES_texture_float_linear')) {\n v = gl.NEAREST\n }\n }\n if(filterTypes.indexOf(v) < 0) {\n throw new Error('gl-texture2d: Unknown filter mode ' + v)\n }\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, v)\n return this._minFilter = v\n }\n },\n magFilter: {\n get: function() {\n return this._magFilter\n },\n set: function(v) {\n this.bind()\n var gl = this.gl\n if(this.type === gl.FLOAT && linearTypes.indexOf(v) >= 0) {\n if(!gl.getExtension('OES_texture_float_linear')) {\n v = gl.NEAREST\n }\n }\n if(filterTypes.indexOf(v) < 0) {\n throw new Error('gl-texture2d: Unknown filter mode ' + v)\n }\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, v)\n return this._magFilter = v\n }\n },\n mipSamples: {\n get: function() {\n return this._anisoSamples\n },\n set: function(i) {\n var psamples = this._anisoSamples\n this._anisoSamples = Math.max(i, 1)|0\n if(psamples !== this._anisoSamples) {\n var ext = this.gl.getExtension('EXT_texture_filter_anisotropic')\n if(ext) {\n this.gl.texParameterf(this.gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT, this._anisoSamples)\n }\n }\n return this._anisoSamples\n }\n },\n wrapS: {\n get: function() {\n return this._wrapS\n },\n set: function(v) {\n this.bind()\n if(wrapTypes.indexOf(v) < 0) {\n throw new Error('gl-texture2d: Unknown wrap mode ' + v)\n }\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_S, v)\n return this._wrapS = v\n }\n },\n wrapT: {\n get: function() {\n return this._wrapT\n },\n set: function(v) {\n this.bind()\n if(wrapTypes.indexOf(v) < 0) {\n throw new Error('gl-texture2d: Unknown wrap mode ' + v)\n }\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_T, v)\n return this._wrapT = v\n }\n },\n wrap: {\n get: function() {\n return this._wrapVector\n },\n set: function(v) {\n if(!Array.isArray(v)) {\n v = [v,v]\n }\n if(v.length !== 2) {\n throw new Error('gl-texture2d: Must specify wrap mode for rows and columns')\n }\n for(var i=0; i<2; ++i) {\n if(wrapTypes.indexOf(v[i]) < 0) {\n throw new Error('gl-texture2d: Unknown wrap mode ' + v)\n }\n }\n this._wrapS = v[0]\n this._wrapT = v[1]\n\n var gl = this.gl\n this.bind()\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, this._wrapS)\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, this._wrapT)\n\n return v\n }\n },\n shape: {\n get: function() {\n return this._shapeVector\n },\n set: function(x) {\n if(!Array.isArray(x)) {\n x = [x|0,x|0]\n } else {\n if(x.length !== 2) {\n throw new Error('gl-texture2d: Invalid texture shape')\n }\n }\n reshapeTexture(this, x[0]|0, x[1]|0)\n return [x[0]|0, x[1]|0]\n }\n },\n width: {\n get: function() {\n return this._shape[0]\n },\n set: function(w) {\n w = w|0\n reshapeTexture(this, w, this._shape[1])\n return w\n }\n },\n height: {\n get: function() {\n return this._shape[1]\n },\n set: function(h) {\n h = h|0\n reshapeTexture(this, this._shape[0], h)\n return h\n }\n }\n})\n\nproto.bind = function(unit) {\n var gl = this.gl\n if(unit !== undefined) {\n gl.activeTexture(gl.TEXTURE0 + (unit|0))\n }\n gl.bindTexture(gl.TEXTURE_2D, this.handle)\n if(unit !== undefined) {\n return (unit|0)\n }\n return gl.getParameter(gl.ACTIVE_TEXTURE) - gl.TEXTURE0\n}\n\nproto.dispose = function() {\n this.gl.deleteTexture(this.handle)\n}\n\nproto.generateMipmap = function() {\n this.bind()\n this.gl.generateMipmap(this.gl.TEXTURE_2D)\n\n //Update mip levels\n var l = Math.min(this._shape[0], this._shape[1])\n for(var i=0; l>0; ++i, l>>>=1) {\n if(this._mipLevels.indexOf(i) < 0) {\n this._mipLevels.push(i)\n }\n }\n}\n\nproto.setPixels = function(data, x_off, y_off, mip_level) {\n var gl = this.gl\n this.bind()\n if(Array.isArray(x_off)) {\n mip_level = y_off\n y_off = x_off[1]|0\n x_off = x_off[0]|0\n } else {\n x_off = x_off || 0\n y_off = y_off || 0\n }\n mip_level = mip_level || 0\n var directData = acceptTextureDOM(data) ? data : data.raw\n if(directData) {\n var needsMip = this._mipLevels.indexOf(mip_level) < 0\n if(needsMip) {\n gl.texImage2D(gl.TEXTURE_2D, 0, this.format, this.format, this.type, directData)\n this._mipLevels.push(mip_level)\n } else {\n gl.texSubImage2D(gl.TEXTURE_2D, mip_level, x_off, y_off, this.format, this.type, directData)\n }\n } else if(data.shape && data.stride && data.data) {\n if(data.shape.length < 2 ||\n x_off + data.shape[1] > this._shape[1]>>>mip_level ||\n y_off + data.shape[0] > this._shape[0]>>>mip_level ||\n x_off < 0 ||\n y_off < 0) {\n throw new Error('gl-texture2d: Texture dimensions are out of bounds')\n }\n texSubImageArray(gl, x_off, y_off, mip_level, this.format, this.type, this._mipLevels, data)\n } else {\n throw new Error('gl-texture2d: Unsupported data type')\n }\n}\n\n\nfunction isPacked(shape, stride) {\n if(shape.length === 3) {\n return (stride[2] === 1) &&\n (stride[1] === shape[0]*shape[2]) &&\n (stride[0] === shape[2])\n }\n return (stride[0] === 1) &&\n (stride[1] === shape[0])\n}\n\nfunction texSubImageArray(gl, x_off, y_off, mip_level, cformat, ctype, mipLevels, array) {\n var dtype = array.dtype\n var shape = array.shape.slice()\n if(shape.length < 2 || shape.length > 3) {\n throw new Error('gl-texture2d: Invalid ndarray, must be 2d or 3d')\n }\n var type = 0, format = 0\n var packed = isPacked(shape, array.stride.slice())\n if(dtype === 'float32') {\n type = gl.FLOAT\n } else if(dtype === 'float64') {\n type = gl.FLOAT\n packed = false\n dtype = 'float32'\n } else if(dtype === 'uint8') {\n type = gl.UNSIGNED_BYTE\n } else {\n type = gl.UNSIGNED_BYTE\n packed = false\n dtype = 'uint8'\n }\n var channels = 1\n if(shape.length === 2) {\n format = gl.LUMINANCE\n shape = [shape[0], shape[1], 1]\n array = ndarray(array.data, shape, [array.stride[0], array.stride[1], 1], array.offset)\n } else if(shape.length === 3) {\n if(shape[2] === 1) {\n format = gl.ALPHA\n } else if(shape[2] === 2) {\n format = gl.LUMINANCE_ALPHA\n } else if(shape[2] === 3) {\n format = gl.RGB\n } else if(shape[2] === 4) {\n format = gl.RGBA\n } else {\n throw new Error('gl-texture2d: Invalid shape for pixel coords')\n }\n channels = shape[2]\n } else {\n throw new Error('gl-texture2d: Invalid shape for texture')\n }\n //For 1-channel textures allow conversion between formats\n if((format === gl.LUMINANCE || format === gl.ALPHA) &&\n (cformat === gl.LUMINANCE || cformat === gl.ALPHA)) {\n format = cformat\n }\n if(format !== cformat) {\n throw new Error('gl-texture2d: Incompatible texture format for setPixels')\n }\n var size = array.size\n var needsMip = mipLevels.indexOf(mip_level) < 0\n if(needsMip) {\n mipLevels.push(mip_level)\n }\n if(type === ctype && packed) {\n //Array data types are compatible, can directly copy into texture\n if(array.offset === 0 && array.data.length === size) {\n if(needsMip) {\n gl.texImage2D(gl.TEXTURE_2D, mip_level, cformat, shape[0], shape[1], 0, cformat, ctype, array.data)\n } else {\n gl.texSubImage2D(gl.TEXTURE_2D, mip_level, x_off, y_off, shape[0], shape[1], cformat, ctype, array.data)\n }\n } else {\n if(needsMip) {\n gl.texImage2D(gl.TEXTURE_2D, mip_level, cformat, shape[0], shape[1], 0, cformat, ctype, array.data.subarray(array.offset, array.offset+size))\n } else {\n gl.texSubImage2D(gl.TEXTURE_2D, mip_level, x_off, y_off, shape[0], shape[1], cformat, ctype, array.data.subarray(array.offset, array.offset+size))\n }\n }\n } else {\n //Need to do type conversion to pack data into buffer\n var pack_buffer\n if(ctype === gl.FLOAT) {\n pack_buffer = pool.mallocFloat32(size)\n } else {\n pack_buffer = pool.mallocUint8(size)\n }\n var pack_view = ndarray(pack_buffer, shape, [shape[2], shape[2]*shape[0], 1])\n if(type === gl.FLOAT && ctype === gl.UNSIGNED_BYTE) {\n convertFloatToUint8(pack_view, array)\n } else {\n ops.assign(pack_view, array)\n }\n if(needsMip) {\n gl.texImage2D(gl.TEXTURE_2D, mip_level, cformat, shape[0], shape[1], 0, cformat, ctype, pack_buffer.subarray(0, size))\n } else {\n gl.texSubImage2D(gl.TEXTURE_2D, mip_level, x_off, y_off, shape[0], shape[1], cformat, ctype, pack_buffer.subarray(0, size))\n }\n if(ctype === gl.FLOAT) {\n pool.freeFloat32(pack_buffer)\n } else {\n pool.freeUint8(pack_buffer)\n }\n }\n}\n\nfunction initTexture(gl) {\n var tex = gl.createTexture()\n gl.bindTexture(gl.TEXTURE_2D, tex)\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST)\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST)\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE)\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE)\n return tex\n}\n\nfunction createTextureShape(gl, width, height, format, type) {\n var maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE)\n if(width < 0 || width > maxTextureSize || height < 0 || height > maxTextureSize) {\n throw new Error('gl-texture2d: Invalid texture shape')\n }\n if(type === gl.FLOAT && !gl.getExtension('OES_texture_float')) {\n throw new Error('gl-texture2d: Floating point textures not supported on this platform')\n }\n var tex = initTexture(gl)\n gl.texImage2D(gl.TEXTURE_2D, 0, format, width, height, 0, format, type, null)\n return new Texture2D(gl, tex, width, height, format, type)\n}\n\nfunction createTextureDOM(gl, directData, width, height, format, type) {\n var tex = initTexture(gl)\n gl.texImage2D(gl.TEXTURE_2D, 0, format, format, type, directData)\n return new Texture2D(gl, tex, width, height, format, type)\n}\n\n//Creates a texture from an ndarray\nfunction createTextureArray(gl, array) {\n var dtype = array.dtype\n var shape = array.shape.slice()\n var maxSize = gl.getParameter(gl.MAX_TEXTURE_SIZE)\n if(shape[0] < 0 || shape[0] > maxSize || shape[1] < 0 || shape[1] > maxSize) {\n throw new Error('gl-texture2d: Invalid texture size')\n }\n var packed = isPacked(shape, array.stride.slice())\n var type = 0\n if(dtype === 'float32') {\n type = gl.FLOAT\n } else if(dtype === 'float64') {\n type = gl.FLOAT\n packed = false\n dtype = 'float32'\n } else if(dtype === 'uint8') {\n type = gl.UNSIGNED_BYTE\n } else {\n type = gl.UNSIGNED_BYTE\n packed = false\n dtype = 'uint8'\n }\n var format = 0\n if(shape.length === 2) {\n format = gl.LUMINANCE\n shape = [shape[0], shape[1], 1]\n array = ndarray(array.data, shape, [array.stride[0], array.stride[1], 1], array.offset)\n } else if(shape.length === 3) {\n if(shape[2] === 1) {\n format = gl.ALPHA\n } else if(shape[2] === 2) {\n format = gl.LUMINANCE_ALPHA\n } else if(shape[2] === 3) {\n format = gl.RGB\n } else if(shape[2] === 4) {\n format = gl.RGBA\n } else {\n throw new Error('gl-texture2d: Invalid shape for pixel coords')\n }\n } else {\n throw new Error('gl-texture2d: Invalid shape for texture')\n }\n if(type === gl.FLOAT && !gl.getExtension('OES_texture_float')) {\n type = gl.UNSIGNED_BYTE\n packed = false\n }\n var buffer, buf_store\n var size = array.size\n if(!packed) {\n var stride = [shape[2], shape[2]*shape[0], 1]\n buf_store = pool.malloc(size, dtype)\n var buf_array = ndarray(buf_store, shape, stride, 0)\n if((dtype === 'float32' || dtype === 'float64') && type === gl.UNSIGNED_BYTE) {\n convertFloatToUint8(buf_array, array)\n } else {\n ops.assign(buf_array, array)\n }\n buffer = buf_store.subarray(0, size)\n } else if (array.offset === 0 && array.data.length === size) {\n buffer = array.data\n } else {\n buffer = array.data.subarray(array.offset, array.offset + size)\n }\n var tex = initTexture(gl)\n gl.texImage2D(gl.TEXTURE_2D, 0, format, shape[0], shape[1], 0, format, type, buffer)\n if(!packed) {\n pool.free(buf_store)\n }\n return new Texture2D(gl, tex, shape[0], shape[1], format, type)\n}\n\nfunction createTexture2D(gl) {\n if(arguments.length <= 1) {\n throw new Error('gl-texture2d: Missing arguments for texture2d constructor')\n }\n if(!linearTypes) {\n lazyInitLinearTypes(gl)\n }\n if(typeof arguments[1] === 'number') {\n return createTextureShape(gl, arguments[1], arguments[2], arguments[3]||gl.RGBA, arguments[4]||gl.UNSIGNED_BYTE)\n }\n if(Array.isArray(arguments[1])) {\n return createTextureShape(gl, arguments[1][0]|0, arguments[1][1]|0, arguments[2]||gl.RGBA, arguments[3]||gl.UNSIGNED_BYTE)\n }\n if(typeof arguments[1] === 'object') {\n var obj = arguments[1]\n var directData = acceptTextureDOM(obj) ? obj : obj.raw\n if (directData) {\n return createTextureDOM(gl, directData, obj.width|0, obj.height|0, arguments[2]||gl.RGBA, arguments[3]||gl.UNSIGNED_BYTE)\n } else if(obj.shape && obj.data && obj.stride) {\n return createTextureArray(gl, obj)\n }\n }\n throw new Error('gl-texture2d: Invalid arguments for texture2d constructor')\n}\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar isNumeric = require('fast-isnumeric');\n\nvar Lib = require('../../lib');\nvar Color = require('../../components/color');\nvar Colorscale = require('../../components/colorscale');\n\nvar BADNUM = require('../../constants/numerical').BADNUM;\nvar makeBlank = require('../../lib/geojson_utils').makeBlank;\n\nmodule.exports = function convert(calcTrace) {\n var trace = calcTrace[0].trace;\n var isVisible = (trace.visible === true && trace._length !== 0);\n\n var heatmap = {\n layout: {visibility: 'none'},\n paint: {}\n };\n\n var opts = trace._opts = {\n heatmap: heatmap,\n geojson: makeBlank()\n };\n\n // early return if not visible or placeholder\n if(!isVisible) return opts;\n\n var features = [];\n var i;\n\n var z = trace.z;\n var radius = trace.radius;\n var hasZ = Lib.isArrayOrTypedArray(z) && z.length;\n var hasArrayRadius = Lib.isArrayOrTypedArray(radius);\n\n for(i = 0; i < calcTrace.length; i++) {\n var cdi = calcTrace[i];\n var lonlat = cdi.lonlat;\n\n if(lonlat[0] !== BADNUM) {\n var props = {};\n\n if(hasZ) {\n var zi = cdi.z;\n props.z = zi !== BADNUM ? zi : 0;\n }\n if(hasArrayRadius) {\n props.r = (isNumeric(radius[i]) && radius[i] > 0) ? +radius[i] : 0;\n }\n\n features.push({\n type: 'Feature',\n geometry: {type: 'Point', coordinates: lonlat},\n properties: props\n });\n }\n }\n\n var cOpts = Colorscale.extractOpts(trace);\n var scl = cOpts.reversescale ?\n Colorscale.flipScale(cOpts.colorscale) :\n cOpts.colorscale;\n\n // Add alpha channel to first colorscale step.\n // If not, we would essentially color the entire map.\n // See https://docs.mapbox.com/mapbox-gl-js/example/heatmap-layer/\n var scl01 = scl[0][1];\n var color0 = Color.opacity(scl01) < 1 ? scl01 : Color.addOpacity(scl01, 0);\n\n var heatmapColor = [\n 'interpolate', ['linear'],\n ['heatmap-density'],\n 0, color0\n ];\n for(i = 1; i < scl.length; i++) {\n heatmapColor.push(scl[i][0], scl[i][1]);\n }\n\n // Those \"weights\" have to be in [0, 1], we can do this either:\n // - as here using a mapbox-gl expression\n // - or, scale the 'z' property in the feature loop\n var zExp = [\n 'interpolate', ['linear'],\n ['get', 'z'],\n cOpts.min, 0,\n cOpts.max, 1\n ];\n\n Lib.extendFlat(opts.heatmap.paint, {\n 'heatmap-weight': hasZ ? zExp : 1 / (cOpts.max - cOpts.min),\n\n 'heatmap-color': heatmapColor,\n\n 'heatmap-radius': hasArrayRadius ?\n {type: 'identity', property: 'r'} :\n trace.radius,\n\n 'heatmap-opacity': trace.opacity\n });\n\n opts.geojson = {type: 'FeatureCollection', features: features};\n opts.heatmap.layout.visibility = 'visible';\n\n return opts;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar c = require('./constants');\nvar d3 = require('d3');\nvar keyFun = require('../../lib/gup').keyFun;\nvar repeat = require('../../lib/gup').repeat;\nvar sortAsc = require('../../lib').sorterAsc;\n\nvar snapRatio = c.bar.snapRatio;\nfunction snapOvershoot(v, vAdjacent) { return v * (1 - snapRatio) + vAdjacent * snapRatio; }\n\nvar snapClose = c.bar.snapClose;\nfunction closeToCovering(v, vAdjacent) { return v * (1 - snapClose) + vAdjacent * snapClose; }\n\n// snap for the low end of a range on an ordinal scale\n// on an ordinal scale, always show some overshoot from the exact value,\n// so it's clear we're covering it\n// find the interval we're in, and snap to 1/4 the distance to the next\n// these two could be unified at a slight loss of readability / perf\nfunction ordinalScaleSnap(isHigh, a, v, existingRanges) {\n if(overlappingExisting(v, existingRanges)) return v;\n\n var dir = isHigh ? -1 : 1;\n\n var first = 0;\n var last = a.length - 1;\n if(dir < 0) {\n var tmp = first;\n first = last;\n last = tmp;\n }\n\n var aHere = a[first];\n var aPrev = aHere;\n for(var i = first; dir * i < dir * last; i += dir) {\n var nextI = i + dir;\n var aNext = a[nextI];\n\n // very close to the previous - snap down to it\n if(dir * v < dir * closeToCovering(aHere, aNext)) return snapOvershoot(aHere, aPrev);\n if(dir * v < dir * aNext || nextI === last) return snapOvershoot(aNext, aHere);\n\n aPrev = aHere;\n aHere = aNext;\n }\n}\n\nfunction overlappingExisting(v, existingRanges) {\n for(var i = 0; i < existingRanges.length; i++) {\n if(v >= existingRanges[i][0] && v <= existingRanges[i][1]) return true;\n }\n return false;\n}\n\nfunction barHorizontalSetup(selection) {\n selection\n .attr('x', -c.bar.captureWidth / 2)\n .attr('width', c.bar.captureWidth);\n}\n\nfunction backgroundBarHorizontalSetup(selection) {\n selection\n .attr('visibility', 'visible')\n .style('visibility', 'visible')\n .attr('fill', 'yellow')\n .attr('opacity', 0);\n}\n\nfunction setHighlight(d) {\n if(!d.brush.filterSpecified) {\n return '0,' + d.height;\n }\n\n var pixelRanges = unitToPx(d.brush.filter.getConsolidated(), d.height);\n var dashArray = [0]; // we start with a 0 length selection as filter ranges are inclusive, not exclusive\n var p, sectionHeight, iNext;\n var currentGap = pixelRanges.length ? pixelRanges[0][0] : null;\n for(var i = 0; i < pixelRanges.length; i++) {\n p = pixelRanges[i];\n sectionHeight = p[1] - p[0];\n dashArray.push(currentGap);\n dashArray.push(sectionHeight);\n iNext = i + 1;\n if(iNext < pixelRanges.length) {\n currentGap = pixelRanges[iNext][0] - p[1];\n }\n }\n dashArray.push(d.height);\n // d.height is added at the end to ensure that (1) we have an even number of dasharray points, MDN page says\n // \"If an odd number of values is provided, then the list of values is repeated to yield an even number of values.\"\n // and (2) it's _at least_ as long as the full height (even if range is minuscule and at the bottom) though this\n // may not be necessary, maybe duplicating the last point would do too. But no harm in a longer dasharray than line.\n return dashArray;\n}\n\nfunction unitToPx(unitRanges, height) {\n return unitRanges.map(function(pr) {\n return pr.map(function(v) { return Math.max(0, v * height); }).sort(sortAsc);\n });\n}\n\n// is the cursor over the north, middle, or south of a bar?\n// the end handles extend over the last 10% of the bar\nfunction getRegion(fPix, y) {\n var pad = c.bar.handleHeight;\n if(y > fPix[1] + pad || y < fPix[0] - pad) return;\n if(y >= 0.9 * fPix[1] + 0.1 * fPix[0]) return 'n';\n if(y <= 0.9 * fPix[0] + 0.1 * fPix[1]) return 's';\n return 'ns';\n}\n\nfunction clearCursor() {\n d3.select(document.body)\n .style('cursor', null);\n}\n\nfunction styleHighlight(selection) {\n // stroke-dasharray is used to minimize the number of created DOM nodes, because the requirement calls for up to\n // 1000 individual selections on an axis, and there can be 60 axes per parcoords, and multiple parcoords per\n // dashboard. The technique is similar to https://codepen.io/monfera/pen/rLYqWR and using a `polyline` with\n // multiple sections, or a `path` element via its `d` attribute would also be DOM-sparing alternatives.\n selection.attr('stroke-dasharray', setHighlight);\n}\n\nfunction renderHighlight(root, tweenCallback) {\n var bar = d3.select(root).selectAll('.highlight, .highlight-shadow');\n var barToStyle = tweenCallback ? bar.transition().duration(c.bar.snapDuration).each('end', tweenCallback) : bar;\n styleHighlight(barToStyle);\n}\n\nfunction getInterval(d, y) {\n var b = d.brush;\n var active = b.filterSpecified;\n var closestInterval = NaN;\n var out = {};\n var i;\n\n if(active) {\n var height = d.height;\n var intervals = b.filter.getConsolidated();\n var pixIntervals = unitToPx(intervals, height);\n var hoveredInterval = NaN;\n var previousInterval = NaN;\n var nextInterval = NaN;\n for(i = 0; i <= pixIntervals.length; i++) {\n var p = pixIntervals[i];\n if(p && p[0] <= y && y <= p[1]) {\n // over a bar\n hoveredInterval = i;\n break;\n } else {\n // between bars, or before/after the first/last bar\n previousInterval = i ? i - 1 : NaN;\n if(p && p[0] > y) {\n nextInterval = i;\n break; // no point continuing as intervals are non-overlapping and sorted; could use log search\n }\n }\n }\n\n closestInterval = hoveredInterval;\n if(isNaN(closestInterval)) {\n if(isNaN(previousInterval) || isNaN(nextInterval)) {\n closestInterval = isNaN(previousInterval) ? nextInterval : previousInterval;\n } else {\n closestInterval = (y - pixIntervals[previousInterval][1] < pixIntervals[nextInterval][0] - y) ?\n previousInterval : nextInterval;\n }\n }\n\n if(!isNaN(closestInterval)) {\n var fPix = pixIntervals[closestInterval];\n var region = getRegion(fPix, y);\n\n if(region) {\n out.interval = intervals[closestInterval];\n out.intervalPix = fPix;\n out.region = region;\n }\n }\n }\n\n if(d.ordinal && !out.region) {\n var a = d.unitTickvals;\n var unitLocation = d.unitToPaddedPx.invert(y);\n for(i = 0; i < a.length; i++) {\n var rangei = [\n a[Math.max(i - 1, 0)] * 0.25 + a[i] * 0.75,\n a[Math.min(i + 1, a.length - 1)] * 0.25 + a[i] * 0.75\n ];\n if(unitLocation >= rangei[0] && unitLocation <= rangei[1]) {\n out.clickableOrdinalRange = rangei;\n break;\n }\n }\n }\n\n return out;\n}\n\nfunction dragstart(lThis, d) {\n d3.event.sourceEvent.stopPropagation();\n var y = d.height - d3.mouse(lThis)[1] - 2 * c.verticalPadding;\n var unitLocation = d.unitToPaddedPx.invert(y);\n var b = d.brush;\n var interval = getInterval(d, y);\n var unitRange = interval.interval;\n var s = b.svgBrush;\n s.wasDragged = false; // we start assuming there won't be a drag - useful for reset\n s.grabbingBar = interval.region === 'ns';\n if(s.grabbingBar) {\n var pixelRange = unitRange.map(d.unitToPaddedPx);\n s.grabPoint = y - pixelRange[0] - c.verticalPadding;\n s.barLength = pixelRange[1] - pixelRange[0];\n }\n s.clickableOrdinalRange = interval.clickableOrdinalRange;\n s.stayingIntervals = (d.multiselect && b.filterSpecified) ? b.filter.getConsolidated() : [];\n if(unitRange) {\n s.stayingIntervals = s.stayingIntervals.filter(function(int2) {\n return int2[0] !== unitRange[0] && int2[1] !== unitRange[1];\n });\n }\n s.startExtent = interval.region ? unitRange[interval.region === 's' ? 1 : 0] : unitLocation;\n d.parent.inBrushDrag = true;\n s.brushStartCallback();\n}\n\nfunction drag(lThis, d) {\n d3.event.sourceEvent.stopPropagation();\n var y = d.height - d3.mouse(lThis)[1] - 2 * c.verticalPadding;\n var s = d.brush.svgBrush;\n s.wasDragged = true;\n s._dragging = true;\n\n if(s.grabbingBar) { // moving the bar\n s.newExtent = [y - s.grabPoint, y + s.barLength - s.grabPoint].map(d.unitToPaddedPx.invert);\n } else { // south/north drag or new bar creation\n s.newExtent = [s.startExtent, d.unitToPaddedPx.invert(y)].sort(sortAsc);\n }\n\n d.brush.filterSpecified = true;\n s.extent = s.stayingIntervals.concat([s.newExtent]);\n s.brushCallback(d);\n renderHighlight(lThis.parentNode);\n}\n\nfunction dragend(lThis, d) {\n var brush = d.brush;\n var filter = brush.filter;\n var s = brush.svgBrush;\n\n if(!s._dragging) { // i.e. click\n // mock zero drag\n mousemove(lThis, d);\n drag(lThis, d);\n // remember it is a click not a drag\n d.brush.svgBrush.wasDragged = false;\n }\n s._dragging = false;\n\n var e = d3.event;\n e.sourceEvent.stopPropagation();\n var grabbingBar = s.grabbingBar;\n s.grabbingBar = false;\n s.grabLocation = undefined;\n d.parent.inBrushDrag = false;\n clearCursor(); // instead of clearing, a nicer thing would be to set it according to current location\n if(!s.wasDragged) { // a click+release on the same spot (ie. w/o dragging) means a bar or full reset\n s.wasDragged = undefined; // logic-wise unneeded, just shows `wasDragged` has no longer a meaning\n if(s.clickableOrdinalRange) {\n if(brush.filterSpecified && d.multiselect) {\n s.extent.push(s.clickableOrdinalRange);\n } else {\n s.extent = [s.clickableOrdinalRange];\n brush.filterSpecified = true;\n }\n } else if(grabbingBar) {\n s.extent = s.stayingIntervals;\n if(s.extent.length === 0) {\n brushClear(brush);\n }\n } else {\n brushClear(brush);\n }\n s.brushCallback(d);\n renderHighlight(lThis.parentNode);\n s.brushEndCallback(brush.filterSpecified ? filter.getConsolidated() : []);\n return; // no need to fuse intervals or snap to ordinals, so we can bail early\n }\n\n var mergeIntervals = function() {\n // Key piece of logic: once the button is released, possibly overlapping intervals will be fused:\n // Here it's done immediately on click release while on ordinal snap transition it's done at the end\n filter.set(filter.getConsolidated());\n };\n\n if(d.ordinal) {\n var a = d.unitTickvals;\n if(a[a.length - 1] < a[0]) a.reverse();\n s.newExtent = [\n ordinalScaleSnap(0, a, s.newExtent[0], s.stayingIntervals),\n ordinalScaleSnap(1, a, s.newExtent[1], s.stayingIntervals)\n ];\n var hasNewExtent = s.newExtent[1] > s.newExtent[0];\n s.extent = s.stayingIntervals.concat(hasNewExtent ? [s.newExtent] : []);\n if(!s.extent.length) {\n brushClear(brush);\n }\n s.brushCallback(d);\n if(hasNewExtent) {\n // merging intervals post the snap tween\n renderHighlight(lThis.parentNode, mergeIntervals);\n } else {\n // if no new interval, don't animate, just redraw the highlight immediately\n mergeIntervals();\n renderHighlight(lThis.parentNode);\n }\n } else {\n mergeIntervals(); // merging intervals immediately\n }\n s.brushEndCallback(brush.filterSpecified ? filter.getConsolidated() : []);\n}\n\nfunction mousemove(lThis, d) {\n var y = d.height - d3.mouse(lThis)[1] - 2 * c.verticalPadding;\n var interval = getInterval(d, y);\n\n var cursor = 'crosshair';\n if(interval.clickableOrdinalRange) cursor = 'pointer';\n else if(interval.region) cursor = interval.region + '-resize';\n d3.select(document.body)\n .style('cursor', cursor);\n}\n\nfunction attachDragBehavior(selection) {\n // There's some fiddling with pointer cursor styling so that the cursor preserves its shape while dragging a brush\n // even if the cursor strays from the interacting bar, which is bound to happen as bars are thin and the user\n // will inevitably leave the hotspot strip. In this regard, it does something similar to what the D3 brush would do.\n selection\n .on('mousemove', function(d) {\n d3.event.preventDefault();\n if(!d.parent.inBrushDrag) mousemove(this, d);\n })\n .on('mouseleave', function(d) {\n if(!d.parent.inBrushDrag) clearCursor();\n })\n .call(d3.behavior.drag()\n .on('dragstart', function(d) { dragstart(this, d); })\n .on('drag', function(d) { drag(this, d); })\n .on('dragend', function(d) { dragend(this, d); })\n );\n}\n\nfunction startAsc(a, b) { return a[0] - b[0]; }\n\nfunction renderAxisBrush(axisBrush) {\n var background = axisBrush.selectAll('.background').data(repeat);\n\n background.enter()\n .append('rect')\n .classed('background', true)\n .call(barHorizontalSetup)\n .call(backgroundBarHorizontalSetup)\n .style('pointer-events', 'auto') // parent pointer events are disabled; we must have it to register events\n .attr('transform', 'translate(0 ' + c.verticalPadding + ')');\n\n background\n .call(attachDragBehavior)\n .attr('height', function(d) {\n return d.height - c.verticalPadding;\n });\n\n var highlightShadow = axisBrush.selectAll('.highlight-shadow').data(repeat); // we have a set here, can't call it `extent`\n\n highlightShadow.enter()\n .append('line')\n .classed('highlight-shadow', true)\n .attr('x', -c.bar.width / 2)\n .attr('stroke-width', c.bar.width + c.bar.strokeWidth)\n .attr('stroke', c.bar.strokeColor)\n .attr('opacity', c.bar.strokeOpacity)\n .attr('stroke-linecap', 'butt');\n\n highlightShadow\n .attr('y1', function(d) { return d.height; })\n .call(styleHighlight);\n\n var highlight = axisBrush.selectAll('.highlight').data(repeat); // we have a set here, can't call it `extent`\n\n highlight.enter()\n .append('line')\n .classed('highlight', true)\n .attr('x', -c.bar.width / 2)\n .attr('stroke-width', c.bar.width - c.bar.strokeWidth)\n .attr('stroke', c.bar.fillColor)\n .attr('opacity', c.bar.fillOpacity)\n .attr('stroke-linecap', 'butt');\n\n highlight\n .attr('y1', function(d) { return d.height; })\n .call(styleHighlight);\n}\n\nfunction ensureAxisBrush(axisOverlays) {\n var axisBrush = axisOverlays.selectAll('.' + c.cn.axisBrush)\n .data(repeat, keyFun);\n\n axisBrush.enter()\n .append('g')\n .classed(c.cn.axisBrush, true);\n\n renderAxisBrush(axisBrush);\n}\n\nfunction getBrushExtent(brush) {\n return brush.svgBrush.extent.map(function(e) {return e.slice();});\n}\n\nfunction brushClear(brush) {\n brush.filterSpecified = false;\n brush.svgBrush.extent = [[-Infinity, Infinity]];\n}\n\nfunction axisBrushMoved(callback) {\n return function axisBrushMoved(dimension) {\n var brush = dimension.brush;\n var extent = getBrushExtent(brush);\n var newExtent = extent.slice();\n brush.filter.set(newExtent);\n callback();\n };\n}\n\nfunction dedupeRealRanges(intervals) {\n // Fuses elements of intervals if they overlap, yielding discontiguous intervals, results.length <= intervals.length\n // Currently uses closed intervals, ie. dedupeRealRanges([[400, 800], [300, 400]]) -> [300, 800]\n var queue = intervals.slice();\n var result = [];\n var currentInterval;\n var current = queue.shift();\n while(current) { // [].shift === undefined, so we don't descend into an empty array\n currentInterval = current.slice();\n while((current = queue.shift()) && current[0] <= /* right-open interval would need `<` */ currentInterval[1]) {\n currentInterval[1] = Math.max(currentInterval[1], current[1]);\n }\n result.push(currentInterval);\n }\n return result;\n}\n\nfunction makeFilter() {\n var filter = [];\n var consolidated;\n var bounds;\n return {\n set: function(a) {\n filter = a\n .map(function(d) { return d.slice().sort(sortAsc); })\n .sort(startAsc);\n\n // handle unselected case\n if(filter.length === 1 &&\n filter[0][0] === -Infinity &&\n filter[0][1] === Infinity) {\n filter = [[0, -1]];\n }\n\n consolidated = dedupeRealRanges(filter);\n bounds = filter.reduce(function(p, n) {\n return [Math.min(p[0], n[0]), Math.max(p[1], n[1])];\n }, [Infinity, -Infinity]);\n },\n get: function() { return filter.slice(); },\n getConsolidated: function() { return consolidated; },\n getBounds: function() { return bounds; }\n };\n}\n\nfunction makeBrush(state, rangeSpecified, initialRange, brushStartCallback, brushCallback, brushEndCallback) {\n var filter = makeFilter();\n filter.set(initialRange);\n return {\n filter: filter,\n filterSpecified: rangeSpecified, // there's a difference between not filtering and filtering a non-proper subset\n svgBrush: {\n extent: [], // this is where the svgBrush writes contents into\n brushStartCallback: brushStartCallback,\n brushCallback: axisBrushMoved(brushCallback),\n brushEndCallback: brushEndCallback\n }\n };\n}\n\n// for use by supplyDefaults, but it needed tons of pieces from here so\n// seemed to make more sense just to put the whole routine here\nfunction cleanRanges(ranges, dimension) {\n if(Array.isArray(ranges[0])) {\n ranges = ranges.map(function(ri) { return ri.sort(sortAsc); });\n\n if(!dimension.multiselect) ranges = [ranges[0]];\n else ranges = dedupeRealRanges(ranges.sort(startAsc));\n } else ranges = [ranges.sort(sortAsc)];\n\n // ordinal snapping\n if(dimension.tickvals) {\n var sortedTickVals = dimension.tickvals.slice().sort(sortAsc);\n ranges = ranges.map(function(ri) {\n var rSnapped = [\n ordinalScaleSnap(0, sortedTickVals, ri[0], []),\n ordinalScaleSnap(1, sortedTickVals, ri[1], [])\n ];\n if(rSnapped[1] > rSnapped[0]) return rSnapped;\n })\n .filter(function(ri) { return ri; });\n\n if(!ranges.length) return;\n }\n return ranges.length > 1 ? ranges : ranges[0];\n}\n\nmodule.exports = {\n makeBrush: makeBrush,\n ensureAxisBrush: ensureAxisBrush,\n cleanRanges: cleanRanges\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar hasColorscale = require('./helpers').hasColorscale;\nvar extractOpts = require('./helpers').extractOpts;\n\nmodule.exports = function crossTraceDefaults(fullData, fullLayout) {\n function replace(cont, k) {\n var val = cont['_' + k];\n if(val !== undefined) {\n cont[k] = val;\n }\n }\n\n function relinkColorAttrs(outerCont, cbOpt) {\n var cont = cbOpt.container ?\n Lib.nestedProperty(outerCont, cbOpt.container).get() :\n outerCont;\n\n if(cont) {\n if(cont.coloraxis) {\n // stash ref to color axis\n cont._colorAx = fullLayout[cont.coloraxis];\n } else {\n var cOpts = extractOpts(cont);\n var isAuto = cOpts.auto;\n\n if(isAuto || cOpts.min === undefined) {\n replace(cont, cbOpt.min);\n }\n if(isAuto || cOpts.max === undefined) {\n replace(cont, cbOpt.max);\n }\n if(cOpts.autocolorscale) {\n replace(cont, 'colorscale');\n }\n }\n }\n }\n\n for(var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n var cbOpts = trace._module.colorbar;\n\n if(cbOpts) {\n if(Array.isArray(cbOpts)) {\n for(var j = 0; j < cbOpts.length; j++) {\n relinkColorAttrs(trace, cbOpts[j]);\n }\n } else {\n relinkColorAttrs(trace, cbOpts);\n }\n }\n\n if(hasColorscale(trace, 'marker.line')) {\n relinkColorAttrs(trace, {\n container: 'marker.line',\n min: 'cmin',\n max: 'cmax'\n });\n }\n }\n\n for(var k in fullLayout._colorAxes) {\n relinkColorAttrs(fullLayout[k], {min: 'cmin', max: 'cmax'});\n }\n};\n","\"use strict\"\n\nvar bindAttribs = require(\"./do-bind.js\")\n\nfunction VAOEmulated(gl) {\n this.gl = gl\n this._elements = null\n this._attributes = null\n this._elementsType = gl.UNSIGNED_SHORT\n}\n\nVAOEmulated.prototype.bind = function() {\n bindAttribs(this.gl, this._elements, this._attributes)\n}\n\nVAOEmulated.prototype.update = function(attributes, elements, elementsType) {\n this._elements = elements\n this._attributes = attributes\n this._elementsType = elementsType || this.gl.UNSIGNED_SHORT\n}\n\nVAOEmulated.prototype.dispose = function() { }\nVAOEmulated.prototype.unbind = function() { }\n\nVAOEmulated.prototype.draw = function(mode, count, offset) {\n offset = offset || 0\n var gl = this.gl\n if(this._elements) {\n gl.drawElements(mode, count, this._elementsType, offset)\n } else {\n gl.drawArrays(mode, offset, count)\n }\n}\n\nfunction createVAOEmulated(gl) {\n return new VAOEmulated(gl)\n}\n\nmodule.exports = createVAOEmulated","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n moduleType: 'locale',\n name: 'en-US',\n dictionary: {\n 'Click to enter Colorscale title': 'Click to enter Colorscale title'\n },\n format: {\n date: '%m/%d/%Y'\n }\n};\n","\"use strict\";\n\nmodule.exports = function (value) {\n\ttry {\n\t\treturn value.toString();\n\t} catch (error) {\n\t\ttry { return String(value); }\n\t\tcatch (error2) { return null; }\n\t}\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n moduleType: 'locale',\n name: 'en',\n dictionary: {\n 'Click to enter Colorscale title': 'Click to enter Colourscale title'\n },\n format: {\n days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n months: [\n 'January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December'\n ],\n shortMonths: [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\n ],\n periods: ['AM', 'PM'],\n dateTime: '%a %b %e %X %Y',\n date: '%d/%m/%Y',\n time: '%H:%M:%S',\n decimal: '.',\n thousands: ',',\n grouping: [3],\n currency: ['$', ''],\n year: '%Y',\n month: '%b %Y',\n dayMonth: '%b %-d',\n dayMonthYear: '%b %-d, %Y'\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar scatterAttrs = require('../scatter/attributes');\nvar barAttrs = require('../bar/attributes');\nvar colorAttrs = require('../../components/color/attributes');\nvar hovertemplateAttrs = require('../../plots/template_attributes').hovertemplateAttrs;\nvar extendFlat = require('../../lib/extend').extendFlat;\n\nvar scatterMarkerAttrs = scatterAttrs.marker;\nvar scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n\nmodule.exports = {\n y: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n x: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n x0: {\n valType: 'any',\n \n editType: 'calc+clearAxisTypes',\n \n },\n y0: {\n valType: 'any',\n \n editType: 'calc+clearAxisTypes',\n \n },\n\n dx: {\n valType: 'number',\n \n editType: 'calc',\n \n },\n dy: {\n valType: 'number',\n \n editType: 'calc',\n \n },\n\n name: {\n valType: 'string',\n \n editType: 'calc+clearAxisTypes',\n \n },\n\n q1: {\n valType: 'data_array',\n \n editType: 'calc+clearAxisTypes',\n \n },\n median: {\n valType: 'data_array',\n \n editType: 'calc+clearAxisTypes',\n \n },\n q3: {\n valType: 'data_array',\n \n editType: 'calc+clearAxisTypes',\n \n },\n lowerfence: {\n valType: 'data_array',\n \n editType: 'calc',\n \n },\n upperfence: {\n valType: 'data_array',\n \n editType: 'calc',\n \n },\n\n notched: {\n valType: 'boolean',\n \n editType: 'calc',\n \n },\n notchwidth: {\n valType: 'number',\n min: 0,\n max: 0.5,\n dflt: 0.25,\n \n editType: 'calc',\n \n },\n notchspan: {\n valType: 'data_array',\n \n editType: 'calc',\n \n },\n\n // TODO\n // maybe add\n // - loweroutlierbound / upperoutlierbound\n // - lowersuspectedoutlierbound / uppersuspectedoutlierbound\n\n boxpoints: {\n valType: 'enumerated',\n values: ['all', 'outliers', 'suspectedoutliers', false],\n \n editType: 'calc',\n \n },\n jitter: {\n valType: 'number',\n min: 0,\n max: 1,\n \n editType: 'calc',\n \n },\n pointpos: {\n valType: 'number',\n min: -2,\n max: 2,\n \n editType: 'calc',\n \n },\n\n boxmean: {\n valType: 'enumerated',\n values: [true, 'sd', false],\n \n editType: 'calc',\n \n },\n mean: {\n valType: 'data_array',\n \n editType: 'calc',\n \n },\n sd: {\n valType: 'data_array',\n \n editType: 'calc',\n \n },\n\n orientation: {\n valType: 'enumerated',\n values: ['v', 'h'],\n \n editType: 'calc+clearAxisTypes',\n \n },\n\n quartilemethod: {\n valType: 'enumerated',\n values: ['linear', 'exclusive', 'inclusive'],\n dflt: 'linear',\n \n editType: 'calc',\n \n },\n\n width: {\n valType: 'number',\n min: 0,\n \n dflt: 0,\n editType: 'calc',\n \n },\n\n marker: {\n outliercolor: {\n valType: 'color',\n dflt: 'rgba(0, 0, 0, 0)',\n \n editType: 'style',\n \n },\n symbol: extendFlat({}, scatterMarkerAttrs.symbol,\n {arrayOk: false, editType: 'plot'}),\n opacity: extendFlat({}, scatterMarkerAttrs.opacity,\n {arrayOk: false, dflt: 1, editType: 'style'}),\n size: extendFlat({}, scatterMarkerAttrs.size,\n {arrayOk: false, editType: 'calc'}),\n color: extendFlat({}, scatterMarkerAttrs.color,\n {arrayOk: false, editType: 'style'}),\n line: {\n color: extendFlat({}, scatterMarkerLineAttrs.color,\n {arrayOk: false, dflt: colorAttrs.defaultLine, editType: 'style'}\n ),\n width: extendFlat({}, scatterMarkerLineAttrs.width,\n {arrayOk: false, dflt: 0, editType: 'style'}\n ),\n outliercolor: {\n valType: 'color',\n \n editType: 'style',\n \n },\n outlierwidth: {\n valType: 'number',\n min: 0,\n dflt: 1,\n \n editType: 'style',\n \n },\n editType: 'style'\n },\n editType: 'plot'\n },\n\n line: {\n color: {\n valType: 'color',\n \n editType: 'style',\n \n },\n width: {\n valType: 'number',\n \n min: 0,\n dflt: 2,\n editType: 'style',\n \n },\n editType: 'plot'\n },\n\n fillcolor: scatterAttrs.fillcolor,\n\n whiskerwidth: {\n valType: 'number',\n min: 0,\n max: 1,\n dflt: 0.5,\n \n editType: 'calc',\n \n },\n\n offsetgroup: barAttrs.offsetgroup,\n alignmentgroup: barAttrs.alignmentgroup,\n\n selected: {\n marker: scatterAttrs.selected.marker,\n editType: 'style'\n },\n unselected: {\n marker: scatterAttrs.unselected.marker,\n editType: 'style'\n },\n\n text: extendFlat({}, scatterAttrs.text, {\n \n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {\n \n }),\n hovertemplate: hovertemplateAttrs({\n \n }),\n\n hoveron: {\n valType: 'flaglist',\n flags: ['boxes', 'points'],\n dflt: 'boxes+points',\n \n editType: 'style',\n \n }\n};\n","\"use strict\"\n\nmodule.exports = convexHull1d\n\nfunction convexHull1d(points) {\n var lo = 0\n var hi = 0\n for(var i=1; i points[hi][0]) {\n hi = i\n }\n }\n if(lo < hi) {\n return [[lo], [hi]]\n } else if(lo > hi) {\n return [[hi], [lo]]\n } else {\n return [[lo]]\n }\n}","'use strict'\n\nmodule.exports = gradient\n\nvar dup = require('dup')\nvar cwiseCompiler = require('cwise-compiler')\n\nvar TEMPLATE_CACHE = {}\nvar GRADIENT_CACHE = {}\n\nvar EmptyProc = {\n body: \"\",\n args: [],\n thisVars: [],\n localVars: []\n}\n\nvar centralDiff = cwiseCompiler({\n args: [ 'array', 'array', 'array' ],\n pre: EmptyProc,\n post: EmptyProc,\n body: {\n args: [ {\n name: 'out', \n lvalue: true,\n rvalue: false,\n count: 1\n }, {\n name: 'left', \n lvalue: false,\n rvalue: true,\n count: 1\n }, {\n name: 'right', \n lvalue: false,\n rvalue: true,\n count: 1\n }],\n body: \"out=0.5*(left-right)\",\n thisVars: [],\n localVars: []\n },\n funcName: 'cdiff'\n})\n\nvar zeroOut = cwiseCompiler({\n args: [ 'array' ],\n pre: EmptyProc,\n post: EmptyProc,\n body: {\n args: [ {\n name: 'out', \n lvalue: true,\n rvalue: false,\n count: 1\n }],\n body: \"out=0\",\n thisVars: [],\n localVars: []\n },\n funcName: 'zero'\n})\n\nfunction generateTemplate(d) {\n if(d in TEMPLATE_CACHE) {\n return TEMPLATE_CACHE[d]\n }\n var code = []\n for(var i=0; i= 0) {\n pickStr.push('0')\n } else if(facet.indexOf(-(i+1)) >= 0) {\n pickStr.push('s['+i+']-1')\n } else {\n pickStr.push('-1')\n loStr.push('1')\n hiStr.push('s['+i+']-2')\n }\n }\n var boundStr = '.lo(' + loStr.join() + ').hi(' + hiStr.join() + ')'\n if(loStr.length === 0) {\n boundStr = ''\n }\n \n if(cod > 0) {\n code.push('if(1') \n for(var i=0; i= 0 || facet.indexOf(-(i+1)) >= 0) {\n continue\n }\n code.push('&&s[', i, ']>2')\n }\n code.push('){grad', cod, '(src.pick(', pickStr.join(), ')', boundStr)\n for(var i=0; i= 0 || facet.indexOf(-(i+1)) >= 0) {\n continue\n }\n code.push(',dst.pick(', pickStr.join(), ',', i, ')', boundStr)\n }\n code.push(');')\n }\n\n for(var i=0; i1){dst.set(',\n pickStr.join(), ',', bnd, ',0.5*(src.get(',\n cPickStr.join(), ')-src.get(',\n dPickStr.join(), ')))}else{dst.set(',\n pickStr.join(), ',', bnd, ',0)};')\n } else {\n code.push('if(s[', bnd, ']>1){diff(', outStr, \n ',src.pick(', cPickStr.join(), ')', boundStr, \n ',src.pick(', dPickStr.join(), ')', boundStr, \n ');}else{zero(', outStr, ');};')\n }\n break\n\n case 'mirror':\n if(cod === 0) {\n code.push('dst.set(', pickStr.join(), ',', bnd, ',0);')\n } else {\n code.push('zero(', outStr, ');')\n }\n break\n\n case 'wrap':\n var aPickStr = pickStr.slice()\n var bPickStr = pickStr.slice()\n if(facet[i] < 0) {\n aPickStr[bnd] = 's[' + bnd + ']-2'\n bPickStr[bnd] = '0'\n \n } else {\n aPickStr[bnd] = 's[' + bnd + ']-1'\n bPickStr[bnd] = '1'\n }\n if(cod === 0) {\n code.push('if(s[', bnd, ']>2){dst.set(',\n pickStr.join(), ',', bnd, ',0.5*(src.get(',\n aPickStr.join(), ')-src.get(',\n bPickStr.join(), ')))}else{dst.set(',\n pickStr.join(), ',', bnd, ',0)};')\n } else {\n code.push('if(s[', bnd, ']>2){diff(', outStr, \n ',src.pick(', aPickStr.join(), ')', boundStr, \n ',src.pick(', bPickStr.join(), ')', boundStr, \n ');}else{zero(', outStr, ');};')\n }\n break\n\n default:\n throw new Error('ndarray-gradient: Invalid boundary condition')\n }\n }\n\n if(cod > 0) {\n code.push('};')\n }\n }\n\n //Enumerate ridges, facets, etc. of hypercube\n for(var i=0; i<(1< 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar isNumeric = require('fast-isnumeric');\n\nvar Registry = require('../../registry');\nvar Lib = require('../../lib');\nvar Template = require('../../plot_api/plot_template');\n\nvar attributes = require('./attributes');\n\n\nmodule.exports = function(traceIn, traceOut, defaultColor, opts) {\n var objName = 'error_' + opts.axis;\n var containerOut = Template.newContainer(traceOut, objName);\n var containerIn = traceIn[objName] || {};\n\n function coerce(attr, dflt) {\n return Lib.coerce(containerIn, containerOut, attributes, attr, dflt);\n }\n\n var hasErrorBars = (\n containerIn.array !== undefined ||\n containerIn.value !== undefined ||\n containerIn.type === 'sqrt'\n );\n\n var visible = coerce('visible', hasErrorBars);\n\n if(visible === false) return;\n\n var type = coerce('type', 'array' in containerIn ? 'data' : 'percent');\n var symmetric = true;\n\n if(type !== 'sqrt') {\n symmetric = coerce('symmetric',\n !((type === 'data' ? 'arrayminus' : 'valueminus') in containerIn));\n }\n\n if(type === 'data') {\n coerce('array');\n coerce('traceref');\n if(!symmetric) {\n coerce('arrayminus');\n coerce('tracerefminus');\n }\n } else if(type === 'percent' || type === 'constant') {\n coerce('value');\n if(!symmetric) coerce('valueminus');\n }\n\n var copyAttr = 'copy_' + opts.inherit + 'style';\n if(opts.inherit) {\n var inheritObj = traceOut['error_' + opts.inherit];\n if((inheritObj || {}).visible) {\n coerce(copyAttr, !(containerIn.color ||\n isNumeric(containerIn.thickness) ||\n isNumeric(containerIn.width)));\n }\n }\n if(!opts.inherit || !containerOut[copyAttr]) {\n coerce('color', defaultColor);\n coerce('thickness');\n coerce('width', Registry.traceIs(traceOut, 'gl3d') ? 0 : 4);\n }\n};\n","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? Object.assign : require(\"./shim\");\n","\"use strict\"\n\nfunction iota(n) {\n var result = new Array(n)\n for(var i=0; i= 0; i--, j++) {\n var si = scl[i];\n sclNew[j] = [1 - si[0], si[1]];\n }\n return sclNew;\n}\n\n/**\n * General colorscale function generator.\n *\n * @param {object} specs output of Colorscale.extractScale or precomputed domain, range.\n * - domain {array}\n * - range {array}\n *\n * @param {object} opts\n * - noNumericCheck {boolean} if true, scale func bypasses numeric checks\n * - returnArray {boolean} if true, scale func return 4-item array instead of color strings\n *\n * @return {function}\n */\nfunction makeColorScaleFunc(specs, opts) {\n opts = opts || {};\n\n var domain = specs.domain;\n var range = specs.range;\n var N = range.length;\n var _range = new Array(N);\n\n for(var i = 0; i < N; i++) {\n var rgba = tinycolor(range[i]).toRgb();\n _range[i] = [rgba.r, rgba.g, rgba.b, rgba.a];\n }\n\n var _sclFunc = d3.scale.linear()\n .domain(domain)\n .range(_range)\n .clamp(true);\n\n var noNumericCheck = opts.noNumericCheck;\n var returnArray = opts.returnArray;\n var sclFunc;\n\n if(noNumericCheck && returnArray) {\n sclFunc = _sclFunc;\n } else if(noNumericCheck) {\n sclFunc = function(v) {\n return colorArray2rbga(_sclFunc(v));\n };\n } else if(returnArray) {\n sclFunc = function(v) {\n if(isNumeric(v)) return _sclFunc(v);\n else if(tinycolor(v).isValid()) return v;\n else return Color.defaultLine;\n };\n } else {\n sclFunc = function(v) {\n if(isNumeric(v)) return colorArray2rbga(_sclFunc(v));\n else if(tinycolor(v).isValid()) return v;\n else return Color.defaultLine;\n };\n }\n\n // colorbar draw looks into the d3 scale closure for domain and range\n sclFunc.domain = _sclFunc.domain;\n sclFunc.range = function() { return range; };\n\n return sclFunc;\n}\n\nfunction makeColorScaleFuncFromTrace(trace, opts) {\n return makeColorScaleFunc(extractScale(trace), opts);\n}\n\nfunction colorArray2rbga(colorArray) {\n var colorObj = {\n r: colorArray[0],\n g: colorArray[1],\n b: colorArray[2],\n a: colorArray[3]\n };\n\n return tinycolor(colorObj).toRgbString();\n}\n\nmodule.exports = {\n hasColorscale: hasColorscale,\n extractOpts: extractOpts,\n extractScale: extractScale,\n flipScale: flipScale,\n makeColorScaleFunc: makeColorScaleFunc,\n makeColorScaleFuncFromTrace: makeColorScaleFuncFromTrace\n};\n","\"use strict\";\n\nvar isValue = require(\"./is-value\");\n\nvar map = { function: true, object: true };\n\nmodule.exports = function (value) { return (isValue(value) && map[typeof value]) || false; };\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar BADNUM = require('../constants/numerical').BADNUM;\n\n/**\n * Convert calcTrace to GeoJSON 'MultiLineString' coordinate arrays\n *\n * @param {object} calcTrace\n * gd.calcdata item.\n * Note that calcTrace[i].lonlat is assumed to be defined\n *\n * @return {array}\n * return line coords array (or array of arrays)\n *\n */\nexports.calcTraceToLineCoords = function(calcTrace) {\n var trace = calcTrace[0].trace;\n var connectgaps = trace.connectgaps;\n\n var coords = [];\n var lineString = [];\n\n for(var i = 0; i < calcTrace.length; i++) {\n var calcPt = calcTrace[i];\n var lonlat = calcPt.lonlat;\n\n if(lonlat[0] !== BADNUM) {\n lineString.push(lonlat);\n } else if(!connectgaps && lineString.length > 0) {\n coords.push(lineString);\n lineString = [];\n }\n }\n\n if(lineString.length > 0) {\n coords.push(lineString);\n }\n\n return coords;\n};\n\n\n/**\n * Make line ('LineString' or 'MultiLineString') GeoJSON\n *\n * @param {array} coords\n * results form calcTraceToLineCoords\n * @return {object} out\n * GeoJSON object\n *\n */\nexports.makeLine = function(coords) {\n if(coords.length === 1) {\n return {\n type: 'LineString',\n coordinates: coords[0]\n };\n } else {\n return {\n type: 'MultiLineString',\n coordinates: coords\n };\n }\n};\n\n/**\n * Make polygon ('Polygon' or 'MultiPolygon') GeoJSON\n *\n * @param {array} coords\n * results form calcTraceToLineCoords\n * @return {object} out\n * GeoJSON object\n */\nexports.makePolygon = function(coords) {\n if(coords.length === 1) {\n return {\n type: 'Polygon',\n coordinates: coords\n };\n } else {\n var _coords = new Array(coords.length);\n\n for(var i = 0; i < coords.length; i++) {\n _coords[i] = [coords[i]];\n }\n\n return {\n type: 'MultiPolygon',\n coordinates: _coords\n };\n }\n};\n\n/**\n * Make blank GeoJSON\n *\n * @return {object}\n * Blank GeoJSON object\n *\n */\nexports.makeBlank = function() {\n return {\n type: 'Point',\n coordinates: []\n };\n};\n","'use strict'\n\nvar num2bn = require('./num-to-bn')\nvar sign = require('./bn-sign')\n\nmodule.exports = rationalize\n\nfunction rationalize(numer, denom) {\n var snumer = sign(numer)\n var sdenom = sign(denom)\n if(snumer === 0) {\n return [num2bn(0), num2bn(1)]\n }\n if(sdenom === 0) {\n return [num2bn(0), num2bn(0)]\n }\n if(sdenom < 0) {\n numer = numer.neg()\n denom = denom.neg()\n }\n var d = numer.gcd(denom)\n if(d.cmpn(1)) {\n return [ numer.div(d), denom.div(d) ]\n }\n return [ numer, denom ]\n}\n","'use strict'\n\nmodule.exports = boundary\n\nvar bnd = require('boundary-cells')\nvar reduce = require('reduce-simplicial-complex')\n\nfunction boundary(cells) {\n return reduce(bnd(cells))\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/sunburst');\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar d3 = require('d3');\nvar Lib = require('../../lib');\nvar Drawing = require('../../components/drawing');\nvar svgTextUtils = require('../../lib/svg_text_utils');\n\nvar partition = require('./partition');\nvar styleOne = require('./style').styleOne;\nvar constants = require('./constants');\nvar helpers = require('../sunburst/helpers');\nvar attachFxHandlers = require('../sunburst/fx');\n\nvar onPathbar = true; // for Ancestors\n\nmodule.exports = function drawAncestors(gd, cd, entry, slices, opts) {\n var barDifY = opts.barDifY;\n var width = opts.width;\n var height = opts.height;\n var viewX = opts.viewX;\n var viewY = opts.viewY;\n var pathSlice = opts.pathSlice;\n var toMoveInsideSlice = opts.toMoveInsideSlice;\n var strTransform = opts.strTransform;\n var hasTransition = opts.hasTransition;\n var handleSlicesExit = opts.handleSlicesExit;\n var makeUpdateSliceInterpolator = opts.makeUpdateSliceInterpolator;\n var makeUpdateTextInterpolator = opts.makeUpdateTextInterpolator;\n var refRect = {};\n\n var fullLayout = gd._fullLayout;\n var cd0 = cd[0];\n var trace = cd0.trace;\n var hierarchy = cd0.hierarchy;\n\n var eachWidth = width / trace._entryDepth;\n\n var pathIds = helpers.listPath(entry.data, 'id');\n\n var sliceData = partition(hierarchy.copy(), [width, height], {\n packing: 'dice',\n pad: {\n inner: 0,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n }\n }).descendants();\n\n // edit slices that show up on graph\n sliceData = sliceData.filter(function(pt) {\n var level = pathIds.indexOf(pt.data.id);\n if(level === -1) return false;\n\n pt.x0 = eachWidth * level;\n pt.x1 = eachWidth * (level + 1);\n pt.y0 = barDifY;\n pt.y1 = barDifY + height;\n\n pt.onPathbar = true;\n\n return true;\n });\n\n sliceData.reverse();\n\n slices = slices.data(sliceData, helpers.getPtId);\n\n slices.enter().append('g')\n .classed('pathbar', true);\n\n handleSlicesExit(slices, onPathbar, refRect, [width, height], pathSlice);\n\n slices.order();\n\n var updateSlices = slices;\n if(hasTransition) {\n updateSlices = updateSlices.transition().each('end', function() {\n // N.B. gd._transitioning is (still) *true* by the time\n // transition updates get here\n var sliceTop = d3.select(this);\n helpers.setSliceCursor(sliceTop, gd, {\n hideOnRoot: false,\n hideOnLeaves: false,\n isTransitioning: false\n });\n });\n }\n\n updateSlices.each(function(pt) {\n pt._hoverX = viewX(pt.x1 - Math.min(width, height) / 2);\n pt._hoverY = viewY(pt.y1 - height / 2);\n\n var sliceTop = d3.select(this);\n\n var slicePath = Lib.ensureSingle(sliceTop, 'path', 'surface', function(s) {\n s.style('pointer-events', 'all');\n });\n\n if(hasTransition) {\n slicePath.transition().attrTween('d', function(pt2) {\n var interp = makeUpdateSliceInterpolator(pt2, onPathbar, refRect, [width, height]);\n return function(t) { return pathSlice(interp(t)); };\n });\n } else {\n slicePath.attr('d', pathSlice);\n }\n\n sliceTop\n .call(attachFxHandlers, entry, gd, cd, {\n styleOne: styleOne,\n eventDataKeys: constants.eventDataKeys,\n transitionTime: constants.CLICK_TRANSITION_TIME,\n transitionEasing: constants.CLICK_TRANSITION_EASING\n })\n .call(helpers.setSliceCursor, gd, {\n hideOnRoot: false,\n hideOnLeaves: false,\n isTransitioning: gd._transitioning\n });\n\n slicePath.call(styleOne, pt, trace, {\n hovered: false\n });\n\n pt._text = (helpers.getPtLabel(pt) || '').split('
').join(' ') || '';\n\n var sliceTextGroup = Lib.ensureSingle(sliceTop, 'g', 'slicetext');\n var sliceText = Lib.ensureSingle(sliceTextGroup, 'text', '', function(s) {\n // prohibit tex interpretation until we can handle\n // tex and regular text together\n s.attr('data-notex', 1);\n });\n\n var font = Lib.ensureUniformFontSize(gd, helpers.determineTextFont(trace, pt, fullLayout.font, {\n onPathbar: true\n }));\n\n sliceText.text(pt._text || ' ') // use one space character instead of a blank string to avoid jumps during transition\n .classed('slicetext', true)\n .attr('text-anchor', 'start')\n .call(Drawing.font, font)\n .call(svgTextUtils.convertToTspans, gd);\n\n pt.textBB = Drawing.bBox(sliceText.node());\n pt.transform = toMoveInsideSlice(pt, {\n fontSize: font.size,\n onPathbar: true\n });\n pt.transform.fontSize = font.size;\n\n if(hasTransition) {\n sliceText.transition().attrTween('transform', function(pt2) {\n var interp = makeUpdateTextInterpolator(pt2, onPathbar, refRect, [width, height]);\n return function(t) { return strTransform(interp(t)); };\n });\n } else {\n sliceText.attr('transform', strTransform(pt));\n }\n });\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar layoutAttributes = require('./layout_attributes');\n\nmodule.exports = function(layoutIn, layoutOut, fullData) {\n var hasTraceType = false;\n\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n\n for(var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n\n if(trace.visible && trace.type === 'waterfall') {\n hasTraceType = true;\n break;\n }\n }\n\n if(hasTraceType) {\n coerce('waterfallmode');\n coerce('waterfallgap', 0.2);\n coerce('waterfallgroupgap');\n }\n};\n","\"use strict\";\n\nmodule.exports = function () {\n\tvar weakMap, obj;\n\n\tif (typeof WeakMap !== \"function\") return false;\n\ttry {\n\t\t// WebKit doesn't support arguments and crashes\n\t\tweakMap = new WeakMap([[obj = {}, \"one\"], [{}, \"two\"], [{}, \"three\"]]);\n\t} catch (e) {\n\t\treturn false;\n\t}\n\tif (String(weakMap) !== \"[object WeakMap]\") return false;\n\tif (typeof weakMap.set !== \"function\") return false;\n\tif (weakMap.set({}, 1) !== weakMap) return false;\n\tif (typeof weakMap.delete !== \"function\") return false;\n\tif (typeof weakMap.has !== \"function\") return false;\n\tif (weakMap.get(obj) !== \"one\") return false;\n\n\treturn true;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar handleArrayContainerDefaults = require('../../plots/array_container_defaults');\n\nvar attributes = require('./attributes');\nvar subTypes = require('../scatter/subtypes');\nvar handleMarkerDefaults = require('../scatter/marker_defaults');\nvar mergeLength = require('../parcoords/merge_length');\nvar isOpenSymbol = require('../scattergl/helpers').isOpenSymbol;\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var dimensions = handleArrayContainerDefaults(traceIn, traceOut, {\n name: 'dimensions',\n handleItemDefaults: dimensionDefaults\n });\n\n var showDiag = coerce('diagonal.visible');\n var showUpper = coerce('showupperhalf');\n var showLower = coerce('showlowerhalf');\n\n var dimLength = mergeLength(traceOut, dimensions, 'values');\n\n if(!dimLength || (!showDiag && !showUpper && !showLower)) {\n traceOut.visible = false;\n return;\n }\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n\n var isOpen = isOpenSymbol(traceOut.marker.symbol);\n var isBubble = subTypes.isBubble(traceOut);\n coerce('marker.line.width', isOpen || isBubble ? 1 : 0);\n\n handleAxisDefaults(traceIn, traceOut, layout, coerce);\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n};\n\nfunction dimensionDefaults(dimIn, dimOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(dimIn, dimOut, attributes.dimensions, attr, dflt);\n }\n\n coerce('label');\n var values = coerce('values');\n\n if(!(values && values.length)) dimOut.visible = false;\n else coerce('visible');\n\n coerce('axis.type');\n coerce('axis.matches');\n}\n\nfunction handleAxisDefaults(traceIn, traceOut, layout, coerce) {\n var dimensions = traceOut.dimensions;\n var dimLength = dimensions.length;\n var showUpper = traceOut.showupperhalf;\n var showLower = traceOut.showlowerhalf;\n var showDiag = traceOut.diagonal.visible;\n var i, j;\n\n var xAxesDflt = new Array(dimLength);\n var yAxesDflt = new Array(dimLength);\n\n for(i = 0; i < dimLength; i++) {\n var suffix = i ? i + 1 : '';\n xAxesDflt[i] = 'x' + suffix;\n yAxesDflt[i] = 'y' + suffix;\n }\n\n var xaxes = coerce('xaxes', xAxesDflt);\n var yaxes = coerce('yaxes', yAxesDflt);\n\n // build list of [x,y] axis corresponding to each dimensions[i],\n // very useful for passing options to regl-splom\n var diag = traceOut._diag = new Array(dimLength);\n\n // lookup for 'drawn' x|y axes, to avoid costly indexOf downstream\n traceOut._xaxes = {};\n traceOut._yaxes = {};\n\n // list of 'drawn' x|y axes, use to generate list of subplots\n var xList = [];\n var yList = [];\n\n function fillAxisStashes(axId, counterAxId, dim, list) {\n if(!axId) return;\n\n var axLetter = axId.charAt(0);\n var stash = layout._splomAxes[axLetter];\n\n traceOut['_' + axLetter + 'axes'][axId] = 1;\n list.push(axId);\n\n if(!(axId in stash)) {\n var s = stash[axId] = {};\n if(dim) {\n s.label = dim.label || '';\n if(dim.visible && dim.axis) {\n if(dim.axis.type) s.type = dim.axis.type;\n if(dim.axis.matches) s.matches = counterAxId;\n }\n }\n }\n }\n\n // cases where showDiag and showLower or showUpper are false\n // no special treatment as the 'drawn' x-axes and y-axes no longer match\n // the dimensions items and xaxes|yaxes 1-to-1\n var mustShiftX = !showDiag && !showLower;\n var mustShiftY = !showDiag && !showUpper;\n\n traceOut._axesDim = {};\n for(i = 0; i < dimLength; i++) {\n var dim = dimensions[i];\n var i0 = i === 0;\n var iN = i === dimLength - 1;\n\n var xaId = (i0 && mustShiftX) || (iN && mustShiftY) ?\n undefined :\n xaxes[i];\n\n var yaId = (i0 && mustShiftY) || (iN && mustShiftX) ?\n undefined :\n yaxes[i];\n\n fillAxisStashes(xaId, yaId, dim, xList);\n fillAxisStashes(yaId, xaId, dim, yList);\n diag[i] = [xaId, yaId];\n traceOut._axesDim[xaId] = i;\n traceOut._axesDim[yaId] = i;\n }\n\n // fill in splom subplot keys\n for(i = 0; i < xList.length; i++) {\n for(j = 0; j < yList.length; j++) {\n var id = xList[i] + yList[j];\n\n if(i > j && showUpper) {\n layout._splomSubplots[id] = 1;\n } else if(i < j && showLower) {\n layout._splomSubplots[id] = 1;\n } else if(i === j && (showDiag || !showLower || !showUpper)) {\n // need to include diagonal subplots when\n // hiding one half and the diagonal\n layout._splomSubplots[id] = 1;\n }\n }\n }\n\n // when lower half is omitted, or when just the diagonal is gone,\n // override grid default to make sure axes remain on\n // the left/bottom of the plot area\n if(!showLower || (!showDiag && showUpper && showLower)) {\n layout._splomGridDflt.xside = 'bottom';\n layout._splomGridDflt.yside = 'left';\n }\n}\n","'use strict'\n\nexports.shader = getShaderReference\nexports.program = createProgram\n\nvar GLError = require(\"./GLError\")\nvar formatCompilerError = require('gl-format-compiler-error');\n\nvar weakMap = typeof WeakMap === 'undefined' ? require('weakmap-shim') : WeakMap\nvar CACHE = new weakMap()\n\nvar SHADER_COUNTER = 0\n\nfunction ShaderReference(id, src, type, shader, programs, count, cache) {\n this.id = id\n this.src = src\n this.type = type\n this.shader = shader\n this.count = count\n this.programs = []\n this.cache = cache\n}\n\nShaderReference.prototype.dispose = function() {\n if(--this.count === 0) {\n var cache = this.cache\n var gl = cache.gl\n\n //Remove program references\n var programs = this.programs\n for(var i=0, n=programs.length; i 1.0){\n return 0\n } else {\n return Math.acos(cosine)\n } \n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","\"use strict\"\n\nvar ch = require(\"incremental-convex-hull\")\nvar uniq = require(\"uniq\")\n\nmodule.exports = triangulate\n\nfunction LiftedPoint(p, i) {\n this.point = p\n this.index = i\n}\n\nfunction compareLifted(a, b) {\n var ap = a.point\n var bp = b.point\n var d = ap.length\n for(var i=0; i= 2) {\n return false\n }\n }\n cell[j] = v\n }\n return true\n })\n } else {\n hull = hull.filter(function(cell) {\n for(var i=0; i<=d; ++i) {\n var v = dindex[cell[i]]\n if(v < 0) {\n return false\n }\n cell[i] = v\n }\n return true\n })\n }\n\n if(d & 1) {\n for(var i=0; i minSensoryWidth ? sensoryWidth / 2 : minSensoryWidth;\n\n g.append('circle')\n .attr({\n 'data-line-point': 'start-point',\n 'cx': xPixelSized ? x2p(shapeOptions.xanchor) + shapeOptions.x0 : x2p(shapeOptions.x0),\n 'cy': yPixelSized ? y2p(shapeOptions.yanchor) - shapeOptions.y0 : y2p(shapeOptions.y0),\n 'r': circleRadius\n })\n .style(circleStyle)\n .classed('cursor-grab', true);\n\n g.append('circle')\n .attr({\n 'data-line-point': 'end-point',\n 'cx': xPixelSized ? x2p(shapeOptions.xanchor) + shapeOptions.x1 : x2p(shapeOptions.x1),\n 'cy': yPixelSized ? y2p(shapeOptions.yanchor) - shapeOptions.y1 : y2p(shapeOptions.y1),\n 'r': circleRadius\n })\n .style(circleStyle)\n .classed('cursor-grab', true);\n\n return g;\n }\n\n function updateDragMode(evt) {\n if(isLine) {\n if(evt.target.tagName === 'path') {\n dragMode = 'move';\n } else {\n dragMode = evt.target.attributes['data-line-point'].value === 'start-point' ?\n 'resize-over-start-point' : 'resize-over-end-point';\n }\n } else {\n // element might not be on screen at time of setup,\n // so obtain bounding box here\n var dragBBox = dragOptions.element.getBoundingClientRect();\n\n // choose 'move' or 'resize'\n // based on initial position of cursor within the drag element\n var w = dragBBox.right - dragBBox.left;\n var h = dragBBox.bottom - dragBBox.top;\n var x = evt.clientX - dragBBox.left;\n var y = evt.clientY - dragBBox.top;\n var cursor = (!isPath && w > MINWIDTH && h > MINHEIGHT && !evt.shiftKey) ?\n dragElement.getCursor(x / w, 1 - y / h) :\n 'move';\n\n setCursor(shapePath, cursor);\n\n // possible values 'move', 'sw', 'w', 'se', 'e', 'ne', 'n', 'nw' and 'w'\n dragMode = cursor.split('-')[0];\n }\n }\n\n function startDrag(evt) {\n // setup update strings and initial values\n if(xPixelSized) {\n xAnchor = x2p(shapeOptions.xanchor);\n }\n if(yPixelSized) {\n yAnchor = y2p(shapeOptions.yanchor);\n }\n\n if(shapeOptions.type === 'path') {\n pathIn = shapeOptions.path;\n } else {\n x0 = xPixelSized ? shapeOptions.x0 : x2p(shapeOptions.x0);\n y0 = yPixelSized ? shapeOptions.y0 : y2p(shapeOptions.y0);\n x1 = xPixelSized ? shapeOptions.x1 : x2p(shapeOptions.x1);\n y1 = yPixelSized ? shapeOptions.y1 : y2p(shapeOptions.y1);\n }\n\n if(x0 < x1) {\n w0 = x0;\n optW = 'x0';\n e0 = x1;\n optE = 'x1';\n } else {\n w0 = x1;\n optW = 'x1';\n e0 = x0;\n optE = 'x0';\n }\n\n // For fixed size shapes take opposing direction of y-axis into account.\n // Hint: For data sized shapes this is done by the y2p function.\n if((!yPixelSized && y0 < y1) || (yPixelSized && y0 > y1)) {\n n0 = y0;\n optN = 'y0';\n s0 = y1;\n optS = 'y1';\n } else {\n n0 = y1;\n optN = 'y1';\n s0 = y0;\n optS = 'y0';\n }\n\n // setup dragMode and the corresponding handler\n updateDragMode(evt);\n renderVisualCues(shapeLayer, shapeOptions);\n deactivateClipPathTemporarily(shapePath, shapeOptions, gd);\n dragOptions.moveFn = (dragMode === 'move') ? moveShape : resizeShape;\n }\n\n function endDrag() {\n setCursor(shapePath);\n removeVisualCues(shapeLayer);\n\n // Don't rely on clipPath being activated during re-layout\n setClipPath(shapePath, gd, shapeOptions);\n Registry.call('_guiRelayout', gd, editHelpers.getUpdateObj());\n }\n\n function abortDrag() {\n removeVisualCues(shapeLayer);\n }\n\n function moveShape(dx, dy) {\n if(shapeOptions.type === 'path') {\n var noOp = function(coord) { return coord; };\n var moveX = noOp;\n var moveY = noOp;\n\n if(xPixelSized) {\n modifyItem('xanchor', shapeOptions.xanchor = p2x(xAnchor + dx));\n } else {\n moveX = function moveX(x) { return p2x(x2p(x) + dx); };\n if(xa && xa.type === 'date') moveX = helpers.encodeDate(moveX);\n }\n\n if(yPixelSized) {\n modifyItem('yanchor', shapeOptions.yanchor = p2y(yAnchor + dy));\n } else {\n moveY = function moveY(y) { return p2y(y2p(y) + dy); };\n if(ya && ya.type === 'date') moveY = helpers.encodeDate(moveY);\n }\n\n modifyItem('path', shapeOptions.path = movePath(pathIn, moveX, moveY));\n } else {\n if(xPixelSized) {\n modifyItem('xanchor', shapeOptions.xanchor = p2x(xAnchor + dx));\n } else {\n modifyItem('x0', shapeOptions.x0 = p2x(x0 + dx));\n modifyItem('x1', shapeOptions.x1 = p2x(x1 + dx));\n }\n\n if(yPixelSized) {\n modifyItem('yanchor', shapeOptions.yanchor = p2y(yAnchor + dy));\n } else {\n modifyItem('y0', shapeOptions.y0 = p2y(y0 + dy));\n modifyItem('y1', shapeOptions.y1 = p2y(y1 + dy));\n }\n }\n\n shapePath.attr('d', getPathString(gd, shapeOptions));\n renderVisualCues(shapeLayer, shapeOptions);\n }\n\n function resizeShape(dx, dy) {\n if(isPath) {\n // TODO: implement path resize, don't forget to update dragMode code\n var noOp = function(coord) { return coord; };\n var moveX = noOp;\n var moveY = noOp;\n\n if(xPixelSized) {\n modifyItem('xanchor', shapeOptions.xanchor = p2x(xAnchor + dx));\n } else {\n moveX = function moveX(x) { return p2x(x2p(x) + dx); };\n if(xa && xa.type === 'date') moveX = helpers.encodeDate(moveX);\n }\n\n if(yPixelSized) {\n modifyItem('yanchor', shapeOptions.yanchor = p2y(yAnchor + dy));\n } else {\n moveY = function moveY(y) { return p2y(y2p(y) + dy); };\n if(ya && ya.type === 'date') moveY = helpers.encodeDate(moveY);\n }\n\n modifyItem('path', shapeOptions.path = movePath(pathIn, moveX, moveY));\n } else if(isLine) {\n if(dragMode === 'resize-over-start-point') {\n var newX0 = x0 + dx;\n var newY0 = yPixelSized ? y0 - dy : y0 + dy;\n modifyItem('x0', shapeOptions.x0 = xPixelSized ? newX0 : p2x(newX0));\n modifyItem('y0', shapeOptions.y0 = yPixelSized ? newY0 : p2y(newY0));\n } else if(dragMode === 'resize-over-end-point') {\n var newX1 = x1 + dx;\n var newY1 = yPixelSized ? y1 - dy : y1 + dy;\n modifyItem('x1', shapeOptions.x1 = xPixelSized ? newX1 : p2x(newX1));\n modifyItem('y1', shapeOptions.y1 = yPixelSized ? newY1 : p2y(newY1));\n }\n } else {\n var newN = (~dragMode.indexOf('n')) ? n0 + dy : n0;\n var newS = (~dragMode.indexOf('s')) ? s0 + dy : s0;\n var newW = (~dragMode.indexOf('w')) ? w0 + dx : w0;\n var newE = (~dragMode.indexOf('e')) ? e0 + dx : e0;\n\n // Do things in opposing direction for y-axis.\n // Hint: for data-sized shapes the reversal of axis direction is done in p2y.\n if(~dragMode.indexOf('n') && yPixelSized) newN = n0 - dy;\n if(~dragMode.indexOf('s') && yPixelSized) newS = s0 - dy;\n\n // Update shape eventually. Again, be aware of the\n // opposing direction of the y-axis of fixed size shapes.\n if((!yPixelSized && newS - newN > MINHEIGHT) ||\n (yPixelSized && newN - newS > MINHEIGHT)) {\n modifyItem(optN, shapeOptions[optN] = yPixelSized ? newN : p2y(newN));\n modifyItem(optS, shapeOptions[optS] = yPixelSized ? newS : p2y(newS));\n }\n if(newE - newW > MINWIDTH) {\n modifyItem(optW, shapeOptions[optW] = xPixelSized ? newW : p2x(newW));\n modifyItem(optE, shapeOptions[optE] = xPixelSized ? newE : p2x(newE));\n }\n }\n\n shapePath.attr('d', getPathString(gd, shapeOptions));\n renderVisualCues(shapeLayer, shapeOptions);\n }\n\n function renderVisualCues(shapeLayer, shapeOptions) {\n if(xPixelSized || yPixelSized) {\n renderAnchor();\n }\n\n function renderAnchor() {\n var isNotPath = shapeOptions.type !== 'path';\n\n // d3 join with dummy data to satisfy d3 data-binding\n var visualCues = shapeLayer.selectAll('.visual-cue').data([0]);\n\n // Enter\n var strokeWidth = 1;\n visualCues.enter()\n .append('path')\n .attr({\n 'fill': '#fff',\n 'fill-rule': 'evenodd',\n 'stroke': '#000',\n 'stroke-width': strokeWidth\n })\n .classed('visual-cue', true);\n\n // Update\n var posX = x2p(\n xPixelSized ?\n shapeOptions.xanchor :\n Lib.midRange(\n isNotPath ?\n [shapeOptions.x0, shapeOptions.x1] :\n helpers.extractPathCoords(shapeOptions.path, constants.paramIsX))\n );\n var posY = y2p(\n yPixelSized ?\n shapeOptions.yanchor :\n Lib.midRange(\n isNotPath ?\n [shapeOptions.y0, shapeOptions.y1] :\n helpers.extractPathCoords(shapeOptions.path, constants.paramIsY))\n );\n\n posX = helpers.roundPositionForSharpStrokeRendering(posX, strokeWidth);\n posY = helpers.roundPositionForSharpStrokeRendering(posY, strokeWidth);\n\n if(xPixelSized && yPixelSized) {\n var crossPath = 'M' + (posX - 1 - strokeWidth) + ',' + (posY - 1 - strokeWidth) +\n 'h-8v2h8 v8h2v-8 h8v-2h-8 v-8h-2 Z';\n visualCues.attr('d', crossPath);\n } else if(xPixelSized) {\n var vBarPath = 'M' + (posX - 1 - strokeWidth) + ',' + (posY - 9 - strokeWidth) +\n 'v18 h2 v-18 Z';\n visualCues.attr('d', vBarPath);\n } else {\n var hBarPath = 'M' + (posX - 9 - strokeWidth) + ',' + (posY - 1 - strokeWidth) +\n 'h18 v2 h-18 Z';\n visualCues.attr('d', hBarPath);\n }\n }\n }\n\n function removeVisualCues(shapeLayer) {\n shapeLayer.selectAll('.visual-cue').remove();\n }\n\n function deactivateClipPathTemporarily(shapePath, shapeOptions, gd) {\n var xref = shapeOptions.xref;\n var yref = shapeOptions.yref;\n var xa = Axes.getFromId(gd, xref);\n var ya = Axes.getFromId(gd, yref);\n\n var clipAxes = '';\n if(xref !== 'paper' && !xa.autorange) clipAxes += xref;\n if(yref !== 'paper' && !ya.autorange) clipAxes += yref;\n\n Drawing.setClipUrl(\n shapePath,\n clipAxes ? 'clip' + gd._fullLayout._uid + clipAxes : null,\n gd\n );\n }\n}\n\nfunction getPathString(gd, options) {\n var type = options.type;\n var xa = Axes.getFromId(gd, options.xref);\n var ya = Axes.getFromId(gd, options.yref);\n var gs = gd._fullLayout._size;\n var x2r, x2p, y2r, y2p;\n var x0, x1, y0, y1;\n\n if(xa) {\n x2r = helpers.shapePositionToRange(xa);\n x2p = function(v) { return xa._offset + xa.r2p(x2r(v, true)); };\n } else {\n x2p = function(v) { return gs.l + gs.w * v; };\n }\n\n if(ya) {\n y2r = helpers.shapePositionToRange(ya);\n y2p = function(v) { return ya._offset + ya.r2p(y2r(v, true)); };\n } else {\n y2p = function(v) { return gs.t + gs.h * (1 - v); };\n }\n\n if(type === 'path') {\n if(xa && xa.type === 'date') x2p = helpers.decodeDate(x2p);\n if(ya && ya.type === 'date') y2p = helpers.decodeDate(y2p);\n return convertPath(options, x2p, y2p);\n }\n\n if(options.xsizemode === 'pixel') {\n var xAnchorPos = x2p(options.xanchor);\n x0 = xAnchorPos + options.x0;\n x1 = xAnchorPos + options.x1;\n } else {\n x0 = x2p(options.x0);\n x1 = x2p(options.x1);\n }\n\n if(options.ysizemode === 'pixel') {\n var yAnchorPos = y2p(options.yanchor);\n y0 = yAnchorPos - options.y0;\n y1 = yAnchorPos - options.y1;\n } else {\n y0 = y2p(options.y0);\n y1 = y2p(options.y1);\n }\n\n if(type === 'line') return 'M' + x0 + ',' + y0 + 'L' + x1 + ',' + y1;\n if(type === 'rect') return 'M' + x0 + ',' + y0 + 'H' + x1 + 'V' + y1 + 'H' + x0 + 'Z';\n\n // circle\n var cx = (x0 + x1) / 2;\n var cy = (y0 + y1) / 2;\n var rx = Math.abs(cx - x0);\n var ry = Math.abs(cy - y0);\n var rArc = 'A' + rx + ',' + ry;\n var rightPt = (cx + rx) + ',' + cy;\n var topPt = cx + ',' + (cy - ry);\n return 'M' + rightPt + rArc + ' 0 1,1 ' + topPt +\n rArc + ' 0 0,1 ' + rightPt + 'Z';\n}\n\n\nfunction convertPath(options, x2p, y2p) {\n var pathIn = options.path;\n var xSizemode = options.xsizemode;\n var ySizemode = options.ysizemode;\n var xAnchor = options.xanchor;\n var yAnchor = options.yanchor;\n\n return pathIn.replace(constants.segmentRE, function(segment) {\n var paramNumber = 0;\n var segmentType = segment.charAt(0);\n var xParams = constants.paramIsX[segmentType];\n var yParams = constants.paramIsY[segmentType];\n var nParams = constants.numParams[segmentType];\n\n var paramString = segment.substr(1).replace(constants.paramRE, function(param) {\n if(xParams[paramNumber]) {\n if(xSizemode === 'pixel') param = x2p(xAnchor) + Number(param);\n else param = x2p(param);\n } else if(yParams[paramNumber]) {\n if(ySizemode === 'pixel') param = y2p(yAnchor) - Number(param);\n else param = y2p(param);\n }\n paramNumber++;\n\n if(paramNumber > nParams) param = 'X';\n return param;\n });\n\n if(paramNumber > nParams) {\n paramString = paramString.replace(/[\\s,]*X.*/, '');\n Lib.log('Ignoring extra params in segment ' + segment);\n }\n\n return segmentType + paramString;\n });\n}\n\nfunction movePath(pathIn, moveX, moveY) {\n return pathIn.replace(constants.segmentRE, function(segment) {\n var paramNumber = 0;\n var segmentType = segment.charAt(0);\n var xParams = constants.paramIsX[segmentType];\n var yParams = constants.paramIsY[segmentType];\n var nParams = constants.numParams[segmentType];\n\n var paramString = segment.substr(1).replace(constants.paramRE, function(param) {\n if(paramNumber >= nParams) return param;\n\n if(xParams[paramNumber]) param = moveX(param);\n else if(yParams[paramNumber]) param = moveY(param);\n\n paramNumber++;\n\n return param;\n });\n\n return segmentType + paramString;\n });\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n/* eslint-disable new-cap */\n\n'use strict';\n\nvar d3 = require('d3');\nvar Lib = require('../../../lib');\nvar Color = require('../../../components/color');\n\nvar micropolar = require('./micropolar');\nvar UndoManager = require('./undo_manager');\nvar extendDeepAll = Lib.extendDeepAll;\n\nvar manager = module.exports = {};\n\nmanager.framework = function(_gd) {\n var config, previousConfigClone, plot, convertedInput, container;\n var undoManager = new UndoManager();\n\n function exports(_inputConfig, _container) {\n if(_container) container = _container;\n d3.select(d3.select(container).node().parentNode).selectAll('.svg-container>*:not(.chart-root)').remove();\n\n config = (!config) ?\n _inputConfig :\n extendDeepAll(config, _inputConfig);\n\n if(!plot) plot = micropolar.Axis();\n convertedInput = micropolar.adapter.plotly().convert(config);\n plot.config(convertedInput).render(container);\n _gd.data = config.data;\n _gd.layout = config.layout;\n manager.fillLayout(_gd);\n return config;\n }\n exports.isPolar = true;\n exports.svg = function() { return plot.svg(); };\n exports.getConfig = function() { return config; };\n exports.getLiveConfig = function() {\n return micropolar.adapter.plotly().convert(plot.getLiveConfig(), true);\n };\n exports.getLiveScales = function() { return {t: plot.angularScale(), r: plot.radialScale()}; };\n exports.setUndoPoint = function() {\n var that = this;\n var configClone = micropolar.util.cloneJson(config);\n (function(_configClone, _previousConfigClone) {\n undoManager.add({\n undo: function() {\n if(_previousConfigClone) that(_previousConfigClone);\n },\n redo: function() {\n that(_configClone);\n }\n });\n })(configClone, previousConfigClone);\n previousConfigClone = micropolar.util.cloneJson(configClone);\n };\n exports.undo = function() { undoManager.undo(); };\n exports.redo = function() { undoManager.redo(); };\n return exports;\n};\n\nmanager.fillLayout = function(_gd) {\n var container = d3.select(_gd).selectAll('.plot-container');\n var paperDiv = container.selectAll('.svg-container');\n var paper = _gd.framework && _gd.framework.svg && _gd.framework.svg();\n var dflts = {\n width: 800,\n height: 600,\n paper_bgcolor: Color.background,\n _container: container,\n _paperdiv: paperDiv,\n _paper: paper\n };\n\n _gd._fullLayout = extendDeepAll(dflts, _gd.layout);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n CLICK_TRANSITION_TIME: 750,\n CLICK_TRANSITION_EASING: 'poly',\n eventDataKeys: [\n // string\n 'currentPath',\n 'root',\n 'entry',\n // no need to add 'parent' here\n\n // percentages i.e. ratios\n 'percentRoot',\n 'percentEntry',\n 'percentParent'\n ],\n gapWithPathbar: 1 // i.e. one pixel\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","/*\n * @copyright 2016 Sean Connelly (@voidqk), http://syntheti.cc\n * @license MIT\n * @preserve Project Home: https://github.com/voidqk/polybooljs\n */\n\nvar BuildLog = require('./lib/build-log');\nvar Epsilon = require('./lib/epsilon');\nvar Intersecter = require('./lib/intersecter');\nvar SegmentChainer = require('./lib/segment-chainer');\nvar SegmentSelector = require('./lib/segment-selector');\nvar GeoJSON = require('./lib/geojson');\n\nvar buildLog = false;\nvar epsilon = Epsilon();\n\nvar PolyBool;\nPolyBool = {\n\t// getter/setter for buildLog\n\tbuildLog: function(bl){\n\t\tif (bl === true)\n\t\t\tbuildLog = BuildLog();\n\t\telse if (bl === false)\n\t\t\tbuildLog = false;\n\t\treturn buildLog === false ? false : buildLog.list;\n\t},\n\t// getter/setter for epsilon\n\tepsilon: function(v){\n\t\treturn epsilon.epsilon(v);\n\t},\n\n\t// core API\n\tsegments: function(poly){\n\t\tvar i = Intersecter(true, epsilon, buildLog);\n\t\tpoly.regions.forEach(i.addRegion);\n\t\treturn {\n\t\t\tsegments: i.calculate(poly.inverted),\n\t\t\tinverted: poly.inverted\n\t\t};\n\t},\n\tcombine: function(segments1, segments2){\n\t\tvar i3 = Intersecter(false, epsilon, buildLog);\n\t\treturn {\n\t\t\tcombined: i3.calculate(\n\t\t\t\tsegments1.segments, segments1.inverted,\n\t\t\t\tsegments2.segments, segments2.inverted\n\t\t\t),\n\t\t\tinverted1: segments1.inverted,\n\t\t\tinverted2: segments2.inverted\n\t\t};\n\t},\n\tselectUnion: function(combined){\n\t\treturn {\n\t\t\tsegments: SegmentSelector.union(combined.combined, buildLog),\n\t\t\tinverted: combined.inverted1 || combined.inverted2\n\t\t}\n\t},\n\tselectIntersect: function(combined){\n\t\treturn {\n\t\t\tsegments: SegmentSelector.intersect(combined.combined, buildLog),\n\t\t\tinverted: combined.inverted1 && combined.inverted2\n\t\t}\n\t},\n\tselectDifference: function(combined){\n\t\treturn {\n\t\t\tsegments: SegmentSelector.difference(combined.combined, buildLog),\n\t\t\tinverted: combined.inverted1 && !combined.inverted2\n\t\t}\n\t},\n\tselectDifferenceRev: function(combined){\n\t\treturn {\n\t\t\tsegments: SegmentSelector.differenceRev(combined.combined, buildLog),\n\t\t\tinverted: !combined.inverted1 && combined.inverted2\n\t\t}\n\t},\n\tselectXor: function(combined){\n\t\treturn {\n\t\t\tsegments: SegmentSelector.xor(combined.combined, buildLog),\n\t\t\tinverted: combined.inverted1 !== combined.inverted2\n\t\t}\n\t},\n\tpolygon: function(segments){\n\t\treturn {\n\t\t\tregions: SegmentChainer(segments.segments, epsilon, buildLog),\n\t\t\tinverted: segments.inverted\n\t\t};\n\t},\n\n\t// GeoJSON converters\n\tpolygonFromGeoJSON: function(geojson){\n\t\treturn GeoJSON.toPolygon(PolyBool, geojson);\n\t},\n\tpolygonToGeoJSON: function(poly){\n\t\treturn GeoJSON.fromPolygon(PolyBool, epsilon, poly);\n\t},\n\n\t// helper functions for common operations\n\tunion: function(poly1, poly2){\n\t\treturn operate(poly1, poly2, PolyBool.selectUnion);\n\t},\n\tintersect: function(poly1, poly2){\n\t\treturn operate(poly1, poly2, PolyBool.selectIntersect);\n\t},\n\tdifference: function(poly1, poly2){\n\t\treturn operate(poly1, poly2, PolyBool.selectDifference);\n\t},\n\tdifferenceRev: function(poly1, poly2){\n\t\treturn operate(poly1, poly2, PolyBool.selectDifferenceRev);\n\t},\n\txor: function(poly1, poly2){\n\t\treturn operate(poly1, poly2, PolyBool.selectXor);\n\t}\n};\n\nfunction operate(poly1, poly2, selector){\n\tvar seg1 = PolyBool.segments(poly1);\n\tvar seg2 = PolyBool.segments(poly2);\n\tvar comb = PolyBool.combine(seg1, seg2);\n\tvar seg3 = selector(comb);\n\treturn PolyBool.polygon(seg3);\n}\n\nif (typeof window === 'object')\n\twindow.PolyBool = PolyBool;\n\nmodule.exports = PolyBool;\n","module.exports = squaredLength;\n\n/**\n * Calculates the squared length of a vec3\n *\n * @param {vec3} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\nfunction squaredLength(a) {\n var x = a[0],\n y = a[1],\n z = a[2]\n return x*x + y*y + z*z\n}","\"use strict\"; \"use restrict\";\n\nvar bits = require(\"bit-twiddle\")\n , UnionFind = require(\"union-find\")\n\n//Returns the dimension of a cell complex\nfunction dimension(cells) {\n var d = 0\n , max = Math.max\n for(var i=0, il=cells.length; i> 1\n , s = compareCells(cells[mid], c)\n if(s <= 0) {\n if(s === 0) {\n r = mid\n }\n lo = mid + 1\n } else if(s > 0) {\n hi = mid - 1\n }\n }\n return r\n}\nexports.findCell = findCell;\n\n//Builds an index for an n-cell. This is more general than dual, but less efficient\nfunction incidence(from_cells, to_cells) {\n var index = new Array(from_cells.length)\n for(var i=0, il=index.length; i= from_cells.length || compareCells(from_cells[idx], b) !== 0) {\n break\n }\n }\n }\n }\n return index\n}\nexports.incidence = incidence\n\n//Computes the dual of the mesh. This is basically an optimized version of buildIndex for the situation where from_cells is just the list of vertices\nfunction dual(cells, vertex_count) {\n if(!vertex_count) {\n return incidence(unique(skeleton(cells, 0)), cells, 0)\n }\n var res = new Array(vertex_count)\n for(var i=0; i>> k) & 1) {\n b.push(c[k])\n }\n }\n result.push(b)\n }\n }\n return normalize(result)\n}\nexports.explode = explode\n\n//Enumerates all of the n-cells of a cell complex\nfunction skeleton(cells, n) {\n if(n < 0) {\n return []\n }\n var result = []\n , k0 = (1<<(n+1))-1\n for(var i=0; i 2 / 3) anchor = 'right';\n else anchor = 'center';\n }\n return {\n center: 0,\n middle: 0,\n left: 0.5,\n bottom: -0.5,\n right: -0.5,\n top: 0.5\n }[anchor];\n }\n\n var annotationIsOffscreen = false;\n var letters = ['x', 'y'];\n\n for(var i = 0; i < letters.length; i++) {\n var axLetter = letters[i];\n var axRef = options[axLetter + 'ref'] || axLetter;\n var tailRef = options['a' + axLetter + 'ref'];\n var ax = {x: xa, y: ya}[axLetter];\n var dimAngle = (textangle + (axLetter === 'x' ? 0 : -90)) * Math.PI / 180;\n // note that these two can be either positive or negative\n var annSizeFromWidth = outerWidth * Math.cos(dimAngle);\n var annSizeFromHeight = outerHeight * Math.sin(dimAngle);\n // but this one is the positive total size\n var annSize = Math.abs(annSizeFromWidth) + Math.abs(annSizeFromHeight);\n var anchor = options[axLetter + 'anchor'];\n var overallShift = options[axLetter + 'shift'] * (axLetter === 'x' ? 1 : -1);\n var posPx = annPosPx[axLetter];\n var basePx;\n var textPadShift;\n var alignPosition;\n var autoAlignFraction;\n var textShift;\n\n /*\n * calculate the *primary* pixel position\n * which is the arrowhead if there is one,\n * otherwise the text anchor point\n */\n if(ax) {\n // check if annotation is off screen, to bypass DOM manipulations\n var posFraction = ax.r2fraction(options[axLetter]);\n if(posFraction < 0 || posFraction > 1) {\n if(tailRef === axRef) {\n posFraction = ax.r2fraction(options['a' + axLetter]);\n if(posFraction < 0 || posFraction > 1) {\n annotationIsOffscreen = true;\n }\n } else {\n annotationIsOffscreen = true;\n }\n }\n basePx = ax._offset + ax.r2p(options[axLetter]);\n autoAlignFraction = 0.5;\n } else {\n if(axLetter === 'x') {\n alignPosition = options[axLetter];\n basePx = gs.l + gs.w * alignPosition;\n } else {\n alignPosition = 1 - options[axLetter];\n basePx = gs.t + gs.h * alignPosition;\n }\n autoAlignFraction = options.showarrow ? 0.5 : alignPosition;\n }\n\n // now translate this into pixel positions of head, tail, and text\n // as well as paddings for autorange\n if(options.showarrow) {\n posPx.head = basePx;\n\n var arrowLength = options['a' + axLetter];\n\n // with an arrow, the text rotates around the anchor point\n textShift = annSizeFromWidth * shiftFraction(0.5, options.xanchor) -\n annSizeFromHeight * shiftFraction(0.5, options.yanchor);\n\n if(tailRef === axRef) {\n posPx.tail = ax._offset + ax.r2p(arrowLength);\n // tail is data-referenced: autorange pads the text in px from the tail\n textPadShift = textShift;\n } else {\n posPx.tail = basePx + arrowLength;\n // tail is specified in px from head, so autorange also pads vs head\n textPadShift = textShift + arrowLength;\n }\n\n posPx.text = posPx.tail + textShift;\n\n // constrain pixel/paper referenced so the draggers are at least\n // partially visible\n var maxPx = fullLayout[(axLetter === 'x') ? 'width' : 'height'];\n if(axRef === 'paper') {\n posPx.head = Lib.constrain(posPx.head, 1, maxPx - 1);\n }\n if(tailRef === 'pixel') {\n var shiftPlus = -Math.max(posPx.tail - 3, posPx.text);\n var shiftMinus = Math.min(posPx.tail + 3, posPx.text) - maxPx;\n if(shiftPlus > 0) {\n posPx.tail += shiftPlus;\n posPx.text += shiftPlus;\n } else if(shiftMinus > 0) {\n posPx.tail -= shiftMinus;\n posPx.text -= shiftMinus;\n }\n }\n\n posPx.tail += overallShift;\n posPx.head += overallShift;\n } else {\n // with no arrow, the text rotates and *then* we put the anchor\n // relative to the new bounding box\n textShift = annSize * shiftFraction(autoAlignFraction, anchor);\n textPadShift = textShift;\n posPx.text = basePx + textShift;\n }\n\n posPx.text += overallShift;\n textShift += overallShift;\n textPadShift += overallShift;\n\n // padplus/minus are used by autorange\n options['_' + axLetter + 'padplus'] = (annSize / 2) + textPadShift;\n options['_' + axLetter + 'padminus'] = (annSize / 2) - textPadShift;\n\n // size/shift are used during dragging\n options['_' + axLetter + 'size'] = annSize;\n options['_' + axLetter + 'shift'] = textShift;\n }\n\n if(annotationIsOffscreen) {\n annTextGroupInner.remove();\n return;\n }\n\n var xShift = 0;\n var yShift = 0;\n\n if(options.align !== 'left') {\n xShift = (annWidth - textWidth) * (options.align === 'center' ? 0.5 : 1);\n }\n if(options.valign !== 'top') {\n yShift = (annHeight - textHeight) * (options.valign === 'middle' ? 0.5 : 1);\n }\n\n if(hasMathjax) {\n mathjaxGroup.select('svg').attr({\n x: borderfull + xShift - 1,\n y: borderfull + yShift\n })\n .call(Drawing.setClipUrl, isSizeConstrained ? annClipID : null, gd);\n } else {\n var texty = borderfull + yShift - anntextBB.top;\n var textx = borderfull + xShift - anntextBB.left;\n\n annText.call(svgTextUtils.positionText, textx, texty)\n .call(Drawing.setClipUrl, isSizeConstrained ? annClipID : null, gd);\n }\n\n annTextClip.select('rect').call(Drawing.setRect, borderfull, borderfull,\n annWidth, annHeight);\n\n annTextBG.call(Drawing.setRect, borderwidth / 2, borderwidth / 2,\n outerWidth - borderwidth, outerHeight - borderwidth);\n\n annTextGroupInner.call(Drawing.setTranslate,\n Math.round(annPosPx.x.text - outerWidth / 2),\n Math.round(annPosPx.y.text - outerHeight / 2));\n\n /*\n * rotate text and background\n * we already calculated the text center position *as rotated*\n * because we needed that for autoranging anyway, so now whether\n * we have an arrow or not, we rotate about the text center.\n */\n annTextGroup.attr({transform: 'rotate(' + textangle + ',' +\n annPosPx.x.text + ',' + annPosPx.y.text + ')'});\n\n /*\n * add the arrow\n * uses options[arrowwidth,arrowcolor,arrowhead] for styling\n * dx and dy are normally zero, but when you are dragging the textbox\n * while the head stays put, dx and dy are the pixel offsets\n */\n var drawArrow = function(dx, dy) {\n annGroup\n .selectAll('.annotation-arrow-g')\n .remove();\n\n var headX = annPosPx.x.head;\n var headY = annPosPx.y.head;\n var tailX = annPosPx.x.tail + dx;\n var tailY = annPosPx.y.tail + dy;\n var textX = annPosPx.x.text + dx;\n var textY = annPosPx.y.text + dy;\n\n // find the edge of the text box, where we'll start the arrow:\n // create transform matrix to rotate the text box corners\n var transform = Lib.rotationXYMatrix(textangle, textX, textY);\n var applyTransform = Lib.apply2DTransform(transform);\n var applyTransform2 = Lib.apply2DTransform2(transform);\n\n // calculate and transform bounding box\n var width = +annTextBG.attr('width');\n var height = +annTextBG.attr('height');\n var xLeft = textX - 0.5 * width;\n var xRight = xLeft + width;\n var yTop = textY - 0.5 * height;\n var yBottom = yTop + height;\n var edges = [\n [xLeft, yTop, xLeft, yBottom],\n [xLeft, yBottom, xRight, yBottom],\n [xRight, yBottom, xRight, yTop],\n [xRight, yTop, xLeft, yTop]\n ].map(applyTransform2);\n\n // Remove the line if it ends inside the box. Use ray\n // casting for rotated boxes: see which edges intersect a\n // line from the arrowhead to far away and reduce with xor\n // to get the parity of the number of intersections.\n if(edges.reduce(function(a, x) {\n return a ^\n !!Lib.segmentsIntersect(headX, headY, headX + 1e6, headY + 1e6,\n x[0], x[1], x[2], x[3]);\n }, false)) {\n // no line or arrow - so quit drawArrow now\n return;\n }\n\n edges.forEach(function(x) {\n var p = Lib.segmentsIntersect(tailX, tailY, headX, headY,\n x[0], x[1], x[2], x[3]);\n if(p) {\n tailX = p.x;\n tailY = p.y;\n }\n });\n\n var strokewidth = options.arrowwidth;\n var arrowColor = options.arrowcolor;\n var arrowSide = options.arrowside;\n\n var arrowGroup = annGroup.append('g')\n .style({opacity: Color.opacity(arrowColor)})\n .classed('annotation-arrow-g', true);\n\n var arrow = arrowGroup.append('path')\n .attr('d', 'M' + tailX + ',' + tailY + 'L' + headX + ',' + headY)\n .style('stroke-width', strokewidth + 'px')\n .call(Color.stroke, Color.rgb(arrowColor));\n\n drawArrowHead(arrow, arrowSide, options);\n\n // the arrow dragger is a small square right at the head, then a line to the tail,\n // all expanded by a stroke width of 6px plus the arrow line width\n if(edits.annotationPosition && arrow.node().parentNode && !subplotId) {\n var arrowDragHeadX = headX;\n var arrowDragHeadY = headY;\n if(options.standoff) {\n var arrowLength = Math.sqrt(Math.pow(headX - tailX, 2) + Math.pow(headY - tailY, 2));\n arrowDragHeadX += options.standoff * (tailX - headX) / arrowLength;\n arrowDragHeadY += options.standoff * (tailY - headY) / arrowLength;\n }\n var arrowDrag = arrowGroup.append('path')\n .classed('annotation-arrow', true)\n .classed('anndrag', true)\n .classed('cursor-move', true)\n .attr({\n d: 'M3,3H-3V-3H3ZM0,0L' + (tailX - arrowDragHeadX) + ',' + (tailY - arrowDragHeadY),\n transform: 'translate(' + arrowDragHeadX + ',' + arrowDragHeadY + ')'\n })\n .style('stroke-width', (strokewidth + 6) + 'px')\n .call(Color.stroke, 'rgba(0,0,0,0)')\n .call(Color.fill, 'rgba(0,0,0,0)');\n\n var annx0, anny0;\n\n // dragger for the arrow & head: translates the whole thing\n // (head/tail/text) all together\n dragElement.init({\n element: arrowDrag.node(),\n gd: gd,\n prepFn: function() {\n var pos = Drawing.getTranslate(annTextGroupInner);\n\n annx0 = pos.x;\n anny0 = pos.y;\n if(xa && xa.autorange) {\n modifyBase(xa._name + '.autorange', true);\n }\n if(ya && ya.autorange) {\n modifyBase(ya._name + '.autorange', true);\n }\n },\n moveFn: function(dx, dy) {\n var annxy0 = applyTransform(annx0, anny0);\n var xcenter = annxy0[0] + dx;\n var ycenter = annxy0[1] + dy;\n annTextGroupInner.call(Drawing.setTranslate, xcenter, ycenter);\n\n modifyItem('x', xa ?\n xa.p2r(xa.r2p(options.x) + dx) :\n (options.x + (dx / gs.w)));\n modifyItem('y', ya ?\n ya.p2r(ya.r2p(options.y) + dy) :\n (options.y - (dy / gs.h)));\n\n if(options.axref === options.xref) {\n modifyItem('ax', xa.p2r(xa.r2p(options.ax) + dx));\n }\n\n if(options.ayref === options.yref) {\n modifyItem('ay', ya.p2r(ya.r2p(options.ay) + dy));\n }\n\n arrowGroup.attr('transform', 'translate(' + dx + ',' + dy + ')');\n annTextGroup.attr({\n transform: 'rotate(' + textangle + ',' +\n xcenter + ',' + ycenter + ')'\n });\n },\n doneFn: function() {\n Registry.call('_guiRelayout', gd, getUpdateObj());\n var notesBox = document.querySelector('.js-notes-box-panel');\n if(notesBox) notesBox.redraw(notesBox.selectedObj);\n }\n });\n }\n };\n\n if(options.showarrow) drawArrow(0, 0);\n\n // user dragging the annotation (text, not arrow)\n if(editTextPosition) {\n var baseTextTransform;\n\n // dragger for the textbox: if there's an arrow, just drag the\n // textbox and tail, leave the head untouched\n dragElement.init({\n element: annTextGroupInner.node(),\n gd: gd,\n prepFn: function() {\n baseTextTransform = annTextGroup.attr('transform');\n },\n moveFn: function(dx, dy) {\n var csr = 'pointer';\n if(options.showarrow) {\n if(options.axref === options.xref) {\n modifyItem('ax', xa.p2r(xa.r2p(options.ax) + dx));\n } else {\n modifyItem('ax', options.ax + dx);\n }\n\n if(options.ayref === options.yref) {\n modifyItem('ay', ya.p2r(ya.r2p(options.ay) + dy));\n } else {\n modifyItem('ay', options.ay + dy);\n }\n\n drawArrow(dx, dy);\n } else if(!subplotId) {\n var xUpdate, yUpdate;\n if(xa) {\n xUpdate = xa.p2r(xa.r2p(options.x) + dx);\n } else {\n var widthFraction = options._xsize / gs.w;\n var xLeft = options.x + (options._xshift - options.xshift) / gs.w - widthFraction / 2;\n\n xUpdate = dragElement.align(xLeft + dx / gs.w,\n widthFraction, 0, 1, options.xanchor);\n }\n\n if(ya) {\n yUpdate = ya.p2r(ya.r2p(options.y) + dy);\n } else {\n var heightFraction = options._ysize / gs.h;\n var yBottom = options.y - (options._yshift + options.yshift) / gs.h - heightFraction / 2;\n\n yUpdate = dragElement.align(yBottom - dy / gs.h,\n heightFraction, 0, 1, options.yanchor);\n }\n modifyItem('x', xUpdate);\n modifyItem('y', yUpdate);\n if(!xa || !ya) {\n csr = dragElement.getCursor(\n xa ? 0.5 : xUpdate,\n ya ? 0.5 : yUpdate,\n options.xanchor, options.yanchor\n );\n }\n } else return;\n\n annTextGroup.attr({\n transform: 'translate(' + dx + ',' + dy + ')' + baseTextTransform\n });\n\n setCursor(annTextGroupInner, csr);\n },\n clickFn: function(_, initialEvent) {\n if(options.captureevents) {\n gd.emit('plotly_clickannotation', makeEventData(initialEvent));\n }\n },\n doneFn: function() {\n setCursor(annTextGroupInner);\n Registry.call('_guiRelayout', gd, getUpdateObj());\n var notesBox = document.querySelector('.js-notes-box-panel');\n if(notesBox) notesBox.redraw(notesBox.selectedObj);\n }\n });\n }\n }\n\n if(edits.annotationText) {\n annText.call(svgTextUtils.makeEditable, {delegate: annTextGroupInner, gd: gd})\n .call(textLayout)\n .on('edit', function(_text) {\n options.text = _text;\n\n this.call(textLayout);\n\n modifyItem('text', _text);\n\n if(xa && xa.autorange) {\n modifyBase(xa._name + '.autorange', true);\n }\n if(ya && ya.autorange) {\n modifyBase(ya._name + '.autorange', true);\n }\n\n Registry.call('_guiRelayout', gd, getUpdateObj());\n });\n } else annText.call(textLayout);\n}\n","\"use strict\";\n\nvar d = require(\"d\")\n , validateSymbol = require(\"../../../validate-symbol\");\n\nvar registry = Object.create(null);\n\nmodule.exports = function (SymbolPolyfill) {\n\treturn Object.defineProperties(SymbolPolyfill, {\n\t\tfor: d(function (key) {\n\t\t\tif (registry[key]) return registry[key];\n\t\t\treturn (registry[key] = SymbolPolyfill(String(key)));\n\t\t}),\n\t\tkeyFor: d(function (symbol) {\n\t\t\tvar key;\n\t\t\tvalidateSymbol(symbol);\n\t\t\tfor (key in registry) {\n\t\t\t\tif (registry[key] === symbol) return key;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t})\n\t});\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar attrs = require('./layout_attributes');\n\nmodule.exports = function(layoutIn, layoutOut, fullData) {\n var subplotsDone = {};\n var sp;\n\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn[sp] || {}, layoutOut[sp], attrs, attr, dflt);\n }\n\n for(var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if(trace.type === 'barpolar' && trace.visible === true) {\n sp = trace.subplot;\n if(!subplotsDone[sp]) {\n coerce('barmode');\n coerce('bargap');\n subplotsDone[sp] = 1;\n }\n }\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\n\n/*\n * Given a 2D array as well as a basis in either direction, this function fills in the\n * 2D array using a combination of smoothing and extrapolation. This is rather important\n * for carpet plots since it's used for layout so that we can't simply omit or blank out\n * points. We need a reasonable guess so that the interpolation puts points somewhere\n * even if we were to somehow represent that the data was missing later on.\n *\n * input:\n * - data: 2D array of arrays\n * - a: array such that a.length === data[0].length\n * - b: array such that b.length === data.length\n */\nmodule.exports = function smoothFill2dArray(data, a, b) {\n var i, j, k;\n var ip = [];\n var jp = [];\n // var neighborCnts = [];\n\n var ni = data[0].length;\n var nj = data.length;\n\n function avgSurrounding(i, j) {\n // As a low-quality start, we can simply average surrounding points (in a not\n // non-uniform grid aware manner):\n var sum = 0.0;\n var val;\n var cnt = 0;\n if(i > 0 && (val = data[j][i - 1]) !== undefined) {\n cnt++;\n sum += val;\n }\n if(i < ni - 1 && (val = data[j][i + 1]) !== undefined) {\n cnt++;\n sum += val;\n }\n if(j > 0 && (val = data[j - 1][i]) !== undefined) {\n cnt++;\n sum += val;\n }\n if(j < nj - 1 && (val = data[j + 1][i]) !== undefined) {\n cnt++;\n sum += val;\n }\n return sum / Math.max(1, cnt);\n }\n\n // This loop iterates over all cells. Any cells that are null will be noted and those\n // are the only points we will loop over and update via laplace's equation. Points with\n // any neighbors will receive the average. If there are no neighboring points, then they\n // will be set to zero. Also as we go, track the maximum magnitude so that we can scale\n // our tolerance accordingly.\n var dmax = 0.0;\n for(i = 0; i < ni; i++) {\n for(j = 0; j < nj; j++) {\n if(data[j][i] === undefined) {\n ip.push(i);\n jp.push(j);\n\n data[j][i] = avgSurrounding(i, j);\n // neighborCnts.push(result.neighbors);\n }\n dmax = Math.max(dmax, Math.abs(data[j][i]));\n }\n }\n\n if(!ip.length) return data;\n\n // The tolerance doesn't need to be excessive. It's just for display positioning\n var dxp, dxm, dap, dam, dbp, dbm, c, d, diff, reldiff, overrelaxation;\n var tol = 1e-5;\n var resid = 0;\n var itermax = 100;\n var iter = 0;\n var n = ip.length;\n do {\n resid = 0;\n // Normally we'd loop in two dimensions, but not all points are blank and need\n // an update, so we instead loop only over the points that were tabulated above\n for(k = 0; k < n; k++) {\n i = ip[k];\n j = jp[k];\n // neighborCnt = neighborCnts[k];\n\n // Track a counter for how many contributions there are. We'll use this counter\n // to average at the end, which reduces to laplace's equation with neumann boundary\n // conditions on the first derivative (second derivative is zero so that we get\n // a nice linear extrapolation at the boundaries).\n var boundaryCnt = 0;\n var newVal = 0;\n\n var d0, d1, x0, x1, i0, j0;\n if(i === 0) {\n // If this lies along the i = 0 boundary, extrapolate from the two points\n // to the right of this point. Note that the finite differences take into\n // account non-uniform grid spacing:\n i0 = Math.min(ni - 1, 2);\n x0 = a[i0];\n x1 = a[1];\n d0 = data[j][i0];\n d1 = data[j][1];\n newVal += d1 + (d1 - d0) * (a[0] - x1) / (x1 - x0);\n boundaryCnt++;\n } else if(i === ni - 1) {\n // If along the high i boundary, extrapolate from the two points to the\n // left of this point\n i0 = Math.max(0, ni - 3);\n x0 = a[i0];\n x1 = a[ni - 2];\n d0 = data[j][i0];\n d1 = data[j][ni - 2];\n newVal += d1 + (d1 - d0) * (a[ni - 1] - x1) / (x1 - x0);\n boundaryCnt++;\n }\n\n if((i === 0 || i === ni - 1) && (j > 0 && j < nj - 1)) {\n // If along the min(i) or max(i) boundaries, also smooth vertically as long\n // as we're not in a corner. Note that the finite differences used here\n // are also aware of nonuniform grid spacing:\n dxp = b[j + 1] - b[j];\n dxm = b[j] - b[j - 1];\n newVal += (dxm * data[j + 1][i] + dxp * data[j - 1][i]) / (dxm + dxp);\n boundaryCnt++;\n }\n\n if(j === 0) {\n // If along the j = 0 boundary, extrpolate this point from the two points\n // above it\n j0 = Math.min(nj - 1, 2);\n x0 = b[j0];\n x1 = b[1];\n d0 = data[j0][i];\n d1 = data[1][i];\n newVal += d1 + (d1 - d0) * (b[0] - x1) / (x1 - x0);\n boundaryCnt++;\n } else if(j === nj - 1) {\n // Same for the max j boundary from the cells below it:\n j0 = Math.max(0, nj - 3);\n x0 = b[j0];\n x1 = b[nj - 2];\n d0 = data[j0][i];\n d1 = data[nj - 2][i];\n newVal += d1 + (d1 - d0) * (b[nj - 1] - x1) / (x1 - x0);\n boundaryCnt++;\n }\n\n if((j === 0 || j === nj - 1) && (i > 0 && i < ni - 1)) {\n // Now average points to the left/right as long as not in a corner:\n dxp = a[i + 1] - a[i];\n dxm = a[i] - a[i - 1];\n newVal += (dxm * data[j][i + 1] + dxp * data[j][i - 1]) / (dxm + dxp);\n boundaryCnt++;\n }\n\n if(!boundaryCnt) {\n // If none of the above conditions were triggered, then this is an interior\n // point and we can just do a laplace equation update. As above, these differences\n // are aware of nonuniform grid spacing:\n dap = a[i + 1] - a[i];\n dam = a[i] - a[i - 1];\n dbp = b[j + 1] - b[j];\n dbm = b[j] - b[j - 1];\n\n // These are just some useful constants for the iteration, which is perfectly\n // straightforward but a little long to derive from f_xx + f_yy = 0.\n c = dap * dam * (dap + dam);\n d = dbp * dbm * (dbp + dbm);\n\n newVal = (c * (dbm * data[j + 1][i] + dbp * data[j - 1][i]) +\n d * (dam * data[j][i + 1] + dap * data[j][i - 1])) /\n (d * (dam + dap) + c * (dbm + dbp));\n } else {\n // If we did have contributions from the boundary conditions, then average\n // the result from the various contributions:\n newVal /= boundaryCnt;\n }\n\n // Jacobi updates are ridiculously slow to converge, so this approach uses a\n // Gauss-seidel iteration which is dramatically faster.\n diff = newVal - data[j][i];\n reldiff = diff / dmax;\n resid += reldiff * reldiff;\n\n // Gauss-Seidel-ish iteration, omega chosen based on heuristics and some\n // quick tests.\n //\n // NB: Don't overrelax the boundarie. Otherwise set an overrelaxation factor\n // which is a little low but safely optimal-ish:\n overrelaxation = boundaryCnt ? 0 : 0.85;\n\n // If there are four non-null neighbors, then we want a simple average without\n // overrelaxation. If all the surrouding points are null, then we want the full\n // overrelaxation\n //\n // Based on experiments, this actually seems to slow down convergence just a bit.\n // I'll leave it here for reference in case this needs to be revisited, but\n // it seems to work just fine without this.\n // if (overrelaxation) overrelaxation *= (4 - neighborCnt) / 4;\n\n data[j][i] += diff * (1 + overrelaxation);\n }\n\n resid = Math.sqrt(resid);\n } while(iter++ < itermax && resid > tol);\n\n Lib.log('Smoother converged to', resid, 'after', iter, 'iterations');\n\n return data;\n};\n","\"use strict\";\n\nvar resolveException = require(\"../lib/resolve-exception\")\n , is = require(\"./is\");\n\nmodule.exports = function (value/*, options*/) {\n\tif (is(value)) return value;\n\treturn resolveException(value, \"Cannot use %v\", arguments[1]);\n};\n","module.exports = create\n\n/**\n * Creates a new, empty vec4\n *\n * @returns {vec4} a new 4D vector\n */\nfunction create () {\n var out = new Float32Array(4)\n out[0] = 0\n out[1] = 0\n out[2] = 0\n out[3] = 0\n return out\n}\n","module.exports = copy\n\n/**\n * Copy the values from one vec4 to another\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the source vector\n * @returns {vec4} out\n */\nfunction copy (out, a) {\n out[0] = a[0]\n out[1] = a[1]\n out[2] = a[2]\n out[3] = a[3]\n return out\n}\n","'use strict'\n\nmodule.exports = createErrorBars\n\nvar createBuffer = require('gl-buffer')\nvar createVAO = require('gl-vao')\nvar createShader = require('./shaders/index')\n\nvar IDENTITY = [1,0,0,0,\n 0,1,0,0,\n 0,0,1,0,\n 0,0,0,1]\n\nfunction ErrorBars(gl, buffer, vao, shader) {\n this.gl = gl\n this.shader = shader\n this.buffer = buffer\n this.vao = vao\n this.pixelRatio = 1\n this.bounds = [[ Infinity, Infinity, Infinity], [-Infinity,-Infinity,-Infinity]]\n this.clipBounds = [[-Infinity,-Infinity,-Infinity], [ Infinity, Infinity, Infinity]]\n this.lineWidth = [1,1,1]\n this.capSize = [10,10,10]\n this.lineCount = [0,0,0]\n this.lineOffset = [0,0,0]\n this.opacity = 1\n this.hasAlpha = false\n}\n\nvar proto = ErrorBars.prototype\n\nproto.isOpaque = function() {\n return !this.hasAlpha\n}\n\nproto.isTransparent = function() {\n return this.hasAlpha\n}\n\nproto.drawTransparent = proto.draw = function(cameraParams) {\n var gl = this.gl\n var uniforms = this.shader.uniforms\n\n this.shader.bind()\n var view = uniforms.view = cameraParams.view || IDENTITY\n var projection = uniforms.projection = cameraParams.projection || IDENTITY\n uniforms.model = cameraParams.model || IDENTITY\n uniforms.clipBounds = this.clipBounds\n uniforms.opacity = this.opacity\n\n\n var cx = view[12]\n var cy = view[13]\n var cz = view[14]\n var cw = view[15]\n\n var isOrtho = cameraParams._ortho || false\n var orthoFix = (isOrtho) ? 2 : 1 // double up padding for orthographic ticks & labels\n var pixelScaleF = orthoFix * this.pixelRatio * (projection[3]*cx + projection[7]*cy + projection[11]*cz + projection[15]*cw) / gl.drawingBufferHeight\n\n this.vao.bind()\n for(var i=0; i<3; ++i) {\n gl.lineWidth(this.lineWidth[i] * this.pixelRatio)\n uniforms.capSize = this.capSize[i] * pixelScaleF\n if (this.lineCount[i]) {\n gl.drawArrays(gl.LINES, this.lineOffset[i], this.lineCount[i])\n }\n }\n this.vao.unbind()\n}\n\nfunction updateBounds(bounds, point) {\n for(var i=0; i<3; ++i) {\n bounds[0][i] = Math.min(bounds[0][i], point[i])\n bounds[1][i] = Math.max(bounds[1][i], point[i])\n }\n}\n\nvar FACE_TABLE = (function(){\n var table = new Array(3)\n for(var d=0; d<3; ++d) {\n var row = []\n for(var j=1; j<=2; ++j) {\n for(var s=-1; s<=1; s+=2) {\n var u = (j+d) % 3\n var y = [0,0,0]\n y[u] = s\n row.push(y)\n }\n }\n table[d] = row\n }\n return table\n})()\n\n\nfunction emitFace(verts, x, c, d) {\n var offsets = FACE_TABLE[d]\n for(var i=0; i 0) {\n var x = p.slice()\n x[j] += e[1][j]\n verts.push(p[0], p[1], p[2],\n c[0], c[1], c[2], c[3],\n 0, 0, 0,\n x[0], x[1], x[2],\n c[0], c[1], c[2], c[3],\n 0, 0, 0)\n updateBounds(this.bounds, x)\n vertexCount += 2 + emitFace(verts, x, c, j)\n }\n }\n this.lineCount[j] = vertexCount - this.lineOffset[j]\n }\n this.buffer.update(verts)\n }\n}\n\nproto.dispose = function() {\n this.shader.dispose()\n this.buffer.dispose()\n this.vao.dispose()\n}\n\nfunction createErrorBars(options) {\n var gl = options.gl\n var buffer = createBuffer(gl)\n var vao = createVAO(gl, [\n {\n buffer: buffer,\n type: gl.FLOAT,\n size: 3,\n offset: 0,\n stride: 40\n },\n {\n buffer: buffer,\n type: gl.FLOAT,\n size: 4,\n offset: 12,\n stride: 40\n },\n {\n buffer: buffer,\n type: gl.FLOAT,\n size: 3,\n offset: 28,\n stride: 40\n }\n ])\n\n var shader = createShader(gl)\n shader.attributes.position.location = 0\n shader.attributes.color.location = 1\n shader.attributes.offset.location = 2\n\n var result = new ErrorBars(gl, buffer, vao, shader)\n result.update(options)\n return result\n}\n","\"use strict\"\n\nvar pool = require(\"typedarray-pool\")\nvar inverse = require(\"invert-permutation\")\n\nfunction rank(permutation) {\n var n = permutation.length\n switch(n) {\n case 0:\n case 1:\n return 0\n case 2:\n return permutation[1]\n default:\n break\n }\n var p = pool.mallocUint32(n)\n var pinv = pool.mallocUint32(n)\n var r = 0, s, t, i\n inverse(permutation, pinv)\n for(i=0; i0; --i) {\n t = pinv[i]\n s = p[i]\n p[i] = p[t]\n p[t] = s\n pinv[i] = pinv[s]\n pinv[s] = t\n r = (r + s) * i\n }\n pool.freeUint32(pinv)\n pool.freeUint32(p)\n return r\n}\n\nfunction unrank(n, r, p) {\n switch(n) {\n case 0:\n if(p) { return p }\n return []\n case 1:\n if(p) {\n p[0] = 0\n return p\n } else {\n return [0]\n }\n case 2:\n if(p) {\n if(r) {\n p[0] = 0\n p[1] = 1\n } else {\n p[0] = 1\n p[1] = 0\n }\n return p\n } else {\n return r ? [0,1] : [1,0]\n }\n default:\n break\n }\n p = p || new Array(n)\n var s, t, i, nf=1\n p[0] = 0\n for(i=1; i0; --i) {\n s = (r / nf)|0\n r = (r - s * nf)|0\n nf = (nf / i)|0\n t = p[i]|0\n p[i] = p[s]|0\n p[s] = t|0\n }\n return p\n}\n\nexports.rank = rank\nexports.unrank = unrank\n","module.exports = transformQuat;\n\n/**\n * Transforms the vec3 with a quat\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the vector to transform\n * @param {quat} q quaternion to transform with\n * @returns {vec3} out\n */\nfunction transformQuat(out, a, q) {\n // benchmarks: http://jsperf.com/quaternion-transform-vec3-implementations\n\n var x = a[0], y = a[1], z = a[2],\n qx = q[0], qy = q[1], qz = q[2], qw = q[3],\n\n // calculate quat * vec\n ix = qw * x + qy * z - qz * y,\n iy = qw * y + qz * x - qx * z,\n iz = qw * z + qx * y - qy * x,\n iw = -qx * x - qy * y - qz * z\n\n // calculate result * inverse quat\n out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy\n out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz\n out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx\n return out\n}","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar c = require('./constants');\nvar d3 = require('d3');\nvar gup = require('../../lib/gup');\nvar Drawing = require('../../components/drawing');\nvar svgUtil = require('../../lib/svg_text_utils');\nvar raiseToTop = require('../../lib').raiseToTop;\nvar cancelEeaseColumn = require('../../lib').cancelTransition;\nvar prepareData = require('./data_preparation_helper');\nvar splitData = require('./data_split_helpers');\nvar Color = require('../../components/color');\n\nmodule.exports = function plot(gd, wrappedTraceHolders) {\n var dynamic = !gd._context.staticPlot;\n\n var table = gd._fullLayout._paper.selectAll('.' + c.cn.table)\n .data(wrappedTraceHolders.map(function(wrappedTraceHolder) {\n var traceHolder = gup.unwrap(wrappedTraceHolder);\n var trace = traceHolder.trace;\n return prepareData(gd, trace);\n }), gup.keyFun);\n\n table.exit().remove();\n\n table.enter()\n .append('g')\n .classed(c.cn.table, true)\n .attr('overflow', 'visible')\n .style('box-sizing', 'content-box')\n .style('position', 'absolute')\n .style('left', 0)\n .style('overflow', 'visible')\n .style('shape-rendering', 'crispEdges')\n .style('pointer-events', 'all');\n\n table\n .attr('width', function(d) {return d.width + d.size.l + d.size.r;})\n .attr('height', function(d) {return d.height + d.size.t + d.size.b;})\n .attr('transform', function(d) {\n return 'translate(' + d.translateX + ',' + d.translateY + ')';\n });\n\n var tableControlView = table.selectAll('.' + c.cn.tableControlView)\n .data(gup.repeat, gup.keyFun);\n\n var cvEnter = tableControlView.enter()\n .append('g')\n .classed(c.cn.tableControlView, true)\n .style('box-sizing', 'content-box');\n if(dynamic) {\n cvEnter\n .on('mousemove', function(d) {\n tableControlView\n .filter(function(dd) {return d === dd;})\n .call(renderScrollbarKit, gd);\n })\n .on('mousewheel', function(d) {\n if(d.scrollbarState.wheeling) return;\n d.scrollbarState.wheeling = true;\n var newY = d.scrollY + d3.event.deltaY;\n var noChange = makeDragRow(gd, tableControlView, null, newY)(d);\n if(!noChange) {\n d3.event.stopPropagation();\n d3.event.preventDefault();\n }\n d.scrollbarState.wheeling = false;\n })\n .call(renderScrollbarKit, gd, true);\n }\n\n tableControlView\n .attr('transform', function(d) {return 'translate(' + d.size.l + ' ' + d.size.t + ')';});\n\n // scrollBackground merely ensures that mouse events are captured even on crazy fast scrollwheeling\n // otherwise rendering glitches may occur\n var scrollBackground = tableControlView.selectAll('.' + c.cn.scrollBackground)\n .data(gup.repeat, gup.keyFun);\n\n scrollBackground.enter()\n .append('rect')\n .classed(c.cn.scrollBackground, true)\n .attr('fill', 'none');\n\n scrollBackground\n .attr('width', function(d) {return d.width;})\n .attr('height', function(d) {return d.height;});\n\n tableControlView.each(function(d) {\n Drawing.setClipUrl(d3.select(this), scrollAreaBottomClipKey(gd, d), gd);\n });\n\n var yColumn = tableControlView.selectAll('.' + c.cn.yColumn)\n .data(function(vm) {return vm.columns;}, gup.keyFun);\n\n yColumn.enter()\n .append('g')\n .classed(c.cn.yColumn, true);\n\n yColumn.exit().remove();\n\n yColumn.attr('transform', function(d) {return 'translate(' + d.x + ' 0)';});\n\n if(dynamic) {\n yColumn.call(d3.behavior.drag()\n .origin(function(d) {\n var movedColumn = d3.select(this);\n easeColumn(movedColumn, d, -c.uplift);\n raiseToTop(this);\n d.calcdata.columnDragInProgress = true;\n renderScrollbarKit(tableControlView.filter(function(dd) {return d.calcdata.key === dd.key;}), gd);\n return d;\n })\n .on('drag', function(d) {\n var movedColumn = d3.select(this);\n var getter = function(dd) {return (d === dd ? d3.event.x : dd.x) + dd.columnWidth / 2;};\n d.x = Math.max(-c.overdrag, Math.min(d.calcdata.width + c.overdrag - d.columnWidth, d3.event.x));\n\n var sortableColumns = flatData(yColumn).filter(function(dd) {return dd.calcdata.key === d.calcdata.key;});\n var newOrder = sortableColumns.sort(function(a, b) {return getter(a) - getter(b);});\n newOrder.forEach(function(dd, i) {\n dd.xIndex = i;\n dd.x = d === dd ? dd.x : dd.xScale(dd);\n });\n\n yColumn.filter(function(dd) {return d !== dd;})\n .transition()\n .ease(c.transitionEase)\n .duration(c.transitionDuration)\n .attr('transform', function(d) {return 'translate(' + d.x + ' 0)';});\n movedColumn\n .call(cancelEeaseColumn)\n .attr('transform', 'translate(' + d.x + ' -' + c.uplift + ' )');\n })\n .on('dragend', function(d) {\n var movedColumn = d3.select(this);\n var p = d.calcdata;\n d.x = d.xScale(d);\n d.calcdata.columnDragInProgress = false;\n easeColumn(movedColumn, d, 0);\n columnMoved(gd, p, p.columns.map(function(dd) {return dd.xIndex;}));\n })\n );\n }\n\n yColumn.each(function(d) {\n Drawing.setClipUrl(d3.select(this), columnBoundaryClipKey(gd, d), gd);\n });\n\n var columnBlock = yColumn.selectAll('.' + c.cn.columnBlock)\n .data(splitData.splitToPanels, gup.keyFun);\n\n columnBlock.enter()\n .append('g')\n .classed(c.cn.columnBlock, true)\n .attr('id', function(d) {return d.key;});\n\n columnBlock\n .style('cursor', function(d) {\n return d.dragHandle ? 'ew-resize' : d.calcdata.scrollbarState.barWiggleRoom ? 'ns-resize' : 'default';\n });\n\n var headerColumnBlock = columnBlock.filter(headerBlock);\n var cellsColumnBlock = columnBlock.filter(cellsBlock);\n\n if(dynamic) {\n cellsColumnBlock.call(d3.behavior.drag()\n .origin(function(d) {\n d3.event.stopPropagation();\n return d;\n })\n .on('drag', makeDragRow(gd, tableControlView, -1))\n .on('dragend', function() {\n // fixme emit plotly notification\n })\n );\n }\n\n // initial rendering: header is rendered first, as it may may have async LaTeX (show header first)\n // but blocks are _entered_ the way they are due to painter's algo (header on top)\n renderColumnCellTree(gd, tableControlView, headerColumnBlock, columnBlock);\n renderColumnCellTree(gd, tableControlView, cellsColumnBlock, columnBlock);\n\n var scrollAreaClip = tableControlView.selectAll('.' + c.cn.scrollAreaClip)\n .data(gup.repeat, gup.keyFun);\n\n scrollAreaClip.enter()\n .append('clipPath')\n .classed(c.cn.scrollAreaClip, true)\n .attr('id', function(d) {return scrollAreaBottomClipKey(gd, d);});\n\n var scrollAreaClipRect = scrollAreaClip.selectAll('.' + c.cn.scrollAreaClipRect)\n .data(gup.repeat, gup.keyFun);\n\n scrollAreaClipRect.enter()\n .append('rect')\n .classed(c.cn.scrollAreaClipRect, true)\n .attr('x', -c.overdrag)\n .attr('y', -c.uplift)\n .attr('fill', 'none');\n\n scrollAreaClipRect\n .attr('width', function(d) {return d.width + 2 * c.overdrag;})\n .attr('height', function(d) {return d.height + c.uplift;});\n\n var columnBoundary = yColumn.selectAll('.' + c.cn.columnBoundary)\n .data(gup.repeat, gup.keyFun);\n\n columnBoundary.enter()\n .append('g')\n .classed(c.cn.columnBoundary, true);\n\n var columnBoundaryClippath = yColumn.selectAll('.' + c.cn.columnBoundaryClippath)\n .data(gup.repeat, gup.keyFun);\n\n // SVG spec doesn't mandate wrapping into a and doesn't seem to cause a speed difference\n columnBoundaryClippath.enter()\n .append('clipPath')\n .classed(c.cn.columnBoundaryClippath, true);\n\n columnBoundaryClippath\n .attr('id', function(d) {return columnBoundaryClipKey(gd, d);});\n\n var columnBoundaryRect = columnBoundaryClippath.selectAll('.' + c.cn.columnBoundaryRect)\n .data(gup.repeat, gup.keyFun);\n\n columnBoundaryRect.enter()\n .append('rect')\n .classed(c.cn.columnBoundaryRect, true)\n .attr('fill', 'none');\n\n columnBoundaryRect\n .attr('width', function(d) { return d.columnWidth + 2 * roundHalfWidth(d); })\n .attr('height', function(d) {return d.calcdata.height + 2 * roundHalfWidth(d) + c.uplift;})\n .attr('x', function(d) { return -roundHalfWidth(d); })\n .attr('y', function(d) { return -roundHalfWidth(d); });\n\n updateBlockYPosition(null, cellsColumnBlock, tableControlView);\n};\n\nfunction roundHalfWidth(d) {\n return Math.ceil(d.calcdata.maxLineWidth / 2);\n}\n\nfunction scrollAreaBottomClipKey(gd, d) {\n return 'clip' + gd._fullLayout._uid + '_scrollAreaBottomClip_' + d.key;\n}\n\nfunction columnBoundaryClipKey(gd, d) {\n return 'clip' + gd._fullLayout._uid + '_columnBoundaryClippath_' + d.calcdata.key + '_' + d.specIndex;\n}\n\nfunction flatData(selection) {\n return [].concat.apply([], selection.map(function(g) {return g;}))\n .map(function(g) {return g.__data__;});\n}\n\nfunction renderScrollbarKit(tableControlView, gd, bypassVisibleBar) {\n function calcTotalHeight(d) {\n var blocks = d.rowBlocks;\n return firstRowAnchor(blocks, blocks.length - 1) + (blocks.length ? rowsHeight(blocks[blocks.length - 1], Infinity) : 1);\n }\n\n var scrollbarKit = tableControlView.selectAll('.' + c.cn.scrollbarKit)\n .data(gup.repeat, gup.keyFun);\n\n scrollbarKit.enter()\n .append('g')\n .classed(c.cn.scrollbarKit, true)\n .style('shape-rendering', 'geometricPrecision');\n\n scrollbarKit\n .each(function(d) {\n var s = d.scrollbarState;\n s.totalHeight = calcTotalHeight(d);\n s.scrollableAreaHeight = d.groupHeight - headerHeight(d);\n s.currentlyVisibleHeight = Math.min(s.totalHeight, s.scrollableAreaHeight);\n s.ratio = s.currentlyVisibleHeight / s.totalHeight;\n s.barLength = Math.max(s.ratio * s.currentlyVisibleHeight, c.goldenRatio * c.scrollbarWidth);\n s.barWiggleRoom = s.currentlyVisibleHeight - s.barLength;\n s.wiggleRoom = Math.max(0, s.totalHeight - s.scrollableAreaHeight);\n s.topY = s.barWiggleRoom === 0 ? 0 : (d.scrollY / s.wiggleRoom) * s.barWiggleRoom;\n s.bottomY = s.topY + s.barLength;\n s.dragMultiplier = s.wiggleRoom / s.barWiggleRoom;\n })\n .attr('transform', function(d) {\n var xPosition = d.width + c.scrollbarWidth / 2 + c.scrollbarOffset;\n return 'translate(' + xPosition + ' ' + headerHeight(d) + ')';\n });\n\n var scrollbar = scrollbarKit.selectAll('.' + c.cn.scrollbar)\n .data(gup.repeat, gup.keyFun);\n\n scrollbar.enter()\n .append('g')\n .classed(c.cn.scrollbar, true);\n\n var scrollbarSlider = scrollbar.selectAll('.' + c.cn.scrollbarSlider)\n .data(gup.repeat, gup.keyFun);\n\n scrollbarSlider.enter()\n .append('g')\n .classed(c.cn.scrollbarSlider, true);\n\n scrollbarSlider\n .attr('transform', function(d) {\n return 'translate(0 ' + (d.scrollbarState.topY || 0) + ')';\n });\n\n var scrollbarGlyph = scrollbarSlider.selectAll('.' + c.cn.scrollbarGlyph)\n .data(gup.repeat, gup.keyFun);\n\n scrollbarGlyph.enter()\n .append('line')\n .classed(c.cn.scrollbarGlyph, true)\n .attr('stroke', 'black')\n .attr('stroke-width', c.scrollbarWidth)\n .attr('stroke-linecap', 'round')\n .attr('y1', c.scrollbarWidth / 2);\n\n scrollbarGlyph\n .attr('y2', function(d) {\n return d.scrollbarState.barLength - c.scrollbarWidth / 2;\n })\n .attr('stroke-opacity', function(d) {\n return d.columnDragInProgress || !d.scrollbarState.barWiggleRoom || bypassVisibleBar ? 0 : 0.4;\n });\n\n // cancel transition: possible pending (also, delayed) transition\n scrollbarGlyph\n .transition().delay(0).duration(0);\n\n scrollbarGlyph\n .transition().delay(c.scrollbarHideDelay).duration(c.scrollbarHideDuration)\n .attr('stroke-opacity', 0);\n\n var scrollbarCaptureZone = scrollbar.selectAll('.' + c.cn.scrollbarCaptureZone)\n .data(gup.repeat, gup.keyFun);\n\n scrollbarCaptureZone.enter()\n .append('line')\n .classed(c.cn.scrollbarCaptureZone, true)\n .attr('stroke', 'white')\n .attr('stroke-opacity', 0.01) // some browser might get rid of a 0 opacity element\n .attr('stroke-width', c.scrollbarCaptureWidth)\n .attr('stroke-linecap', 'butt')\n .attr('y1', 0)\n .on('mousedown', function(d) {\n var y = d3.event.y;\n var bbox = this.getBoundingClientRect();\n var s = d.scrollbarState;\n var pixelVal = y - bbox.top;\n var inverseScale = d3.scale.linear().domain([0, s.scrollableAreaHeight]).range([0, s.totalHeight]).clamp(true);\n if(!(s.topY <= pixelVal && pixelVal <= s.bottomY)) {\n makeDragRow(gd, tableControlView, null, inverseScale(pixelVal - s.barLength / 2))(d);\n }\n })\n .call(d3.behavior.drag()\n .origin(function(d) {\n d3.event.stopPropagation();\n d.scrollbarState.scrollbarScrollInProgress = true;\n return d;\n })\n .on('drag', makeDragRow(gd, tableControlView))\n .on('dragend', function() {\n // fixme emit Plotly event\n })\n );\n\n scrollbarCaptureZone\n .attr('y2', function(d) {\n return d.scrollbarState.scrollableAreaHeight;\n });\n\n // Remove scroll glyph and capture zone on static plots\n // as they don't render properly when converted to PDF\n // in the Chrome PDF viewer\n // https://github.com/plotly/streambed/issues/11618\n if(gd._context.staticPlot) {\n scrollbarGlyph.remove();\n scrollbarCaptureZone.remove();\n }\n}\n\nfunction renderColumnCellTree(gd, tableControlView, columnBlock, allColumnBlock) {\n // fixme this perf hotspot\n // this is performance critical code as scrolling calls it on every revolver switch\n // it appears sufficiently fast but there are plenty of low-hanging fruits for performance optimization\n\n var columnCells = renderColumnCells(columnBlock);\n\n var columnCell = renderColumnCell(columnCells);\n\n supplyStylingValues(columnCell);\n\n var cellRect = renderCellRect(columnCell);\n\n sizeAndStyleRect(cellRect);\n\n var cellTextHolder = renderCellTextHolder(columnCell);\n\n var cellText = renderCellText(cellTextHolder);\n\n setFont(cellText);\n populateCellText(cellText, tableControlView, allColumnBlock, gd);\n\n // doing this at the end when text, and text stlying are set\n setCellHeightAndPositionY(columnCell);\n}\n\nfunction renderColumnCells(columnBlock) {\n var columnCells = columnBlock.selectAll('.' + c.cn.columnCells)\n .data(gup.repeat, gup.keyFun);\n\n columnCells.enter()\n .append('g')\n .classed(c.cn.columnCells, true);\n\n columnCells.exit()\n .remove();\n\n return columnCells;\n}\n\nfunction renderColumnCell(columnCells) {\n var columnCell = columnCells.selectAll('.' + c.cn.columnCell)\n .data(splitData.splitToCells, function(d) {return d.keyWithinBlock;});\n\n columnCell.enter()\n .append('g')\n .classed(c.cn.columnCell, true);\n\n columnCell.exit()\n .remove();\n\n return columnCell;\n}\n\nfunction renderCellRect(columnCell) {\n var cellRect = columnCell.selectAll('.' + c.cn.cellRect)\n .data(gup.repeat, function(d) {return d.keyWithinBlock;});\n\n cellRect.enter()\n .append('rect')\n .classed(c.cn.cellRect, true);\n\n return cellRect;\n}\n\nfunction renderCellText(cellTextHolder) {\n var cellText = cellTextHolder.selectAll('.' + c.cn.cellText)\n .data(gup.repeat, function(d) {return d.keyWithinBlock;});\n\n cellText.enter()\n .append('text')\n .classed(c.cn.cellText, true)\n .style('cursor', function() {return 'auto';})\n .on('mousedown', function() {d3.event.stopPropagation();});\n\n return cellText;\n}\n\nfunction renderCellTextHolder(columnCell) {\n var cellTextHolder = columnCell.selectAll('.' + c.cn.cellTextHolder)\n .data(gup.repeat, function(d) {return d.keyWithinBlock;});\n\n cellTextHolder.enter()\n .append('g')\n .classed(c.cn.cellTextHolder, true)\n .style('shape-rendering', 'geometricPrecision');\n\n return cellTextHolder;\n}\n\nfunction supplyStylingValues(columnCell) {\n columnCell\n .each(function(d, i) {\n var spec = d.calcdata.cells.font;\n var col = d.column.specIndex;\n var font = {\n size: gridPick(spec.size, col, i),\n color: gridPick(spec.color, col, i),\n family: gridPick(spec.family, col, i)\n };\n d.rowNumber = d.key;\n d.align = gridPick(d.calcdata.cells.align, col, i);\n d.cellBorderWidth = gridPick(d.calcdata.cells.line.width, col, i);\n d.font = font;\n });\n}\n\nfunction setFont(cellText) {\n cellText\n .each(function(d) {\n Drawing.font(d3.select(this), d.font);\n });\n}\n\nfunction sizeAndStyleRect(cellRect) {\n cellRect\n .attr('width', function(d) {return d.column.columnWidth;})\n .attr('stroke-width', function(d) {return d.cellBorderWidth;})\n .each(function(d) {\n var atomicSelection = d3.select(this);\n Color.stroke(atomicSelection, gridPick(d.calcdata.cells.line.color, d.column.specIndex, d.rowNumber));\n Color.fill(atomicSelection, gridPick(d.calcdata.cells.fill.color, d.column.specIndex, d.rowNumber));\n });\n}\n\nfunction populateCellText(cellText, tableControlView, allColumnBlock, gd) {\n cellText\n .text(function(d) {\n var col = d.column.specIndex;\n var row = d.rowNumber;\n\n var userSuppliedContent = d.value;\n var stringSupplied = (typeof userSuppliedContent === 'string');\n var hasBreaks = stringSupplied && userSuppliedContent.match(/
/i);\n var userBrokenText = !stringSupplied || hasBreaks;\n d.mayHaveMarkup = stringSupplied && userSuppliedContent.match(/[<&>]/);\n\n var latex = isLatex(userSuppliedContent);\n d.latex = latex;\n\n var prefix = latex ? '' : gridPick(d.calcdata.cells.prefix, col, row) || '';\n var suffix = latex ? '' : gridPick(d.calcdata.cells.suffix, col, row) || '';\n var format = latex ? null : gridPick(d.calcdata.cells.format, col, row) || null;\n\n var prefixSuffixedText = prefix + (format ? d3.format(format)(d.value) : d.value) + suffix;\n\n var hasWrapSplitCharacter;\n d.wrappingNeeded = !d.wrapped && !userBrokenText && !latex && (hasWrapSplitCharacter = hasWrapCharacter(prefixSuffixedText));\n d.cellHeightMayIncrease = hasBreaks || latex || d.mayHaveMarkup || (hasWrapSplitCharacter === void(0) ? hasWrapCharacter(prefixSuffixedText) : hasWrapSplitCharacter);\n d.needsConvertToTspans = d.mayHaveMarkup || d.wrappingNeeded || d.latex;\n\n var textToRender;\n if(d.wrappingNeeded) {\n var hrefPreservedText = c.wrapSplitCharacter === ' ' ? prefixSuffixedText.replace(/ pTop) {\n pages.push(blockIndex);\n }\n pTop += rowsHeight;\n\n // consider this nice final optimization; put it in `for` condition - caveat, currently the\n // block.allRowsHeight relies on being invalidated, so enabling this opt may not be safe\n // if(pages.length > 1) break;\n }\n\n return pages;\n}\n\nfunction updateBlockYPosition(gd, cellsColumnBlock, tableControlView) {\n var d = flatData(cellsColumnBlock)[0];\n if(d === undefined) return;\n var blocks = d.rowBlocks;\n var calcdata = d.calcdata;\n\n var bottom = firstRowAnchor(blocks, blocks.length);\n var scrollHeight = d.calcdata.groupHeight - headerHeight(d);\n var scrollY = calcdata.scrollY = Math.max(0, Math.min(bottom - scrollHeight, calcdata.scrollY));\n\n var pages = findPagesAndCacheHeights(blocks, scrollY, scrollHeight);\n if(pages.length === 1) {\n if(pages[0] === blocks.length - 1) {\n pages.unshift(pages[0] - 1);\n } else {\n pages.push(pages[0] + 1);\n }\n }\n\n // make phased out page jump by 2 while leaving stationary page intact\n if(pages[0] % 2) {\n pages.reverse();\n }\n\n cellsColumnBlock\n .each(function(d, i) {\n // these values will also be needed when a block is translated again due to growing cell height\n d.page = pages[i];\n d.scrollY = scrollY;\n });\n\n cellsColumnBlock\n .attr('transform', function(d) {\n var yTranslate = firstRowAnchor(d.rowBlocks, d.page) - d.scrollY;\n return 'translate(0 ' + yTranslate + ')';\n });\n\n // conditionally rerendering panel 0 and 1\n if(gd) {\n conditionalPanelRerender(gd, tableControlView, cellsColumnBlock, pages, d.prevPages, d, 0);\n conditionalPanelRerender(gd, tableControlView, cellsColumnBlock, pages, d.prevPages, d, 1);\n renderScrollbarKit(tableControlView, gd);\n }\n}\n\nfunction makeDragRow(gd, allTableControlView, optionalMultiplier, optionalPosition) {\n return function dragRow(eventD) {\n // may come from whichever DOM event target: drag, wheel, bar... eventD corresponds to event target\n var d = eventD.calcdata ? eventD.calcdata : eventD;\n var tableControlView = allTableControlView.filter(function(dd) {return d.key === dd.key;});\n var multiplier = optionalMultiplier || d.scrollbarState.dragMultiplier;\n\n var initialScrollY = d.scrollY;\n\n d.scrollY = optionalPosition === void(0) ? d.scrollY + multiplier * d3.event.dy : optionalPosition;\n var cellsColumnBlock = tableControlView.selectAll('.' + c.cn.yColumn).selectAll('.' + c.cn.columnBlock).filter(cellsBlock);\n updateBlockYPosition(gd, cellsColumnBlock, tableControlView);\n\n // return false if we've \"used\" the scroll, ie it did something,\n // so the event shouldn't bubble (if appropriate)\n return d.scrollY === initialScrollY;\n };\n}\n\nfunction conditionalPanelRerender(gd, tableControlView, cellsColumnBlock, pages, prevPages, d, revolverIndex) {\n var shouldComponentUpdate = pages[revolverIndex] !== prevPages[revolverIndex];\n if(shouldComponentUpdate) {\n clearTimeout(d.currentRepaint[revolverIndex]);\n d.currentRepaint[revolverIndex] = setTimeout(function() {\n // setTimeout might lag rendering but yields a smoother scroll, because fast scrolling makes\n // some repaints invisible ie. wasteful (DOM work blocks the main thread)\n var toRerender = cellsColumnBlock.filter(function(d, i) {return i === revolverIndex && pages[i] !== prevPages[i];});\n renderColumnCellTree(gd, tableControlView, toRerender, cellsColumnBlock);\n prevPages[revolverIndex] = pages[revolverIndex];\n });\n }\n}\n\nfunction wrapTextMaker(columnBlock, element, tableControlView, gd) {\n return function wrapText() {\n var cellTextHolder = d3.select(element.parentNode);\n cellTextHolder\n .each(function(d) {\n var fragments = d.fragments;\n cellTextHolder.selectAll('tspan.line').each(function(dd, i) {\n fragments[i].width = this.getComputedTextLength();\n });\n // last element is only for measuring the separator character, so it's ignored:\n var separatorLength = fragments[fragments.length - 1].width;\n var rest = fragments.slice(0, -1);\n var currentRow = [];\n var currentAddition, currentAdditionLength;\n var currentRowLength = 0;\n var rowLengthLimit = d.column.columnWidth - 2 * c.cellPad;\n d.value = '';\n while(rest.length) {\n currentAddition = rest.shift();\n currentAdditionLength = currentAddition.width + separatorLength;\n if(currentRowLength + currentAdditionLength > rowLengthLimit) {\n d.value += currentRow.join(c.wrapSpacer) + c.lineBreaker;\n currentRow = [];\n currentRowLength = 0;\n }\n currentRow.push(currentAddition.text);\n currentRowLength += currentAdditionLength;\n }\n if(currentRowLength) {\n d.value += currentRow.join(c.wrapSpacer);\n }\n d.wrapped = true;\n });\n\n // the pre-wrapped text was rendered only for the text measurements\n cellTextHolder.selectAll('tspan.line').remove();\n\n // resupply text, now wrapped\n populateCellText(cellTextHolder.select('.' + c.cn.cellText), tableControlView, columnBlock, gd);\n d3.select(element.parentNode.parentNode).call(setCellHeightAndPositionY);\n };\n}\n\nfunction updateYPositionMaker(columnBlock, element, tableControlView, gd, d) {\n return function updateYPosition() {\n if(d.settledY) return;\n var cellTextHolder = d3.select(element.parentNode);\n var l = getBlock(d);\n var rowIndex = d.key - l.firstRowIndex;\n\n var declaredRowHeight = l.rows[rowIndex].rowHeight;\n\n var requiredHeight = d.cellHeightMayIncrease ? element.parentNode.getBoundingClientRect().height + 2 * c.cellPad : declaredRowHeight;\n\n var finalHeight = Math.max(requiredHeight, declaredRowHeight);\n var increase = finalHeight - l.rows[rowIndex].rowHeight;\n\n if(increase) {\n // current row height increased\n l.rows[rowIndex].rowHeight = finalHeight;\n\n columnBlock\n .selectAll('.' + c.cn.columnCell)\n .call(setCellHeightAndPositionY);\n\n updateBlockYPosition(null, columnBlock.filter(cellsBlock), 0);\n\n // if d.column.type === 'header', then the scrollbar has to be pushed downward to the scrollable area\n // if d.column.type === 'cells', it can still be relevant if total scrolling content height is less than the\n // scrollable window, as increases to row heights may need scrollbar updates\n renderScrollbarKit(tableControlView, gd, true);\n }\n\n cellTextHolder\n .attr('transform', function() {\n // this code block is only invoked for items where d.cellHeightMayIncrease is truthy\n var element = this;\n var columnCellElement = element.parentNode;\n var box = columnCellElement.getBoundingClientRect();\n var rectBox = d3.select(element.parentNode).select('.' + c.cn.cellRect).node().getBoundingClientRect();\n var currentTransform = element.transform.baseVal.consolidate();\n var yPosition = rectBox.top - box.top + (currentTransform ? currentTransform.matrix.f : c.cellPad);\n return 'translate(' + xPosition(d, d3.select(element.parentNode).select('.' + c.cn.cellTextHolder).node().getBoundingClientRect().width) + ' ' + yPosition + ')';\n });\n\n d.settledY = true;\n };\n}\n\nfunction xPosition(d, optionalWidth) {\n switch(d.align) {\n case 'left': return c.cellPad;\n case 'right': return d.column.columnWidth - (optionalWidth || 0) - c.cellPad;\n case 'center': return (d.column.columnWidth - (optionalWidth || 0)) / 2;\n default: return c.cellPad;\n }\n}\n\nfunction setCellHeightAndPositionY(columnCell) {\n columnCell\n .attr('transform', function(d) {\n var headerHeight = d.rowBlocks[0].auxiliaryBlocks.reduce(function(p, n) {return p + rowsHeight(n, Infinity);}, 0);\n var l = getBlock(d);\n var rowAnchor = rowsHeight(l, d.key);\n var yOffset = rowAnchor + headerHeight;\n return 'translate(0 ' + yOffset + ')';\n })\n .selectAll('.' + c.cn.cellRect)\n .attr('height', function(d) {return getRow(getBlock(d), d.key).rowHeight;});\n}\n\nfunction firstRowAnchor(blocks, page) {\n var total = 0;\n for(var i = page - 1; i >= 0; i--) {\n total += allRowsHeight(blocks[i]);\n }\n return total;\n}\n\nfunction rowsHeight(rowBlock, key) {\n var total = 0;\n for(var i = 0; i < rowBlock.rows.length && rowBlock.rows[i].rowIndex < key; i++) {\n total += rowBlock.rows[i].rowHeight;\n }\n return total;\n}\n\nfunction allRowsHeight(rowBlock) {\n var cached = rowBlock.allRowsHeight;\n\n if(cached !== void(0)) {\n return cached;\n }\n\n var total = 0;\n for(var i = 0; i < rowBlock.rows.length; i++) {\n total += rowBlock.rows[i].rowHeight;\n }\n rowBlock.allRowsHeight = total;\n\n return total;\n}\n\nfunction getBlock(d) {return d.rowBlocks[d.page];}\nfunction getRow(l, i) {return l.rows[i - l.firstRowIndex];}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar scatterAttrs = require('../scatter/attributes');\nvar colorScaleAttrs = require('../../components/colorscale/attributes');\nvar hovertemplateAttrs = require('../../plots/template_attributes').hovertemplateAttrs;\nvar scatterGlAttrs = require('../scattergl/attributes');\nvar cartesianIdRegex = require('../../plots/cartesian/constants').idRegex;\nvar templatedArray = require('../../plot_api/plot_template').templatedArray;\nvar extendFlat = require('../../lib/extend').extendFlat;\n\nvar scatterMarkerAttrs = scatterAttrs.marker;\nvar scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n\nvar markerLineAttrs = extendFlat(colorScaleAttrs('marker.line', {editTypeOverride: 'calc'}), {\n width: extendFlat({}, scatterMarkerLineAttrs.width, {editType: 'calc'}),\n editType: 'calc'\n});\n\nvar markerAttrs = extendFlat(colorScaleAttrs('marker'), {\n symbol: scatterMarkerAttrs.symbol,\n size: extendFlat({}, scatterMarkerAttrs.size, {editType: 'markerSize'}),\n sizeref: scatterMarkerAttrs.sizeref,\n sizemin: scatterMarkerAttrs.sizemin,\n sizemode: scatterMarkerAttrs.sizemode,\n opacity: scatterMarkerAttrs.opacity,\n colorbar: scatterMarkerAttrs.colorbar,\n line: markerLineAttrs,\n editType: 'calc'\n});\n\nmarkerAttrs.color.editType = markerAttrs.cmin.editType = markerAttrs.cmax.editType = 'style';\n\nfunction makeAxesValObject(axLetter) {\n return {\n valType: 'info_array',\n freeLength: true,\n \n editType: 'calc',\n items: {\n valType: 'subplotid',\n regex: cartesianIdRegex[axLetter],\n editType: 'plot'\n },\n \n };\n}\n\nmodule.exports = {\n dimensions: templatedArray('dimension', {\n visible: {\n valType: 'boolean',\n \n dflt: true,\n editType: 'calc',\n \n },\n label: {\n valType: 'string',\n \n editType: 'calc',\n \n },\n values: {\n valType: 'data_array',\n \n editType: 'calc+clearAxisTypes',\n \n },\n\n axis: {\n type: {\n valType: 'enumerated',\n values: ['linear', 'log', 'date', 'category'],\n \n editType: 'calc+clearAxisTypes',\n \n },\n\n // TODO make 'true' the default in v2?\n matches: {\n valType: 'boolean',\n dflt: false,\n \n editType: 'calc',\n \n },\n\n editType: 'calc+clearAxisTypes'\n },\n\n // TODO should add an attribute to pin down x only vars and y only vars\n // like https://seaborn.pydata.org/generated/seaborn.pairplot.html\n // x_vars and y_vars\n\n // maybe more axis defaulting option e.g. `showgrid: false`\n\n editType: 'calc+clearAxisTypes'\n }),\n\n // mode: {}, (only 'markers' for now)\n\n text: extendFlat({}, scatterGlAttrs.text, {\n \n }),\n hovertext: extendFlat({}, scatterGlAttrs.hovertext, {\n \n }),\n\n hovertemplate: hovertemplateAttrs(),\n\n marker: markerAttrs,\n\n xaxes: makeAxesValObject('x'),\n yaxes: makeAxesValObject('y'),\n\n diagonal: {\n visible: {\n valType: 'boolean',\n \n dflt: true,\n editType: 'calc',\n \n },\n\n // type: 'scattergl' | 'histogram' | 'box' | 'violin'\n // ...\n // more options\n\n editType: 'calc'\n },\n\n showupperhalf: {\n valType: 'boolean',\n \n dflt: true,\n editType: 'calc',\n \n },\n showlowerhalf: {\n valType: 'boolean',\n \n dflt: true,\n editType: 'calc',\n \n },\n\n selected: {\n marker: scatterGlAttrs.selected.marker,\n editType: 'calc'\n },\n unselected: {\n marker: scatterGlAttrs.unselected.marker,\n editType: 'calc'\n },\n\n opacity: scatterGlAttrs.opacity\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar Lib = require('../../lib');\n\nvar constants = require('../scatter/constants');\nvar subTypes = require('../scatter/subtypes');\nvar handleMarkerDefaults = require('../scatter/marker_defaults');\nvar handleLineDefaults = require('../scatter/line_defaults');\nvar handleLineShapeDefaults = require('../scatter/line_shape_defaults');\nvar handleTextDefaults = require('../scatter/text_defaults');\nvar handleFillColorDefaults = require('../scatter/fillcolor_defaults');\n\nvar attributes = require('./attributes');\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n coerce('carpet');\n\n // XXX: Don't hard code this\n traceOut.xaxis = 'x';\n traceOut.yaxis = 'y';\n\n var a = coerce('a');\n var b = coerce('b');\n var len = Math.min(a.length, b.length);\n\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n traceOut._length = len;\n\n coerce('text');\n coerce('texttemplate');\n coerce('hovertext');\n\n var defaultMode = len < constants.PTS_LINESONLY ? 'lines+markers' : 'lines';\n coerce('mode', defaultMode);\n\n if(subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n handleLineShapeDefaults(traceIn, traceOut, coerce);\n coerce('connectgaps');\n }\n\n if(subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, {gradient: true});\n }\n\n if(subTypes.hasText(traceOut)) {\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n\n var dfltHoverOn = [];\n\n if(subTypes.hasMarkers(traceOut) || subTypes.hasText(traceOut)) {\n coerce('marker.maxdisplayed');\n dfltHoverOn.push('points');\n }\n\n coerce('fill');\n if(traceOut.fill !== 'none') {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n if(!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);\n }\n\n if(traceOut.fill === 'tonext' || traceOut.fill === 'toself') {\n dfltHoverOn.push('fills');\n }\n\n var hoverOn = coerce('hoveron', dfltHoverOn.join('+') || 'points');\n if(hoverOn !== 'fills') coerce('hovertemplate');\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/streamtube');\n","module.exports = cross;\n\n/**\n * Computes the cross product of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {vec3} out\n */\nfunction cross(out, a, b) {\n var ax = a[0], ay = a[1], az = a[2],\n bx = b[0], by = b[1], bz = b[2]\n\n out[0] = ay * bz - az * by\n out[1] = az * bx - ax * bz\n out[2] = ax * by - ay * bx\n return out\n}","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar Registry = require('../../registry');\n\nvar helpers = require('./helpers');\nvar attributes = require('./attributes');\nvar constants = require('../scatter/constants');\nvar subTypes = require('../scatter/subtypes');\nvar handleXYDefaults = require('../scatter/xy_defaults');\nvar handleMarkerDefaults = require('../scatter/marker_defaults');\nvar handleLineDefaults = require('../scatter/line_defaults');\nvar handleFillColorDefaults = require('../scatter/fillcolor_defaults');\nvar handleTextDefaults = require('../scatter/text_defaults');\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var isOpen = traceIn.marker ? helpers.isOpenSymbol(traceIn.marker.symbol) : false;\n var isBubble = subTypes.isBubble(traceIn);\n\n var len = handleXYDefaults(traceIn, traceOut, layout, coerce);\n if(!len) {\n traceOut.visible = false;\n return;\n }\n var defaultMode = len < constants.PTS_LINESONLY ? 'lines+markers' : 'lines';\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n coerce('mode', defaultMode);\n\n if(subTypes.hasLines(traceOut)) {\n coerce('connectgaps');\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n coerce('line.shape');\n }\n\n if(subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n coerce('marker.line.width', isOpen || isBubble ? 1 : 0);\n }\n\n if(subTypes.hasText(traceOut)) {\n coerce('texttemplate');\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n\n var lineColor = (traceOut.line || {}).color;\n var markerColor = (traceOut.marker || {}).color;\n\n coerce('fill');\n if(traceOut.fill !== 'none') {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n }\n\n var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults');\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'y'});\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'x', inherit: 'y'});\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar Lib = require('../../lib');\n\nvar layoutAttributes = require('./layout_attributes');\n\n\n/**\n * options: inherits outerTicks from axes.handleAxisDefaults\n */\nmodule.exports = function handleTickDefaults(containerIn, containerOut, coerce, options) {\n var tickLen = Lib.coerce2(containerIn, containerOut, layoutAttributes, 'ticklen');\n var tickWidth = Lib.coerce2(containerIn, containerOut, layoutAttributes, 'tickwidth');\n var tickColor = Lib.coerce2(containerIn, containerOut, layoutAttributes, 'tickcolor', containerOut.color);\n var showTicks = coerce('ticks', (options.outerTicks || tickLen || tickWidth || tickColor) ? 'outside' : '');\n\n if(!showTicks) {\n delete containerOut.ticklen;\n delete containerOut.tickwidth;\n delete containerOut.tickcolor;\n }\n};\n","'use strict'\n\nmodule.exports = createLines\n\nvar createBuffer = require('gl-buffer')\nvar createShader = require('gl-shader')\n\nvar shaders = require('./shaders')\n\nfunction Lines(plot, vbo, shader) {\n this.plot = plot\n this.vbo = vbo\n this.shader = shader\n}\n\nvar proto = Lines.prototype\n\nproto.bind = function() {\n var shader = this.shader\n this.vbo.bind()\n this.shader.bind()\n shader.attributes.coord.pointer()\n shader.uniforms.screenBox = this.plot.screenBox\n}\n\nproto.drawLine = (function() {\n var start = [0,0]\n var end = [0,0]\n return function(startX, startY, endX, endY, width, color) {\n var plot = this.plot\n var shader = this.shader\n var gl = plot.gl\n\n start[0] = startX\n start[1] = startY\n end[0] = endX\n end[1] = endY\n\n shader.uniforms.start = start\n shader.uniforms.end = end\n shader.uniforms.width = width * plot.pixelRatio\n shader.uniforms.color = color\n\n gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4)\n }\n}())\n\nproto.dispose = function() {\n this.vbo.dispose()\n this.shader.dispose()\n}\n\nfunction createLines(plot) {\n var gl = plot.gl\n var vbo = createBuffer(gl, [\n -1,-1,\n -1,1,\n 1,-1,\n 1,1])\n var shader = createShader(gl, shaders.lineVert, shaders.lineFrag)\n var lines = new Lines(plot, vbo, shader)\n return lines\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","'use strict'\n\nvar createUniformWrapper = require('./lib/create-uniforms')\nvar createAttributeWrapper = require('./lib/create-attributes')\nvar makeReflect = require('./lib/reflect')\nvar shaderCache = require('./lib/shader-cache')\nvar runtime = require('./lib/runtime-reflect')\nvar GLError = require(\"./lib/GLError\")\n\n//Shader object\nfunction Shader(gl) {\n this.gl = gl\n this.gl.lastAttribCount = 0 // fixme where else should we store info, safe but not nice on the gl object\n\n //Default initialize these to null\n this._vref =\n this._fref =\n this._relink =\n this.vertShader =\n this.fragShader =\n this.program =\n this.attributes =\n this.uniforms =\n this.types = null\n}\n\nvar proto = Shader.prototype\n\nproto.bind = function() {\n if(!this.program) {\n this._relink()\n }\n\n // ensuring that we have the right number of enabled vertex attributes\n var i\n var newAttribCount = this.gl.getProgramParameter(this.program, this.gl.ACTIVE_ATTRIBUTES) // more robust approach\n //var newAttribCount = Object.keys(this.attributes).length // avoids the probably immaterial introspection slowdown\n var oldAttribCount = this.gl.lastAttribCount\n if(newAttribCount > oldAttribCount) {\n for(i = oldAttribCount; i < newAttribCount; i++) {\n this.gl.enableVertexAttribArray(i)\n }\n } else if(oldAttribCount > newAttribCount) {\n for(i = newAttribCount; i < oldAttribCount; i++) {\n this.gl.disableVertexAttribArray(i)\n }\n }\n\n this.gl.lastAttribCount = newAttribCount\n\n this.gl.useProgram(this.program)\n}\n\nproto.dispose = function() {\n\n // disabling vertex attributes so new shader starts with zero\n // and it's also useful if all shaders are disposed but the\n // gl context is reused for subsequent replotting\n var oldAttribCount = this.gl.lastAttribCount\n for (var i = 0; i < oldAttribCount; i++) {\n this.gl.disableVertexAttribArray(i)\n }\n this.gl.lastAttribCount = 0\n\n if(this._fref) {\n this._fref.dispose()\n }\n if(this._vref) {\n this._vref.dispose()\n }\n this.attributes =\n this.types =\n this.vertShader =\n this.fragShader =\n this.program =\n this._relink =\n this._fref =\n this._vref = null\n}\n\nfunction compareAttributes(a, b) {\n if(a.name < b.name) {\n return -1\n }\n return 1\n}\n\n//Update export hook for glslify-live\nproto.update = function(\n vertSource\n , fragSource\n , uniforms\n , attributes) {\n\n //If only one object passed, assume glslify style output\n if(!fragSource || arguments.length === 1) {\n var obj = vertSource\n vertSource = obj.vertex\n fragSource = obj.fragment\n uniforms = obj.uniforms\n attributes = obj.attributes\n }\n\n var wrapper = this\n var gl = wrapper.gl\n\n //Compile vertex and fragment shaders\n var pvref = wrapper._vref\n wrapper._vref = shaderCache.shader(gl, gl.VERTEX_SHADER, vertSource)\n if(pvref) {\n pvref.dispose()\n }\n wrapper.vertShader = wrapper._vref.shader\n var pfref = this._fref\n wrapper._fref = shaderCache.shader(gl, gl.FRAGMENT_SHADER, fragSource)\n if(pfref) {\n pfref.dispose()\n }\n wrapper.fragShader = wrapper._fref.shader\n\n //If uniforms/attributes is not specified, use RT reflection\n if(!uniforms || !attributes) {\n\n //Create initial test program\n var testProgram = gl.createProgram()\n gl.attachShader(testProgram, wrapper.fragShader)\n gl.attachShader(testProgram, wrapper.vertShader)\n gl.linkProgram(testProgram)\n if(!gl.getProgramParameter(testProgram, gl.LINK_STATUS)) {\n var errLog = gl.getProgramInfoLog(testProgram)\n throw new GLError(errLog, 'Error linking program:' + errLog)\n }\n\n //Load data from runtime\n uniforms = uniforms || runtime.uniforms(gl, testProgram)\n attributes = attributes || runtime.attributes(gl, testProgram)\n\n //Release test program\n gl.deleteProgram(testProgram)\n }\n\n //Sort attributes lexicographically\n // overrides undefined WebGL behavior for attribute locations\n attributes = attributes.slice()\n attributes.sort(compareAttributes)\n\n //Convert attribute types, read out locations\n var attributeUnpacked = []\n var attributeNames = []\n var attributeLocations = []\n var i\n for(i=0; i= 0) {\n var size = attr.type.charAt(attr.type.length-1)|0\n var locVector = new Array(size)\n for(var j=0; j= 0) {\n curLocation += 1\n }\n attributeLocations[i] = curLocation\n }\n }\n\n //Rebuild program and recompute all uniform locations\n var uniformLocations = new Array(uniforms.length)\n function relink() {\n wrapper.program = shaderCache.program(\n gl\n , wrapper._vref\n , wrapper._fref\n , attributeNames\n , attributeLocations)\n\n for(var i=0; i maxNorm) {\n\t\t\tmaxNorm = vec3.length(u);\n\t\t}\n\t\tif (i) {\n\t\t\t// Find vector scale [w/ units of time] using \"successive\" positions\n\t\t\t// (not \"adjacent\" with would be O(n^2)),\n\t\t\t//\n\t\t\t// The vector scale corresponds to the minimum \"time\" to travel across two\n\t\t\t// two adjacent positions at the average velocity of those two adjacent positions\n\n\t\t\tvar q = (2 * vec3.distance(p2, p) / (vec3.length(u2) + vec3.length(u)));\n\t\t\tif(q) {\n\t\t\t\tvectorScale = Math.min(vectorScale, q);\n\t\t\t\tskipIt = false;\n\t\t\t} else {\n\t\t\t\tskipIt = true;\n\t\t\t}\n\t\t}\n\t\tif(!skipIt) {\n\t\t\tp2 = p;\n\t\t\tu2 = u;\n\t\t}\n\t\tpositionVectors.push(u);\n\t}\n\tvar minV = [minX, minY, minZ];\n\tvar maxV = [maxX, maxY, maxZ];\n\tif (bounds) {\n\t\tbounds[0] = minV;\n\t\tbounds[1] = maxV;\n\t}\n\tif (maxNorm === 0) {\n\t\tmaxNorm = 1;\n\t}\n\n\t// Inverted max norm would map vector with norm maxNorm to 1 coord space units in length\n\tvar invertedMaxNorm = 1 / maxNorm;\n\n\tif (!isFinite(vectorScale)) {\n\t\tvectorScale = 1.0;\n\t}\n\tgeo.vectorScale = vectorScale;\n\n\tvar coneScale = vectorfield.coneSize || 0.5;\n\n\tif (vectorfield.absoluteConeSize) {\n\t\tconeScale = vectorfield.absoluteConeSize * invertedMaxNorm;\n\t}\n\n\tgeo.coneScale = coneScale;\n\n\t// Build the cone model.\n\tfor (var i = 0, j = 0; i < positions.length; i++) {\n\t\tvar p = positions[i];\n\t\tvar x = p[0], y = p[1], z = p[2];\n\t\tvar d = positionVectors[i];\n\t\tvar intensity = vec3.length(d) * invertedMaxNorm;\n\t\tfor (var k = 0, l = 8; k < l; k++) {\n\t\t\tgeo.positions.push([x, y, z, j++]);\n\t\t\tgeo.positions.push([x, y, z, j++]);\n\t\t\tgeo.positions.push([x, y, z, j++]);\n\t\t\tgeo.positions.push([x, y, z, j++]);\n\t\t\tgeo.positions.push([x, y, z, j++]);\n\t\t\tgeo.positions.push([x, y, z, j++]);\n\n\t\t\tgeo.vectors.push(d);\n\t\t\tgeo.vectors.push(d);\n\t\t\tgeo.vectors.push(d);\n\t\t\tgeo.vectors.push(d);\n\t\t\tgeo.vectors.push(d);\n\t\t\tgeo.vectors.push(d);\n\n\t\t\tgeo.vertexIntensity.push(intensity, intensity, intensity);\n\t\t\tgeo.vertexIntensity.push(intensity, intensity, intensity);\n\n\t\t\tvar m = geo.positions.length;\n\t\t\tgeo.cells.push([m-6, m-5, m-4], [m-3, m-2, m-1]);\n\t\t}\n\t}\n\n\treturn geo;\n};\n\nvar shaders = require('./lib/shaders');\nmodule.exports.createMesh = require('./create_mesh');\nmodule.exports.createConeMesh = function(gl, params) {\n\treturn module.exports.createMesh(gl, params, {\n\t\tshaders: shaders,\n\t\ttraceType: 'cone'\n\t});\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nexports.getDimIndex = function getDimIndex(trace, ax) {\n var axId = ax._id;\n var axLetter = axId.charAt(0);\n var ind = {x: 0, y: 1}[axLetter];\n var visibleDims = trace._visibleDims;\n\n for(var k = 0; k < visibleDims.length; k++) {\n var i = visibleDims[k];\n if(trace._diag[i][ind] === axId) return k;\n }\n return false;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\n\n// for automatic alignment on dragging, <1/3 means left align,\n// >2/3 means right, and between is center. Pick the right fraction\n// based on where you are, and return the fraction corresponding to\n// that position on the object\nmodule.exports = function align(v, dv, v0, v1, anchor) {\n var vmin = (v - v0) / (v1 - v0);\n var vmax = vmin + dv / (v1 - v0);\n var vc = (vmin + vmax) / 2;\n\n // explicitly specified anchor\n if(anchor === 'left' || anchor === 'bottom') return vmin;\n if(anchor === 'center' || anchor === 'middle') return vc;\n if(anchor === 'right' || anchor === 'top') return vmax;\n\n // automatic based on position\n if(vmin < (2 / 3) - vc) return vmin;\n if(vmax > (4 / 3) - vc) return vmax;\n return vc;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar createScatter = require('regl-scatter2d');\nvar createLine = require('regl-line2d');\nvar createError = require('regl-error2d');\nvar Text = require('gl-text');\n\nvar Lib = require('../../lib');\nvar prepareRegl = require('../../lib/prepare_regl');\n\nvar subTypes = require('../scatter/subtypes');\nvar linkTraces = require('../scatter/link_traces');\n\nvar styleTextSelection = require('./edit_style').styleTextSelection;\n\nfunction getViewport(fullLayout, xaxis, yaxis) {\n var gs = fullLayout._size;\n var width = fullLayout.width;\n var height = fullLayout.height;\n return [\n gs.l + xaxis.domain[0] * gs.w,\n gs.b + yaxis.domain[0] * gs.h,\n (width - gs.r) - (1 - xaxis.domain[1]) * gs.w,\n (height - gs.t) - (1 - yaxis.domain[1]) * gs.h\n ];\n}\n\nmodule.exports = function plot(gd, subplot, cdata) {\n if(!cdata.length) return;\n\n var fullLayout = gd._fullLayout;\n var scene = subplot._scene;\n var xaxis = subplot.xaxis;\n var yaxis = subplot.yaxis;\n var i, j;\n\n // we may have more subplots than initialized data due to Axes.getSubplots method\n if(!scene) return;\n\n var success = prepareRegl(gd, ['ANGLE_instanced_arrays', 'OES_element_index_uint']);\n if(!success) {\n scene.init();\n return;\n }\n\n var count = scene.count;\n var regl = fullLayout._glcanvas.data()[0].regl;\n\n // that is needed for fills\n linkTraces(gd, subplot, cdata);\n\n if(scene.dirty) {\n // make sure scenes are created\n if(scene.error2d === true) {\n scene.error2d = createError(regl);\n }\n if(scene.line2d === true) {\n scene.line2d = createLine(regl);\n }\n if(scene.scatter2d === true) {\n scene.scatter2d = createScatter(regl);\n }\n if(scene.fill2d === true) {\n scene.fill2d = createLine(regl);\n }\n if(scene.glText === true) {\n scene.glText = new Array(count);\n for(i = 0; i < count; i++) {\n scene.glText[i] = new Text(regl);\n }\n }\n\n // update main marker options\n if(scene.glText) {\n if(count > scene.glText.length) {\n // add gl text marker\n var textsToAdd = count - scene.glText.length;\n for(i = 0; i < textsToAdd; i++) {\n scene.glText.push(new Text(regl));\n }\n } else if(count < scene.glText.length) {\n // remove gl text marker\n var textsToRemove = scene.glText.length - count;\n var removedTexts = scene.glText.splice(count, textsToRemove);\n removedTexts.forEach(function(text) { text.destroy(); });\n }\n\n for(i = 0; i < count; i++) {\n scene.glText[i].update(scene.textOptions[i]);\n }\n }\n if(scene.line2d) {\n scene.line2d.update(scene.lineOptions);\n scene.lineOptions = scene.lineOptions.map(function(lineOptions) {\n if(lineOptions && lineOptions.positions) {\n var srcPos = lineOptions.positions;\n\n var firstptdef = 0;\n while(firstptdef < srcPos.length && (isNaN(srcPos[firstptdef]) || isNaN(srcPos[firstptdef + 1]))) {\n firstptdef += 2;\n }\n var lastptdef = srcPos.length - 2;\n while(lastptdef > firstptdef && (isNaN(srcPos[lastptdef]) || isNaN(srcPos[lastptdef + 1]))) {\n lastptdef -= 2;\n }\n lineOptions.positions = srcPos.slice(firstptdef, lastptdef + 2);\n }\n return lineOptions;\n });\n scene.line2d.update(scene.lineOptions);\n }\n if(scene.error2d) {\n var errorBatch = (scene.errorXOptions || []).concat(scene.errorYOptions || []);\n scene.error2d.update(errorBatch);\n }\n if(scene.scatter2d) {\n scene.scatter2d.update(scene.markerOptions);\n }\n\n // fill requires linked traces, so we generate it's positions here\n scene.fillOrder = Lib.repeat(null, count);\n if(scene.fill2d) {\n scene.fillOptions = scene.fillOptions.map(function(fillOptions, i) {\n var cdscatter = cdata[i];\n if(!fillOptions || !cdscatter || !cdscatter[0] || !cdscatter[0].trace) return;\n var cd = cdscatter[0];\n var trace = cd.trace;\n var stash = cd.t;\n var lineOptions = scene.lineOptions[i];\n var last, j;\n\n var fillData = [];\n if(trace._ownfill) fillData.push(i);\n if(trace._nexttrace) fillData.push(i + 1);\n if(fillData.length) scene.fillOrder[i] = fillData;\n\n var pos = [];\n var srcPos = (lineOptions && lineOptions.positions) || stash.positions;\n var firstptdef, lastptdef;\n\n if(trace.fill === 'tozeroy') {\n firstptdef = 0;\n while(firstptdef < srcPos.length && isNaN(srcPos[firstptdef + 1])) {\n firstptdef += 2;\n }\n lastptdef = srcPos.length - 2;\n while(lastptdef > firstptdef && isNaN(srcPos[lastptdef + 1])) {\n lastptdef -= 2;\n }\n if(srcPos[firstptdef + 1] !== 0) {\n pos = [srcPos[firstptdef], 0];\n }\n pos = pos.concat(srcPos.slice(firstptdef, lastptdef + 2));\n if(srcPos[lastptdef + 1] !== 0) {\n pos = pos.concat([srcPos[lastptdef], 0]);\n }\n } else if(trace.fill === 'tozerox') {\n firstptdef = 0;\n while(firstptdef < srcPos.length && isNaN(srcPos[firstptdef])) {\n firstptdef += 2;\n }\n lastptdef = srcPos.length - 2;\n while(lastptdef > firstptdef && isNaN(srcPos[lastptdef])) {\n lastptdef -= 2;\n }\n if(srcPos[firstptdef] !== 0) {\n pos = [0, srcPos[firstptdef + 1]];\n }\n pos = pos.concat(srcPos.slice(firstptdef, lastptdef + 2));\n if(srcPos[lastptdef] !== 0) {\n pos = pos.concat([ 0, srcPos[lastptdef + 1]]);\n }\n } else if(trace.fill === 'toself' || trace.fill === 'tonext') {\n pos = [];\n last = 0;\n for(j = 0; j < srcPos.length; j += 2) {\n if(isNaN(srcPos[j]) || isNaN(srcPos[j + 1])) {\n pos = pos.concat(srcPos.slice(last, j));\n pos.push(srcPos[last], srcPos[last + 1]);\n last = j + 2;\n }\n }\n pos = pos.concat(srcPos.slice(last));\n if(last) {\n pos.push(srcPos[last], srcPos[last + 1]);\n }\n } else {\n var nextTrace = trace._nexttrace;\n\n if(nextTrace) {\n var nextOptions = scene.lineOptions[i + 1];\n\n if(nextOptions) {\n var nextPos = nextOptions.positions;\n if(trace.fill === 'tonexty') {\n pos = srcPos.slice();\n\n for(i = Math.floor(nextPos.length / 2); i--;) {\n var xx = nextPos[i * 2];\n var yy = nextPos[i * 2 + 1];\n if(isNaN(xx) || isNaN(yy)) continue;\n pos.push(xx, yy);\n }\n fillOptions.fill = nextTrace.fillcolor;\n }\n }\n }\n }\n\n // detect prev trace positions to exclude from current fill\n if(trace._prevtrace && trace._prevtrace.fill === 'tonext') {\n var prevLinePos = scene.lineOptions[i - 1].positions;\n\n // FIXME: likely this logic should be tested better\n var offset = pos.length / 2;\n last = offset;\n var hole = [last];\n for(j = 0; j < prevLinePos.length; j += 2) {\n if(isNaN(prevLinePos[j]) || isNaN(prevLinePos[j + 1])) {\n hole.push(j / 2 + offset + 1);\n last = j + 2;\n }\n }\n\n pos = pos.concat(prevLinePos);\n fillOptions.hole = hole;\n }\n fillOptions.fillmode = trace.fill;\n fillOptions.opacity = trace.opacity;\n fillOptions.positions = pos;\n\n return fillOptions;\n });\n\n scene.fill2d.update(scene.fillOptions);\n }\n }\n\n // form batch arrays, and check for selected points\n var dragmode = fullLayout.dragmode;\n var selectMode = dragmode === 'lasso' || dragmode === 'select';\n var clickSelectEnabled = fullLayout.clickmode.indexOf('select') > -1;\n\n for(i = 0; i < count; i++) {\n var cd0 = cdata[i][0];\n var trace = cd0.trace;\n var stash = cd0.t;\n var index = stash.index;\n var len = trace._length;\n var x = stash.x;\n var y = stash.y;\n\n if(trace.selectedpoints || selectMode || clickSelectEnabled) {\n if(!selectMode) selectMode = true;\n\n // regenerate scene batch, if traces number changed during selection\n if(trace.selectedpoints) {\n var selPts = scene.selectBatch[index] = Lib.selIndices2selPoints(trace);\n\n var selDict = {};\n for(j = 0; j < selPts.length; j++) {\n selDict[selPts[j]] = 1;\n }\n var unselPts = [];\n for(j = 0; j < len; j++) {\n if(!selDict[j]) unselPts.push(j);\n }\n scene.unselectBatch[index] = unselPts;\n }\n\n // precalculate px coords since we are not going to pan during select\n // TODO, could do better here e.g.\n // - spin that in a webworker\n // - compute selection from polygons in data coordinates\n // (maybe just for linear axes)\n var xpx = stash.xpx = new Array(len);\n var ypx = stash.ypx = new Array(len);\n for(j = 0; j < len; j++) {\n xpx[j] = xaxis.c2p(x[j]);\n ypx[j] = yaxis.c2p(y[j]);\n }\n } else {\n stash.xpx = stash.ypx = null;\n }\n }\n\n if(selectMode) {\n // create scatter instance by cloning scatter2d\n if(!scene.select2d) {\n scene.select2d = createScatter(fullLayout._glcanvas.data()[1].regl);\n }\n\n // use unselected styles on 'context' canvas\n if(scene.scatter2d) {\n var unselOpts = new Array(count);\n for(i = 0; i < count; i++) {\n unselOpts[i] = scene.selectBatch[i].length || scene.unselectBatch[i].length ?\n scene.markerUnselectedOptions[i] :\n {};\n }\n scene.scatter2d.update(unselOpts);\n }\n\n // use selected style on 'focus' canvas\n if(scene.select2d) {\n scene.select2d.update(scene.markerOptions);\n scene.select2d.update(scene.markerSelectedOptions);\n }\n\n if(scene.glText) {\n cdata.forEach(function(cdscatter) {\n var trace = ((cdscatter || [])[0] || {}).trace || {};\n if(subTypes.hasText(trace)) {\n styleTextSelection(cdscatter);\n }\n });\n }\n } else {\n // reset 'context' scatter2d opts to base opts,\n // thus unsetting markerUnselectedOptions from selection\n if(scene.scatter2d) {\n scene.scatter2d.update(scene.markerOptions);\n }\n }\n\n // provide viewport and range\n var vpRange0 = {\n viewport: getViewport(fullLayout, xaxis, yaxis),\n // TODO do we need those fallbacks?\n range: [\n (xaxis._rl || xaxis.range)[0],\n (yaxis._rl || yaxis.range)[0],\n (xaxis._rl || xaxis.range)[1],\n (yaxis._rl || yaxis.range)[1]\n ]\n };\n var vpRange = Lib.repeat(vpRange0, scene.count);\n\n // upload viewport/range data to GPU\n if(scene.fill2d) {\n scene.fill2d.update(vpRange);\n }\n if(scene.line2d) {\n scene.line2d.update(vpRange);\n }\n if(scene.error2d) {\n scene.error2d.update(vpRange.concat(vpRange));\n }\n if(scene.scatter2d) {\n scene.scatter2d.update(vpRange);\n }\n if(scene.select2d) {\n scene.select2d.update(vpRange);\n }\n if(scene.glText) {\n scene.glText.forEach(function(text) { text.update(vpRange0); });\n }\n};\n","module.exports = scale;\n\n/**\n * Scales a vec3 by a scalar number\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec3} out\n */\nfunction scale(out, a, b) {\n out[0] = a[0] * b\n out[1] = a[1] * b\n out[2] = a[2] * b\n return out\n}","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar attributes = require('./attributes');\nvar Color = require('../../components/color');\nvar handleDomainDefaults = require('../../plots/domain').defaults;\nvar handleText = require('../bar/defaults').handleText;\nvar TEXTPAD = require('../bar/constants').TEXTPAD;\n\nvar Colorscale = require('../../components/colorscale');\nvar hasColorscale = Colorscale.hasColorscale;\nvar colorscaleDefaults = Colorscale.handleDefaults;\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var labels = coerce('labels');\n var parents = coerce('parents');\n\n if(!labels || !labels.length || !parents || !parents.length) {\n traceOut.visible = false;\n return;\n }\n\n var vals = coerce('values');\n if(vals && vals.length) {\n coerce('branchvalues');\n } else {\n coerce('count');\n }\n\n coerce('level');\n coerce('maxdepth');\n\n var packing = coerce('tiling.packing');\n if(packing === 'squarify') {\n coerce('tiling.squarifyratio');\n }\n\n coerce('tiling.flip');\n coerce('tiling.pad');\n\n var text = coerce('text');\n coerce('texttemplate');\n if(!traceOut.texttemplate) coerce('textinfo', Array.isArray(text) ? 'text+label' : 'label');\n\n coerce('hovertext');\n coerce('hovertemplate');\n\n var hasPathbar = coerce('pathbar.visible');\n\n var textposition = 'auto';\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n hasPathbar: hasPathbar,\n moduleHasSelected: false,\n moduleHasUnselected: false,\n moduleHasConstrain: false,\n moduleHasCliponaxis: false,\n moduleHasTextangle: false,\n moduleHasInsideanchor: false\n });\n coerce('textposition');\n var bottomText = traceOut.textposition.indexOf('bottom') !== -1;\n\n var lineWidth = coerce('marker.line.width');\n if(lineWidth) coerce('marker.line.color', layout.paper_bgcolor);\n\n var colors = coerce('marker.colors');\n var withColorscale = traceOut._hasColorscale = (\n hasColorscale(traceIn, 'marker', 'colors') ||\n (traceIn.marker || {}).coloraxis // N.B. special logic to consider \"values\" colorscales\n );\n if(withColorscale) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'marker.', cLetter: 'c'});\n } else {\n coerce('marker.depthfade', !(colors || []).length);\n }\n\n var headerSize = traceOut.textfont.size * 2;\n\n coerce('marker.pad.t', bottomText ? headerSize / 4 : headerSize);\n coerce('marker.pad.l', headerSize / 4);\n coerce('marker.pad.r', headerSize / 4);\n coerce('marker.pad.b', bottomText ? headerSize : headerSize / 4);\n\n if(withColorscale) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'marker.', cLetter: 'c'});\n }\n\n traceOut._hovered = {\n marker: {\n line: {\n width: 2,\n color: Color.contrast(layout.paper_bgcolor)\n }\n }\n };\n\n if(hasPathbar) {\n // This works even for multi-line labels as treemap pathbar trim out line breaks\n coerce('pathbar.thickness', traceOut.pathbar.textfont.size + 2 * TEXTPAD);\n\n coerce('pathbar.side');\n coerce('pathbar.edgeshape');\n }\n\n handleDomainDefaults(traceOut, layout, coerce);\n\n // do not support transforms for now\n traceOut._length = null;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var selection = [];\n var fullData = cd[0].trace;\n\n var nodes = fullData._sankey.graph.nodes;\n\n for(var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n if(node.partOfGroup) continue; // Those are invisible\n\n // Position of node's centroid\n var pos = [(node.x0 + node.x1) / 2, (node.y0 + node.y1) / 2];\n\n // Swap x and y if trace is vertical\n if(fullData.orientation === 'v') pos.reverse();\n\n if(selectionTester && selectionTester.contains(pos, false, i, searchInfo)) {\n selection.push({\n pointNumber: node.pointNumber\n // TODO: add eventData\n });\n }\n }\n return selection;\n};\n","'use strict';\n\n/**\n * Copyright Marc J. Schmidt. See the LICENSE file at the top-level\n * directory of this distribution and at\n * https://github.com/marcj/css-element-queries/blob/master/LICENSE.\n */\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(factory);\n } else if (typeof exports === \"object\") {\n module.exports = factory();\n } else {\n root.ResizeSensor = factory();\n }\n}(typeof window !== 'undefined' ? window : this, function () {\n\n // Make sure it does not throw in a SSR (Server Side Rendering) situation\n if (typeof window === \"undefined\") {\n return null;\n }\n // https://github.com/Semantic-Org/Semantic-UI/issues/3855\n // https://github.com/marcj/css-element-queries/issues/257\n var globalWindow = typeof window != 'undefined' && window.Math == Math\n ? window\n : typeof self != 'undefined' && self.Math == Math\n ? self\n : Function('return this')();\n // Only used for the dirty checking, so the event callback count is limited to max 1 call per fps per sensor.\n // In combination with the event based resize sensor this saves cpu time, because the sensor is too fast and\n // would generate too many unnecessary events.\n var requestAnimationFrame = globalWindow.requestAnimationFrame ||\n globalWindow.mozRequestAnimationFrame ||\n globalWindow.webkitRequestAnimationFrame ||\n function (fn) {\n return globalWindow.setTimeout(fn, 20);\n };\n\n /**\n * Iterate over each of the provided element(s).\n *\n * @param {HTMLElement|HTMLElement[]} elements\n * @param {Function} callback\n */\n function forEachElement(elements, callback){\n var elementsType = Object.prototype.toString.call(elements);\n var isCollectionTyped = ('[object Array]' === elementsType\n || ('[object NodeList]' === elementsType)\n || ('[object HTMLCollection]' === elementsType)\n || ('[object Object]' === elementsType)\n || ('undefined' !== typeof jQuery && elements instanceof jQuery) //jquery\n || ('undefined' !== typeof Elements && elements instanceof Elements) //mootools\n );\n var i = 0, j = elements.length;\n if (isCollectionTyped) {\n for (; i < j; i++) {\n callback(elements[i]);\n }\n } else {\n callback(elements);\n }\n }\n\n /**\n * Get element size\n * @param {HTMLElement} element\n * @returns {Object} {width, height}\n */\n function getElementSize(element) {\n if (!element.getBoundingClientRect) {\n return {\n width: element.offsetWidth,\n height: element.offsetHeight\n }\n }\n\n var rect = element.getBoundingClientRect();\n return {\n width: Math.round(rect.width),\n height: Math.round(rect.height)\n }\n }\n\n /**\n * Apply CSS styles to element.\n *\n * @param {HTMLElement} element\n * @param {Object} style\n */\n function setStyle(element, style) {\n Object.keys(style).forEach(function(key) {\n element.style[key] = style[key];\n });\n }\n\n /**\n * Class for dimension change detection.\n *\n * @param {Element|Element[]|Elements|jQuery} element\n * @param {Function} callback\n *\n * @constructor\n */\n var ResizeSensor = function(element, callback) {\n /**\n *\n * @constructor\n */\n function EventQueue() {\n var q = [];\n this.add = function(ev) {\n q.push(ev);\n };\n\n var i, j;\n this.call = function(sizeInfo) {\n for (i = 0, j = q.length; i < j; i++) {\n q[i].call(this, sizeInfo);\n }\n };\n\n this.remove = function(ev) {\n var newQueue = [];\n for(i = 0, j = q.length; i < j; i++) {\n if(q[i] !== ev) newQueue.push(q[i]);\n }\n q = newQueue;\n };\n\n this.length = function() {\n return q.length;\n }\n }\n\n /**\n *\n * @param {HTMLElement} element\n * @param {Function} resized\n */\n function attachResizeEvent(element, resized) {\n if (!element) return;\n if (element.resizedAttached) {\n element.resizedAttached.add(resized);\n return;\n }\n\n element.resizedAttached = new EventQueue();\n element.resizedAttached.add(resized);\n\n element.resizeSensor = document.createElement('div');\n element.resizeSensor.dir = 'ltr';\n element.resizeSensor.className = 'resize-sensor';\n\n var style = {\n pointerEvents: 'none',\n position: 'absolute',\n left: '0px',\n top: '0px',\n right: '0px',\n bottom: '0px',\n overflow: 'hidden',\n zIndex: '-1',\n visibility: 'hidden',\n maxWidth: '100%'\n };\n var styleChild = {\n position: 'absolute',\n left: '0px',\n top: '0px',\n transition: '0s',\n };\n\n setStyle(element.resizeSensor, style);\n\n var expand = document.createElement('div');\n expand.className = 'resize-sensor-expand';\n setStyle(expand, style);\n\n var expandChild = document.createElement('div');\n setStyle(expandChild, styleChild);\n expand.appendChild(expandChild);\n\n var shrink = document.createElement('div');\n shrink.className = 'resize-sensor-shrink';\n setStyle(shrink, style);\n\n var shrinkChild = document.createElement('div');\n setStyle(shrinkChild, styleChild);\n setStyle(shrinkChild, { width: '200%', height: '200%' });\n shrink.appendChild(shrinkChild);\n\n element.resizeSensor.appendChild(expand);\n element.resizeSensor.appendChild(shrink);\n element.appendChild(element.resizeSensor);\n\n var computedStyle = window.getComputedStyle(element);\n var position = computedStyle ? computedStyle.getPropertyValue('position') : null;\n if ('absolute' !== position && 'relative' !== position && 'fixed' !== position) {\n element.style.position = 'relative';\n }\n\n var dirty, rafId;\n var size = getElementSize(element);\n var lastWidth = 0;\n var lastHeight = 0;\n var initialHiddenCheck = true;\n var lastAnimationFrame = 0;\n\n var resetExpandShrink = function () {\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n expandChild.style.width = (width + 10) + 'px';\n expandChild.style.height = (height + 10) + 'px';\n\n expand.scrollLeft = width + 10;\n expand.scrollTop = height + 10;\n\n shrink.scrollLeft = width + 10;\n shrink.scrollTop = height + 10;\n };\n\n var reset = function() {\n // Check if element is hidden\n if (initialHiddenCheck) {\n var invisible = element.offsetWidth === 0 && element.offsetHeight === 0;\n if (invisible) {\n // Check in next frame\n if (!lastAnimationFrame){\n lastAnimationFrame = requestAnimationFrame(function(){\n lastAnimationFrame = 0;\n\n reset();\n });\n }\n\n return;\n } else {\n // Stop checking\n initialHiddenCheck = false;\n }\n }\n\n resetExpandShrink();\n };\n element.resizeSensor.resetSensor = reset;\n\n var onResized = function() {\n rafId = 0;\n\n if (!dirty) return;\n\n lastWidth = size.width;\n lastHeight = size.height;\n\n if (element.resizedAttached) {\n element.resizedAttached.call(size);\n }\n };\n\n var onScroll = function() {\n size = getElementSize(element);\n dirty = size.width !== lastWidth || size.height !== lastHeight;\n\n if (dirty && !rafId) {\n rafId = requestAnimationFrame(onResized);\n }\n\n reset();\n };\n\n var addEvent = function(el, name, cb) {\n if (el.attachEvent) {\n el.attachEvent('on' + name, cb);\n } else {\n el.addEventListener(name, cb);\n }\n };\n\n addEvent(expand, 'scroll', onScroll);\n addEvent(shrink, 'scroll', onScroll);\n\n // Fix for custom Elements\n requestAnimationFrame(reset);\n }\n\n forEachElement(element, function(elem){\n attachResizeEvent(elem, callback);\n });\n\n this.detach = function(ev) {\n ResizeSensor.detach(element, ev);\n };\n\n this.reset = function() {\n element.resizeSensor.resetSensor();\n };\n };\n\n ResizeSensor.reset = function(element) {\n forEachElement(element, function(elem){\n elem.resizeSensor.resetSensor();\n });\n };\n\n ResizeSensor.detach = function(element, ev) {\n forEachElement(element, function(elem){\n if (!elem) return;\n if(elem.resizedAttached && typeof ev === \"function\"){\n elem.resizedAttached.remove(ev);\n if(elem.resizedAttached.length()) return;\n }\n if (elem.resizeSensor) {\n if (elem.contains(elem.resizeSensor)) {\n elem.removeChild(elem.resizeSensor);\n }\n delete elem.resizeSensor;\n delete elem.resizedAttached;\n }\n });\n };\n\n if (typeof MutationObserver !== \"undefined\") {\n var observer = new MutationObserver(function (mutations) {\n for (var i in mutations) {\n if (mutations.hasOwnProperty(i)) {\n var items = mutations[i].addedNodes;\n for (var j = 0; j < items.length; j++) {\n if (items[j].resizeSensor) {\n ResizeSensor.reset(items[j]);\n }\n }\n }\n }\n });\n\n document.addEventListener(\"DOMContentLoaded\", function (event) {\n observer.observe(document.body, {\n childList: true,\n subtree: true,\n });\n });\n }\n\n return ResizeSensor;\n\n}));\n","module.exports = require('./squaredLength')\n","'use strict'\r\n\r\nvar isBrowser = require('is-browser')\r\nvar hasHover\r\n\r\nif (typeof global.matchMedia === 'function') {\r\n\thasHover = !global.matchMedia('(hover: none)').matches\r\n}\r\nelse {\r\n\thasHover = isBrowser\r\n}\r\n\r\nmodule.exports = hasHover\r\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\n\nvar INTERPTHRESHOLD = 1e-2;\nvar NEIGHBORSHIFTS = [[-1, 0], [1, 0], [0, -1], [0, 1]];\n\nfunction correctionOvershoot(maxFractionalChange) {\n // start with less overshoot, until we know it's converging,\n // then ramp up the overshoot for faster convergence\n return 0.5 - 0.25 * Math.min(1, maxFractionalChange * 0.5);\n}\n\n/*\n * interp2d: Fill in missing data from a 2D array using an iterative\n * poisson equation solver with zero-derivative BC at edges.\n * Amazingly, this just amounts to repeatedly averaging all the existing\n * nearest neighbors, at least if we don't take x/y scaling into account,\n * which is the right approach here where x and y may not even have the\n * same units.\n *\n * @param {array of arrays} z\n * The 2D array to fill in. Will be mutated here. Assumed to already be\n * cleaned, so all entries are numbers except gaps, which are `undefined`.\n * @param {array of arrays} emptyPoints\n * Each entry [i, j, neighborCount] for empty points z[i][j] and the number\n * of neighbors that are *not* missing. Assumed to be sorted from most to\n * least neighbors, as produced by heatmap/find_empties.\n */\nmodule.exports = function interp2d(z, emptyPoints) {\n var maxFractionalChange = 1;\n var i;\n\n // one pass to fill in a starting value for all the empties\n iterateInterp2d(z, emptyPoints);\n\n // we're don't need to iterate lone empties - remove them\n for(i = 0; i < emptyPoints.length; i++) {\n if(emptyPoints[i][2] < 4) break;\n }\n // but don't remove these points from the original array,\n // we'll use them for masking, so make a copy.\n emptyPoints = emptyPoints.slice(i);\n\n for(i = 0; i < 100 && maxFractionalChange > INTERPTHRESHOLD; i++) {\n maxFractionalChange = iterateInterp2d(z, emptyPoints,\n correctionOvershoot(maxFractionalChange));\n }\n if(maxFractionalChange > INTERPTHRESHOLD) {\n Lib.log('interp2d didn\\'t converge quickly', maxFractionalChange);\n }\n\n return z;\n};\n\nfunction iterateInterp2d(z, emptyPoints, overshoot) {\n var maxFractionalChange = 0;\n var thisPt;\n var i;\n var j;\n var p;\n var q;\n var neighborShift;\n var neighborRow;\n var neighborVal;\n var neighborCount;\n var neighborSum;\n var initialVal;\n var minNeighbor;\n var maxNeighbor;\n\n for(p = 0; p < emptyPoints.length; p++) {\n thisPt = emptyPoints[p];\n i = thisPt[0];\n j = thisPt[1];\n initialVal = z[i][j];\n neighborSum = 0;\n neighborCount = 0;\n\n for(q = 0; q < 4; q++) {\n neighborShift = NEIGHBORSHIFTS[q];\n neighborRow = z[i + neighborShift[0]];\n if(!neighborRow) continue;\n neighborVal = neighborRow[j + neighborShift[1]];\n if(neighborVal !== undefined) {\n if(neighborSum === 0) {\n minNeighbor = maxNeighbor = neighborVal;\n } else {\n minNeighbor = Math.min(minNeighbor, neighborVal);\n maxNeighbor = Math.max(maxNeighbor, neighborVal);\n }\n neighborCount++;\n neighborSum += neighborVal;\n }\n }\n\n if(neighborCount === 0) {\n throw 'iterateInterp2d order is wrong: no defined neighbors';\n }\n\n // this is the laplace equation interpolation:\n // each point is just the average of its neighbors\n // note that this ignores differential x/y scaling\n // which I think is the right approach, since we\n // don't know what that scaling means\n z[i][j] = neighborSum / neighborCount;\n\n if(initialVal === undefined) {\n if(neighborCount < 4) maxFractionalChange = 1;\n } else {\n // we can make large empty regions converge faster\n // if we overshoot the change vs the previous value\n z[i][j] = (1 + overshoot) * z[i][j] - overshoot * initialVal;\n\n if(maxNeighbor > minNeighbor) {\n maxFractionalChange = Math.max(maxFractionalChange,\n Math.abs(z[i][j] - initialVal) / (maxNeighbor - minNeighbor));\n }\n }\n }\n\n return maxFractionalChange;\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/barpolar');\n","module.exports = negate;\n\n/**\n * Negates the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a vector to negate\n * @returns {vec3} out\n */\nfunction negate(out, a) {\n out[0] = -a[0]\n out[1] = -a[1]\n out[2] = -a[2]\n return out\n}","/*\n * World Calendars\n * https://github.com/alexcjohnson/world-calendars\n *\n * Batch-converted from kbwood/calendars\n * Many thanks to Keith Wood and all of the contributors to the original project!\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/* http://keith-wood.name/calendars.html\n Persian calendar for jQuery v2.0.2.\n Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009.\n Available under the MIT (http://keith-wood.name/licence.html) license. \n Please attribute the author if you use it. */\n\nvar main = require('../main');\nvar assign = require('object-assign');\n\n\n/** Implementation of the Persian or Jalali calendar.\n Based on code from http://www.iranchamber.com/calendar/converter/iranian_calendar_converter.php.\n See also http://en.wikipedia.org/wiki/Iranian_calendar.\n @class PersianCalendar\n @param [language=''] {string} The language code (default English) for localisation. */\nfunction PersianCalendar(language) {\n this.local = this.regionalOptions[language || ''] || this.regionalOptions[''];\n}\n\nPersianCalendar.prototype = new main.baseCalendar;\n\nassign(PersianCalendar.prototype, {\n /** The calendar name.\n @memberof PersianCalendar */\n name: 'Persian',\n /** Julian date of start of Persian epoch: 19 March 622 CE.\n @memberof PersianCalendar */\n jdEpoch: 1948320.5,\n /** Days per month in a common year.\n @memberof PersianCalendar */\n daysPerMonth: [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29],\n /** true if has a year zero, false if not.\n @memberof PersianCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof PersianCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof PersianCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof PersianCalendar */\n minDay: 1,\n\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof PersianCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: { // Localisations\n '': {\n name: 'Persian',\n epochs: ['BP', 'AP'],\n monthNames: ['Farvardin', 'Ordibehesht', 'Khordad', 'Tir', 'Mordad', 'Shahrivar',\n 'Mehr', 'Aban', 'Azar', 'Day', 'Bahman', 'Esfand'],\n monthNamesShort: ['Far', 'Ord', 'Kho', 'Tir', 'Mor', 'Sha', 'Meh', 'Aba', 'Aza', 'Day', 'Bah', 'Esf'],\n dayNames: ['Yekshambe', 'Doshambe', 'Seshambe', 'Chæharshambe', 'Panjshambe', 'Jom\\'e', 'Shambe'],\n dayNamesShort: ['Yek', 'Do', 'Se', 'Chæ', 'Panj', 'Jom', 'Sha'],\n dayNamesMin: ['Ye','Do','Se','Ch','Pa','Jo','Sh'],\n digits: null,\n dateFormat: 'yyyy/mm/dd',\n firstDay: 6,\n isRTL: false\n }\n },\n\n /** Determine whether this date is in a leap year.\n @memberof PersianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return (((((date.year() - (date.year() > 0 ? 474 : 473)) % 2820) +\n 474 + 38) * 682) % 2816) < 682;\n },\n\n /** Determine the week of the year for a date.\n @memberof PersianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n // Find Saturday of this week starting on Saturday\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-((checkDate.dayOfWeek() + 1) % 7), 'd');\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n\n /** Retrieve the number of days in a month.\n @memberof PersianCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] +\n (date.month() === 12 && this.leapYear(date.year()) ? 1 : 0);\n },\n\n /** Determine whether this date is a week day.\n @memberof PersianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return this.dayOfWeek(year, month, day) !== 5;\n },\n\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof PersianCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = date.year();\n month = date.month();\n day = date.day();\n var epBase = year - (year >= 0 ? 474 : 473);\n var epYear = 474 + mod(epBase, 2820);\n return day + (month <= 7 ? (month - 1) * 31 : (month - 1) * 30 + 6) +\n Math.floor((epYear * 682 - 110) / 2816) + (epYear - 1) * 365 +\n Math.floor(epBase / 2820) * 1029983 + this.jdEpoch - 1;\n },\n\n /** Create a new date from a Julian date.\n @memberof PersianCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n jd = Math.floor(jd) + 0.5;\n var depoch = jd - this.toJD(475, 1, 1);\n var cycle = Math.floor(depoch / 1029983);\n var cyear = mod(depoch, 1029983);\n var ycycle = 2820;\n if (cyear !== 1029982) {\n var aux1 = Math.floor(cyear / 366);\n var aux2 = mod(cyear, 366);\n ycycle = Math.floor(((2134 * aux1) + (2816 * aux2) + 2815) / 1028522) + aux1 + 1;\n }\n var year = ycycle + (2820 * cycle) + 474;\n year = (year <= 0 ? year - 1 : year);\n var yday = jd - this.toJD(year, 1, 1) + 1;\n var month = (yday <= 186 ? Math.ceil(yday / 31) : Math.ceil((yday - 6) / 30));\n var day = jd - this.toJD(year, month, 1) + 1;\n return this.newDate(year, month, day);\n }\n});\n\n// Modulus function which works for non-integers.\nfunction mod(a, b) {\n return a - (b * Math.floor(a / b));\n}\n\n// Persian (Jalali) calendar implementation\nmain.calendars.persian = PersianCalendar;\nmain.calendars.jalali = PersianCalendar;\n\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar Lib = require('../lib');\nvar isPlainObject = Lib.isPlainObject;\nvar PlotSchema = require('./plot_schema');\nvar Plots = require('../plots/plots');\nvar plotAttributes = require('../plots/attributes');\nvar Template = require('./plot_template');\nvar dfltConfig = require('./plot_config').dfltConfig;\n\n/**\n * Plotly.makeTemplate: create a template off an existing figure to reuse\n * style attributes on other figures.\n *\n * Note: separated from the rest of templates because otherwise we get circular\n * references due to PlotSchema.\n *\n * @param {object|DOM element|string} figure: The figure to base the template on\n * should contain a trace array `figure.data`\n * and a layout object `figure.layout`\n * @returns {object} template: the extracted template - can then be used as\n * `layout.template` in another figure.\n */\nexports.makeTemplate = function(figure) {\n figure = Lib.isPlainObject(figure) ? figure : Lib.getGraphDiv(figure);\n figure = Lib.extendDeep({_context: dfltConfig}, {data: figure.data, layout: figure.layout});\n Plots.supplyDefaults(figure);\n var data = figure.data || [];\n var layout = figure.layout || {};\n // copy over a few items to help follow the schema\n layout._basePlotModules = figure._fullLayout._basePlotModules;\n layout._modules = figure._fullLayout._modules;\n\n var template = {\n data: {},\n layout: {}\n };\n\n /*\n * Note: we do NOT validate template values, we just take what's in the\n * user inputs data and layout, not the validated values in fullData and\n * fullLayout. Even if we were to validate here, there's no guarantee that\n * these values would still be valid when applied to a new figure, which\n * may contain different trace modes, different axes, etc. So it's\n * important that when applying a template we still validate the template\n * values, rather than just using them as defaults.\n */\n\n data.forEach(function(trace) {\n // TODO: What if no style info is extracted for this trace. We may\n // not want an empty object as the null value.\n // TODO: allow transforms to contribute to templates?\n // as it stands they are ignored, which may be for the best...\n\n var traceTemplate = {};\n walkStyleKeys(trace, traceTemplate, getTraceInfo.bind(null, trace));\n\n var traceType = Lib.coerce(trace, {}, plotAttributes, 'type');\n var typeTemplates = template.data[traceType];\n if(!typeTemplates) typeTemplates = template.data[traceType] = [];\n typeTemplates.push(traceTemplate);\n });\n\n walkStyleKeys(layout, template.layout, getLayoutInfo.bind(null, layout));\n\n /*\n * Compose the new template with an existing one to the same effect\n *\n * NOTE: there's a possibility of slightly different behavior: if the plot\n * has an invalid value and the old template has a valid value for the same\n * attribute, the plot will use the old template value but this routine\n * will pull the invalid value (resulting in the original default).\n * In the general case it's not possible to solve this with a single value,\n * since valid options can be context-dependent. It could be solved with\n * a *list* of values, but that would be huge complexity for little gain.\n */\n delete template.layout.template;\n var oldTemplate = layout.template;\n if(isPlainObject(oldTemplate)) {\n var oldLayoutTemplate = oldTemplate.layout;\n\n var i, traceType, oldTypeTemplates, oldTypeLen, typeTemplates, typeLen;\n\n if(isPlainObject(oldLayoutTemplate)) {\n mergeTemplates(oldLayoutTemplate, template.layout);\n }\n var oldDataTemplate = oldTemplate.data;\n if(isPlainObject(oldDataTemplate)) {\n for(traceType in template.data) {\n oldTypeTemplates = oldDataTemplate[traceType];\n if(Array.isArray(oldTypeTemplates)) {\n typeTemplates = template.data[traceType];\n typeLen = typeTemplates.length;\n oldTypeLen = oldTypeTemplates.length;\n for(i = 0; i < typeLen; i++) {\n mergeTemplates(oldTypeTemplates[i % oldTypeLen], typeTemplates[i]);\n }\n for(i = typeLen; i < oldTypeLen; i++) {\n typeTemplates.push(Lib.extendDeep({}, oldTypeTemplates[i]));\n }\n }\n }\n for(traceType in oldDataTemplate) {\n if(!(traceType in template.data)) {\n template.data[traceType] = Lib.extendDeep([], oldDataTemplate[traceType]);\n }\n }\n }\n }\n\n return template;\n};\n\nfunction mergeTemplates(oldTemplate, newTemplate) {\n // we don't care about speed here, just make sure we have a totally\n // distinct object from the previous template\n oldTemplate = Lib.extendDeep({}, oldTemplate);\n\n // sort keys so we always get annotationdefaults before annotations etc\n // so arrayTemplater will work right\n var oldKeys = Object.keys(oldTemplate).sort();\n var i, j;\n\n function mergeOne(oldVal, newVal, key) {\n if(isPlainObject(newVal) && isPlainObject(oldVal)) {\n mergeTemplates(oldVal, newVal);\n } else if(Array.isArray(newVal) && Array.isArray(oldVal)) {\n // Note: omitted `inclusionAttr` from arrayTemplater here,\n // it's irrelevant as we only want the resulting `_template`.\n var templater = Template.arrayTemplater({_template: oldTemplate}, key);\n for(j = 0; j < newVal.length; j++) {\n var item = newVal[j];\n var oldItem = templater.newItem(item)._template;\n if(oldItem) mergeTemplates(oldItem, item);\n }\n var defaultItems = templater.defaultItems();\n for(j = 0; j < defaultItems.length; j++) newVal.push(defaultItems[j]._template);\n\n // templateitemname only applies to receiving plots\n for(j = 0; j < newVal.length; j++) delete newVal[j].templateitemname;\n }\n }\n\n for(i = 0; i < oldKeys.length; i++) {\n var key = oldKeys[i];\n var oldVal = oldTemplate[key];\n if(key in newTemplate) {\n mergeOne(oldVal, newTemplate[key], key);\n } else newTemplate[key] = oldVal;\n\n // if this is a base key from the old template (eg xaxis), look for\n // extended keys (eg xaxis2) in the new template to merge into\n if(getBaseKey(key) === key) {\n for(var key2 in newTemplate) {\n var baseKey2 = getBaseKey(key2);\n if(key2 !== baseKey2 && baseKey2 === key && !(key2 in oldTemplate)) {\n mergeOne(oldVal, newTemplate[key2], key);\n }\n }\n }\n }\n}\n\nfunction getBaseKey(key) {\n return key.replace(/[0-9]+$/, '');\n}\n\nfunction walkStyleKeys(parent, templateOut, getAttributeInfo, path, basePath) {\n var pathAttr = basePath && getAttributeInfo(basePath);\n for(var key in parent) {\n var child = parent[key];\n var nextPath = getNextPath(parent, key, path);\n var nextBasePath = getNextPath(parent, key, basePath);\n var attr = getAttributeInfo(nextBasePath);\n if(!attr) {\n var baseKey = getBaseKey(key);\n if(baseKey !== key) {\n nextBasePath = getNextPath(parent, baseKey, basePath);\n attr = getAttributeInfo(nextBasePath);\n }\n }\n\n // we'll get an attr if path starts with a valid part, then has an\n // invalid ending. Make sure we got all the way to the end.\n if(pathAttr && (pathAttr === attr)) continue;\n\n if(!attr || attr._noTemplating ||\n attr.valType === 'data_array' ||\n (attr.arrayOk && Array.isArray(child))\n ) {\n continue;\n }\n\n if(!attr.valType && isPlainObject(child)) {\n walkStyleKeys(child, templateOut, getAttributeInfo, nextPath, nextBasePath);\n } else if(attr._isLinkedToArray && Array.isArray(child)) {\n var dfltDone = false;\n var namedIndex = 0;\n var usedNames = {};\n for(var i = 0; i < child.length; i++) {\n var item = child[i];\n if(isPlainObject(item)) {\n var name = item.name;\n if(name) {\n if(!usedNames[name]) {\n // named array items: allow all attributes except data arrays\n walkStyleKeys(item, templateOut, getAttributeInfo,\n getNextPath(child, namedIndex, nextPath),\n getNextPath(child, namedIndex, nextBasePath));\n namedIndex++;\n usedNames[name] = 1;\n }\n } else if(!dfltDone) {\n var dfltKey = Template.arrayDefaultKey(key);\n var dfltPath = getNextPath(parent, dfltKey, path);\n\n // getAttributeInfo will fail if we try to use dfltKey directly.\n // Instead put this item into the next array element, then\n // pull it out and move it to dfltKey.\n var pathInArray = getNextPath(child, namedIndex, nextPath);\n walkStyleKeys(item, templateOut, getAttributeInfo, pathInArray,\n getNextPath(child, namedIndex, nextBasePath));\n var itemPropInArray = Lib.nestedProperty(templateOut, pathInArray);\n var dfltProp = Lib.nestedProperty(templateOut, dfltPath);\n dfltProp.set(itemPropInArray.get());\n itemPropInArray.set(null);\n\n dfltDone = true;\n }\n }\n }\n } else {\n var templateProp = Lib.nestedProperty(templateOut, nextPath);\n templateProp.set(child);\n }\n }\n}\n\nfunction getLayoutInfo(layout, path) {\n return PlotSchema.getLayoutValObject(\n layout, Lib.nestedProperty({}, path).parts\n );\n}\n\nfunction getTraceInfo(trace, path) {\n return PlotSchema.getTraceValObject(\n trace, Lib.nestedProperty({}, path).parts\n );\n}\n\nfunction getNextPath(parent, key, path) {\n var nextPath;\n if(!path) nextPath = key;\n else if(Array.isArray(parent)) nextPath = path + '[' + key + ']';\n else nextPath = path + '.' + key;\n\n return nextPath;\n}\n\n/**\n * validateTemplate: Test for consistency between the given figure and\n * a template, either already included in the figure or given separately.\n * Note that not every issue we identify here is necessarily a problem,\n * it depends on what you're using the template for.\n *\n * @param {object|DOM element} figure: the plot, with {data, layout} members,\n * to test the template against\n * @param {Optional(object)} template: the template, with its own {data, layout},\n * to test. If omitted, we will look for a template already attached as the\n * plot's `layout.template` attribute.\n *\n * @returns {array} array of error objects each containing:\n * - {string} code\n * error code ('missing', 'unused', 'reused', 'noLayout', 'noData')\n * - {string} msg\n * a full readable description of the issue.\n */\nexports.validateTemplate = function(figureIn, template) {\n var figure = Lib.extendDeep({}, {\n _context: dfltConfig,\n data: figureIn.data,\n layout: figureIn.layout\n });\n var layout = figure.layout || {};\n if(!isPlainObject(template)) template = layout.template || {};\n var layoutTemplate = template.layout;\n var dataTemplate = template.data;\n var errorList = [];\n\n figure.layout = layout;\n figure.layout.template = template;\n Plots.supplyDefaults(figure);\n\n var fullLayout = figure._fullLayout;\n var fullData = figure._fullData;\n\n var layoutPaths = {};\n function crawlLayoutForContainers(obj, paths) {\n for(var key in obj) {\n if(key.charAt(0) !== '_' && isPlainObject(obj[key])) {\n var baseKey = getBaseKey(key);\n var nextPaths = [];\n var i;\n for(i = 0; i < paths.length; i++) {\n nextPaths.push(getNextPath(obj, key, paths[i]));\n if(baseKey !== key) nextPaths.push(getNextPath(obj, baseKey, paths[i]));\n }\n for(i = 0; i < nextPaths.length; i++) {\n layoutPaths[nextPaths[i]] = 1;\n }\n crawlLayoutForContainers(obj[key], nextPaths);\n }\n }\n }\n\n function crawlLayoutTemplateForContainers(obj, path) {\n for(var key in obj) {\n if(key.indexOf('defaults') === -1 && isPlainObject(obj[key])) {\n var nextPath = getNextPath(obj, key, path);\n if(layoutPaths[nextPath]) {\n crawlLayoutTemplateForContainers(obj[key], nextPath);\n } else {\n errorList.push({code: 'unused', path: nextPath});\n }\n }\n }\n }\n\n if(!isPlainObject(layoutTemplate)) {\n errorList.push({code: 'layout'});\n } else {\n crawlLayoutForContainers(fullLayout, ['layout']);\n crawlLayoutTemplateForContainers(layoutTemplate, 'layout');\n }\n\n if(!isPlainObject(dataTemplate)) {\n errorList.push({code: 'data'});\n } else {\n var typeCount = {};\n var traceType;\n for(var i = 0; i < fullData.length; i++) {\n var fullTrace = fullData[i];\n traceType = fullTrace.type;\n typeCount[traceType] = (typeCount[traceType] || 0) + 1;\n if(!fullTrace._fullInput._template) {\n // this takes care of the case of traceType in the data but not\n // the template\n errorList.push({\n code: 'missing',\n index: fullTrace._fullInput.index,\n traceType: traceType\n });\n }\n }\n for(traceType in dataTemplate) {\n var templateCount = dataTemplate[traceType].length;\n var dataCount = typeCount[traceType] || 0;\n if(templateCount > dataCount) {\n errorList.push({\n code: 'unused',\n traceType: traceType,\n templateCount: templateCount,\n dataCount: dataCount\n });\n } else if(dataCount > templateCount) {\n errorList.push({\n code: 'reused',\n traceType: traceType,\n templateCount: templateCount,\n dataCount: dataCount\n });\n }\n }\n }\n\n // _template: false is when someone tried to modify an array item\n // but there was no template with matching name\n function crawlForMissingTemplates(obj, path) {\n for(var key in obj) {\n if(key.charAt(0) === '_') continue;\n var val = obj[key];\n var nextPath = getNextPath(obj, key, path);\n if(isPlainObject(val)) {\n if(Array.isArray(obj) && val._template === false && val.templateitemname) {\n errorList.push({\n code: 'missing',\n path: nextPath,\n templateitemname: val.templateitemname\n });\n }\n crawlForMissingTemplates(val, nextPath);\n } else if(Array.isArray(val) && hasPlainObject(val)) {\n crawlForMissingTemplates(val, nextPath);\n }\n }\n }\n crawlForMissingTemplates({data: fullData, layout: fullLayout}, '');\n\n if(errorList.length) return errorList.map(format);\n};\n\nfunction hasPlainObject(arr) {\n for(var i = 0; i < arr.length; i++) {\n if(isPlainObject(arr[i])) return true;\n }\n}\n\nfunction format(opts) {\n var msg;\n switch(opts.code) {\n case 'data':\n msg = 'The template has no key data.';\n break;\n case 'layout':\n msg = 'The template has no key layout.';\n break;\n case 'missing':\n if(opts.path) {\n msg = 'There are no templates for item ' + opts.path +\n ' with name ' + opts.templateitemname;\n } else {\n msg = 'There are no templates for trace ' + opts.index +\n ', of type ' + opts.traceType + '.';\n }\n break;\n case 'unused':\n if(opts.path) {\n msg = 'The template item at ' + opts.path +\n ' was not used in constructing the plot.';\n } else if(opts.dataCount) {\n msg = 'Some of the templates of type ' + opts.traceType +\n ' were not used. The template has ' + opts.templateCount +\n ' traces, the data only has ' + opts.dataCount +\n ' of this type.';\n } else {\n msg = 'The template has ' + opts.templateCount +\n ' traces of type ' + opts.traceType +\n ' but there are none in the data.';\n }\n break;\n case 'reused':\n msg = 'Some of the templates of type ' + opts.traceType +\n ' were used more than once. The template has ' +\n opts.templateCount + ' traces, the data has ' +\n opts.dataCount + ' of this type.';\n break;\n }\n opts.msg = msg;\n\n return opts;\n}\n","'use strict'\r\n\r\nvar stringifyFont = require('css-font/stringify')\r\nvar defaultChars = [32, 126]\r\n\r\nmodule.exports = atlas\r\n\r\nfunction atlas(options) {\r\n options = options || {}\r\n\r\n var shape = options.shape ? options.shape : options.canvas ? [options.canvas.width, options.canvas.height] : [512, 512]\r\n var canvas = options.canvas || document.createElement('canvas')\r\n var font = options.font\r\n var step = typeof options.step === 'number' ? [options.step, options.step] : options.step || [32, 32]\r\n var chars = options.chars || defaultChars\r\n\r\n if (font && typeof font !== 'string') font = stringifyFont(font)\r\n\r\n if (!Array.isArray(chars)) {\r\n chars = String(chars).split('')\r\n } else\r\n if (chars.length === 2\r\n && typeof chars[0] === 'number'\r\n && typeof chars[1] === 'number'\r\n ) {\r\n var newchars = []\r\n\r\n for (var i = chars[0], j = 0; i <= chars[1]; i++) {\r\n newchars[j++] = String.fromCharCode(i)\r\n }\r\n\r\n chars = newchars\r\n }\r\n\r\n shape = shape.slice()\r\n canvas.width = shape[0]\r\n canvas.height = shape[1]\r\n\r\n var ctx = canvas.getContext('2d')\r\n\r\n ctx.fillStyle = '#000'\r\n ctx.fillRect(0, 0, canvas.width, canvas.height)\r\n\r\n ctx.font = font\r\n ctx.textAlign = 'center'\r\n ctx.textBaseline = 'middle'\r\n ctx.fillStyle = '#fff'\r\n\r\n var x = step[0] / 2\r\n var y = step[1] / 2\r\n for (var i = 0; i < chars.length; i++) {\r\n ctx.fillText(chars[i], x, y)\r\n if ((x += step[0]) > shape[0] - step[0]/2) (x = step[0]/2), (y += step[1])\r\n }\r\n\r\n return canvas\r\n}\r\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar layoutAttributes = require('./layout_attributes');\n\nmodule.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n coerce('sunburstcolorway', layoutOut.colorway);\n coerce('extendsunburstcolors');\n};\n","\"use strict\"\n\nmodule.exports = compressExpansion\n\nfunction compressExpansion(e) {\n var m = e.length\n var Q = e[e.length-1]\n var bottom = m\n for(var i=m-2; i>=0; --i) {\n var a = Q\n var b = e[i]\n Q = a + b\n var bv = Q - a\n var q = b - bv\n if(q) {\n e[--bottom] = Q\n Q = q\n }\n }\n var top = 0\n for(var i=bottom; i 1) ||\n (fullLayout.bargap === 0 &&\n fullLayout.bargroupgap === 0 &&\n !d[0].trace.marker.line.width)) {\n d3.select(this).attr('shape-rendering', 'crispEdges');\n }\n });\n\n s.selectAll('g.points').each(function(d) {\n var sel = d3.select(this);\n var trace = d[0].trace;\n stylePoints(sel, trace, gd);\n });\n\n Registry.getComponentMethod('errorbars', 'style')(s);\n}\n\nfunction stylePoints(sel, trace, gd) {\n Drawing.pointStyle(sel.selectAll('path'), trace, gd);\n styleTextPoints(sel, trace, gd);\n}\n\nfunction styleTextPoints(sel, trace, gd) {\n sel.selectAll('text').each(function(d) {\n var tx = d3.select(this);\n var font = Lib.ensureUniformFontSize(gd, determineFont(tx, d, trace, gd));\n\n Drawing.font(tx, font);\n });\n}\n\nfunction styleOnSelect(gd, cd, sel) {\n var trace = cd[0].trace;\n\n if(trace.selectedpoints) {\n stylePointsInSelectionMode(sel, trace, gd);\n } else {\n stylePoints(sel, trace, gd);\n Registry.getComponentMethod('errorbars', 'style')(sel);\n }\n}\n\nfunction stylePointsInSelectionMode(s, trace, gd) {\n Drawing.selectedPointStyle(s.selectAll('path'), trace);\n styleTextInSelectionMode(s.selectAll('text'), trace, gd);\n}\n\nfunction styleTextInSelectionMode(txs, trace, gd) {\n txs.each(function(d) {\n var tx = d3.select(this);\n var font;\n\n if(d.selected) {\n font = Lib.ensureUniformFontSize(gd, determineFont(tx, d, trace, gd));\n\n var selectedFontColor = trace.selected.textfont && trace.selected.textfont.color;\n if(selectedFontColor) {\n font.color = selectedFontColor;\n }\n\n Drawing.font(tx, font);\n } else {\n Drawing.selectedTextStyle(tx, trace);\n }\n });\n}\n\nfunction determineFont(tx, d, trace, gd) {\n var layoutFont = gd._fullLayout.font;\n var textFont = trace.textfont;\n\n if(tx.classed('bartext-inside')) {\n var barColor = getBarColor(d, trace);\n textFont = getInsideTextFont(trace, d.i, layoutFont, barColor);\n } else if(tx.classed('bartext-outside')) {\n textFont = getOutsideTextFont(trace, d.i, layoutFont);\n }\n\n return textFont;\n}\n\nfunction getTextFont(trace, index, defaultValue) {\n return getFontValue(\n attributeTextFont, trace.textfont, index, defaultValue);\n}\n\nfunction getInsideTextFont(trace, index, layoutFont, barColor) {\n var defaultFont = getTextFont(trace, index, layoutFont);\n\n var wouldFallBackToLayoutFont =\n (trace._input.textfont === undefined || trace._input.textfont.color === undefined) ||\n (Array.isArray(trace.textfont.color) && trace.textfont.color[index] === undefined);\n if(wouldFallBackToLayoutFont) {\n defaultFont = {\n color: Color.contrast(barColor),\n family: defaultFont.family,\n size: defaultFont.size\n };\n }\n\n return getFontValue(\n attributeInsideTextFont, trace.insidetextfont, index, defaultFont);\n}\n\nfunction getOutsideTextFont(trace, index, layoutFont) {\n var defaultFont = getTextFont(trace, index, layoutFont);\n return getFontValue(\n attributeOutsideTextFont, trace.outsidetextfont, index, defaultFont);\n}\n\nfunction getFontValue(attributeDefinition, attributeValue, index, defaultValue) {\n attributeValue = attributeValue || {};\n\n var familyValue = helpers.getValue(attributeValue.family, index);\n var sizeValue = helpers.getValue(attributeValue.size, index);\n var colorValue = helpers.getValue(attributeValue.color, index);\n\n return {\n family: helpers.coerceString(\n attributeDefinition.family, familyValue, defaultValue.family),\n size: helpers.coerceNumber(\n attributeDefinition.size, sizeValue, defaultValue.size),\n color: helpers.coerceColor(\n attributeDefinition.color, colorValue, defaultValue.color)\n };\n}\n\nfunction getBarColor(cd, trace) {\n if(trace.type === 'waterfall') {\n return trace[cd.dir].marker.color;\n }\n return cd.mc || trace.marker.color;\n}\n\nmodule.exports = {\n style: style,\n styleTextPoints: styleTextPoints,\n styleOnSelect: styleOnSelect,\n getInsideTextFont: getInsideTextFont,\n getOutsideTextFont: getOutsideTextFont,\n getBarColor: getBarColor,\n resizeText: resizeText\n};\n","import { min, ascending, max, mean, sum } from 'd3-array';\nimport { map, nest } from 'd3-collection';\nimport { linkHorizontal } from 'd3-shape';\nimport findCircuits from 'elementary-circuits-directed-graph';\n\n// For a given link, return the target node's depth\nfunction targetDepth(d) {\n return d.target.depth;\n}\n\n// The depth of a node when the nodeAlign (align) is set to 'left'\nfunction left(node) {\n return node.depth;\n}\n\n// The depth of a node when the nodeAlign (align) is set to 'right'\nfunction right(node, n) {\n return n - 1 - node.height;\n}\n\n// The depth of a node when the nodeAlign (align) is set to 'justify'\nfunction justify(node, n) {\n return node.sourceLinks.length ? node.depth : n - 1;\n}\n\n// The depth of a node when the nodeAlign (align) is set to 'center'\nfunction center(node) {\n return node.targetLinks.length ? node.depth : node.sourceLinks.length ? min(node.sourceLinks, targetDepth) - 1 : 0;\n}\n\n// returns a function, using the parameter given to the sankey setting\nfunction constant(x) {\n return function () {\n return x;\n };\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n/// https://github.com/tomshanley/d3-sankeyCircular-circular\n\n// sort links' breadth (ie top to bottom in a column), based on their source nodes' breadths\nfunction ascendingSourceBreadth(a, b) {\n return ascendingBreadth(a.source, b.source) || a.index - b.index;\n}\n\n// sort links' breadth (ie top to bottom in a column), based on their target nodes' breadths\nfunction ascendingTargetBreadth(a, b) {\n return ascendingBreadth(a.target, b.target) || a.index - b.index;\n}\n\n// sort nodes' breadth (ie top to bottom in a column)\n// if both nodes have circular links, or both don't have circular links, then sort by the top (y0) of the node\n// else push nodes that have top circular links to the top, and nodes that have bottom circular links to the bottom\nfunction ascendingBreadth(a, b) {\n if (a.partOfCycle === b.partOfCycle) {\n return a.y0 - b.y0;\n } else {\n if (a.circularLinkType === 'top' || b.circularLinkType === 'bottom') {\n return -1;\n } else {\n return 1;\n }\n }\n}\n\n// return the value of a node or link\nfunction value(d) {\n return d.value;\n}\n\n// return the vertical center of a node\nfunction nodeCenter(node) {\n return (node.y0 + node.y1) / 2;\n}\n\n// return the vertical center of a link's source node\nfunction linkSourceCenter(link) {\n return nodeCenter(link.source);\n}\n\n// return the vertical center of a link's target node\nfunction linkTargetCenter(link) {\n return nodeCenter(link.target);\n}\n\n// Return the default value for ID for node, d.index\nfunction defaultId(d) {\n return d.index;\n}\n\n// Return the default object the graph's nodes, graph.nodes\nfunction defaultNodes(graph) {\n return graph.nodes;\n}\n\n// Return the default object the graph's nodes, graph.links\nfunction defaultLinks(graph) {\n return graph.links;\n}\n\n// Return the node from the collection that matches the provided ID, or throw an error if no match\nfunction find(nodeById, id) {\n var node = nodeById.get(id);\n if (!node) throw new Error('missing: ' + id);\n return node;\n}\n\nfunction getNodeID(node, id) {\n return id(node);\n}\n\n// The main sankeyCircular functions\n\n// Some constants for circular link calculations\nvar verticalMargin = 25;\nvar baseRadius = 10;\nvar scale = 0.3; //Possibly let user control this, although anything over 0.5 starts to get too cramped\n\nfunction sankeyCircular () {\n // Set the default values\n var x0 = 0,\n y0 = 0,\n x1 = 1,\n y1 = 1,\n // extent\n dx = 24,\n // nodeWidth\n py,\n // nodePadding, for vertical postioning\n id = defaultId,\n align = justify,\n nodes = defaultNodes,\n links = defaultLinks,\n iterations = 32,\n circularLinkGap = 2,\n paddingRatio,\n sortNodes = null;\n\n function sankeyCircular() {\n var graph = {\n nodes: nodes.apply(null, arguments),\n links: links.apply(null, arguments)\n\n // Process the graph's nodes and links, setting their positions\n\n // 1. Associate the nodes with their respective links, and vice versa\n };computeNodeLinks(graph);\n\n // 2. Determine which links result in a circular path in the graph\n identifyCircles(graph, id, sortNodes);\n\n // 4. Calculate the nodes' values, based on the values of the incoming and outgoing links\n computeNodeValues(graph);\n\n // 5. Calculate the nodes' depth based on the incoming and outgoing links\n // Sets the nodes':\n // - depth: the depth in the graph\n // - column: the depth (0, 1, 2, etc), as is relates to visual position from left to right\n // - x0, x1: the x coordinates, as is relates to visual position from left to right\n computeNodeDepths(graph);\n\n // 3. Determine how the circular links will be drawn,\n // either travelling back above the main chart (\"top\")\n // or below the main chart (\"bottom\")\n selectCircularLinkTypes(graph, id);\n\n // 6. Calculate the nodes' and links' vertical position within their respective column\n // Also readjusts sankeyCircular size if circular links are needed, and node x's\n computeNodeBreadths(graph, iterations, id);\n computeLinkBreadths(graph);\n\n // 7. Sort links per node, based on the links' source/target nodes' breadths\n // 8. Adjust nodes that overlap links that span 2+ columns\n var linkSortingIterations = 4; //Possibly let user control this number, like the iterations over node placement\n for (var iteration = 0; iteration < linkSortingIterations; iteration++) {\n\n sortSourceLinks(graph, y1, id);\n sortTargetLinks(graph, y1, id);\n resolveNodeLinkOverlaps(graph, y0, y1, id);\n sortSourceLinks(graph, y1, id);\n sortTargetLinks(graph, y1, id);\n }\n\n // 8.1 Adjust node and link positions back to fill height of chart area if compressed\n fillHeight(graph, y0, y1);\n\n // 9. Calculate visually appealling path for the circular paths, and create the \"d\" string\n addCircularPathData(graph, circularLinkGap, y1, id);\n\n return graph;\n } // end of sankeyCircular function\n\n\n // Set the sankeyCircular parameters\n // nodeID, nodeAlign, nodeWidth, nodePadding, nodes, links, size, extent, iterations, nodePaddingRatio, circularLinkGap\n sankeyCircular.nodeId = function (_) {\n return arguments.length ? (id = typeof _ === 'function' ? _ : constant(_), sankeyCircular) : id;\n };\n\n sankeyCircular.nodeAlign = function (_) {\n return arguments.length ? (align = typeof _ === 'function' ? _ : constant(_), sankeyCircular) : align;\n };\n\n sankeyCircular.nodeWidth = function (_) {\n return arguments.length ? (dx = +_, sankeyCircular) : dx;\n };\n\n sankeyCircular.nodePadding = function (_) {\n return arguments.length ? (py = +_, sankeyCircular) : py;\n };\n\n sankeyCircular.nodes = function (_) {\n return arguments.length ? (nodes = typeof _ === 'function' ? _ : constant(_), sankeyCircular) : nodes;\n };\n\n sankeyCircular.links = function (_) {\n return arguments.length ? (links = typeof _ === 'function' ? _ : constant(_), sankeyCircular) : links;\n };\n\n sankeyCircular.size = function (_) {\n return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankeyCircular) : [x1 - x0, y1 - y0];\n };\n\n sankeyCircular.extent = function (_) {\n return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankeyCircular) : [[x0, y0], [x1, y1]];\n };\n\n sankeyCircular.iterations = function (_) {\n return arguments.length ? (iterations = +_, sankeyCircular) : iterations;\n };\n\n sankeyCircular.circularLinkGap = function (_) {\n return arguments.length ? (circularLinkGap = +_, sankeyCircular) : circularLinkGap;\n };\n\n sankeyCircular.nodePaddingRatio = function (_) {\n return arguments.length ? (paddingRatio = +_, sankeyCircular) : paddingRatio;\n };\n\n sankeyCircular.sortNodes = function (_) {\n return arguments.length ? (sortNodes = _, sankeyCircular) : sortNodes;\n };\n\n sankeyCircular.update = function (graph) {\n // 5. Calculate the nodes' depth based on the incoming and outgoing links\n // Sets the nodes':\n // - depth: the depth in the graph\n // - column: the depth (0, 1, 2, etc), as is relates to visual position from left to right\n // - x0, x1: the x coordinates, as is relates to visual position from left to right\n // computeNodeDepths(graph)\n\n // 3. Determine how the circular links will be drawn,\n // either travelling back above the main chart (\"top\")\n // or below the main chart (\"bottom\")\n selectCircularLinkTypes(graph, id);\n\n // 6. Calculate the nodes' and links' vertical position within their respective column\n // Also readjusts sankeyCircular size if circular links are needed, and node x's\n // computeNodeBreadths(graph, iterations, id)\n computeLinkBreadths(graph);\n\n // Force position of circular link type based on position\n graph.links.forEach(function (link) {\n if (link.circular) {\n link.circularLinkType = link.y0 + link.y1 < y1 ? 'top' : 'bottom';\n\n link.source.circularLinkType = link.circularLinkType;\n link.target.circularLinkType = link.circularLinkType;\n }\n });\n\n sortSourceLinks(graph, y1, id, false); // Sort links but do not move nodes\n sortTargetLinks(graph, y1, id);\n\n // 7. Sort links per node, based on the links' source/target nodes' breadths\n // 8. Adjust nodes that overlap links that span 2+ columns\n // var linkSortingIterations = 4; //Possibly let user control this number, like the iterations over node placement\n // for (var iteration = 0; iteration < linkSortingIterations; iteration++) {\n //\n // sortSourceLinks(graph, y1, id)\n // sortTargetLinks(graph, y1, id)\n // resolveNodeLinkOverlaps(graph, y0, y1, id)\n // sortSourceLinks(graph, y1, id)\n // sortTargetLinks(graph, y1, id)\n //\n // }\n\n // 8.1 Adjust node and link positions back to fill height of chart area if compressed\n // fillHeight(graph, y0, y1)\n\n // 9. Calculate visually appealling path for the circular paths, and create the \"d\" string\n addCircularPathData(graph, circularLinkGap, y1, id);\n return graph;\n };\n\n // Populate the sourceLinks and targetLinks for each node.\n // Also, if the source and target are not objects, assume they are indices.\n function computeNodeLinks(graph) {\n graph.nodes.forEach(function (node, i) {\n node.index = i;\n node.sourceLinks = [];\n node.targetLinks = [];\n });\n var nodeById = map(graph.nodes, id);\n graph.links.forEach(function (link, i) {\n link.index = i;\n var source = link.source;\n var target = link.target;\n if ((typeof source === \"undefined\" ? \"undefined\" : _typeof(source)) !== 'object') {\n source = link.source = find(nodeById, source);\n }\n if ((typeof target === \"undefined\" ? \"undefined\" : _typeof(target)) !== 'object') {\n target = link.target = find(nodeById, target);\n }\n source.sourceLinks.push(link);\n target.targetLinks.push(link);\n });\n return graph;\n }\n\n // Compute the value (size) and cycleness of each node by summing the associated links.\n function computeNodeValues(graph) {\n graph.nodes.forEach(function (node) {\n node.partOfCycle = false;\n node.value = Math.max(sum(node.sourceLinks, value), sum(node.targetLinks, value));\n node.sourceLinks.forEach(function (link) {\n if (link.circular) {\n node.partOfCycle = true;\n node.circularLinkType = link.circularLinkType;\n }\n });\n node.targetLinks.forEach(function (link) {\n if (link.circular) {\n node.partOfCycle = true;\n node.circularLinkType = link.circularLinkType;\n }\n });\n });\n }\n\n function getCircleMargins(graph) {\n var totalTopLinksWidth = 0,\n totalBottomLinksWidth = 0,\n totalRightLinksWidth = 0,\n totalLeftLinksWidth = 0;\n\n var maxColumn = max(graph.nodes, function (node) {\n return node.column;\n });\n\n graph.links.forEach(function (link) {\n if (link.circular) {\n if (link.circularLinkType == 'top') {\n totalTopLinksWidth = totalTopLinksWidth + link.width;\n } else {\n totalBottomLinksWidth = totalBottomLinksWidth + link.width;\n }\n\n if (link.target.column == 0) {\n totalLeftLinksWidth = totalLeftLinksWidth + link.width;\n }\n\n if (link.source.column == maxColumn) {\n totalRightLinksWidth = totalRightLinksWidth + link.width;\n }\n }\n });\n\n //account for radius of curves and padding between links\n totalTopLinksWidth = totalTopLinksWidth > 0 ? totalTopLinksWidth + verticalMargin + baseRadius : totalTopLinksWidth;\n totalBottomLinksWidth = totalBottomLinksWidth > 0 ? totalBottomLinksWidth + verticalMargin + baseRadius : totalBottomLinksWidth;\n totalRightLinksWidth = totalRightLinksWidth > 0 ? totalRightLinksWidth + verticalMargin + baseRadius : totalRightLinksWidth;\n totalLeftLinksWidth = totalLeftLinksWidth > 0 ? totalLeftLinksWidth + verticalMargin + baseRadius : totalLeftLinksWidth;\n\n return { \"top\": totalTopLinksWidth, \"bottom\": totalBottomLinksWidth, \"left\": totalLeftLinksWidth, \"right\": totalRightLinksWidth };\n }\n\n // Update the x0, y0, x1 and y1 for the sankeyCircular, to allow space for any circular links\n function scaleSankeySize(graph, margin) {\n\n var maxColumn = max(graph.nodes, function (node) {\n return node.column;\n });\n\n var currentWidth = x1 - x0;\n var currentHeight = y1 - y0;\n\n var newWidth = currentWidth + margin.right + margin.left;\n var newHeight = currentHeight + margin.top + margin.bottom;\n\n var scaleX = currentWidth / newWidth;\n var scaleY = currentHeight / newHeight;\n\n x0 = x0 * scaleX + margin.left;\n x1 = margin.right == 0 ? x1 : x1 * scaleX;\n y0 = y0 * scaleY + margin.top;\n y1 = y1 * scaleY;\n\n graph.nodes.forEach(function (node) {\n node.x0 = x0 + node.column * ((x1 - x0 - dx) / maxColumn);\n node.x1 = node.x0 + dx;\n });\n\n return scaleY;\n }\n\n // Iteratively assign the depth for each node.\n // Nodes are assigned the maximum depth of incoming neighbors plus one;\n // nodes with no incoming links are assigned depth zero, while\n // nodes with no outgoing links are assigned the maximum depth.\n function computeNodeDepths(graph) {\n var nodes, next, x;\n\n for (nodes = graph.nodes, next = [], x = 0; nodes.length; ++x, nodes = next, next = []) {\n nodes.forEach(function (node) {\n node.depth = x;\n node.sourceLinks.forEach(function (link) {\n if (next.indexOf(link.target) < 0 && !link.circular) {\n next.push(link.target);\n }\n });\n });\n }\n\n for (nodes = graph.nodes, next = [], x = 0; nodes.length; ++x, nodes = next, next = []) {\n nodes.forEach(function (node) {\n node.height = x;\n node.targetLinks.forEach(function (link) {\n if (next.indexOf(link.source) < 0 && !link.circular) {\n next.push(link.source);\n }\n });\n });\n }\n\n // assign column numbers, and get max value\n graph.nodes.forEach(function (node) {\n node.column = Math.floor(align.call(null, node, x));\n });\n }\n\n // Assign nodes' breadths, and then shift nodes that overlap (resolveCollisions)\n function computeNodeBreadths(graph, iterations, id) {\n var columns = nest().key(function (d) {\n return d.column;\n }).sortKeys(ascending).entries(graph.nodes).map(function (d) {\n return d.values;\n });\n\n initializeNodeBreadth(id);\n resolveCollisions();\n\n for (var alpha = 1, n = iterations; n > 0; --n) {\n relaxLeftAndRight(alpha *= 0.99, id);\n resolveCollisions();\n }\n\n function initializeNodeBreadth(id) {\n\n //override py if nodePadding has been set\n if (paddingRatio) {\n var padding = Infinity;\n columns.forEach(function (nodes) {\n var thisPadding = y1 * paddingRatio / (nodes.length + 1);\n padding = thisPadding < padding ? thisPadding : padding;\n });\n py = padding;\n }\n\n var ky = min(columns, function (nodes) {\n return (y1 - y0 - (nodes.length - 1) * py) / sum(nodes, value);\n });\n\n //calculate the widths of the links\n ky = ky * scale;\n\n graph.links.forEach(function (link) {\n link.width = link.value * ky;\n });\n\n //determine how much to scale down the chart, based on circular links\n var margin = getCircleMargins(graph);\n var ratio = scaleSankeySize(graph, margin);\n\n //re-calculate widths\n ky = ky * ratio;\n\n graph.links.forEach(function (link) {\n link.width = link.value * ky;\n });\n\n columns.forEach(function (nodes) {\n var nodesLength = nodes.length;\n nodes.forEach(function (node, i) {\n if (node.depth == columns.length - 1 && nodesLength == 1) {\n node.y0 = y1 / 2 - node.value * ky;\n node.y1 = node.y0 + node.value * ky;\n } else if (node.depth == 0 && nodesLength == 1) {\n node.y0 = y1 / 2 - node.value * ky;\n node.y1 = node.y0 + node.value * ky;\n } else if (node.partOfCycle) {\n if (numberOfNonSelfLinkingCycles(node, id) == 0) {\n node.y0 = y1 / 2 + i;\n node.y1 = node.y0 + node.value * ky;\n } else if (node.circularLinkType == 'top') {\n node.y0 = y0 + i;\n node.y1 = node.y0 + node.value * ky;\n } else {\n node.y0 = y1 - node.value * ky - i;\n node.y1 = node.y0 + node.value * ky;\n }\n } else {\n if (margin.top == 0 || margin.bottom == 0) {\n node.y0 = (y1 - y0) / nodesLength * i;\n node.y1 = node.y0 + node.value * ky;\n } else {\n node.y0 = (y1 - y0) / 2 - nodesLength / 2 + i;\n node.y1 = node.y0 + node.value * ky;\n }\n }\n });\n });\n }\n\n // For each node in each column, check the node's vertical position in relation to its targets and sources vertical position\n // and shift up/down to be closer to the vertical middle of those targets and sources\n function relaxLeftAndRight(alpha, id) {\n var columnsLength = columns.length;\n\n columns.forEach(function (nodes) {\n var n = nodes.length;\n var depth = nodes[0].depth;\n\n nodes.forEach(function (node) {\n // check the node is not an orphan\n var nodeHeight;\n if (node.sourceLinks.length || node.targetLinks.length) {\n if (node.partOfCycle && numberOfNonSelfLinkingCycles(node, id) > 0) ; else if (depth == 0 && n == 1) {\n nodeHeight = node.y1 - node.y0;\n\n node.y0 = y1 / 2 - nodeHeight / 2;\n node.y1 = y1 / 2 + nodeHeight / 2;\n } else if (depth == columnsLength - 1 && n == 1) {\n nodeHeight = node.y1 - node.y0;\n\n node.y0 = y1 / 2 - nodeHeight / 2;\n node.y1 = y1 / 2 + nodeHeight / 2;\n } else {\n var avg = 0;\n\n var avgTargetY = mean(node.sourceLinks, linkTargetCenter);\n var avgSourceY = mean(node.targetLinks, linkSourceCenter);\n\n if (avgTargetY && avgSourceY) {\n avg = (avgTargetY + avgSourceY) / 2;\n } else {\n avg = avgTargetY || avgSourceY;\n }\n\n var dy = (avg - nodeCenter(node)) * alpha;\n // positive if it node needs to move down\n node.y0 += dy;\n node.y1 += dy;\n }\n }\n });\n });\n }\n\n // For each column, check if nodes are overlapping, and if so, shift up/down\n function resolveCollisions() {\n columns.forEach(function (nodes) {\n var node,\n dy,\n y = y0,\n n = nodes.length,\n i;\n\n // Push any overlapping nodes down.\n nodes.sort(ascendingBreadth);\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dy = y - node.y0;\n\n if (dy > 0) {\n node.y0 += dy;\n node.y1 += dy;\n }\n y = node.y1 + py;\n }\n\n // If the bottommost node goes outside the bounds, push it back up.\n dy = y - py - y1;\n if (dy > 0) {\n y = node.y0 -= dy, node.y1 -= dy;\n\n // Push any overlapping nodes back up.\n for (i = n - 2; i >= 0; --i) {\n node = nodes[i];\n dy = node.y1 + py - y;\n if (dy > 0) node.y0 -= dy, node.y1 -= dy;\n y = node.y0;\n }\n }\n });\n }\n }\n\n // Assign the links y0 and y1 based on source/target nodes position,\n // plus the link's relative position to other links to the same node\n function computeLinkBreadths(graph) {\n graph.nodes.forEach(function (node) {\n node.sourceLinks.sort(ascendingTargetBreadth);\n node.targetLinks.sort(ascendingSourceBreadth);\n });\n graph.nodes.forEach(function (node) {\n var y0 = node.y0;\n var y1 = y0;\n\n // start from the bottom of the node for cycle links\n var y0cycle = node.y1;\n var y1cycle = y0cycle;\n\n node.sourceLinks.forEach(function (link) {\n if (link.circular) {\n link.y0 = y0cycle - link.width / 2;\n y0cycle = y0cycle - link.width;\n } else {\n link.y0 = y0 + link.width / 2;\n y0 += link.width;\n }\n });\n node.targetLinks.forEach(function (link) {\n if (link.circular) {\n link.y1 = y1cycle - link.width / 2;\n y1cycle = y1cycle - link.width;\n } else {\n link.y1 = y1 + link.width / 2;\n y1 += link.width;\n }\n });\n });\n }\n\n return sankeyCircular;\n}\n\n/// /////////////////////////////////////////////////////////////////////////////////\n// Cycle functions\n// portion of code to detect circular links based on Colin Fergus' bl.ock https://gist.github.com/cfergus/3956043\n\n// Identify circles in the link objects\nfunction identifyCircles(graph, id, sortNodes) {\n var circularLinkID = 0;\n if (sortNodes === null) {\n\n // Building adjacency graph\n var adjList = [];\n for (var i = 0; i < graph.links.length; i++) {\n var link = graph.links[i];\n var source = link.source.index;\n var target = link.target.index;\n if (!adjList[source]) adjList[source] = [];\n if (!adjList[target]) adjList[target] = [];\n\n // Add links if not already in set\n if (adjList[source].indexOf(target) === -1) adjList[source].push(target);\n }\n\n // Find all elementary circuits\n var cycles = findCircuits(adjList);\n\n // Sort by circuits length\n cycles.sort(function (a, b) {\n return a.length - b.length;\n });\n\n var circularLinks = {};\n for (i = 0; i < cycles.length; i++) {\n var cycle = cycles[i];\n var last = cycle.slice(-2);\n if (!circularLinks[last[0]]) circularLinks[last[0]] = {};\n circularLinks[last[0]][last[1]] = true;\n }\n\n graph.links.forEach(function (link) {\n var target = link.target.index;\n var source = link.source.index;\n // If self-linking or a back-edge\n if (target === source || circularLinks[source] && circularLinks[source][target]) {\n link.circular = true;\n link.circularLinkID = circularLinkID;\n circularLinkID = circularLinkID + 1;\n } else {\n link.circular = false;\n }\n });\n } else {\n graph.links.forEach(function (link) {\n if (link.source[sortNodes] < link.target[sortNodes]) {\n link.circular = false;\n } else {\n link.circular = true;\n link.circularLinkID = circularLinkID;\n circularLinkID = circularLinkID + 1;\n }\n });\n }\n}\n\n// Assign a circular link type (top or bottom), based on:\n// - if the source/target node already has circular links, then use the same type\n// - if not, choose the type with fewer links\nfunction selectCircularLinkTypes(graph, id) {\n var numberOfTops = 0;\n var numberOfBottoms = 0;\n graph.links.forEach(function (link) {\n if (link.circular) {\n // if either souce or target has type already use that\n if (link.source.circularLinkType || link.target.circularLinkType) {\n // default to source type if available\n link.circularLinkType = link.source.circularLinkType ? link.source.circularLinkType : link.target.circularLinkType;\n } else {\n link.circularLinkType = numberOfTops < numberOfBottoms ? 'top' : 'bottom';\n }\n\n if (link.circularLinkType == 'top') {\n numberOfTops = numberOfTops + 1;\n } else {\n numberOfBottoms = numberOfBottoms + 1;\n }\n\n graph.nodes.forEach(function (node) {\n if (getNodeID(node, id) == getNodeID(link.source, id) || getNodeID(node, id) == getNodeID(link.target, id)) {\n node.circularLinkType = link.circularLinkType;\n }\n });\n }\n });\n\n //correct self-linking links to be same direction as node\n graph.links.forEach(function (link) {\n if (link.circular) {\n //if both source and target node are same type, then link should have same type\n if (link.source.circularLinkType == link.target.circularLinkType) {\n link.circularLinkType = link.source.circularLinkType;\n }\n //if link is selflinking, then link should have same type as node\n if (selfLinking(link, id)) {\n link.circularLinkType = link.source.circularLinkType;\n }\n }\n });\n}\n\n// Return the angle between a straight line between the source and target of the link, and the vertical plane of the node\nfunction linkAngle(link) {\n var adjacent = Math.abs(link.y1 - link.y0);\n var opposite = Math.abs(link.target.x0 - link.source.x1);\n\n return Math.atan(opposite / adjacent);\n}\n\n// Check if two circular links potentially overlap\nfunction circularLinksCross(link1, link2) {\n if (link1.source.column < link2.target.column) {\n return false;\n } else if (link1.target.column > link2.source.column) {\n return false;\n } else {\n return true;\n }\n}\n\n// Return the number of circular links for node, not including self linking links\nfunction numberOfNonSelfLinkingCycles(node, id) {\n var sourceCount = 0;\n node.sourceLinks.forEach(function (l) {\n sourceCount = l.circular && !selfLinking(l, id) ? sourceCount + 1 : sourceCount;\n });\n\n var targetCount = 0;\n node.targetLinks.forEach(function (l) {\n targetCount = l.circular && !selfLinking(l, id) ? targetCount + 1 : targetCount;\n });\n\n return sourceCount + targetCount;\n}\n\n// Check if a circular link is the only circular link for both its source and target node\nfunction onlyCircularLink(link) {\n var nodeSourceLinks = link.source.sourceLinks;\n var sourceCount = 0;\n nodeSourceLinks.forEach(function (l) {\n sourceCount = l.circular ? sourceCount + 1 : sourceCount;\n });\n\n var nodeTargetLinks = link.target.targetLinks;\n var targetCount = 0;\n nodeTargetLinks.forEach(function (l) {\n targetCount = l.circular ? targetCount + 1 : targetCount;\n });\n\n if (sourceCount > 1 || targetCount > 1) {\n return false;\n } else {\n return true;\n }\n}\n\n// creates vertical buffer values per set of top/bottom links\nfunction calcVerticalBuffer(links, circularLinkGap, id) {\n links.sort(sortLinkColumnAscending);\n links.forEach(function (link, i) {\n var buffer = 0;\n\n if (selfLinking(link, id) && onlyCircularLink(link)) {\n link.circularPathData.verticalBuffer = buffer + link.width / 2;\n } else {\n var j = 0;\n for (j; j < i; j++) {\n if (circularLinksCross(links[i], links[j])) {\n var bufferOverThisLink = links[j].circularPathData.verticalBuffer + links[j].width / 2 + circularLinkGap;\n buffer = bufferOverThisLink > buffer ? bufferOverThisLink : buffer;\n }\n }\n\n link.circularPathData.verticalBuffer = buffer + link.width / 2;\n }\n });\n\n return links;\n}\n\n// calculate the optimum path for a link to reduce overlaps\nfunction addCircularPathData(graph, circularLinkGap, y1, id) {\n //var baseRadius = 10\n var buffer = 5;\n //var verticalMargin = 25\n\n var minY = min(graph.links, function (link) {\n return link.source.y0;\n });\n\n // create object for circular Path Data\n graph.links.forEach(function (link) {\n if (link.circular) {\n link.circularPathData = {};\n }\n });\n\n // calc vertical offsets per top/bottom links\n var topLinks = graph.links.filter(function (l) {\n return l.circularLinkType == 'top';\n });\n /* topLinks = */calcVerticalBuffer(topLinks, circularLinkGap, id);\n\n var bottomLinks = graph.links.filter(function (l) {\n return l.circularLinkType == 'bottom';\n });\n /* bottomLinks = */calcVerticalBuffer(bottomLinks, circularLinkGap, id);\n\n // add the base data for each link\n graph.links.forEach(function (link) {\n if (link.circular) {\n link.circularPathData.arcRadius = link.width + baseRadius;\n link.circularPathData.leftNodeBuffer = buffer;\n link.circularPathData.rightNodeBuffer = buffer;\n link.circularPathData.sourceWidth = link.source.x1 - link.source.x0;\n link.circularPathData.sourceX = link.source.x0 + link.circularPathData.sourceWidth;\n link.circularPathData.targetX = link.target.x0;\n link.circularPathData.sourceY = link.y0;\n link.circularPathData.targetY = link.y1;\n\n // for self linking paths, and that the only circular link in/out of that node\n if (selfLinking(link, id) && onlyCircularLink(link)) {\n link.circularPathData.leftSmallArcRadius = baseRadius + link.width / 2;\n link.circularPathData.leftLargeArcRadius = baseRadius + link.width / 2;\n link.circularPathData.rightSmallArcRadius = baseRadius + link.width / 2;\n link.circularPathData.rightLargeArcRadius = baseRadius + link.width / 2;\n\n if (link.circularLinkType == 'bottom') {\n link.circularPathData.verticalFullExtent = link.source.y1 + verticalMargin + link.circularPathData.verticalBuffer;\n link.circularPathData.verticalLeftInnerExtent = link.circularPathData.verticalFullExtent - link.circularPathData.leftLargeArcRadius;\n link.circularPathData.verticalRightInnerExtent = link.circularPathData.verticalFullExtent - link.circularPathData.rightLargeArcRadius;\n } else {\n // top links\n link.circularPathData.verticalFullExtent = link.source.y0 - verticalMargin - link.circularPathData.verticalBuffer;\n link.circularPathData.verticalLeftInnerExtent = link.circularPathData.verticalFullExtent + link.circularPathData.leftLargeArcRadius;\n link.circularPathData.verticalRightInnerExtent = link.circularPathData.verticalFullExtent + link.circularPathData.rightLargeArcRadius;\n }\n } else {\n // else calculate normally\n // add left extent coordinates, based on links with same source column and circularLink type\n var thisColumn = link.source.column;\n var thisCircularLinkType = link.circularLinkType;\n var sameColumnLinks = graph.links.filter(function (l) {\n return l.source.column == thisColumn && l.circularLinkType == thisCircularLinkType;\n });\n\n if (link.circularLinkType == 'bottom') {\n sameColumnLinks.sort(sortLinkSourceYDescending);\n } else {\n sameColumnLinks.sort(sortLinkSourceYAscending);\n }\n\n var radiusOffset = 0;\n sameColumnLinks.forEach(function (l, i) {\n if (l.circularLinkID == link.circularLinkID) {\n link.circularPathData.leftSmallArcRadius = baseRadius + link.width / 2 + radiusOffset;\n link.circularPathData.leftLargeArcRadius = baseRadius + link.width / 2 + i * circularLinkGap + radiusOffset;\n }\n radiusOffset = radiusOffset + l.width;\n });\n\n // add right extent coordinates, based on links with same target column and circularLink type\n thisColumn = link.target.column;\n sameColumnLinks = graph.links.filter(function (l) {\n return l.target.column == thisColumn && l.circularLinkType == thisCircularLinkType;\n });\n if (link.circularLinkType == 'bottom') {\n sameColumnLinks.sort(sortLinkTargetYDescending);\n } else {\n sameColumnLinks.sort(sortLinkTargetYAscending);\n }\n\n radiusOffset = 0;\n sameColumnLinks.forEach(function (l, i) {\n if (l.circularLinkID == link.circularLinkID) {\n link.circularPathData.rightSmallArcRadius = baseRadius + link.width / 2 + radiusOffset;\n link.circularPathData.rightLargeArcRadius = baseRadius + link.width / 2 + i * circularLinkGap + radiusOffset;\n }\n radiusOffset = radiusOffset + l.width;\n });\n\n // bottom links\n if (link.circularLinkType == 'bottom') {\n link.circularPathData.verticalFullExtent = Math.max(y1, link.source.y1, link.target.y1) + verticalMargin + link.circularPathData.verticalBuffer;\n link.circularPathData.verticalLeftInnerExtent = link.circularPathData.verticalFullExtent - link.circularPathData.leftLargeArcRadius;\n link.circularPathData.verticalRightInnerExtent = link.circularPathData.verticalFullExtent - link.circularPathData.rightLargeArcRadius;\n } else {\n // top links\n link.circularPathData.verticalFullExtent = minY - verticalMargin - link.circularPathData.verticalBuffer;\n link.circularPathData.verticalLeftInnerExtent = link.circularPathData.verticalFullExtent + link.circularPathData.leftLargeArcRadius;\n link.circularPathData.verticalRightInnerExtent = link.circularPathData.verticalFullExtent + link.circularPathData.rightLargeArcRadius;\n }\n }\n\n // all links\n link.circularPathData.leftInnerExtent = link.circularPathData.sourceX + link.circularPathData.leftNodeBuffer;\n link.circularPathData.rightInnerExtent = link.circularPathData.targetX - link.circularPathData.rightNodeBuffer;\n link.circularPathData.leftFullExtent = link.circularPathData.sourceX + link.circularPathData.leftLargeArcRadius + link.circularPathData.leftNodeBuffer;\n link.circularPathData.rightFullExtent = link.circularPathData.targetX - link.circularPathData.rightLargeArcRadius - link.circularPathData.rightNodeBuffer;\n }\n\n if (link.circular) {\n link.path = createCircularPathString(link);\n } else {\n var normalPath = linkHorizontal().source(function (d) {\n var x = d.source.x0 + (d.source.x1 - d.source.x0);\n var y = d.y0;\n return [x, y];\n }).target(function (d) {\n var x = d.target.x0;\n var y = d.y1;\n return [x, y];\n });\n link.path = normalPath(link);\n }\n });\n}\n\n// create a d path using the addCircularPathData\nfunction createCircularPathString(link) {\n var pathString = '';\n // 'pathData' is assigned a value but never used\n // var pathData = {}\n\n if (link.circularLinkType == 'top') {\n pathString =\n // start at the right of the source node\n 'M' + link.circularPathData.sourceX + ' ' + link.circularPathData.sourceY + ' ' +\n // line right to buffer point\n 'L' + link.circularPathData.leftInnerExtent + ' ' + link.circularPathData.sourceY + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.leftLargeArcRadius + ' ' + link.circularPathData.leftSmallArcRadius + ' 0 0 0 ' +\n // End of arc X //End of arc Y\n link.circularPathData.leftFullExtent + ' ' + (link.circularPathData.sourceY - link.circularPathData.leftSmallArcRadius) + ' ' + // End of arc X\n // line up to buffer point\n 'L' + link.circularPathData.leftFullExtent + ' ' + link.circularPathData.verticalLeftInnerExtent + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.leftLargeArcRadius + ' ' + link.circularPathData.leftLargeArcRadius + ' 0 0 0 ' +\n // End of arc X //End of arc Y\n link.circularPathData.leftInnerExtent + ' ' + link.circularPathData.verticalFullExtent + ' ' + // End of arc X\n // line left to buffer point\n 'L' + link.circularPathData.rightInnerExtent + ' ' + link.circularPathData.verticalFullExtent + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.rightLargeArcRadius + ' ' + link.circularPathData.rightLargeArcRadius + ' 0 0 0 ' +\n // End of arc X //End of arc Y\n link.circularPathData.rightFullExtent + ' ' + link.circularPathData.verticalRightInnerExtent + ' ' + // End of arc X\n // line down\n 'L' + link.circularPathData.rightFullExtent + ' ' + (link.circularPathData.targetY - link.circularPathData.rightSmallArcRadius) + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.rightLargeArcRadius + ' ' + link.circularPathData.rightSmallArcRadius + ' 0 0 0 ' +\n // End of arc X //End of arc Y\n link.circularPathData.rightInnerExtent + ' ' + link.circularPathData.targetY + ' ' + // End of arc X\n // line to end\n 'L' + link.circularPathData.targetX + ' ' + link.circularPathData.targetY;\n } else {\n // bottom path\n pathString =\n // start at the right of the source node\n 'M' + link.circularPathData.sourceX + ' ' + link.circularPathData.sourceY + ' ' +\n // line right to buffer point\n 'L' + link.circularPathData.leftInnerExtent + ' ' + link.circularPathData.sourceY + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.leftLargeArcRadius + ' ' + link.circularPathData.leftSmallArcRadius + ' 0 0 1 ' +\n // End of arc X //End of arc Y\n link.circularPathData.leftFullExtent + ' ' + (link.circularPathData.sourceY + link.circularPathData.leftSmallArcRadius) + ' ' + // End of arc X\n // line down to buffer point\n 'L' + link.circularPathData.leftFullExtent + ' ' + link.circularPathData.verticalLeftInnerExtent + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.leftLargeArcRadius + ' ' + link.circularPathData.leftLargeArcRadius + ' 0 0 1 ' +\n // End of arc X //End of arc Y\n link.circularPathData.leftInnerExtent + ' ' + link.circularPathData.verticalFullExtent + ' ' + // End of arc X\n // line left to buffer point\n 'L' + link.circularPathData.rightInnerExtent + ' ' + link.circularPathData.verticalFullExtent + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.rightLargeArcRadius + ' ' + link.circularPathData.rightLargeArcRadius + ' 0 0 1 ' +\n // End of arc X //End of arc Y\n link.circularPathData.rightFullExtent + ' ' + link.circularPathData.verticalRightInnerExtent + ' ' + // End of arc X\n // line up\n 'L' + link.circularPathData.rightFullExtent + ' ' + (link.circularPathData.targetY + link.circularPathData.rightSmallArcRadius) + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.rightLargeArcRadius + ' ' + link.circularPathData.rightSmallArcRadius + ' 0 0 1 ' +\n // End of arc X //End of arc Y\n link.circularPathData.rightInnerExtent + ' ' + link.circularPathData.targetY + ' ' + // End of arc X\n // line to end\n 'L' + link.circularPathData.targetX + ' ' + link.circularPathData.targetY;\n }\n\n return pathString;\n}\n\n// sort links based on the distance between the source and tartget node columns\n// if the same, then use Y position of the source node\nfunction sortLinkColumnAscending(link1, link2) {\n if (linkColumnDistance(link1) == linkColumnDistance(link2)) {\n return link1.circularLinkType == 'bottom' ? sortLinkSourceYDescending(link1, link2) : sortLinkSourceYAscending(link1, link2);\n } else {\n return linkColumnDistance(link2) - linkColumnDistance(link1);\n }\n}\n\n// sort ascending links by their source vertical position, y0\nfunction sortLinkSourceYAscending(link1, link2) {\n return link1.y0 - link2.y0;\n}\n\n// sort descending links by their source vertical position, y0\nfunction sortLinkSourceYDescending(link1, link2) {\n return link2.y0 - link1.y0;\n}\n\n// sort ascending links by their target vertical position, y1\nfunction sortLinkTargetYAscending(link1, link2) {\n return link1.y1 - link2.y1;\n}\n\n// sort descending links by their target vertical position, y1\nfunction sortLinkTargetYDescending(link1, link2) {\n return link2.y1 - link1.y1;\n}\n\n// return the distance between the link's target and source node, in terms of the nodes' column\nfunction linkColumnDistance(link) {\n return link.target.column - link.source.column;\n}\n\n// return the distance between the link's target and source node, in terms of the nodes' X coordinate\nfunction linkXLength(link) {\n return link.target.x0 - link.source.x1;\n}\n\n// Return the Y coordinate on the longerLink path * which is perpendicular shorterLink's source.\n// * approx, based on a straight line from target to source, when in fact the path is a bezier\nfunction linkPerpendicularYToLinkSource(longerLink, shorterLink) {\n // get the angle for the longer link\n var angle = linkAngle(longerLink);\n\n // get the adjacent length to the other link's x position\n var heightFromY1ToPependicular = linkXLength(shorterLink) / Math.tan(angle);\n\n // add or subtract from longer link1's original y1, depending on the slope\n var yPerpendicular = incline(longerLink) == 'up' ? longerLink.y1 + heightFromY1ToPependicular : longerLink.y1 - heightFromY1ToPependicular;\n\n return yPerpendicular;\n}\n\n// Return the Y coordinate on the longerLink path * which is perpendicular shorterLink's source.\n// * approx, based on a straight line from target to source, when in fact the path is a bezier\nfunction linkPerpendicularYToLinkTarget(longerLink, shorterLink) {\n // get the angle for the longer link\n var angle = linkAngle(longerLink);\n\n // get the adjacent length to the other link's x position\n var heightFromY1ToPependicular = linkXLength(shorterLink) / Math.tan(angle);\n\n // add or subtract from longer link's original y1, depending on the slope\n var yPerpendicular = incline(longerLink) == 'up' ? longerLink.y1 - heightFromY1ToPependicular : longerLink.y1 + heightFromY1ToPependicular;\n\n return yPerpendicular;\n}\n\n// Move any nodes that overlap links which span 2+ columns\nfunction resolveNodeLinkOverlaps(graph, y0, y1, id) {\n\n graph.links.forEach(function (link) {\n if (link.circular) {\n return;\n }\n\n if (link.target.column - link.source.column > 1) {\n var columnToTest = link.source.column + 1;\n var maxColumnToTest = link.target.column - 1;\n\n var i = 1;\n var numberOfColumnsToTest = maxColumnToTest - columnToTest + 1;\n\n for (i = 1; columnToTest <= maxColumnToTest; columnToTest++, i++) {\n graph.nodes.forEach(function (node) {\n if (node.column == columnToTest) {\n var t = i / (numberOfColumnsToTest + 1);\n\n // Find all the points of a cubic bezier curve in javascript\n // https://stackoverflow.com/questions/15397596/find-all-the-points-of-a-cubic-bezier-curve-in-javascript\n\n var B0_t = Math.pow(1 - t, 3);\n var B1_t = 3 * t * Math.pow(1 - t, 2);\n var B2_t = 3 * Math.pow(t, 2) * (1 - t);\n var B3_t = Math.pow(t, 3);\n\n var py_t = B0_t * link.y0 + B1_t * link.y0 + B2_t * link.y1 + B3_t * link.y1;\n\n var linkY0AtColumn = py_t - link.width / 2;\n var linkY1AtColumn = py_t + link.width / 2;\n var dy;\n\n // If top of link overlaps node, push node up\n if (linkY0AtColumn > node.y0 && linkY0AtColumn < node.y1) {\n\n dy = node.y1 - linkY0AtColumn + 10;\n dy = node.circularLinkType == 'bottom' ? dy : -dy;\n\n node = adjustNodeHeight(node, dy, y0, y1);\n\n // check if other nodes need to move up too\n graph.nodes.forEach(function (otherNode) {\n // don't need to check itself or nodes at different columns\n if (getNodeID(otherNode, id) == getNodeID(node, id) || otherNode.column != node.column) {\n return;\n }\n if (nodesOverlap(node, otherNode)) {\n adjustNodeHeight(otherNode, dy, y0, y1);\n }\n });\n } else if (linkY1AtColumn > node.y0 && linkY1AtColumn < node.y1) {\n // If bottom of link overlaps node, push node down\n dy = linkY1AtColumn - node.y0 + 10;\n\n node = adjustNodeHeight(node, dy, y0, y1);\n\n // check if other nodes need to move down too\n graph.nodes.forEach(function (otherNode) {\n // don't need to check itself or nodes at different columns\n if (getNodeID(otherNode, id) == getNodeID(node, id) || otherNode.column != node.column) {\n return;\n }\n if (otherNode.y0 < node.y1 && otherNode.y1 > node.y1) {\n adjustNodeHeight(otherNode, dy, y0, y1);\n }\n });\n } else if (linkY0AtColumn < node.y0 && linkY1AtColumn > node.y1) {\n // if link completely overlaps node\n dy = linkY1AtColumn - node.y0 + 10;\n\n node = adjustNodeHeight(node, dy, y0, y1);\n\n graph.nodes.forEach(function (otherNode) {\n // don't need to check itself or nodes at different columns\n if (getNodeID(otherNode, id) == getNodeID(node, id) || otherNode.column != node.column) {\n return;\n }\n if (otherNode.y0 < node.y1 && otherNode.y1 > node.y1) {\n adjustNodeHeight(otherNode, dy, y0, y1);\n }\n });\n }\n }\n });\n }\n }\n });\n}\n\n// check if two nodes overlap\nfunction nodesOverlap(nodeA, nodeB) {\n // test if nodeA top partially overlaps nodeB\n if (nodeA.y0 > nodeB.y0 && nodeA.y0 < nodeB.y1) {\n return true;\n } else if (nodeA.y1 > nodeB.y0 && nodeA.y1 < nodeB.y1) {\n // test if nodeA bottom partially overlaps nodeB\n return true;\n } else if (nodeA.y0 < nodeB.y0 && nodeA.y1 > nodeB.y1) {\n // test if nodeA covers nodeB\n return true;\n } else {\n return false;\n }\n}\n\n// update a node, and its associated links, vertical positions (y0, y1)\nfunction adjustNodeHeight(node, dy, sankeyY0, sankeyY1) {\n if (node.y0 + dy >= sankeyY0 && node.y1 + dy <= sankeyY1) {\n node.y0 = node.y0 + dy;\n node.y1 = node.y1 + dy;\n\n node.targetLinks.forEach(function (l) {\n l.y1 = l.y1 + dy;\n });\n\n node.sourceLinks.forEach(function (l) {\n l.y0 = l.y0 + dy;\n });\n }\n return node;\n}\n\n// sort and set the links' y0 for each node\nfunction sortSourceLinks(graph, y1, id, moveNodes) {\n graph.nodes.forEach(function (node) {\n // move any nodes up which are off the bottom\n if (moveNodes && node.y + (node.y1 - node.y0) > y1) {\n node.y = node.y - (node.y + (node.y1 - node.y0) - y1);\n }\n\n var nodesSourceLinks = graph.links.filter(function (l) {\n return getNodeID(l.source, id) == getNodeID(node, id);\n });\n\n var nodeSourceLinksLength = nodesSourceLinks.length;\n\n // if more than 1 link then sort\n if (nodeSourceLinksLength > 1) {\n nodesSourceLinks.sort(function (link1, link2) {\n // if both are not circular...\n if (!link1.circular && !link2.circular) {\n // if the target nodes are the same column, then sort by the link's target y\n if (link1.target.column == link2.target.column) {\n return link1.y1 - link2.y1;\n } else if (!sameInclines(link1, link2)) {\n // if the links slope in different directions, then sort by the link's target y\n return link1.y1 - link2.y1;\n\n // if the links slope in same directions, then sort by any overlap\n } else {\n if (link1.target.column > link2.target.column) {\n var link2Adj = linkPerpendicularYToLinkTarget(link2, link1);\n return link1.y1 - link2Adj;\n }\n if (link2.target.column > link1.target.column) {\n var link1Adj = linkPerpendicularYToLinkTarget(link1, link2);\n return link1Adj - link2.y1;\n }\n }\n }\n\n // if only one is circular, the move top links up, or bottom links down\n if (link1.circular && !link2.circular) {\n return link1.circularLinkType == 'top' ? -1 : 1;\n } else if (link2.circular && !link1.circular) {\n return link2.circularLinkType == 'top' ? 1 : -1;\n }\n\n // if both links are circular...\n if (link1.circular && link2.circular) {\n // ...and they both loop the same way (both top)\n if (link1.circularLinkType === link2.circularLinkType && link1.circularLinkType == 'top') {\n // ...and they both connect to a target with same column, then sort by the target's y\n if (link1.target.column === link2.target.column) {\n return link1.target.y1 - link2.target.y1;\n } else {\n // ...and they connect to different column targets, then sort by how far back they\n return link2.target.column - link1.target.column;\n }\n } else if (link1.circularLinkType === link2.circularLinkType && link1.circularLinkType == 'bottom') {\n // ...and they both loop the same way (both bottom)\n // ...and they both connect to a target with same column, then sort by the target's y\n if (link1.target.column === link2.target.column) {\n return link2.target.y1 - link1.target.y1;\n } else {\n // ...and they connect to different column targets, then sort by how far back they\n return link1.target.column - link2.target.column;\n }\n } else {\n // ...and they loop around different ways, the move top up and bottom down\n return link1.circularLinkType == 'top' ? -1 : 1;\n }\n }\n });\n }\n\n // update y0 for links\n var ySourceOffset = node.y0;\n\n nodesSourceLinks.forEach(function (link) {\n link.y0 = ySourceOffset + link.width / 2;\n ySourceOffset = ySourceOffset + link.width;\n });\n\n // correct any circular bottom links so they are at the bottom of the node\n nodesSourceLinks.forEach(function (link, i) {\n if (link.circularLinkType == 'bottom') {\n var j = i + 1;\n var offsetFromBottom = 0;\n // sum the widths of any links that are below this link\n for (j; j < nodeSourceLinksLength; j++) {\n offsetFromBottom = offsetFromBottom + nodesSourceLinks[j].width;\n }\n link.y0 = node.y1 - offsetFromBottom - link.width / 2;\n }\n });\n });\n}\n\n// sort and set the links' y1 for each node\nfunction sortTargetLinks(graph, y1, id) {\n graph.nodes.forEach(function (node) {\n var nodesTargetLinks = graph.links.filter(function (l) {\n return getNodeID(l.target, id) == getNodeID(node, id);\n });\n\n var nodesTargetLinksLength = nodesTargetLinks.length;\n\n if (nodesTargetLinksLength > 1) {\n nodesTargetLinks.sort(function (link1, link2) {\n // if both are not circular, the base on the source y position\n if (!link1.circular && !link2.circular) {\n if (link1.source.column == link2.source.column) {\n return link1.y0 - link2.y0;\n } else if (!sameInclines(link1, link2)) {\n return link1.y0 - link2.y0;\n } else {\n // get the angle of the link to the further source node (ie the smaller column)\n if (link2.source.column < link1.source.column) {\n var link2Adj = linkPerpendicularYToLinkSource(link2, link1);\n\n return link1.y0 - link2Adj;\n }\n if (link1.source.column < link2.source.column) {\n var link1Adj = linkPerpendicularYToLinkSource(link1, link2);\n\n return link1Adj - link2.y0;\n }\n }\n }\n\n // if only one is circular, the move top links up, or bottom links down\n if (link1.circular && !link2.circular) {\n return link1.circularLinkType == 'top' ? -1 : 1;\n } else if (link2.circular && !link1.circular) {\n return link2.circularLinkType == 'top' ? 1 : -1;\n }\n\n // if both links are circular...\n if (link1.circular && link2.circular) {\n // ...and they both loop the same way (both top)\n if (link1.circularLinkType === link2.circularLinkType && link1.circularLinkType == 'top') {\n // ...and they both connect to a target with same column, then sort by the target's y\n if (link1.source.column === link2.source.column) {\n return link1.source.y1 - link2.source.y1;\n } else {\n // ...and they connect to different column targets, then sort by how far back they\n return link1.source.column - link2.source.column;\n }\n } else if (link1.circularLinkType === link2.circularLinkType && link1.circularLinkType == 'bottom') {\n // ...and they both loop the same way (both bottom)\n // ...and they both connect to a target with same column, then sort by the target's y\n if (link1.source.column === link2.source.column) {\n return link1.source.y1 - link2.source.y1;\n } else {\n // ...and they connect to different column targets, then sort by how far back they\n return link2.source.column - link1.source.column;\n }\n } else {\n // ...and they loop around different ways, the move top up and bottom down\n return link1.circularLinkType == 'top' ? -1 : 1;\n }\n }\n });\n }\n\n // update y1 for links\n var yTargetOffset = node.y0;\n\n nodesTargetLinks.forEach(function (link) {\n link.y1 = yTargetOffset + link.width / 2;\n yTargetOffset = yTargetOffset + link.width;\n });\n\n // correct any circular bottom links so they are at the bottom of the node\n nodesTargetLinks.forEach(function (link, i) {\n if (link.circularLinkType == 'bottom') {\n var j = i + 1;\n var offsetFromBottom = 0;\n // sum the widths of any links that are below this link\n for (j; j < nodesTargetLinksLength; j++) {\n offsetFromBottom = offsetFromBottom + nodesTargetLinks[j].width;\n }\n link.y1 = node.y1 - offsetFromBottom - link.width / 2;\n }\n });\n });\n}\n\n// test if links both slope up, or both slope down\nfunction sameInclines(link1, link2) {\n return incline(link1) == incline(link2);\n}\n\n// returns the slope of a link, from source to target\n// up => slopes up from source to target\n// down => slopes down from source to target\nfunction incline(link) {\n return link.y0 - link.y1 > 0 ? 'up' : 'down';\n}\n\n// check if link is self linking, ie links a node to the same node\nfunction selfLinking(link, id) {\n return getNodeID(link.source, id) == getNodeID(link.target, id);\n}\n\nfunction fillHeight(graph, y0, y1) {\n\n var nodes = graph.nodes;\n var links = graph.links;\n\n var top = false;\n var bottom = false;\n\n links.forEach(function (link) {\n if (link.circularLinkType == \"top\") {\n top = true;\n } else if (link.circularLinkType == \"bottom\") {\n bottom = true;\n }\n });\n\n if (top == false || bottom == false) {\n var minY0 = min(nodes, function (node) {\n return node.y0;\n });\n var maxY1 = max(nodes, function (node) {\n return node.y1;\n });\n var currentHeight = maxY1 - minY0;\n var chartHeight = y1 - y0;\n var ratio = chartHeight / currentHeight;\n\n nodes.forEach(function (node) {\n var nodeHeight = (node.y1 - node.y0) * ratio;\n node.y0 = (node.y0 - minY0) * ratio;\n node.y1 = node.y0 + nodeHeight;\n });\n\n links.forEach(function (link) {\n link.y0 = (link.y0 - minY0) * ratio;\n link.y1 = (link.y1 - minY0) * ratio;\n link.width = link.width * ratio;\n });\n }\n}\n\nexport { sankeyCircular, center as sankeyCenter, left as sankeyLeft, right as sankeyRight, justify as sankeyJustify };\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\n// ASCEND: chop off the last nesting level - either [] or . - to ascend\n// the attribute tree. the remaining attrString is in match[1]\nvar ASCEND = /^(.*)(\\.[^\\.\\[\\]]+|\\[\\d\\])$/;\n\n// SIMPLEATTR: is this an un-nested attribute? (no dots or brackets)\nvar SIMPLEATTR = /^[^\\.\\[\\]]+$/;\n\n/*\n * calculate a relative attribute string, similar to a relative path\n *\n * @param {string} baseAttr:\n * an attribute string, such as 'annotations[3].x'. The \"current location\"\n * is the attribute string minus the last component ('annotations[3]')\n * @param {string} relativeAttr:\n * a route to the desired attribute string, using '^' to ascend\n *\n * @return {string} attrString:\n * for example:\n * relativeAttr('annotations[3].x', 'y') = 'annotations[3].y'\n * relativeAttr('annotations[3].x', '^[2].z') = 'annotations[2].z'\n * relativeAttr('annotations[3].x', '^^margin') = 'margin'\n * relativeAttr('annotations[3].x', '^^margin.r') = 'margin.r'\n */\nmodule.exports = function(baseAttr, relativeAttr) {\n while(relativeAttr) {\n var match = baseAttr.match(ASCEND);\n\n if(match) baseAttr = match[1];\n else if(baseAttr.match(SIMPLEATTR)) baseAttr = '';\n else throw new Error('bad relativeAttr call:' + [baseAttr, relativeAttr]);\n\n if(relativeAttr.charAt(0) === '^') relativeAttr = relativeAttr.slice(1);\n else break;\n }\n\n if(baseAttr && relativeAttr.charAt(0) !== '[') {\n return baseAttr + '.' + relativeAttr;\n }\n return baseAttr + relativeAttr;\n};\n","\"use strict\"\n\nfunction compileSearch(funcName, predicate, reversed, extraArgs, useNdarray, earlyOut) {\n var code = [\n \"function \", funcName, \"(a,l,h,\", extraArgs.join(\",\"), \"){\",\nearlyOut ? \"\" : \"var i=\", (reversed ? \"l-1\" : \"h+1\"),\n\";while(l<=h){\\\nvar m=(l+h)>>>1,x=a\", useNdarray ? \".get(m)\" : \"[m]\"]\n if(earlyOut) {\n if(predicate.indexOf(\"c\") < 0) {\n code.push(\";if(x===y){return m}else if(x<=y){\")\n } else {\n code.push(\";var p=c(x,y);if(p===0){return m}else if(p<=0){\")\n }\n } else {\n code.push(\";if(\", predicate, \"){i=m;\")\n }\n if(reversed) {\n code.push(\"l=m+1}else{h=m-1}\")\n } else {\n code.push(\"h=m-1}else{l=m+1}\")\n }\n code.push(\"}\")\n if(earlyOut) {\n code.push(\"return -1};\")\n } else {\n code.push(\"return i};\")\n }\n return code.join(\"\")\n}\n\nfunction compileBoundsSearch(predicate, reversed, suffix, earlyOut) {\n var result = new Function([\n compileSearch(\"A\", \"x\" + predicate + \"y\", reversed, [\"y\"], false, earlyOut),\n compileSearch(\"B\", \"x\" + predicate + \"y\", reversed, [\"y\"], true, earlyOut),\n compileSearch(\"P\", \"c(x,y)\" + predicate + \"0\", reversed, [\"y\", \"c\"], false, earlyOut),\n compileSearch(\"Q\", \"c(x,y)\" + predicate + \"0\", reversed, [\"y\", \"c\"], true, earlyOut),\n\"function dispatchBsearch\", suffix, \"(a,y,c,l,h){\\\nif(a.shape){\\\nif(typeof(c)==='function'){\\\nreturn Q(a,(l===undefined)?0:l|0,(h===undefined)?a.shape[0]-1:h|0,y,c)\\\n}else{\\\nreturn B(a,(c===undefined)?0:c|0,(l===undefined)?a.shape[0]-1:l|0,y)\\\n}}else{\\\nif(typeof(c)==='function'){\\\nreturn P(a,(l===undefined)?0:l|0,(h===undefined)?a.length-1:h|0,y,c)\\\n}else{\\\nreturn A(a,(c===undefined)?0:c|0,(l===undefined)?a.length-1:l|0,y)\\\n}}}\\\nreturn dispatchBsearch\", suffix].join(\"\"))\n return result()\n}\n\nmodule.exports = {\n ge: compileBoundsSearch(\">=\", false, \"GE\"),\n gt: compileBoundsSearch(\">\", false, \"GT\"),\n lt: compileBoundsSearch(\"<\", true, \"LT\"),\n le: compileBoundsSearch(\"<=\", true, \"LE\"),\n eq: compileBoundsSearch(\"-\", true, \"EQ\", true)\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar isTypedArray = require('../../lib').isTypedArray;\n\nexports.convertTypedArray = function(a) {\n return isTypedArray(a) ? Array.prototype.slice.call(a) : a;\n};\n\nexports.isOrdinal = function(dimension) {\n return !!dimension.tickvals;\n};\n\nexports.isVisible = function(dimension) {\n return dimension.visible || !('visible' in dimension);\n};\n","// Copyright (C) 2011 Google Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/**\n * @fileoverview Install a leaky WeakMap emulation on platforms that\n * don't provide a built-in one.\n *\n *

Assumes that an ES5 platform where, if {@code WeakMap} is\n * already present, then it conforms to the anticipated ES6\n * specification. To run this file on an ES5 or almost ES5\n * implementation where the {@code WeakMap} specification does not\n * quite conform, run repairES5.js first.\n *\n *

Even though WeakMapModule is not global, the linter thinks it\n * is, which is why it is in the overrides list below.\n *\n *

NOTE: Before using this WeakMap emulation in a non-SES\n * environment, see the note below about hiddenRecord.\n *\n * @author Mark S. Miller\n * @requires crypto, ArrayBuffer, Uint8Array, navigator, console\n * @overrides WeakMap, ses, Proxy\n * @overrides WeakMapModule\n */\n\n/**\n * This {@code WeakMap} emulation is observably equivalent to the\n * ES-Harmony WeakMap, but with leakier garbage collection properties.\n *\n *

As with true WeakMaps, in this emulation, a key does not\n * retain maps indexed by that key and (crucially) a map does not\n * retain the keys it indexes. A map by itself also does not retain\n * the values associated with that map.\n *\n *

However, the values associated with a key in some map are\n * retained so long as that key is retained and those associations are\n * not overridden. For example, when used to support membranes, all\n * values exported from a given membrane will live for the lifetime\n * they would have had in the absence of an interposed membrane. Even\n * when the membrane is revoked, all objects that would have been\n * reachable in the absence of revocation will still be reachable, as\n * far as the GC can tell, even though they will no longer be relevant\n * to ongoing computation.\n *\n *

The API implemented here is approximately the API as implemented\n * in FF6.0a1 and agreed to by MarkM, Andreas Gal, and Dave Herman,\n * rather than the offially approved proposal page. TODO(erights):\n * upgrade the ecmascript WeakMap proposal page to explain this API\n * change and present to EcmaScript committee for their approval.\n *\n *

The first difference between the emulation here and that in\n * FF6.0a1 is the presence of non enumerable {@code get___, has___,\n * set___, and delete___} methods on WeakMap instances to represent\n * what would be the hidden internal properties of a primitive\n * implementation. Whereas the FF6.0a1 WeakMap.prototype methods\n * require their {@code this} to be a genuine WeakMap instance (i.e.,\n * an object of {@code [[Class]]} \"WeakMap}), since there is nothing\n * unforgeable about the pseudo-internal method names used here,\n * nothing prevents these emulated prototype methods from being\n * applied to non-WeakMaps with pseudo-internal methods of the same\n * names.\n *\n *

Another difference is that our emulated {@code\n * WeakMap.prototype} is not itself a WeakMap. A problem with the\n * current FF6.0a1 API is that WeakMap.prototype is itself a WeakMap\n * providing ambient mutability and an ambient communications\n * channel. Thus, if a WeakMap is already present and has this\n * problem, repairES5.js wraps it in a safe wrappper in order to\n * prevent access to this channel. (See\n * PATCH_MUTABLE_FROZEN_WEAKMAP_PROTO in repairES5.js).\n */\n\n/**\n * If this is a full secureable ES5 platform and the ES-Harmony {@code WeakMap} is\n * absent, install an approximate emulation.\n *\n *

If WeakMap is present but cannot store some objects, use our approximate\n * emulation as a wrapper.\n *\n *

If this is almost a secureable ES5 platform, then WeakMap.js\n * should be run after repairES5.js.\n *\n *

See {@code WeakMap} for documentation of the garbage collection\n * properties of this WeakMap emulation.\n */\n(function WeakMapModule() {\n \"use strict\";\n\n if (typeof ses !== 'undefined' && ses.ok && !ses.ok()) {\n // already too broken, so give up\n return;\n }\n\n /**\n * In some cases (current Firefox), we must make a choice betweeen a\n * WeakMap which is capable of using all varieties of host objects as\n * keys and one which is capable of safely using proxies as keys. See\n * comments below about HostWeakMap and DoubleWeakMap for details.\n *\n * This function (which is a global, not exposed to guests) marks a\n * WeakMap as permitted to do what is necessary to index all host\n * objects, at the cost of making it unsafe for proxies.\n *\n * Do not apply this function to anything which is not a genuine\n * fresh WeakMap.\n */\n function weakMapPermitHostObjects(map) {\n // identity of function used as a secret -- good enough and cheap\n if (map.permitHostObjects___) {\n map.permitHostObjects___(weakMapPermitHostObjects);\n }\n }\n if (typeof ses !== 'undefined') {\n ses.weakMapPermitHostObjects = weakMapPermitHostObjects;\n }\n\n // IE 11 has no Proxy but has a broken WeakMap such that we need to patch\n // it using DoubleWeakMap; this flag tells DoubleWeakMap so.\n var doubleWeakMapCheckSilentFailure = false;\n\n // Check if there is already a good-enough WeakMap implementation, and if so\n // exit without replacing it.\n if (typeof WeakMap === 'function') {\n var HostWeakMap = WeakMap;\n // There is a WeakMap -- is it good enough?\n if (typeof navigator !== 'undefined' &&\n /Firefox/.test(navigator.userAgent)) {\n // We're now *assuming not*, because as of this writing (2013-05-06)\n // Firefox's WeakMaps have a miscellany of objects they won't accept, and\n // we don't want to make an exhaustive list, and testing for just one\n // will be a problem if that one is fixed alone (as they did for Event).\n\n // If there is a platform that we *can* reliably test on, here's how to\n // do it:\n // var problematic = ... ;\n // var testHostMap = new HostWeakMap();\n // try {\n // testHostMap.set(problematic, 1); // Firefox 20 will throw here\n // if (testHostMap.get(problematic) === 1) {\n // return;\n // }\n // } catch (e) {}\n\n } else {\n // IE 11 bug: WeakMaps silently fail to store frozen objects.\n var testMap = new HostWeakMap();\n var testObject = Object.freeze({});\n testMap.set(testObject, 1);\n if (testMap.get(testObject) !== 1) {\n doubleWeakMapCheckSilentFailure = true;\n // Fall through to installing our WeakMap.\n } else {\n module.exports = WeakMap;\n return;\n }\n }\n }\n\n var hop = Object.prototype.hasOwnProperty;\n var gopn = Object.getOwnPropertyNames;\n var defProp = Object.defineProperty;\n var isExtensible = Object.isExtensible;\n\n /**\n * Security depends on HIDDEN_NAME being both unguessable and\n * undiscoverable by untrusted code.\n *\n *

Given the known weaknesses of Math.random() on existing\n * browsers, it does not generate unguessability we can be confident\n * of.\n *\n *

It is the monkey patching logic in this file that is intended\n * to ensure undiscoverability. The basic idea is that there are\n * three fundamental means of discovering properties of an object:\n * The for/in loop, Object.keys(), and Object.getOwnPropertyNames(),\n * as well as some proposed ES6 extensions that appear on our\n * whitelist. The first two only discover enumerable properties, and\n * we only use HIDDEN_NAME to name a non-enumerable property, so the\n * only remaining threat should be getOwnPropertyNames and some\n * proposed ES6 extensions that appear on our whitelist. We monkey\n * patch them to remove HIDDEN_NAME from the list of properties they\n * returns.\n *\n *

TODO(erights): On a platform with built-in Proxies, proxies\n * could be used to trap and thereby discover the HIDDEN_NAME, so we\n * need to monkey patch Proxy.create, Proxy.createFunction, etc, in\n * order to wrap the provided handler with the real handler which\n * filters out all traps using HIDDEN_NAME.\n *\n *

TODO(erights): Revisit Mike Stay's suggestion that we use an\n * encapsulated function at a not-necessarily-secret name, which\n * uses the Stiegler shared-state rights amplification pattern to\n * reveal the associated value only to the WeakMap in which this key\n * is associated with that value. Since only the key retains the\n * function, the function can also remember the key without causing\n * leakage of the key, so this doesn't violate our general gc\n * goals. In addition, because the name need not be a guarded\n * secret, we could efficiently handle cross-frame frozen keys.\n */\n var HIDDEN_NAME_PREFIX = 'weakmap:';\n var HIDDEN_NAME = HIDDEN_NAME_PREFIX + 'ident:' + Math.random() + '___';\n\n if (typeof crypto !== 'undefined' &&\n typeof crypto.getRandomValues === 'function' &&\n typeof ArrayBuffer === 'function' &&\n typeof Uint8Array === 'function') {\n var ab = new ArrayBuffer(25);\n var u8s = new Uint8Array(ab);\n crypto.getRandomValues(u8s);\n HIDDEN_NAME = HIDDEN_NAME_PREFIX + 'rand:' +\n Array.prototype.map.call(u8s, function(u8) {\n return (u8 % 36).toString(36);\n }).join('') + '___';\n }\n\n function isNotHiddenName(name) {\n return !(\n name.substr(0, HIDDEN_NAME_PREFIX.length) == HIDDEN_NAME_PREFIX &&\n name.substr(name.length - 3) === '___');\n }\n\n /**\n * Monkey patch getOwnPropertyNames to avoid revealing the\n * HIDDEN_NAME.\n *\n *

The ES5.1 spec requires each name to appear only once, but as\n * of this writing, this requirement is controversial for ES6, so we\n * made this code robust against this case. If the resulting extra\n * search turns out to be expensive, we can probably relax this once\n * ES6 is adequately supported on all major browsers, iff no browser\n * versions we support at that time have relaxed this constraint\n * without providing built-in ES6 WeakMaps.\n */\n defProp(Object, 'getOwnPropertyNames', {\n value: function fakeGetOwnPropertyNames(obj) {\n return gopn(obj).filter(isNotHiddenName);\n }\n });\n\n /**\n * getPropertyNames is not in ES5 but it is proposed for ES6 and\n * does appear in our whitelist, so we need to clean it too.\n */\n if ('getPropertyNames' in Object) {\n var originalGetPropertyNames = Object.getPropertyNames;\n defProp(Object, 'getPropertyNames', {\n value: function fakeGetPropertyNames(obj) {\n return originalGetPropertyNames(obj).filter(isNotHiddenName);\n }\n });\n }\n\n /**\n *

To treat objects as identity-keys with reasonable efficiency\n * on ES5 by itself (i.e., without any object-keyed collections), we\n * need to add a hidden property to such key objects when we\n * can. This raises several issues:\n *

    \n *
  • Arranging to add this property to objects before we lose the\n * chance, and\n *
  • Hiding the existence of this new property from most\n * JavaScript code.\n *
  • Preventing certification theft, where one object is\n * created falsely claiming to be the key of an association\n * actually keyed by another object.\n *
  • Preventing value theft, where untrusted code with\n * access to a key object but not a weak map nevertheless\n * obtains access to the value associated with that key in that\n * weak map.\n *
\n * We do so by\n *
    \n *
  • Making the name of the hidden property unguessable, so \"[]\"\n * indexing, which we cannot intercept, cannot be used to access\n * a property without knowing the name.\n *
  • Making the hidden property non-enumerable, so we need not\n * worry about for-in loops or {@code Object.keys},\n *
  • monkey patching those reflective methods that would\n * prevent extensions, to add this hidden property first,\n *
  • monkey patching those methods that would reveal this\n * hidden property.\n *
\n * Unfortunately, because of same-origin iframes, we cannot reliably\n * add this hidden property before an object becomes\n * non-extensible. Instead, if we encounter a non-extensible object\n * without a hidden record that we can detect (whether or not it has\n * a hidden record stored under a name secret to us), then we just\n * use the key object itself to represent its identity in a brute\n * force leaky map stored in the weak map, losing all the advantages\n * of weakness for these.\n */\n function getHiddenRecord(key) {\n if (key !== Object(key)) {\n throw new TypeError('Not an object: ' + key);\n }\n var hiddenRecord = key[HIDDEN_NAME];\n if (hiddenRecord && hiddenRecord.key === key) { return hiddenRecord; }\n if (!isExtensible(key)) {\n // Weak map must brute force, as explained in doc-comment above.\n return void 0;\n }\n\n // The hiddenRecord and the key point directly at each other, via\n // the \"key\" and HIDDEN_NAME properties respectively. The key\n // field is for quickly verifying that this hidden record is an\n // own property, not a hidden record from up the prototype chain.\n //\n // NOTE: Because this WeakMap emulation is meant only for systems like\n // SES where Object.prototype is frozen without any numeric\n // properties, it is ok to use an object literal for the hiddenRecord.\n // This has two advantages:\n // * It is much faster in a performance critical place\n // * It avoids relying on Object.create(null), which had been\n // problematic on Chrome 28.0.1480.0. See\n // https://code.google.com/p/google-caja/issues/detail?id=1687\n hiddenRecord = { key: key };\n\n // When using this WeakMap emulation on platforms where\n // Object.prototype might not be frozen and Object.create(null) is\n // reliable, use the following two commented out lines instead.\n // hiddenRecord = Object.create(null);\n // hiddenRecord.key = key;\n\n // Please contact us if you need this to work on platforms where\n // Object.prototype might not be frozen and\n // Object.create(null) might not be reliable.\n\n try {\n defProp(key, HIDDEN_NAME, {\n value: hiddenRecord,\n writable: false,\n enumerable: false,\n configurable: false\n });\n return hiddenRecord;\n } catch (error) {\n // Under some circumstances, isExtensible seems to misreport whether\n // the HIDDEN_NAME can be defined.\n // The circumstances have not been isolated, but at least affect\n // Node.js v0.10.26 on TravisCI / Linux, but not the same version of\n // Node.js on OS X.\n return void 0;\n }\n }\n\n /**\n * Monkey patch operations that would make their argument\n * non-extensible.\n *\n *

The monkey patched versions throw a TypeError if their\n * argument is not an object, so it should only be done to functions\n * that should throw a TypeError anyway if their argument is not an\n * object.\n */\n (function(){\n var oldFreeze = Object.freeze;\n defProp(Object, 'freeze', {\n value: function identifyingFreeze(obj) {\n getHiddenRecord(obj);\n return oldFreeze(obj);\n }\n });\n var oldSeal = Object.seal;\n defProp(Object, 'seal', {\n value: function identifyingSeal(obj) {\n getHiddenRecord(obj);\n return oldSeal(obj);\n }\n });\n var oldPreventExtensions = Object.preventExtensions;\n defProp(Object, 'preventExtensions', {\n value: function identifyingPreventExtensions(obj) {\n getHiddenRecord(obj);\n return oldPreventExtensions(obj);\n }\n });\n })();\n\n function constFunc(func) {\n func.prototype = null;\n return Object.freeze(func);\n }\n\n var calledAsFunctionWarningDone = false;\n function calledAsFunctionWarning() {\n // Future ES6 WeakMap is currently (2013-09-10) expected to reject WeakMap()\n // but we used to permit it and do it ourselves, so warn only.\n if (!calledAsFunctionWarningDone && typeof console !== 'undefined') {\n calledAsFunctionWarningDone = true;\n console.warn('WeakMap should be invoked as new WeakMap(), not ' +\n 'WeakMap(). This will be an error in the future.');\n }\n }\n\n var nextId = 0;\n\n var OurWeakMap = function() {\n if (!(this instanceof OurWeakMap)) { // approximate test for new ...()\n calledAsFunctionWarning();\n }\n\n // We are currently (12/25/2012) never encountering any prematurely\n // non-extensible keys.\n var keys = []; // brute force for prematurely non-extensible keys.\n var values = []; // brute force for corresponding values.\n var id = nextId++;\n\n function get___(key, opt_default) {\n var index;\n var hiddenRecord = getHiddenRecord(key);\n if (hiddenRecord) {\n return id in hiddenRecord ? hiddenRecord[id] : opt_default;\n } else {\n index = keys.indexOf(key);\n return index >= 0 ? values[index] : opt_default;\n }\n }\n\n function has___(key) {\n var hiddenRecord = getHiddenRecord(key);\n if (hiddenRecord) {\n return id in hiddenRecord;\n } else {\n return keys.indexOf(key) >= 0;\n }\n }\n\n function set___(key, value) {\n var index;\n var hiddenRecord = getHiddenRecord(key);\n if (hiddenRecord) {\n hiddenRecord[id] = value;\n } else {\n index = keys.indexOf(key);\n if (index >= 0) {\n values[index] = value;\n } else {\n // Since some browsers preemptively terminate slow turns but\n // then continue computing with presumably corrupted heap\n // state, we here defensively get keys.length first and then\n // use it to update both the values and keys arrays, keeping\n // them in sync.\n index = keys.length;\n values[index] = value;\n // If we crash here, values will be one longer than keys.\n keys[index] = key;\n }\n }\n return this;\n }\n\n function delete___(key) {\n var hiddenRecord = getHiddenRecord(key);\n var index, lastIndex;\n if (hiddenRecord) {\n return id in hiddenRecord && delete hiddenRecord[id];\n } else {\n index = keys.indexOf(key);\n if (index < 0) {\n return false;\n }\n // Since some browsers preemptively terminate slow turns but\n // then continue computing with potentially corrupted heap\n // state, we here defensively get keys.length first and then use\n // it to update both the keys and the values array, keeping\n // them in sync. We update the two with an order of assignments,\n // such that any prefix of these assignments will preserve the\n // key/value correspondence, either before or after the delete.\n // Note that this needs to work correctly when index === lastIndex.\n lastIndex = keys.length - 1;\n keys[index] = void 0;\n // If we crash here, there's a void 0 in the keys array, but\n // no operation will cause a \"keys.indexOf(void 0)\", since\n // getHiddenRecord(void 0) will always throw an error first.\n values[index] = values[lastIndex];\n // If we crash here, values[index] cannot be found here,\n // because keys[index] is void 0.\n keys[index] = keys[lastIndex];\n // If index === lastIndex and we crash here, then keys[index]\n // is still void 0, since the aliasing killed the previous key.\n keys.length = lastIndex;\n // If we crash here, keys will be one shorter than values.\n values.length = lastIndex;\n return true;\n }\n }\n\n return Object.create(OurWeakMap.prototype, {\n get___: { value: constFunc(get___) },\n has___: { value: constFunc(has___) },\n set___: { value: constFunc(set___) },\n delete___: { value: constFunc(delete___) }\n });\n };\n\n OurWeakMap.prototype = Object.create(Object.prototype, {\n get: {\n /**\n * Return the value most recently associated with key, or\n * opt_default if none.\n */\n value: function get(key, opt_default) {\n return this.get___(key, opt_default);\n },\n writable: true,\n configurable: true\n },\n\n has: {\n /**\n * Is there a value associated with key in this WeakMap?\n */\n value: function has(key) {\n return this.has___(key);\n },\n writable: true,\n configurable: true\n },\n\n set: {\n /**\n * Associate value with key in this WeakMap, overwriting any\n * previous association if present.\n */\n value: function set(key, value) {\n return this.set___(key, value);\n },\n writable: true,\n configurable: true\n },\n\n 'delete': {\n /**\n * Remove any association for key in this WeakMap, returning\n * whether there was one.\n *\n *

Note that the boolean return here does not work like the\n * {@code delete} operator. The {@code delete} operator returns\n * whether the deletion succeeds at bringing about a state in\n * which the deleted property is absent. The {@code delete}\n * operator therefore returns true if the property was already\n * absent, whereas this {@code delete} method returns false if\n * the association was already absent.\n */\n value: function remove(key) {\n return this.delete___(key);\n },\n writable: true,\n configurable: true\n }\n });\n\n if (typeof HostWeakMap === 'function') {\n (function() {\n // If we got here, then the platform has a WeakMap but we are concerned\n // that it may refuse to store some key types. Therefore, make a map\n // implementation which makes use of both as possible.\n\n // In this mode we are always using double maps, so we are not proxy-safe.\n // This combination does not occur in any known browser, but we had best\n // be safe.\n if (doubleWeakMapCheckSilentFailure && typeof Proxy !== 'undefined') {\n Proxy = undefined;\n }\n\n function DoubleWeakMap() {\n if (!(this instanceof OurWeakMap)) { // approximate test for new ...()\n calledAsFunctionWarning();\n }\n\n // Preferable, truly weak map.\n var hmap = new HostWeakMap();\n\n // Our hidden-property-based pseudo-weak-map. Lazily initialized in the\n // 'set' implementation; thus we can avoid performing extra lookups if\n // we know all entries actually stored are entered in 'hmap'.\n var omap = undefined;\n\n // Hidden-property maps are not compatible with proxies because proxies\n // can observe the hidden name and either accidentally expose it or fail\n // to allow the hidden property to be set. Therefore, we do not allow\n // arbitrary WeakMaps to switch to using hidden properties, but only\n // those which need the ability, and unprivileged code is not allowed\n // to set the flag.\n //\n // (Except in doubleWeakMapCheckSilentFailure mode in which case we\n // disable proxies.)\n var enableSwitching = false;\n\n function dget(key, opt_default) {\n if (omap) {\n return hmap.has(key) ? hmap.get(key)\n : omap.get___(key, opt_default);\n } else {\n return hmap.get(key, opt_default);\n }\n }\n\n function dhas(key) {\n return hmap.has(key) || (omap ? omap.has___(key) : false);\n }\n\n var dset;\n if (doubleWeakMapCheckSilentFailure) {\n dset = function(key, value) {\n hmap.set(key, value);\n if (!hmap.has(key)) {\n if (!omap) { omap = new OurWeakMap(); }\n omap.set(key, value);\n }\n return this;\n };\n } else {\n dset = function(key, value) {\n if (enableSwitching) {\n try {\n hmap.set(key, value);\n } catch (e) {\n if (!omap) { omap = new OurWeakMap(); }\n omap.set___(key, value);\n }\n } else {\n hmap.set(key, value);\n }\n return this;\n };\n }\n\n function ddelete(key) {\n var result = !!hmap['delete'](key);\n if (omap) { return omap.delete___(key) || result; }\n return result;\n }\n\n return Object.create(OurWeakMap.prototype, {\n get___: { value: constFunc(dget) },\n has___: { value: constFunc(dhas) },\n set___: { value: constFunc(dset) },\n delete___: { value: constFunc(ddelete) },\n permitHostObjects___: { value: constFunc(function(token) {\n if (token === weakMapPermitHostObjects) {\n enableSwitching = true;\n } else {\n throw new Error('bogus call to permitHostObjects___');\n }\n })}\n });\n }\n DoubleWeakMap.prototype = OurWeakMap.prototype;\n module.exports = DoubleWeakMap;\n\n // define .constructor to hide OurWeakMap ctor\n Object.defineProperty(WeakMap.prototype, 'constructor', {\n value: WeakMap,\n enumerable: false, // as default .constructor is\n configurable: true,\n writable: true\n });\n })();\n } else {\n // There is no host WeakMap, so we must use the emulation.\n\n // Emulated WeakMaps are incompatible with native proxies (because proxies\n // can observe the hidden name), so we must disable Proxy usage (in\n // ArrayLike and Domado, currently).\n if (typeof Proxy !== 'undefined') {\n Proxy = undefined;\n }\n\n module.exports = OurWeakMap;\n }\n})();\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/splom');\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Registry = require('../../registry');\nvar Lib = require('../../lib');\n\nvar colorscaleDefaults = require('../../components/colorscale/defaults');\nvar attributes = require('./attributes');\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n var i, j;\n\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var x = coerce('x');\n var y = coerce('y');\n\n var z = coerce('z');\n if(!z || !z.length ||\n (x ? (x.length < 1) : false) ||\n (y ? (y.length < 1) : false)\n ) {\n traceOut.visible = false;\n return;\n }\n\n traceOut._xlength = (Array.isArray(x) && Lib.isArrayOrTypedArray(x[0])) ? z.length : z[0].length;\n traceOut._ylength = z.length;\n\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');\n handleCalendarDefaults(traceIn, traceOut, ['x', 'y', 'z'], layout);\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n\n // Coerce remaining properties\n [\n 'lighting.ambient',\n 'lighting.diffuse',\n 'lighting.specular',\n 'lighting.roughness',\n 'lighting.fresnel',\n 'lightposition.x',\n 'lightposition.y',\n 'lightposition.z',\n 'hidesurface',\n 'connectgaps',\n 'opacity'\n ].forEach(function(x) { coerce(x); });\n\n var surfaceColor = coerce('surfacecolor');\n\n var dims = ['x', 'y', 'z'];\n for(i = 0; i < 3; ++i) {\n var contourDim = 'contours.' + dims[i];\n var show = coerce(contourDim + '.show');\n var highlight = coerce(contourDim + '.highlight');\n\n if(show || highlight) {\n for(j = 0; j < 3; ++j) {\n coerce(contourDim + '.project.' + dims[j]);\n }\n }\n\n if(show) {\n coerce(contourDim + '.color');\n coerce(contourDim + '.width');\n coerce(contourDim + '.usecolormap');\n }\n\n if(highlight) {\n coerce(contourDim + '.highlightcolor');\n coerce(contourDim + '.highlightwidth');\n }\n\n coerce(contourDim + '.start');\n coerce(contourDim + '.end');\n coerce(contourDim + '.size');\n }\n\n // backward compatibility block\n if(!surfaceColor) {\n mapLegacy(traceIn, 'zmin', 'cmin');\n mapLegacy(traceIn, 'zmax', 'cmax');\n mapLegacy(traceIn, 'zauto', 'cauto');\n }\n\n // TODO if contours.?.usecolormap are false and hidesurface is true\n // the colorbar shouldn't be shown by default\n\n colorscaleDefaults(\n traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'c'}\n );\n\n // disable 1D transforms - currently surface does NOT support column data like heatmap does\n // you can use mesh3d for this use case, but not surface\n traceOut._length = null;\n};\n\nfunction mapLegacy(traceIn, oldAttr, newAttr) {\n if(oldAttr in traceIn && !(newAttr in traceIn)) {\n traceIn[newAttr] = traceIn[oldAttr];\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","'use strict'\n\nmodule.exports = solveIntersection\n\nvar ratMul = require('big-rat/mul')\nvar ratDiv = require('big-rat/div')\nvar ratSub = require('big-rat/sub')\nvar ratSign = require('big-rat/sign')\nvar rvSub = require('rat-vec/sub')\nvar rvAdd = require('rat-vec/add')\nvar rvMuls = require('rat-vec/muls')\n\nfunction ratPerp (a, b) {\n return ratSub(ratMul(a[0], b[1]), ratMul(a[1], b[0]))\n}\n\n// Solve for intersection\n// x = a + t (b-a)\n// (x - c) ^ (d-c) = 0\n// (t * (b-a) + (a-c) ) ^ (d-c) = 0\n// t * (b-a)^(d-c) = (d-c)^(a-c)\n// t = (d-c)^(a-c) / (b-a)^(d-c)\n\nfunction solveIntersection (a, b, c, d) {\n var ba = rvSub(b, a)\n var dc = rvSub(d, c)\n\n var baXdc = ratPerp(ba, dc)\n\n if (ratSign(baXdc) === 0) {\n return null\n }\n\n var ac = rvSub(a, c)\n var dcXac = ratPerp(dc, ac)\n\n var t = ratDiv(dcXac, baXdc)\n var s = rvMuls(ba, t)\n var r = rvAdd(a, s)\n\n return r\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar heatmapAttrs = require('../heatmap/attributes');\nvar contourAttrs = require('../contour/attributes');\nvar colorScaleAttrs = require('../../components/colorscale/attributes');\n\nvar extendFlat = require('../../lib/extend').extendFlat;\n\nvar contourContourAttrs = contourAttrs.contours;\n\nmodule.exports = extendFlat({\n carpet: {\n valType: 'string',\n \n editType: 'calc',\n \n },\n z: heatmapAttrs.z,\n a: heatmapAttrs.x,\n a0: heatmapAttrs.x0,\n da: heatmapAttrs.dx,\n b: heatmapAttrs.y,\n b0: heatmapAttrs.y0,\n db: heatmapAttrs.dy,\n text: heatmapAttrs.text,\n hovertext: heatmapAttrs.hovertext,\n transpose: heatmapAttrs.transpose,\n atype: heatmapAttrs.xtype,\n btype: heatmapAttrs.ytype,\n\n fillcolor: contourAttrs.fillcolor,\n\n autocontour: contourAttrs.autocontour,\n ncontours: contourAttrs.ncontours,\n\n contours: {\n type: contourContourAttrs.type,\n start: contourContourAttrs.start,\n end: contourContourAttrs.end,\n size: contourContourAttrs.size,\n coloring: {\n // from contourAttrs.contours.coloring but no 'heatmap' option\n valType: 'enumerated',\n values: ['fill', 'lines', 'none'],\n dflt: 'fill',\n \n editType: 'calc',\n \n },\n showlines: contourContourAttrs.showlines,\n showlabels: contourContourAttrs.showlabels,\n labelfont: contourContourAttrs.labelfont,\n labelformat: contourContourAttrs.labelformat,\n operation: contourContourAttrs.operation,\n value: contourContourAttrs.value,\n editType: 'calc',\n impliedEdits: {'autocontour': false}\n },\n\n line: {\n color: contourAttrs.line.color,\n width: contourAttrs.line.width,\n dash: contourAttrs.line.dash,\n smoothing: contourAttrs.line.smoothing,\n editType: 'plot'\n },\n\n transforms: undefined\n},\n\n colorScaleAttrs('', {\n cLetter: 'z',\n autoColorDflt: false\n })\n);\n","var reg = /[\\'\\\"]/\n\nmodule.exports = function unquote(str) {\n if (!str) {\n return ''\n }\n if (reg.test(str.charAt(0))) {\n str = str.substr(1)\n }\n if (reg.test(str.charAt(str.length - 1))) {\n str = str.substr(0, str.length - 1)\n }\n return str\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\n// Simple helper functions\n// none of these need any external deps\n\nmodule.exports = function identity(d) { return d; };\n","\"use strict\"\n\nmodule.exports = compareAngle\n\nvar orient = require(\"robust-orientation\")\nvar sgn = require(\"signum\")\nvar twoSum = require(\"two-sum\")\nvar robustProduct = require(\"robust-product\")\nvar robustSum = require(\"robust-sum\")\n\nfunction testInterior(a, b, c) {\n var x0 = twoSum(a[0], -b[0])\n var y0 = twoSum(a[1], -b[1])\n var x1 = twoSum(c[0], -b[0])\n var y1 = twoSum(c[1], -b[1])\n\n var d = robustSum(\n robustProduct(x0, x1),\n robustProduct(y0, y1))\n\n return d[d.length-1] >= 0\n}\n\nfunction compareAngle(a, b, c, d) {\n var bcd = orient(b, c, d)\n if(bcd === 0) {\n //Handle degenerate cases\n var sabc = sgn(orient(a, b, c))\n var sabd = sgn(orient(a, b, d))\n if(sabc === sabd) {\n if(sabc === 0) {\n var ic = testInterior(a, b, c)\n var id = testInterior(a, b, d)\n if(ic === id) {\n return 0\n } else if(ic) {\n return 1\n } else {\n return -1\n }\n }\n return 0\n } else if(sabd === 0) {\n if(sabc > 0) {\n return -1\n } else if(testInterior(a, b, d)) {\n return -1\n } else {\n return 1\n }\n } else if(sabc === 0) {\n if(sabd > 0) {\n return 1\n } else if(testInterior(a, b, c)) {\n return 1\n } else {\n return -1\n }\n }\n return sgn(sabd - sabc)\n }\n var abc = orient(a, b, c)\n if(abc > 0) {\n if(bcd > 0 && orient(a, b, d) > 0) {\n return 1\n }\n return -1\n } else if(abc < 0) {\n if(bcd > 0 || orient(a, b, d) > 0) {\n return 1\n }\n return -1\n } else {\n var abd = orient(a, b, d)\n if(abd > 0) {\n return 1\n } else {\n if(testInterior(a, b, c)) {\n return 1\n } else {\n return -1\n }\n }\n }\n}","'use strict'\n\nmodule.exports = createBackgroundCube\n\nvar createBuffer = require('gl-buffer')\nvar createVAO = require('gl-vao')\nvar createShader = require('./shaders').bg\n\nfunction BackgroundCube(gl, buffer, vao, shader) {\n this.gl = gl\n this.buffer = buffer\n this.vao = vao\n this.shader = shader\n}\n\nvar proto = BackgroundCube.prototype\n\nproto.draw = function(model, view, projection, bounds, enable, colors) {\n var needsBG = false\n for(var i=0; i<3; ++i) {\n needsBG = needsBG || enable[i]\n }\n if(!needsBG) {\n return\n }\n\n var gl = this.gl\n\n gl.enable(gl.POLYGON_OFFSET_FILL)\n gl.polygonOffset(1, 2)\n\n this.shader.bind()\n this.shader.uniforms = {\n model: model,\n view: view,\n projection: projection,\n bounds: bounds,\n enable: enable,\n colors: colors\n }\n this.vao.bind()\n this.vao.draw(this.gl.TRIANGLES, 36)\n this.vao.unbind()\n\n gl.disable(gl.POLYGON_OFFSET_FILL)\n}\n\nproto.dispose = function() {\n this.vao.dispose()\n this.buffer.dispose()\n this.shader.dispose()\n}\n\nfunction createBackgroundCube(gl) {\n //Create cube vertices\n var vertices = []\n var indices = []\n var ptr = 0\n for(var d=0; d<3; ++d) {\n var u = (d+1) % 3\n var v = (d+2) % 3\n var x = [0,0,0]\n var c = [0,0,0]\n for(var s=-1; s<=1; s+=2) {\n indices.push(ptr, ptr+2, ptr+1,\n ptr+1, ptr+2, ptr+3)\n x[d] = s\n c[d] = s\n for(var i=-1; i<=1; i+=2) {\n x[u] = i\n for(var j=-1; j<=1; j+=2) {\n x[v] = j\n vertices.push(x[0], x[1], x[2],\n c[0], c[1], c[2])\n ptr += 1\n }\n }\n //Swap u and v\n var tt = u\n u = v\n v = tt\n }\n }\n\n //Allocate buffer and vertex array\n var buffer = createBuffer(gl, new Float32Array(vertices))\n var elements = createBuffer(gl, new Uint16Array(indices), gl.ELEMENT_ARRAY_BUFFER)\n var vao = createVAO(gl, [\n {\n buffer: buffer,\n type: gl.FLOAT,\n size: 3,\n offset: 0,\n stride: 24\n },\n {\n buffer: buffer,\n type: gl.FLOAT,\n size: 3,\n offset: 12,\n stride: 24\n }\n ], elements)\n\n //Create shader object\n var shader = createShader(gl)\n shader.attributes.position.location = 0\n shader.attributes.normal.location = 1\n\n return new BackgroundCube(gl, buffer, vao, shader)\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar drawModule = require('./draw');\n\nmodule.exports = {\n moduleType: 'component',\n name: 'shapes',\n\n layoutAttributes: require('./attributes'),\n supplyLayoutDefaults: require('./defaults'),\n includeBasePlot: require('../../plots/cartesian/include_components')('shapes'),\n\n calcAutorange: require('./calc_autorange'),\n draw: drawModule.draw,\n drawOne: drawModule.drawOne\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar d3 = require('d3');\n\n/** Marker symbol definitions\n * users can specify markers either by number or name\n * add 100 (or '-open') and you get an open marker\n * open markers have no fill and use line color as the stroke color\n * add 200 (or '-dot') and you get a dot in the middle\n * add both and you get both\n */\n\nmodule.exports = {\n circle: {\n n: 0,\n f: function(r) {\n var rs = d3.round(r, 2);\n return 'M' + rs + ',0A' + rs + ',' + rs + ' 0 1,1 0,-' + rs +\n 'A' + rs + ',' + rs + ' 0 0,1 ' + rs + ',0Z';\n }\n },\n square: {\n n: 1,\n f: function(r) {\n var rs = d3.round(r, 2);\n return 'M' + rs + ',' + rs + 'H-' + rs + 'V-' + rs + 'H' + rs + 'Z';\n }\n },\n diamond: {\n n: 2,\n f: function(r) {\n var rd = d3.round(r * 1.3, 2);\n return 'M' + rd + ',0L0,' + rd + 'L-' + rd + ',0L0,-' + rd + 'Z';\n }\n },\n cross: {\n n: 3,\n f: function(r) {\n var rc = d3.round(r * 0.4, 2);\n var rc2 = d3.round(r * 1.2, 2);\n return 'M' + rc2 + ',' + rc + 'H' + rc + 'V' + rc2 + 'H-' + rc +\n 'V' + rc + 'H-' + rc2 + 'V-' + rc + 'H-' + rc + 'V-' + rc2 +\n 'H' + rc + 'V-' + rc + 'H' + rc2 + 'Z';\n }\n },\n x: {\n n: 4,\n f: function(r) {\n var rx = d3.round(r * 0.8 / Math.sqrt(2), 2);\n var ne = 'l' + rx + ',' + rx;\n var se = 'l' + rx + ',-' + rx;\n var sw = 'l-' + rx + ',-' + rx;\n var nw = 'l-' + rx + ',' + rx;\n return 'M0,' + rx + ne + se + sw + se + sw + nw + sw + nw + ne + nw + ne + 'Z';\n }\n },\n 'triangle-up': {\n n: 5,\n f: function(r) {\n var rt = d3.round(r * 2 / Math.sqrt(3), 2);\n var r2 = d3.round(r / 2, 2);\n var rs = d3.round(r, 2);\n return 'M-' + rt + ',' + r2 + 'H' + rt + 'L0,-' + rs + 'Z';\n }\n },\n 'triangle-down': {\n n: 6,\n f: function(r) {\n var rt = d3.round(r * 2 / Math.sqrt(3), 2);\n var r2 = d3.round(r / 2, 2);\n var rs = d3.round(r, 2);\n return 'M-' + rt + ',-' + r2 + 'H' + rt + 'L0,' + rs + 'Z';\n }\n },\n 'triangle-left': {\n n: 7,\n f: function(r) {\n var rt = d3.round(r * 2 / Math.sqrt(3), 2);\n var r2 = d3.round(r / 2, 2);\n var rs = d3.round(r, 2);\n return 'M' + r2 + ',-' + rt + 'V' + rt + 'L-' + rs + ',0Z';\n }\n },\n 'triangle-right': {\n n: 8,\n f: function(r) {\n var rt = d3.round(r * 2 / Math.sqrt(3), 2);\n var r2 = d3.round(r / 2, 2);\n var rs = d3.round(r, 2);\n return 'M-' + r2 + ',-' + rt + 'V' + rt + 'L' + rs + ',0Z';\n }\n },\n 'triangle-ne': {\n n: 9,\n f: function(r) {\n var r1 = d3.round(r * 0.6, 2);\n var r2 = d3.round(r * 1.2, 2);\n return 'M-' + r2 + ',-' + r1 + 'H' + r1 + 'V' + r2 + 'Z';\n }\n },\n 'triangle-se': {\n n: 10,\n f: function(r) {\n var r1 = d3.round(r * 0.6, 2);\n var r2 = d3.round(r * 1.2, 2);\n return 'M' + r1 + ',-' + r2 + 'V' + r1 + 'H-' + r2 + 'Z';\n }\n },\n 'triangle-sw': {\n n: 11,\n f: function(r) {\n var r1 = d3.round(r * 0.6, 2);\n var r2 = d3.round(r * 1.2, 2);\n return 'M' + r2 + ',' + r1 + 'H-' + r1 + 'V-' + r2 + 'Z';\n }\n },\n 'triangle-nw': {\n n: 12,\n f: function(r) {\n var r1 = d3.round(r * 0.6, 2);\n var r2 = d3.round(r * 1.2, 2);\n return 'M-' + r1 + ',' + r2 + 'V-' + r1 + 'H' + r2 + 'Z';\n }\n },\n pentagon: {\n n: 13,\n f: function(r) {\n var x1 = d3.round(r * 0.951, 2);\n var x2 = d3.round(r * 0.588, 2);\n var y0 = d3.round(-r, 2);\n var y1 = d3.round(r * -0.309, 2);\n var y2 = d3.round(r * 0.809, 2);\n return 'M' + x1 + ',' + y1 + 'L' + x2 + ',' + y2 + 'H-' + x2 +\n 'L-' + x1 + ',' + y1 + 'L0,' + y0 + 'Z';\n }\n },\n hexagon: {\n n: 14,\n f: function(r) {\n var y0 = d3.round(r, 2);\n var y1 = d3.round(r / 2, 2);\n var x = d3.round(r * Math.sqrt(3) / 2, 2);\n return 'M' + x + ',-' + y1 + 'V' + y1 + 'L0,' + y0 +\n 'L-' + x + ',' + y1 + 'V-' + y1 + 'L0,-' + y0 + 'Z';\n }\n },\n hexagon2: {\n n: 15,\n f: function(r) {\n var x0 = d3.round(r, 2);\n var x1 = d3.round(r / 2, 2);\n var y = d3.round(r * Math.sqrt(3) / 2, 2);\n return 'M-' + x1 + ',' + y + 'H' + x1 + 'L' + x0 +\n ',0L' + x1 + ',-' + y + 'H-' + x1 + 'L-' + x0 + ',0Z';\n }\n },\n octagon: {\n n: 16,\n f: function(r) {\n var a = d3.round(r * 0.924, 2);\n var b = d3.round(r * 0.383, 2);\n return 'M-' + b + ',-' + a + 'H' + b + 'L' + a + ',-' + b + 'V' + b +\n 'L' + b + ',' + a + 'H-' + b + 'L-' + a + ',' + b + 'V-' + b + 'Z';\n }\n },\n star: {\n n: 17,\n f: function(r) {\n var rs = r * 1.4;\n var x1 = d3.round(rs * 0.225, 2);\n var x2 = d3.round(rs * 0.951, 2);\n var x3 = d3.round(rs * 0.363, 2);\n var x4 = d3.round(rs * 0.588, 2);\n var y0 = d3.round(-rs, 2);\n var y1 = d3.round(rs * -0.309, 2);\n var y3 = d3.round(rs * 0.118, 2);\n var y4 = d3.round(rs * 0.809, 2);\n var y5 = d3.round(rs * 0.382, 2);\n return 'M' + x1 + ',' + y1 + 'H' + x2 + 'L' + x3 + ',' + y3 +\n 'L' + x4 + ',' + y4 + 'L0,' + y5 + 'L-' + x4 + ',' + y4 +\n 'L-' + x3 + ',' + y3 + 'L-' + x2 + ',' + y1 + 'H-' + x1 +\n 'L0,' + y0 + 'Z';\n }\n },\n hexagram: {\n n: 18,\n f: function(r) {\n var y = d3.round(r * 0.66, 2);\n var x1 = d3.round(r * 0.38, 2);\n var x2 = d3.round(r * 0.76, 2);\n return 'M-' + x2 + ',0l-' + x1 + ',-' + y + 'h' + x2 +\n 'l' + x1 + ',-' + y + 'l' + x1 + ',' + y + 'h' + x2 +\n 'l-' + x1 + ',' + y + 'l' + x1 + ',' + y + 'h-' + x2 +\n 'l-' + x1 + ',' + y + 'l-' + x1 + ',-' + y + 'h-' + x2 + 'Z';\n }\n },\n 'star-triangle-up': {\n n: 19,\n f: function(r) {\n var x = d3.round(r * Math.sqrt(3) * 0.8, 2);\n var y1 = d3.round(r * 0.8, 2);\n var y2 = d3.round(r * 1.6, 2);\n var rc = d3.round(r * 4, 2);\n var aPart = 'A ' + rc + ',' + rc + ' 0 0 1 ';\n return 'M-' + x + ',' + y1 + aPart + x + ',' + y1 +\n aPart + '0,-' + y2 + aPart + '-' + x + ',' + y1 + 'Z';\n }\n },\n 'star-triangle-down': {\n n: 20,\n f: function(r) {\n var x = d3.round(r * Math.sqrt(3) * 0.8, 2);\n var y1 = d3.round(r * 0.8, 2);\n var y2 = d3.round(r * 1.6, 2);\n var rc = d3.round(r * 4, 2);\n var aPart = 'A ' + rc + ',' + rc + ' 0 0 1 ';\n return 'M' + x + ',-' + y1 + aPart + '-' + x + ',-' + y1 +\n aPart + '0,' + y2 + aPart + x + ',-' + y1 + 'Z';\n }\n },\n 'star-square': {\n n: 21,\n f: function(r) {\n var rp = d3.round(r * 1.1, 2);\n var rc = d3.round(r * 2, 2);\n var aPart = 'A ' + rc + ',' + rc + ' 0 0 1 ';\n return 'M-' + rp + ',-' + rp + aPart + '-' + rp + ',' + rp +\n aPart + rp + ',' + rp + aPart + rp + ',-' + rp +\n aPart + '-' + rp + ',-' + rp + 'Z';\n }\n },\n 'star-diamond': {\n n: 22,\n f: function(r) {\n var rp = d3.round(r * 1.4, 2);\n var rc = d3.round(r * 1.9, 2);\n var aPart = 'A ' + rc + ',' + rc + ' 0 0 1 ';\n return 'M-' + rp + ',0' + aPart + '0,' + rp +\n aPart + rp + ',0' + aPart + '0,-' + rp +\n aPart + '-' + rp + ',0' + 'Z';\n }\n },\n 'diamond-tall': {\n n: 23,\n f: function(r) {\n var x = d3.round(r * 0.7, 2);\n var y = d3.round(r * 1.4, 2);\n return 'M0,' + y + 'L' + x + ',0L0,-' + y + 'L-' + x + ',0Z';\n }\n },\n 'diamond-wide': {\n n: 24,\n f: function(r) {\n var x = d3.round(r * 1.4, 2);\n var y = d3.round(r * 0.7, 2);\n return 'M0,' + y + 'L' + x + ',0L0,-' + y + 'L-' + x + ',0Z';\n }\n },\n hourglass: {\n n: 25,\n f: function(r) {\n var rs = d3.round(r, 2);\n return 'M' + rs + ',' + rs + 'H-' + rs + 'L' + rs + ',-' + rs + 'H-' + rs + 'Z';\n },\n noDot: true\n },\n bowtie: {\n n: 26,\n f: function(r) {\n var rs = d3.round(r, 2);\n return 'M' + rs + ',' + rs + 'V-' + rs + 'L-' + rs + ',' + rs + 'V-' + rs + 'Z';\n },\n noDot: true\n },\n 'circle-cross': {\n n: 27,\n f: function(r) {\n var rs = d3.round(r, 2);\n return 'M0,' + rs + 'V-' + rs + 'M' + rs + ',0H-' + rs +\n 'M' + rs + ',0A' + rs + ',' + rs + ' 0 1,1 0,-' + rs +\n 'A' + rs + ',' + rs + ' 0 0,1 ' + rs + ',0Z';\n },\n needLine: true,\n noDot: true\n },\n 'circle-x': {\n n: 28,\n f: function(r) {\n var rs = d3.round(r, 2);\n var rc = d3.round(r / Math.sqrt(2), 2);\n return 'M' + rc + ',' + rc + 'L-' + rc + ',-' + rc +\n 'M' + rc + ',-' + rc + 'L-' + rc + ',' + rc +\n 'M' + rs + ',0A' + rs + ',' + rs + ' 0 1,1 0,-' + rs +\n 'A' + rs + ',' + rs + ' 0 0,1 ' + rs + ',0Z';\n },\n needLine: true,\n noDot: true\n },\n 'square-cross': {\n n: 29,\n f: function(r) {\n var rs = d3.round(r, 2);\n return 'M0,' + rs + 'V-' + rs + 'M' + rs + ',0H-' + rs +\n 'M' + rs + ',' + rs + 'H-' + rs + 'V-' + rs + 'H' + rs + 'Z';\n },\n needLine: true,\n noDot: true\n },\n 'square-x': {\n n: 30,\n f: function(r) {\n var rs = d3.round(r, 2);\n return 'M' + rs + ',' + rs + 'L-' + rs + ',-' + rs +\n 'M' + rs + ',-' + rs + 'L-' + rs + ',' + rs +\n 'M' + rs + ',' + rs + 'H-' + rs + 'V-' + rs + 'H' + rs + 'Z';\n },\n needLine: true,\n noDot: true\n },\n 'diamond-cross': {\n n: 31,\n f: function(r) {\n var rd = d3.round(r * 1.3, 2);\n return 'M' + rd + ',0L0,' + rd + 'L-' + rd + ',0L0,-' + rd + 'Z' +\n 'M0,-' + rd + 'V' + rd + 'M-' + rd + ',0H' + rd;\n },\n needLine: true,\n noDot: true\n },\n 'diamond-x': {\n n: 32,\n f: function(r) {\n var rd = d3.round(r * 1.3, 2);\n var r2 = d3.round(r * 0.65, 2);\n return 'M' + rd + ',0L0,' + rd + 'L-' + rd + ',0L0,-' + rd + 'Z' +\n 'M-' + r2 + ',-' + r2 + 'L' + r2 + ',' + r2 +\n 'M-' + r2 + ',' + r2 + 'L' + r2 + ',-' + r2;\n },\n needLine: true,\n noDot: true\n },\n 'cross-thin': {\n n: 33,\n f: function(r) {\n var rc = d3.round(r * 1.4, 2);\n return 'M0,' + rc + 'V-' + rc + 'M' + rc + ',0H-' + rc;\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'x-thin': {\n n: 34,\n f: function(r) {\n var rx = d3.round(r, 2);\n return 'M' + rx + ',' + rx + 'L-' + rx + ',-' + rx +\n 'M' + rx + ',-' + rx + 'L-' + rx + ',' + rx;\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n asterisk: {\n n: 35,\n f: function(r) {\n var rc = d3.round(r * 1.2, 2);\n var rs = d3.round(r * 0.85, 2);\n return 'M0,' + rc + 'V-' + rc + 'M' + rc + ',0H-' + rc +\n 'M' + rs + ',' + rs + 'L-' + rs + ',-' + rs +\n 'M' + rs + ',-' + rs + 'L-' + rs + ',' + rs;\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n hash: {\n n: 36,\n f: function(r) {\n var r1 = d3.round(r / 2, 2);\n var r2 = d3.round(r, 2);\n return 'M' + r1 + ',' + r2 + 'V-' + r2 +\n 'm-' + r2 + ',0V' + r2 +\n 'M' + r2 + ',' + r1 + 'H-' + r2 +\n 'm0,-' + r2 + 'H' + r2;\n },\n needLine: true,\n noFill: true\n },\n 'y-up': {\n n: 37,\n f: function(r) {\n var x = d3.round(r * 1.2, 2);\n var y0 = d3.round(r * 1.6, 2);\n var y1 = d3.round(r * 0.8, 2);\n return 'M-' + x + ',' + y1 + 'L0,0M' + x + ',' + y1 + 'L0,0M0,-' + y0 + 'L0,0';\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'y-down': {\n n: 38,\n f: function(r) {\n var x = d3.round(r * 1.2, 2);\n var y0 = d3.round(r * 1.6, 2);\n var y1 = d3.round(r * 0.8, 2);\n return 'M-' + x + ',-' + y1 + 'L0,0M' + x + ',-' + y1 + 'L0,0M0,' + y0 + 'L0,0';\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'y-left': {\n n: 39,\n f: function(r) {\n var y = d3.round(r * 1.2, 2);\n var x0 = d3.round(r * 1.6, 2);\n var x1 = d3.round(r * 0.8, 2);\n return 'M' + x1 + ',' + y + 'L0,0M' + x1 + ',-' + y + 'L0,0M-' + x0 + ',0L0,0';\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'y-right': {\n n: 40,\n f: function(r) {\n var y = d3.round(r * 1.2, 2);\n var x0 = d3.round(r * 1.6, 2);\n var x1 = d3.round(r * 0.8, 2);\n return 'M-' + x1 + ',' + y + 'L0,0M-' + x1 + ',-' + y + 'L0,0M' + x0 + ',0L0,0';\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'line-ew': {\n n: 41,\n f: function(r) {\n var rc = d3.round(r * 1.4, 2);\n return 'M' + rc + ',0H-' + rc;\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'line-ns': {\n n: 42,\n f: function(r) {\n var rc = d3.round(r * 1.4, 2);\n return 'M0,' + rc + 'V-' + rc;\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'line-ne': {\n n: 43,\n f: function(r) {\n var rx = d3.round(r, 2);\n return 'M' + rx + ',-' + rx + 'L-' + rx + ',' + rx;\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'line-nw': {\n n: 44,\n f: function(r) {\n var rx = d3.round(r, 2);\n return 'M' + rx + ',' + rx + 'L-' + rx + ',-' + rx;\n },\n needLine: true,\n noDot: true,\n noFill: true\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar str2RGBArray = require('../../../lib/str2rgbarray');\n\nvar AXES_NAMES = ['xaxis', 'yaxis', 'zaxis'];\n\nfunction SpikeOptions() {\n this.enabled = [true, true, true];\n this.colors = [[0, 0, 0, 1],\n [0, 0, 0, 1],\n [0, 0, 0, 1]];\n this.drawSides = [true, true, true];\n this.lineWidth = [1, 1, 1];\n}\n\nvar proto = SpikeOptions.prototype;\n\nproto.merge = function(sceneLayout) {\n for(var i = 0; i < 3; ++i) {\n var axes = sceneLayout[AXES_NAMES[i]];\n\n if(!axes.visible) {\n this.enabled[i] = false;\n this.drawSides[i] = false;\n continue;\n }\n\n this.enabled[i] = axes.showspikes;\n this.colors[i] = str2RGBArray(axes.spikecolor);\n this.drawSides[i] = axes.spikesides;\n this.lineWidth[i] = axes.spikethickness;\n }\n};\n\nfunction createSpikeOptions(layout) {\n var result = new SpikeOptions();\n result.merge(layout);\n return result;\n}\n\nmodule.exports = createSpikeOptions;\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","\"use strict\";\n\nvar isIterable = require(\"./is-iterable\");\n\nmodule.exports = function (value) {\n\tif (!isIterable(value)) throw new TypeError(value + \" is not iterable\");\n\treturn value;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar histogram2dAttrs = require('../histogram2d/attributes');\nvar contourAttrs = require('../contour/attributes');\nvar colorScaleAttrs = require('../../components/colorscale/attributes');\n\nvar extendFlat = require('../../lib/extend').extendFlat;\n\nmodule.exports = extendFlat({\n x: histogram2dAttrs.x,\n y: histogram2dAttrs.y,\n z: histogram2dAttrs.z,\n marker: histogram2dAttrs.marker,\n\n histnorm: histogram2dAttrs.histnorm,\n histfunc: histogram2dAttrs.histfunc,\n nbinsx: histogram2dAttrs.nbinsx,\n xbins: histogram2dAttrs.xbins,\n nbinsy: histogram2dAttrs.nbinsy,\n ybins: histogram2dAttrs.ybins,\n autobinx: histogram2dAttrs.autobinx,\n autobiny: histogram2dAttrs.autobiny,\n\n bingroup: histogram2dAttrs.bingroup,\n xbingroup: histogram2dAttrs.xbingroup,\n ybingroup: histogram2dAttrs.ybingroup,\n\n autocontour: contourAttrs.autocontour,\n ncontours: contourAttrs.ncontours,\n contours: contourAttrs.contours,\n line: {\n color: contourAttrs.line.color,\n width: extendFlat({}, contourAttrs.line.width, {\n dflt: 0.5,\n \n }),\n dash: contourAttrs.line.dash,\n smoothing: contourAttrs.line.smoothing,\n editType: 'plot'\n },\n zhoverformat: histogram2dAttrs.zhoverformat,\n hovertemplate: histogram2dAttrs.hovertemplate\n},\n colorScaleAttrs('', {\n cLetter: 'z',\n editTypeOverride: 'calc'\n })\n);\n","// (c) Copyright 2017, Sean Connelly (@voidqk), http://syntheti.cc\n// MIT License\n// Project Home: https://github.com/voidqk/polybooljs\n\n//\n// convert between PolyBool polygon format and GeoJSON formats (Polygon and MultiPolygon)\n//\n\nvar GeoJSON = {\n\t// convert a GeoJSON object to a PolyBool polygon\n\ttoPolygon: function(PolyBool, geojson){\n\n\t\t// converts list of LineString's to segments\n\t\tfunction GeoPoly(coords){\n\t\t\t// check for empty coords\n\t\t\tif (coords.length <= 0)\n\t\t\t\treturn PolyBool.segments({ inverted: false, regions: [] });\n\n\t\t\t// convert LineString to segments\n\t\t\tfunction LineString(ls){\n\t\t\t\t// remove tail which should be the same as head\n\t\t\t\tvar reg = ls.slice(0, ls.length - 1);\n\t\t\t\treturn PolyBool.segments({ inverted: false, regions: [reg] });\n\t\t\t}\n\n\t\t\t// the first LineString is considered the outside\n\t\t\tvar out = LineString(coords[0]);\n\n\t\t\t// the rest of the LineStrings are considered interior holes, so subtract them from the\n\t\t\t// current result\n\t\t\tfor (var i = 1; i < coords.length; i++)\n\t\t\t\tout = PolyBool.selectDifference(PolyBool.combine(out, LineString(coords[i])));\n\n\t\t\treturn out;\n\t\t}\n\n\t\tif (geojson.type === 'Polygon'){\n\t\t\t// single polygon, so just convert it and we're done\n\t\t\treturn PolyBool.polygon(GeoPoly(geojson.coordinates));\n\t\t}\n\t\telse if (geojson.type === 'MultiPolygon'){\n\t\t\t// multiple polygons, so union all the polygons together\n\t\t\tvar out = PolyBool.segments({ inverted: false, regions: [] });\n\t\t\tfor (var i = 0; i < geojson.coordinates.length; i++)\n\t\t\t\tout = PolyBool.selectUnion(PolyBool.combine(out, GeoPoly(geojson.coordinates[i])));\n\t\t\treturn PolyBool.polygon(out);\n\t\t}\n\t\tthrow new Error('PolyBool: Cannot convert GeoJSON object to PolyBool polygon');\n\t},\n\n\t// convert a PolyBool polygon to a GeoJSON object\n\tfromPolygon: function(PolyBool, eps, poly){\n\t\t// make sure out polygon is clean\n\t\tpoly = PolyBool.polygon(PolyBool.segments(poly));\n\n\t\t// test if r1 is inside r2\n\t\tfunction regionInsideRegion(r1, r2){\n\t\t\t// we're guaranteed no lines intersect (because the polygon is clean), but a vertex\n\t\t\t// could be on the edge -- so we just average pt[0] and pt[1] to produce a point on the\n\t\t\t// edge of the first line, which cannot be on an edge\n\t\t\treturn eps.pointInsideRegion([\n\t\t\t\t(r1[0][0] + r1[1][0]) * 0.5,\n\t\t\t\t(r1[0][1] + r1[1][1]) * 0.5\n\t\t\t], r2);\n\t\t}\n\n\t\t// calculate inside heirarchy\n\t\t//\n\t\t// _____________________ _______ roots -> A -> F\n\t\t// | A | | F | | |\n\t\t// | _______ _______ | | ___ | +-- B +-- G\n\t\t// | | B | | C | | | | | | | |\n\t\t// | | ___ | | ___ | | | | | | | +-- D\n\t\t// | | | D | | | | E | | | | | G | | |\n\t\t// | | |___| | | |___| | | | | | | +-- C\n\t\t// | |_______| |_______| | | |___| | |\n\t\t// |_____________________| |_______| +-- E\n\n\t\tfunction newNode(region){\n\t\t\treturn {\n\t\t\t\tregion: region,\n\t\t\t\tchildren: []\n\t\t\t};\n\t\t}\n\n\t\tvar roots = newNode(null);\n\n\t\tfunction addChild(root, region){\n\t\t\t// first check if we're inside any children\n\t\t\tfor (var i = 0; i < root.children.length; i++){\n\t\t\t\tvar child = root.children[i];\n\t\t\t\tif (regionInsideRegion(region, child.region)){\n\t\t\t\t\t// we are, so insert inside them instead\n\t\t\t\t\taddChild(child, region);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// not inside any children, so check to see if any children are inside us\n\t\t\tvar node = newNode(region);\n\t\t\tfor (var i = 0; i < root.children.length; i++){\n\t\t\t\tvar child = root.children[i];\n\t\t\t\tif (regionInsideRegion(child.region, region)){\n\t\t\t\t\t// oops... move the child beneath us, and remove them from root\n\t\t\t\t\tnode.children.push(child);\n\t\t\t\t\troot.children.splice(i, 1);\n\t\t\t\t\ti--;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// now we can add ourselves\n\t\t\troot.children.push(node);\n\t\t}\n\n\t\t// add all regions to the root\n\t\tfor (var i = 0; i < poly.regions.length; i++){\n\t\t\tvar region = poly.regions[i];\n\t\t\tif (region.length < 3) // regions must have at least 3 points (sanity check)\n\t\t\t\tcontinue;\n\t\t\taddChild(roots, region);\n\t\t}\n\n\t\t// with our heirarchy, we can distinguish between exterior borders, and interior holes\n\t\t// the root nodes are exterior, children are interior, children's children are exterior,\n\t\t// children's children's children are interior, etc\n\n\t\t// while we're at it, exteriors are counter-clockwise, and interiors are clockwise\n\n\t\tfunction forceWinding(region, clockwise){\n\t\t\t// first, see if we're clockwise or counter-clockwise\n\t\t\t// https://en.wikipedia.org/wiki/Shoelace_formula\n\t\t\tvar winding = 0;\n\t\t\tvar last_x = region[region.length - 1][0];\n\t\t\tvar last_y = region[region.length - 1][1];\n\t\t\tvar copy = [];\n\t\t\tfor (var i = 0; i < region.length; i++){\n\t\t\t\tvar curr_x = region[i][0];\n\t\t\t\tvar curr_y = region[i][1];\n\t\t\t\tcopy.push([curr_x, curr_y]); // create a copy while we're at it\n\t\t\t\twinding += curr_y * last_x - curr_x * last_y;\n\t\t\t\tlast_x = curr_x;\n\t\t\t\tlast_y = curr_y;\n\t\t\t}\n\t\t\t// this assumes Cartesian coordinates (Y is positive going up)\n\t\t\tvar isclockwise = winding < 0;\n\t\t\tif (isclockwise !== clockwise)\n\t\t\t\tcopy.reverse();\n\t\t\t// while we're here, the last point must be the first point...\n\t\t\tcopy.push([copy[0][0], copy[0][1]]);\n\t\t\treturn copy;\n\t\t}\n\n\t\tvar geopolys = [];\n\n\t\tfunction addExterior(node){\n\t\t\tvar poly = [forceWinding(node.region, false)];\n\t\t\tgeopolys.push(poly);\n\t\t\t// children of exteriors are interior\n\t\t\tfor (var i = 0; i < node.children.length; i++)\n\t\t\t\tpoly.push(getInterior(node.children[i]));\n\t\t}\n\n\t\tfunction getInterior(node){\n\t\t\t// children of interiors are exterior\n\t\t\tfor (var i = 0; i < node.children.length; i++)\n\t\t\t\taddExterior(node.children[i]);\n\t\t\t// return the clockwise interior\n\t\t\treturn forceWinding(node.region, true);\n\t\t}\n\n\t\t// root nodes are exterior\n\t\tfor (var i = 0; i < roots.children.length; i++)\n\t\t\taddExterior(roots.children[i]);\n\n\t\t// lastly, construct the approrpriate GeoJSON object\n\n\t\tif (geopolys.length <= 0) // empty GeoJSON Polygon\n\t\t\treturn { type: 'Polygon', coordinates: [] };\n\t\tif (geopolys.length == 1) // use a GeoJSON Polygon\n\t\t\treturn { type: 'Polygon', coordinates: geopolys[0] };\n\t\treturn { // otherwise, use a GeoJSON MultiPolygon\n\t\t\ttype: 'MultiPolygon',\n\t\t\tcoordinates: geopolys\n\t\t};\n\t}\n};\n\nmodule.exports = GeoJSON;\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar d3 = require('d3');\nvar Lib = require('../../lib');\nvar Drawing = require('../../components/drawing');\nvar barPlot = require('../bar/plot');\nvar clearMinTextSize = require('../bar/uniform_text').clearMinTextSize;\n\nmodule.exports = function plot(gd, plotinfo, cdModule, traceLayer) {\n var fullLayout = gd._fullLayout;\n\n clearMinTextSize('funnel', fullLayout);\n\n plotConnectorRegions(gd, plotinfo, cdModule, traceLayer);\n plotConnectorLines(gd, plotinfo, cdModule, traceLayer);\n\n barPlot.plot(gd, plotinfo, cdModule, traceLayer, {\n mode: fullLayout.funnelmode,\n norm: fullLayout.funnelmode,\n gap: fullLayout.funnelgap,\n groupgap: fullLayout.funnelgroupgap\n });\n};\n\nfunction plotConnectorRegions(gd, plotinfo, cdModule, traceLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n Lib.makeTraceGroups(traceLayer, cdModule, 'trace bars').each(function(cd) {\n var plotGroup = d3.select(this);\n var trace = cd[0].trace;\n\n var group = Lib.ensureSingle(plotGroup, 'g', 'regions');\n\n if(!trace.connector || !trace.connector.visible) {\n group.remove();\n return;\n }\n\n var isHorizontal = (trace.orientation === 'h');\n\n var connectors = group.selectAll('g.region').data(Lib.identity);\n\n connectors.enter().append('g')\n .classed('region', true);\n\n connectors.exit().remove();\n\n var len = connectors.size();\n\n connectors.each(function(di, i) {\n // don't draw lines between nulls\n if(i !== len - 1 && !di.cNext) return;\n\n var xy = getXY(di, xa, ya, isHorizontal);\n var x = xy[0];\n var y = xy[1];\n\n var shape = '';\n\n if(x[3] !== undefined && y[3] !== undefined) {\n if(isHorizontal) {\n shape += 'M' + x[0] + ',' + y[1] + 'L' + x[2] + ',' + y[2] + 'H' + x[3] + 'L' + x[1] + ',' + y[1] + 'Z';\n } else {\n shape += 'M' + x[1] + ',' + y[1] + 'L' + x[2] + ',' + y[3] + 'V' + y[2] + 'L' + x[1] + ',' + y[0] + 'Z';\n }\n }\n\n Lib.ensureSingle(d3.select(this), 'path')\n .attr('d', shape)\n .call(Drawing.setClipUrl, plotinfo.layerClipId, gd);\n });\n });\n}\n\nfunction plotConnectorLines(gd, plotinfo, cdModule, traceLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n Lib.makeTraceGroups(traceLayer, cdModule, 'trace bars').each(function(cd) {\n var plotGroup = d3.select(this);\n var trace = cd[0].trace;\n\n var group = Lib.ensureSingle(plotGroup, 'g', 'lines');\n\n if(!trace.connector || !trace.connector.visible || !trace.connector.line.width) {\n group.remove();\n return;\n }\n\n var isHorizontal = (trace.orientation === 'h');\n\n var connectors = group.selectAll('g.line').data(Lib.identity);\n\n connectors.enter().append('g')\n .classed('line', true);\n\n connectors.exit().remove();\n\n var len = connectors.size();\n\n connectors.each(function(di, i) {\n // don't draw lines between nulls\n if(i !== len - 1 && !di.cNext) return;\n\n var xy = getXY(di, xa, ya, isHorizontal);\n var x = xy[0];\n var y = xy[1];\n\n var shape = '';\n\n if(x[3] !== undefined && y[3] !== undefined) {\n if(isHorizontal) {\n shape += 'M' + x[0] + ',' + y[1] + 'L' + x[2] + ',' + y[2];\n shape += 'M' + x[1] + ',' + y[1] + 'L' + x[3] + ',' + y[2];\n } else {\n shape += 'M' + x[1] + ',' + y[1] + 'L' + x[2] + ',' + y[3];\n shape += 'M' + x[1] + ',' + y[0] + 'L' + x[2] + ',' + y[2];\n }\n }\n\n if(shape === '') shape = 'M0,0Z';\n\n Lib.ensureSingle(d3.select(this), 'path')\n .attr('d', shape)\n .call(Drawing.setClipUrl, plotinfo.layerClipId, gd);\n });\n });\n}\n\nfunction getXY(di, xa, ya, isHorizontal) {\n var s = [];\n var p = [];\n\n var sAxis = isHorizontal ? xa : ya;\n var pAxis = isHorizontal ? ya : xa;\n\n s[0] = sAxis.c2p(di.s0, true);\n p[0] = pAxis.c2p(di.p0, true);\n\n s[1] = sAxis.c2p(di.s1, true);\n p[1] = pAxis.c2p(di.p1, true);\n\n s[2] = sAxis.c2p(di.nextS0, true);\n p[2] = pAxis.c2p(di.nextP0, true);\n\n s[3] = sAxis.c2p(di.nextS1, true);\n p[3] = pAxis.c2p(di.nextP1, true);\n\n return isHorizontal ? [s, p] : [p, s];\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar Registry = require('../../registry');\nvar arrayEditor = require('../../plot_api/plot_template').arrayEditor;\n\nmodule.exports = {\n hasClickToShow: hasClickToShow,\n onClick: onClick\n};\n\n/*\n * hasClickToShow: does the given hoverData have ANY annotations which will\n * turn ON if we click here? (used by hover events to set cursor)\n *\n * gd: graphDiv\n * hoverData: a hoverData array, as included with the *plotly_hover* or\n * *plotly_click* events in the `points` attribute\n *\n * returns: boolean\n */\nfunction hasClickToShow(gd, hoverData) {\n var sets = getToggleSets(gd, hoverData);\n return sets.on.length > 0 || sets.explicitOff.length > 0;\n}\n\n/*\n * onClick: perform the toggling (via Plotly.update) implied by clicking\n * at this hoverData\n *\n * gd: graphDiv\n * hoverData: a hoverData array, as included with the *plotly_hover* or\n * *plotly_click* events in the `points` attribute\n *\n * returns: Promise that the update is complete\n */\nfunction onClick(gd, hoverData) {\n var toggleSets = getToggleSets(gd, hoverData);\n var onSet = toggleSets.on;\n var offSet = toggleSets.off.concat(toggleSets.explicitOff);\n var update = {};\n var annotationsOut = gd._fullLayout.annotations;\n var i, editHelpers;\n\n if(!(onSet.length || offSet.length)) return;\n\n for(i = 0; i < onSet.length; i++) {\n editHelpers = arrayEditor(gd.layout, 'annotations', annotationsOut[onSet[i]]);\n editHelpers.modifyItem('visible', true);\n Lib.extendFlat(update, editHelpers.getUpdateObj());\n }\n\n for(i = 0; i < offSet.length; i++) {\n editHelpers = arrayEditor(gd.layout, 'annotations', annotationsOut[offSet[i]]);\n editHelpers.modifyItem('visible', false);\n Lib.extendFlat(update, editHelpers.getUpdateObj());\n }\n\n return Registry.call('update', gd, {}, update);\n}\n\n/*\n * getToggleSets: find the annotations which will turn on or off at this\n * hoverData\n *\n * gd: graphDiv\n * hoverData: a hoverData array, as included with the *plotly_hover* or\n * *plotly_click* events in the `points` attribute\n *\n * returns: {\n * on: Array (indices of annotations to turn on),\n * off: Array (indices to turn off because you're not hovering on them),\n * explicitOff: Array (indices to turn off because you *are* hovering on them)\n * }\n */\nfunction getToggleSets(gd, hoverData) {\n var annotations = gd._fullLayout.annotations;\n var onSet = [];\n var offSet = [];\n var explicitOffSet = [];\n var hoverLen = (hoverData || []).length;\n\n var i, j, anni, showMode, pointj, xa, ya, toggleType;\n\n for(i = 0; i < annotations.length; i++) {\n anni = annotations[i];\n showMode = anni.clicktoshow;\n\n if(showMode) {\n for(j = 0; j < hoverLen; j++) {\n pointj = hoverData[j];\n xa = pointj.xaxis;\n ya = pointj.yaxis;\n\n if(xa._id === anni.xref &&\n ya._id === anni.yref &&\n xa.d2r(pointj.x) === clickData2r(anni._xclick, xa) &&\n ya.d2r(pointj.y) === clickData2r(anni._yclick, ya)\n ) {\n // match! toggle this annotation\n // regardless of its clicktoshow mode\n // but if it's onout mode, off is implicit\n if(anni.visible) {\n if(showMode === 'onout') toggleType = offSet;\n else toggleType = explicitOffSet;\n } else {\n toggleType = onSet;\n }\n toggleType.push(i);\n break;\n }\n }\n\n if(j === hoverLen) {\n // no match - only turn this annotation OFF, and only if\n // showmode is 'onout'\n if(anni.visible && showMode === 'onout') offSet.push(i);\n }\n }\n }\n\n return {on: onSet, off: offSet, explicitOff: explicitOffSet};\n}\n\n// to handle log axes until v2\nfunction clickData2r(d, ax) {\n return ax.type === 'log' ? ax.l2r(d) : ax.d2r(d);\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar constraintMapping = require('./constraint_mapping');\nvar endPlus = require('./end_plus');\n\nmodule.exports = function emptyPathinfo(contours, plotinfo, cd0) {\n var contoursFinal = (contours.type === 'constraint') ?\n constraintMapping[contours._operation](contours.value) :\n contours;\n\n var cs = contoursFinal.size;\n var pathinfo = [];\n var end = endPlus(contoursFinal);\n\n var carpet = cd0.trace._carpetTrace;\n\n var basePathinfo = carpet ? {\n // store axes so we can convert to px\n xaxis: carpet.aaxis,\n yaxis: carpet.baxis,\n // full data arrays to use for interpolation\n x: cd0.a,\n y: cd0.b\n } : {\n xaxis: plotinfo.xaxis,\n yaxis: plotinfo.yaxis,\n x: cd0.x,\n y: cd0.y\n };\n\n for(var ci = contoursFinal.start; ci < end; ci += cs) {\n pathinfo.push(Lib.extendFlat({\n level: ci,\n // all the cells with nontrivial marching index\n crossings: {},\n // starting points on the edges of the lattice for each contour\n starts: [],\n // all unclosed paths (may have less items than starts,\n // if a path is closed by rounding)\n edgepaths: [],\n // all closed paths\n paths: [],\n z: cd0.z,\n smoothing: cd0.trace.line.smoothing\n }, basePathinfo));\n\n if(pathinfo.length > 1000) {\n Lib.warn('Too many contours, clipping at 1000', contours);\n break;\n }\n }\n return pathinfo;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar isNumeric = require('fast-isnumeric');\nvar toLogRange = require('../../lib/to_log_range');\n\n/*\n * convertCoords: when converting an axis between log and linear\n * you need to alter any annotations on that axis to keep them\n * pointing at the same data point.\n * In v2.0 this will become obsolete\n *\n * gd: the plot div\n * ax: the axis being changed\n * newType: the type it's getting\n * doExtra: function(attr, val) from inside relayout that sets the attribute.\n * Use this to make the changes as it's aware if any other changes in the\n * same relayout call should override this conversion.\n */\nmodule.exports = function convertCoords(gd, ax, newType, doExtra) {\n ax = ax || {};\n\n var toLog = (newType === 'log') && (ax.type === 'linear');\n var fromLog = (newType === 'linear') && (ax.type === 'log');\n\n if(!(toLog || fromLog)) return;\n\n var annotations = gd._fullLayout.annotations;\n var axLetter = ax._id.charAt(0);\n var ann;\n var attrPrefix;\n\n function convert(attr) {\n var currentVal = ann[attr];\n var newVal = null;\n\n if(toLog) newVal = toLogRange(currentVal, ax.range);\n else newVal = Math.pow(10, currentVal);\n\n // if conversion failed, delete the value so it gets a default value\n if(!isNumeric(newVal)) newVal = null;\n\n doExtra(attrPrefix + attr, newVal);\n }\n\n for(var i = 0; i < annotations.length; i++) {\n ann = annotations[i];\n attrPrefix = 'annotations[' + i + '].';\n\n if(ann[axLetter + 'ref'] === ax._id) convert(axLetter);\n if(ann['a' + axLetter + 'ref'] === ax._id) convert('a' + axLetter);\n }\n};\n","'use strict'\n\nmodule.exports = boxIntersectIter\n\nvar pool = require('typedarray-pool')\nvar bits = require('bit-twiddle')\nvar bruteForce = require('./brute')\nvar bruteForcePartial = bruteForce.partial\nvar bruteForceFull = bruteForce.full\nvar sweep = require('./sweep')\nvar findMedian = require('./median')\nvar genPartition = require('./partition')\n\n//Twiddle parameters\nvar BRUTE_FORCE_CUTOFF = 128 //Cut off for brute force search\nvar SCAN_CUTOFF = (1<<22) //Cut off for two way scan\nvar SCAN_COMPLETE_CUTOFF = (1<<22) \n\n//Partition functions\nvar partitionInteriorContainsInterval = genPartition(\n '!(lo>=p0)&&!(p1>=hi)', \n ['p0', 'p1'])\n\nvar partitionStartEqual = genPartition(\n 'lo===p0',\n ['p0'])\n\nvar partitionStartLessThan = genPartition(\n 'lo 0) {\n top -= 1\n\n var iptr = top * IFRAME_SIZE\n var axis = BOX_ISTACK[iptr]\n var redStart = BOX_ISTACK[iptr+1]\n var redEnd = BOX_ISTACK[iptr+2]\n var blueStart = BOX_ISTACK[iptr+3]\n var blueEnd = BOX_ISTACK[iptr+4]\n var state = BOX_ISTACK[iptr+5]\n\n var dptr = top * DFRAME_SIZE\n var lo = BOX_DSTACK[dptr]\n var hi = BOX_DSTACK[dptr+1]\n\n //Unpack state info\n var flip = (state & 1)\n var full = !!(state & 16)\n\n //Unpack indices\n var red = xBoxes\n var redIndex = xIndex\n var blue = yBoxes\n var blueIndex = yIndex\n if(flip) {\n red = yBoxes\n redIndex = yIndex\n blue = xBoxes\n blueIndex = xIndex\n }\n\n if(state & 2) {\n redEnd = partitionStartLessThan(\n d, axis,\n redStart, redEnd, red, redIndex,\n hi)\n if(redStart >= redEnd) {\n continue\n }\n }\n if(state & 4) {\n redStart = partitionEndLessThanEqual(\n d, axis,\n redStart, redEnd, red, redIndex,\n lo)\n if(redStart >= redEnd) {\n continue\n }\n }\n \n var redCount = redEnd - redStart\n var blueCount = blueEnd - blueStart\n\n if(full) {\n if(d * redCount * (redCount + blueCount) < SCAN_COMPLETE_CUTOFF) {\n retval = sweep.scanComplete(\n d, axis, visit, \n redStart, redEnd, red, redIndex,\n blueStart, blueEnd, blue, blueIndex)\n if(retval !== void 0) {\n return retval\n }\n continue\n }\n } else {\n if(d * Math.min(redCount, blueCount) < BRUTE_FORCE_CUTOFF) {\n //If input small, then use brute force\n retval = bruteForcePartial(\n d, axis, visit, flip,\n redStart, redEnd, red, redIndex,\n blueStart, blueEnd, blue, blueIndex)\n if(retval !== void 0) {\n return retval\n }\n continue\n } else if(d * redCount * blueCount < SCAN_CUTOFF) {\n //If input medium sized, then use sweep and prune\n retval = sweep.scanBipartite(\n d, axis, visit, flip, \n redStart, redEnd, red, redIndex,\n blueStart, blueEnd, blue, blueIndex)\n if(retval !== void 0) {\n return retval\n }\n continue\n }\n }\n \n //First, find all red intervals whose interior contains (lo,hi)\n var red0 = partitionInteriorContainsInterval(\n d, axis, \n redStart, redEnd, red, redIndex,\n lo, hi)\n\n //Lower dimensional case\n if(redStart < red0) {\n\n if(d * (red0 - redStart) < BRUTE_FORCE_CUTOFF) {\n //Special case for small inputs: use brute force\n retval = bruteForceFull(\n d, axis+1, visit,\n redStart, red0, red, redIndex,\n blueStart, blueEnd, blue, blueIndex)\n if(retval !== void 0) {\n return retval\n }\n } else if(axis === d-2) {\n if(flip) {\n retval = sweep.sweepBipartite(\n d, visit,\n blueStart, blueEnd, blue, blueIndex,\n redStart, red0, red, redIndex)\n } else {\n retval = sweep.sweepBipartite(\n d, visit,\n redStart, red0, red, redIndex,\n blueStart, blueEnd, blue, blueIndex)\n }\n if(retval !== void 0) {\n return retval\n }\n } else {\n iterPush(top++,\n axis+1,\n redStart, red0,\n blueStart, blueEnd,\n flip,\n -Infinity, Infinity)\n iterPush(top++,\n axis+1,\n blueStart, blueEnd,\n redStart, red0,\n flip^1,\n -Infinity, Infinity)\n }\n }\n\n //Divide and conquer phase\n if(red0 < redEnd) {\n\n //Cut blue into 3 parts:\n //\n // Points < mid point\n // Points = mid point\n // Points > mid point\n //\n var blue0 = findMedian(\n d, axis, \n blueStart, blueEnd, blue, blueIndex)\n var mid = blue[elemSize * blue0 + axis]\n var blue1 = partitionStartEqual(\n d, axis,\n blue0, blueEnd, blue, blueIndex,\n mid)\n\n //Right case\n if(blue1 < blueEnd) {\n iterPush(top++,\n axis,\n red0, redEnd,\n blue1, blueEnd,\n (flip|4) + (full ? 16 : 0),\n mid, hi)\n }\n\n //Left case\n if(blueStart < blue0) {\n iterPush(top++,\n axis,\n red0, redEnd,\n blueStart, blue0,\n (flip|2) + (full ? 16 : 0),\n lo, mid)\n }\n\n //Center case (the hard part)\n if(blue0 + 1 === blue1) {\n //Optimization: Range with exactly 1 point, use a brute force scan\n if(full) {\n retval = onePointFull(\n d, axis, visit,\n red0, redEnd, red, redIndex,\n blue0, blue, blueIndex[blue0])\n } else {\n retval = onePointPartial(\n d, axis, visit, flip,\n red0, redEnd, red, redIndex,\n blue0, blue, blueIndex[blue0])\n }\n if(retval !== void 0) {\n return retval\n }\n } else if(blue0 < blue1) {\n var red1\n if(full) {\n //If full intersection, need to handle special case\n red1 = partitionContainsPoint(\n d, axis,\n red0, redEnd, red, redIndex,\n mid)\n if(red0 < red1) {\n var redX = partitionStartEqual(\n d, axis,\n red0, red1, red, redIndex,\n mid)\n if(axis === d-2) {\n //Degenerate sweep intersection:\n // [red0, redX] with [blue0, blue1]\n if(red0 < redX) {\n retval = sweep.sweepComplete(\n d, visit,\n red0, redX, red, redIndex,\n blue0, blue1, blue, blueIndex)\n if(retval !== void 0) {\n return retval\n }\n }\n\n //Normal sweep intersection:\n // [redX, red1] with [blue0, blue1]\n if(redX < red1) {\n retval = sweep.sweepBipartite(\n d, visit,\n redX, red1, red, redIndex,\n blue0, blue1, blue, blueIndex)\n if(retval !== void 0) {\n return retval\n }\n }\n } else {\n if(red0 < redX) {\n iterPush(top++,\n axis+1,\n red0, redX,\n blue0, blue1,\n 16,\n -Infinity, Infinity)\n }\n if(redX < red1) {\n iterPush(top++,\n axis+1,\n redX, red1,\n blue0, blue1,\n 0,\n -Infinity, Infinity)\n iterPush(top++,\n axis+1,\n blue0, blue1,\n redX, red1,\n 1,\n -Infinity, Infinity)\n }\n }\n }\n } else {\n if(flip) {\n red1 = partitionContainsPointProper(\n d, axis,\n red0, redEnd, red, redIndex,\n mid)\n } else {\n red1 = partitionContainsPoint(\n d, axis,\n red0, redEnd, red, redIndex,\n mid)\n }\n if(red0 < red1) {\n if(axis === d-2) {\n if(flip) {\n retval = sweep.sweepBipartite(\n d, visit,\n blue0, blue1, blue, blueIndex,\n red0, red1, red, redIndex)\n } else {\n retval = sweep.sweepBipartite(\n d, visit,\n red0, red1, red, redIndex,\n blue0, blue1, blue, blueIndex)\n }\n } else {\n iterPush(top++,\n axis+1,\n red0, red1,\n blue0, blue1,\n flip,\n -Infinity, Infinity)\n iterPush(top++,\n axis+1,\n blue0, blue1,\n red0, red1,\n flip^1,\n -Infinity, Infinity)\n }\n }\n }\n }\n }\n }\n}","\"use strict\"\n\nvar determinant = require(\"robust-determinant\")\n\nvar NUM_EXPAND = 6\n\nfunction generateSolver(n) {\n var funcName = \"robustLinearSolve\" + n + \"d\"\n var code = [\"function \", funcName, \"(A,b){return [\"]\n for(var i=0; i 0) {\n code.push(\",\")\n }\n code.push(\"[\")\n for(var k=0; k 0) {\n code.push(\",\")\n }\n if(k === i) {\n code.push(\"+b[\", j, \"]\")\n } else {\n code.push(\"+A[\", j, \"][\", k, \"]\")\n }\n }\n code.push(\"]\")\n }\n code.push(\"]),\")\n }\n code.push(\"det(A)]}return \", funcName)\n var proc = new Function(\"det\", code.join(\"\"))\n if(n < 6) {\n return proc(determinant[n])\n }\n return proc(determinant)\n}\n\nfunction robustLinearSolve0d() {\n return [ 0 ]\n}\n\nfunction robustLinearSolve1d(A, b) {\n return [ [ b[0] ], [ A[0][0] ] ]\n}\n\nvar CACHE = [\n robustLinearSolve0d,\n robustLinearSolve1d\n]\n\nfunction generateDispatch() {\n while(CACHE.length < NUM_EXPAND) {\n CACHE.push(generateSolver(CACHE.length))\n }\n var procArgs = []\n var code = [\"function dispatchLinearSolve(A,b){switch(A.length){\"]\n for(var i=0; i>> 24\r\n\tvar g = (n & 0x00ff0000) >>> 16\r\n\tvar b = (n & 0x0000ff00) >>> 8\r\n\tvar a = n & 0x000000ff\r\n\r\n\tif (normalized === false) return [r, g, b, a]\r\n\r\n\treturn [r/255, g/255, b/255, a/255]\r\n}\r\n","'use strict';\nvar toString = Object.prototype.toString;\n\nmodule.exports = function (x) {\n\tvar prototype;\n\treturn toString.call(x) === '[object Object]' && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({}));\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar d3 = require('d3');\nvar Lib = require('../../lib');\nvar Drawing = require('../../components/drawing');\nvar barPlot = require('../bar/plot');\nvar clearMinTextSize = require('../bar/uniform_text').clearMinTextSize;\n\nmodule.exports = function plot(gd, plotinfo, cdModule, traceLayer) {\n var fullLayout = gd._fullLayout;\n\n clearMinTextSize('waterfall', fullLayout);\n\n barPlot.plot(gd, plotinfo, cdModule, traceLayer, {\n mode: fullLayout.waterfallmode,\n norm: fullLayout.waterfallmode,\n gap: fullLayout.waterfallgap,\n groupgap: fullLayout.waterfallgroupgap\n });\n\n plotConnectors(gd, plotinfo, cdModule, traceLayer);\n};\n\nfunction plotConnectors(gd, plotinfo, cdModule, traceLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n Lib.makeTraceGroups(traceLayer, cdModule, 'trace bars').each(function(cd) {\n var plotGroup = d3.select(this);\n var trace = cd[0].trace;\n\n var group = Lib.ensureSingle(plotGroup, 'g', 'lines');\n\n if(!trace.connector || !trace.connector.visible) {\n group.remove();\n return;\n }\n\n var isHorizontal = (trace.orientation === 'h');\n var mode = trace.connector.mode;\n\n var connectors = group.selectAll('g.line').data(Lib.identity);\n\n connectors.enter().append('g')\n .classed('line', true);\n\n connectors.exit().remove();\n\n var len = connectors.size();\n\n connectors.each(function(di, i) {\n // don't draw lines between nulls\n if(i !== len - 1 && !di.cNext) return;\n\n var xy = getXY(di, xa, ya, isHorizontal);\n var x = xy[0];\n var y = xy[1];\n\n var shape = '';\n\n if(mode === 'spanning') {\n if(!di.isSum && i > 0) {\n if(isHorizontal) {\n shape += 'M' + x[0] + ',' + y[1] + 'V' + y[0];\n } else {\n shape += 'M' + x[1] + ',' + y[0] + 'H' + x[0];\n }\n }\n }\n\n if(mode !== 'between') {\n if(di.isSum || i < len - 1) {\n if(isHorizontal) {\n shape += 'M' + x[1] + ',' + y[0] + 'V' + y[1];\n } else {\n shape += 'M' + x[0] + ',' + y[1] + 'H' + x[1];\n }\n }\n }\n\n if(x[2] !== undefined && y[2] !== undefined) {\n if(isHorizontal) {\n shape += 'M' + x[1] + ',' + y[1] + 'V' + y[2];\n } else {\n shape += 'M' + x[1] + ',' + y[1] + 'H' + x[2];\n }\n }\n\n if(shape === '') shape = 'M0,0Z';\n\n Lib.ensureSingle(d3.select(this), 'path')\n .attr('d', shape)\n .call(Drawing.setClipUrl, plotinfo.layerClipId, gd);\n });\n });\n}\n\nfunction getXY(di, xa, ya, isHorizontal) {\n var s = [];\n var p = [];\n\n var sAxis = isHorizontal ? xa : ya;\n var pAxis = isHorizontal ? ya : xa;\n\n s[0] = sAxis.c2p(di.s0, true);\n p[0] = pAxis.c2p(di.p0, true);\n\n s[1] = sAxis.c2p(di.s1, true);\n p[1] = pAxis.c2p(di.p1, true);\n\n s[2] = sAxis.c2p(di.nextS0, true);\n p[2] = pAxis.c2p(di.nextP0, true);\n\n return isHorizontal ? [s, p] : [p, s];\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar boxLayoutAttrs = require('../box/layout_attributes');\nvar extendFlat = require('../../lib').extendFlat;\n\nmodule.exports = {\n violinmode: extendFlat({}, boxLayoutAttrs.boxmode, {\n \n }),\n violingap: extendFlat({}, boxLayoutAttrs.boxgap, {\n \n }),\n violingroupgap: extendFlat({}, boxLayoutAttrs.boxgroupgap, {\n \n })\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Loggers = require('./lib/loggers');\nvar noop = require('./lib/noop');\nvar pushUnique = require('./lib/push_unique');\nvar isPlainObject = require('./lib/is_plain_object');\nvar addStyleRule = require('./lib/dom').addStyleRule;\nvar ExtendModule = require('./lib/extend');\n\nvar basePlotAttributes = require('./plots/attributes');\nvar baseLayoutAttributes = require('./plots/layout_attributes');\n\nvar extendFlat = ExtendModule.extendFlat;\nvar extendDeepAll = ExtendModule.extendDeepAll;\n\nexports.modules = {};\nexports.allCategories = {};\nexports.allTypes = [];\nexports.subplotsRegistry = {};\nexports.transformsRegistry = {};\nexports.componentsRegistry = {};\nexports.layoutArrayContainers = [];\nexports.layoutArrayRegexes = [];\nexports.traceLayoutAttributes = {};\nexports.localeRegistry = {};\nexports.apiMethodRegistry = {};\nexports.collectableSubplotTypes = null;\n\n/**\n * Top-level register routine, exported as Plotly.register\n *\n * @param {object array or array of objects} _modules :\n * module object or list of module object to register.\n *\n * A valid `moduleType: 'trace'` module has fields:\n * - name {string} : the trace type\n * - categories {array} : categories associated with this trace type,\n * tested with Register.traceIs()\n * - meta {object} : meta info (mostly for plot-schema)\n *\n * A valid `moduleType: 'locale'` module has fields:\n * - name {string} : the locale name. Should be a 2-digit language string ('en', 'de')\n * optionally with a country/region code ('en-GB', 'de-CH'). If a country\n * code is used but the base language locale has not yet been supplied,\n * we will use this locale for the base as well.\n * - dictionary {object} : the dictionary mapping input strings to localized strings\n * generally the keys should be the literal input strings, but\n * if default translations are provided you can use any string as a key.\n * - format {object} : a `d3.locale` format specifier for this locale\n * any omitted keys we'll fall back on en-US.\n *\n * A valid `moduleType: 'transform'` module has fields:\n * - name {string} : transform name\n * - transform {function} : default-level transform function\n * - calcTransform {function} : calc-level transform function\n * - attributes {object} : transform attributes declarations\n * - supplyDefaults {function} : attributes default-supply function\n *\n * A valid `moduleType: 'component'` module has fields:\n * - name {string} : the component name, used it with Register.getComponentMethod()\n * to employ component method.\n *\n * A valid `moduleType: 'apiMethod'` module has fields:\n * - name {string} : the api method name.\n * - fn {function} : the api method called with Register.call();\n *\n */\nexports.register = function register(_modules) {\n exports.collectableSubplotTypes = null;\n\n if(!_modules) {\n throw new Error('No argument passed to Plotly.register.');\n } else if(_modules && !Array.isArray(_modules)) {\n _modules = [_modules];\n }\n\n for(var i = 0; i < _modules.length; i++) {\n var newModule = _modules[i];\n\n if(!newModule) {\n throw new Error('Invalid module was attempted to be registered!');\n }\n\n switch(newModule.moduleType) {\n case 'trace':\n registerTraceModule(newModule);\n break;\n case 'transform':\n registerTransformModule(newModule);\n break;\n case 'component':\n registerComponentModule(newModule);\n break;\n case 'locale':\n registerLocale(newModule);\n break;\n case 'apiMethod':\n var name = newModule.name;\n exports.apiMethodRegistry[name] = newModule.fn;\n break;\n default:\n throw new Error('Invalid module was attempted to be registered!');\n }\n }\n};\n\n/**\n * Get registered module using trace object or trace type\n *\n * @param {object||string} trace\n * trace object with prop 'type' or trace type as a string\n * @return {object}\n * module object corresponding to trace type\n */\nexports.getModule = function(trace) {\n var _module = exports.modules[getTraceType(trace)];\n if(!_module) return false;\n return _module._module;\n};\n\n/**\n * Determine if this trace type is in a given category\n *\n * @param {object||string} traceType\n * a trace (object) or trace type (string)\n * @param {string} category\n * category in question\n * @return {boolean}\n */\nexports.traceIs = function(traceType, category) {\n traceType = getTraceType(traceType);\n\n // old plot.ly workspace hack, nothing to see here\n if(traceType === 'various') return false;\n\n var _module = exports.modules[traceType];\n\n if(!_module) {\n if(traceType && traceType !== 'area') {\n Loggers.log('Unrecognized trace type ' + traceType + '.');\n }\n\n _module = exports.modules[basePlotAttributes.type.dflt];\n }\n\n return !!_module.categories[category];\n};\n\n/**\n * Determine if this trace has a transform of the given type and return\n * array of matching indices.\n *\n * @param {object} data\n * a trace object (member of data or fullData)\n * @param {string} type\n * type of trace to test\n * @return {array}\n * array of matching indices. If none found, returns []\n */\nexports.getTransformIndices = function(data, type) {\n var indices = [];\n var transforms = data.transforms || [];\n for(var i = 0; i < transforms.length; i++) {\n if(transforms[i].type === type) {\n indices.push(i);\n }\n }\n return indices;\n};\n\n/**\n * Determine if this trace has a transform of the given type\n *\n * @param {object} data\n * a trace object (member of data or fullData)\n * @param {string} type\n * type of trace to test\n * @return {boolean}\n */\nexports.hasTransform = function(data, type) {\n var transforms = data.transforms || [];\n for(var i = 0; i < transforms.length; i++) {\n if(transforms[i].type === type) {\n return true;\n }\n }\n return false;\n};\n\n/**\n * Retrieve component module method. Falls back on noop if either the\n * module or the method is missing, so the result can always be safely called\n *\n * @param {string} name\n * name of component (as declared in component module)\n * @param {string} method\n * name of component module method\n * @return {function}\n */\nexports.getComponentMethod = function(name, method) {\n var _module = exports.componentsRegistry[name];\n\n if(!_module) return noop;\n return _module[method] || noop;\n};\n\n/**\n * Call registered api method.\n *\n * @param {string} name : api method name\n * @param {...array} args : arguments passed to api method\n * @return {any} : returns api method output\n */\nexports.call = function() {\n var name = arguments[0];\n var args = [].slice.call(arguments, 1);\n return exports.apiMethodRegistry[name].apply(null, args);\n};\n\nfunction registerTraceModule(_module) {\n var thisType = _module.name;\n var categoriesIn = _module.categories;\n var meta = _module.meta;\n\n if(exports.modules[thisType]) {\n Loggers.log('Type ' + thisType + ' already registered');\n return;\n }\n\n if(!exports.subplotsRegistry[_module.basePlotModule.name]) {\n registerSubplot(_module.basePlotModule);\n }\n\n var categoryObj = {};\n for(var i = 0; i < categoriesIn.length; i++) {\n categoryObj[categoriesIn[i]] = true;\n exports.allCategories[categoriesIn[i]] = true;\n }\n\n exports.modules[thisType] = {\n _module: _module,\n categories: categoryObj\n };\n\n if(meta && Object.keys(meta).length) {\n exports.modules[thisType].meta = meta;\n }\n\n exports.allTypes.push(thisType);\n\n for(var componentName in exports.componentsRegistry) {\n mergeComponentAttrsToTrace(componentName, thisType);\n }\n\n /*\n * Collect all trace layout attributes in one place for easier lookup later\n * but don't merge them into the base schema as it would confuse the docs\n * (at least after https://github.com/plotly/documentation/issues/202 gets done!)\n */\n if(_module.layoutAttributes) {\n extendFlat(exports.traceLayoutAttributes, _module.layoutAttributes);\n }\n\n var basePlotModule = _module.basePlotModule;\n var bpmName = basePlotModule.name;\n\n // add mapbox-gl CSS here to avoid console warning on instantiation\n if(bpmName === 'mapbox') {\n var styleRules = basePlotModule.constants.styleRules;\n for(var k in styleRules) {\n addStyleRule('.js-plotly-plot .plotly .mapboxgl-' + k, styleRules[k]);\n }\n }\n\n // if `plotly-geo-assets.js` is not included,\n // add `PlotlyGeoAssets` global to stash references to all fetched\n // topojson / geojson data\n if((bpmName === 'geo' || bpmName === 'mapbox') &&\n (typeof window !== undefined && window.PlotlyGeoAssets === undefined)\n ) {\n window.PlotlyGeoAssets = {topojson: {}};\n }\n}\n\nfunction registerSubplot(_module) {\n var plotType = _module.name;\n\n if(exports.subplotsRegistry[plotType]) {\n Loggers.log('Plot type ' + plotType + ' already registered.');\n return;\n }\n\n // relayout array handling will look for component module methods with this\n // name and won't find them because this is a subplot module... but that\n // should be fine, it will just fall back on redrawing the plot.\n findArrayRegexps(_module);\n\n // not sure what's best for the 'cartesian' type at this point\n exports.subplotsRegistry[plotType] = _module;\n\n for(var componentName in exports.componentsRegistry) {\n mergeComponentAttrsToSubplot(componentName, _module.name);\n }\n}\n\nfunction registerComponentModule(_module) {\n if(typeof _module.name !== 'string') {\n throw new Error('Component module *name* must be a string.');\n }\n\n var name = _module.name;\n exports.componentsRegistry[name] = _module;\n\n if(_module.layoutAttributes) {\n if(_module.layoutAttributes._isLinkedToArray) {\n pushUnique(exports.layoutArrayContainers, name);\n }\n findArrayRegexps(_module);\n }\n\n for(var traceType in exports.modules) {\n mergeComponentAttrsToTrace(name, traceType);\n }\n\n for(var subplotName in exports.subplotsRegistry) {\n mergeComponentAttrsToSubplot(name, subplotName);\n }\n\n for(var transformType in exports.transformsRegistry) {\n mergeComponentAttrsToTransform(name, transformType);\n }\n\n if(_module.schema && _module.schema.layout) {\n extendDeepAll(baseLayoutAttributes, _module.schema.layout);\n }\n}\n\nfunction registerTransformModule(_module) {\n if(typeof _module.name !== 'string') {\n throw new Error('Transform module *name* must be a string.');\n }\n\n var prefix = 'Transform module ' + _module.name;\n var hasTransform = typeof _module.transform === 'function';\n var hasCalcTransform = typeof _module.calcTransform === 'function';\n\n if(!hasTransform && !hasCalcTransform) {\n throw new Error(prefix + ' is missing a *transform* or *calcTransform* method.');\n }\n if(hasTransform && hasCalcTransform) {\n Loggers.log([\n prefix + ' has both a *transform* and *calcTransform* methods.',\n 'Please note that all *transform* methods are executed',\n 'before all *calcTransform* methods.'\n ].join(' '));\n }\n if(!isPlainObject(_module.attributes)) {\n Loggers.log(prefix + ' registered without an *attributes* object.');\n }\n if(typeof _module.supplyDefaults !== 'function') {\n Loggers.log(prefix + ' registered without a *supplyDefaults* method.');\n }\n\n exports.transformsRegistry[_module.name] = _module;\n\n for(var componentName in exports.componentsRegistry) {\n mergeComponentAttrsToTransform(componentName, _module.name);\n }\n}\n\nfunction registerLocale(_module) {\n var locale = _module.name;\n var baseLocale = locale.split('-')[0];\n\n var newDict = _module.dictionary;\n var newFormat = _module.format;\n var hasDict = newDict && Object.keys(newDict).length;\n var hasFormat = newFormat && Object.keys(newFormat).length;\n\n var locales = exports.localeRegistry;\n\n var localeObj = locales[locale];\n if(!localeObj) locales[locale] = localeObj = {};\n\n // Should we use this dict for the base locale?\n // In case we're overwriting a previous dict for this locale, check\n // whether the base matches the full locale dict now. If we're not\n // overwriting, locales[locale] is undefined so this just checks if\n // baseLocale already had a dict or not.\n // Same logic for dateFormats\n if(baseLocale !== locale) {\n var baseLocaleObj = locales[baseLocale];\n if(!baseLocaleObj) locales[baseLocale] = baseLocaleObj = {};\n\n if(hasDict && baseLocaleObj.dictionary === localeObj.dictionary) {\n baseLocaleObj.dictionary = newDict;\n }\n if(hasFormat && baseLocaleObj.format === localeObj.format) {\n baseLocaleObj.format = newFormat;\n }\n }\n\n if(hasDict) localeObj.dictionary = newDict;\n if(hasFormat) localeObj.format = newFormat;\n}\n\nfunction findArrayRegexps(_module) {\n if(_module.layoutAttributes) {\n var arrayAttrRegexps = _module.layoutAttributes._arrayAttrRegexps;\n if(arrayAttrRegexps) {\n for(var i = 0; i < arrayAttrRegexps.length; i++) {\n pushUnique(exports.layoutArrayRegexes, arrayAttrRegexps[i]);\n }\n }\n }\n}\n\nfunction mergeComponentAttrsToTrace(componentName, traceType) {\n var componentSchema = exports.componentsRegistry[componentName].schema;\n if(!componentSchema || !componentSchema.traces) return;\n\n var traceAttrs = componentSchema.traces[traceType];\n if(traceAttrs) {\n extendDeepAll(exports.modules[traceType]._module.attributes, traceAttrs);\n }\n}\n\nfunction mergeComponentAttrsToTransform(componentName, transformType) {\n var componentSchema = exports.componentsRegistry[componentName].schema;\n if(!componentSchema || !componentSchema.transforms) return;\n\n var transformAttrs = componentSchema.transforms[transformType];\n if(transformAttrs) {\n extendDeepAll(exports.transformsRegistry[transformType].attributes, transformAttrs);\n }\n}\n\nfunction mergeComponentAttrsToSubplot(componentName, subplotName) {\n var componentSchema = exports.componentsRegistry[componentName].schema;\n if(!componentSchema || !componentSchema.subplots) return;\n\n var subplotModule = exports.subplotsRegistry[subplotName];\n var subplotAttrs = subplotModule.layoutAttributes;\n var subplotAttr = subplotModule.attr === 'subplot' ? subplotModule.name : subplotModule.attr;\n if(Array.isArray(subplotAttr)) subplotAttr = subplotAttr[0];\n\n var componentLayoutAttrs = componentSchema.subplots[subplotAttr];\n if(subplotAttrs && componentLayoutAttrs) {\n extendDeepAll(subplotAttrs, componentLayoutAttrs);\n }\n}\n\nfunction getTraceType(traceType) {\n if(typeof traceType === 'object') traceType = traceType.type;\n return traceType;\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/surface');\n","'use strict';\nmodule.exports = typeof navigator !== 'undefined' &&\n\t(/MSIE/.test(navigator.userAgent) || /Trident\\//.test(navigator.appVersion));\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar isArray1D = require('../../lib').isArray1D;\n\nmodule.exports = function handleXYDefaults(traceIn, traceOut, coerce) {\n var x = coerce('x');\n var hasX = x && x.length;\n var y = coerce('y');\n var hasY = y && y.length;\n if(!hasX && !hasY) return false;\n\n traceOut._cheater = !x;\n\n if((!hasX || isArray1D(x)) && (!hasY || isArray1D(y))) {\n var len = hasX ? x.length : Infinity;\n if(hasY) len = Math.min(len, y.length);\n if(traceOut.a && traceOut.a.length) len = Math.min(len, traceOut.a.length);\n if(traceOut.b && traceOut.b.length) len = Math.min(len, traceOut.b.length);\n traceOut._length = len;\n } else traceOut._length = null;\n\n return true;\n};\n","/*eslint new-cap:0*/\nvar dtype = require('dtype')\n\nmodule.exports = flattenVertexData\n\nfunction flattenVertexData (data, output, offset) {\n if (!data) throw new TypeError('must specify data as first parameter')\n offset = +(offset || 0) | 0\n\n if (Array.isArray(data) && (data[0] && typeof data[0][0] === 'number')) {\n var dim = data[0].length\n var length = data.length * dim\n var i, j, k, l\n\n // no output specified, create a new typed array\n if (!output || typeof output === 'string') {\n output = new (dtype(output || 'float32'))(length + offset)\n }\n\n var dstLength = output.length - offset\n if (length !== dstLength) {\n throw new Error('source length ' + length + ' (' + dim + 'x' + data.length + ')' +\n ' does not match destination length ' + dstLength)\n }\n\n for (i = 0, k = offset; i < data.length; i++) {\n for (j = 0; j < dim; j++) {\n output[k++] = data[i][j] === null ? NaN : data[i][j]\n }\n }\n } else {\n if (!output || typeof output === 'string') {\n // no output, create a new one\n var Ctor = dtype(output || 'float32')\n\n // handle arrays separately due to possible nulls\n if (Array.isArray(data) || output === 'array') {\n output = new Ctor(data.length + offset)\n for (i = 0, k = offset, l = output.length; k < l; k++, i++) {\n output[k] = data[i] === null ? NaN : data[i]\n }\n } else {\n if (offset === 0) {\n output = new Ctor(data)\n } else {\n output = new Ctor(data.length + offset)\n\n output.set(data, offset)\n }\n }\n } else {\n // store output in existing array\n output.set(data, offset)\n }\n }\n\n return output\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar Registry = require('../../registry');\nvar Lib = require('../../lib');\n\n/**\n * Factory function for checking component arrays for subplot references.\n *\n * @param {string} containerArrayName: the top-level array in gd.layout to check\n * If an item in this container is found that references a cartesian x and/or y axis,\n * ensure cartesian is marked as a base plot module and record the axes (and subplot\n * if both refs are axes) in gd._fullLayout\n *\n * @return {function}: with args layoutIn (gd.layout) and layoutOut (gd._fullLayout)\n * as expected of a component includeBasePlot method\n */\nmodule.exports = function makeIncludeComponents(containerArrayName) {\n return function includeComponents(layoutIn, layoutOut) {\n var array = layoutIn[containerArrayName];\n if(!Array.isArray(array)) return;\n\n var Cartesian = Registry.subplotsRegistry.cartesian;\n var idRegex = Cartesian.idRegex;\n var subplots = layoutOut._subplots;\n var xaList = subplots.xaxis;\n var yaList = subplots.yaxis;\n var cartesianList = subplots.cartesian;\n var hasCartesianOrGL2D = layoutOut._has('cartesian') || layoutOut._has('gl2d');\n\n for(var i = 0; i < array.length; i++) {\n var itemi = array[i];\n if(!Lib.isPlainObject(itemi)) continue;\n\n var xref = itemi.xref;\n var yref = itemi.yref;\n\n var hasXref = idRegex.x.test(xref);\n var hasYref = idRegex.y.test(yref);\n if(hasXref || hasYref) {\n if(!hasCartesianOrGL2D) Lib.pushUnique(layoutOut._basePlotModules, Cartesian);\n\n var newAxis = false;\n if(hasXref && xaList.indexOf(xref) === -1) {\n xaList.push(xref);\n newAxis = true;\n }\n if(hasYref && yaList.indexOf(yref) === -1) {\n yaList.push(yref);\n newAxis = true;\n }\n\n /*\n * Notice the logic here: only add a subplot for a component if\n * it's referencing both x and y axes AND it's creating a new axis\n * so for example if your plot already has xy and x2y2, an annotation\n * on x2y or xy2 will not create a new subplot.\n */\n if(newAxis && hasXref && hasYref) {\n cartesianList.push(xref + yref);\n }\n }\n }\n };\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\n\nmodule.exports = {\n barmode: {\n valType: 'enumerated',\n values: ['stack', 'group', 'overlay', 'relative'],\n dflt: 'group',\n \n editType: 'calc',\n \n },\n barnorm: {\n valType: 'enumerated',\n values: ['', 'fraction', 'percent'],\n dflt: '',\n \n editType: 'calc',\n \n },\n bargap: {\n valType: 'number',\n min: 0,\n max: 1,\n \n editType: 'calc',\n \n },\n bargroupgap: {\n valType: 'number',\n min: 0,\n max: 1,\n dflt: 0,\n \n editType: 'calc',\n \n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar Color = require('../../components/color');\nvar isArrayOrTypedArray = require('../../lib').isArrayOrTypedArray;\n\nmodule.exports = function fillColorDefaults(traceIn, traceOut, defaultColor, coerce) {\n var inheritColorFromMarker = false;\n\n if(traceOut.marker) {\n // don't try to inherit a color array\n var markerColor = traceOut.marker.color;\n var markerLineColor = (traceOut.marker.line || {}).color;\n\n if(markerColor && !isArrayOrTypedArray(markerColor)) {\n inheritColorFromMarker = markerColor;\n } else if(markerLineColor && !isArrayOrTypedArray(markerLineColor)) {\n inheritColorFromMarker = markerLineColor;\n }\n }\n\n coerce('fillcolor', Color.addOpacity(\n (traceOut.line || {}).color ||\n inheritColorFromMarker ||\n defaultColor, 0.5\n ));\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/scattergeo');\n","var glslify = require('glslify')\n\nvar triVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position, normal;\\nattribute vec4 color;\\nattribute vec2 uv;\\n\\nuniform mat4 model\\n , view\\n , projection\\n , inverseModel;\\nuniform vec3 eyePosition\\n , lightPosition;\\n\\nvarying vec3 f_normal\\n , f_lightDirection\\n , f_eyeDirection\\n , f_data;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvec4 project(vec3 p) {\\n return projection * view * model * vec4(p, 1.0);\\n}\\n\\nvoid main() {\\n gl_Position = project(position);\\n\\n //Lighting geometry parameters\\n vec4 cameraCoordinate = view * vec4(position , 1.0);\\n cameraCoordinate.xyz /= cameraCoordinate.w;\\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\\n\\n f_color = color;\\n f_data = position;\\n f_uv = uv;\\n}\\n\"])\nvar triFragSrc = glslify([\"#extension GL_OES_standard_derivatives : enable\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nfloat beckmannDistribution(float x, float roughness) {\\n float NdotH = max(x, 0.0001);\\n float cos2Alpha = NdotH * NdotH;\\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\n float roughness2 = roughness * roughness;\\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\n return exp(tan2Alpha / roughness2) / denom;\\n}\\n\\nfloat cookTorranceSpecular(\\n vec3 lightDirection,\\n vec3 viewDirection,\\n vec3 surfaceNormal,\\n float roughness,\\n float fresnel) {\\n\\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\\n\\n //Half angle vector\\n vec3 H = normalize(lightDirection + viewDirection);\\n\\n //Geometric term\\n float NdotH = max(dot(surfaceNormal, H), 0.0);\\n float VdotH = max(dot(viewDirection, H), 0.000001);\\n float LdotH = max(dot(lightDirection, H), 0.000001);\\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\\n float G = min(1.0, min(G1, G2));\\n \\n //Distribution term\\n float D = beckmannDistribution(NdotH, roughness);\\n\\n //Fresnel term\\n float F = pow(1.0 - VdotN, fresnel);\\n\\n //Multiply terms and done\\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\\n}\\n\\n//#pragma glslify: beckmann = require(glsl-specular-beckmann) // used in gl-surface3d\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float roughness\\n , fresnel\\n , kambient\\n , kdiffuse\\n , kspecular;\\nuniform sampler2D texture;\\n\\nvarying vec3 f_normal\\n , f_lightDirection\\n , f_eyeDirection\\n , f_data;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (f_color.a == 0.0 ||\\n outOfRange(clipBounds[0], clipBounds[1], f_data)\\n ) discard;\\n\\n vec3 N = normalize(f_normal);\\n vec3 L = normalize(f_lightDirection);\\n vec3 V = normalize(f_eyeDirection);\\n\\n if(gl_FrontFacing) {\\n N = -N;\\n }\\n\\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\\n //float specular = max(0.0, beckmann(L, V, N, roughness)); // used in gl-surface3d\\n\\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\n\\n vec4 surfaceColor = vec4(f_color.rgb, 1.0) * texture2D(texture, f_uv);\\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\\n\\n gl_FragColor = litColor * f_color.a;\\n}\\n\"])\nvar edgeVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 uv;\\n\\nuniform mat4 model, view, projection;\\n\\nvarying vec4 f_color;\\nvarying vec3 f_data;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n gl_Position = projection * view * model * vec4(position, 1.0);\\n f_color = color;\\n f_data = position;\\n f_uv = uv;\\n}\"])\nvar edgeFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform sampler2D texture;\\nuniform float opacity;\\n\\nvarying vec4 f_color;\\nvarying vec3 f_data;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_data)) discard;\\n\\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\\n}\"])\nvar pointVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 uv;\\nattribute float pointSize;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 clipBounds[2];\\n\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0.0, 0.0 ,0.0 ,0.0);\\n } else {\\n gl_Position = projection * view * model * vec4(position, 1.0);\\n }\\n gl_PointSize = pointSize;\\n f_color = color;\\n f_uv = uv;\\n}\"])\nvar pointFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform sampler2D texture;\\nuniform float opacity;\\n\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n vec2 pointR = gl_PointCoord.xy - vec2(0.5, 0.5);\\n if(dot(pointR, pointR) > 0.25) {\\n discard;\\n }\\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\\n}\"])\nvar pickVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n gl_Position = projection * view * model * vec4(position, 1.0);\\n f_id = id;\\n f_position = position;\\n}\"])\nvar pickFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float pickId;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\n\\n gl_FragColor = vec4(pickId, f_id.xyz);\\n}\"])\nvar pickPointVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute float pointSize;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 clipBounds[2];\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0.0, 0.0, 0.0, 0.0);\\n } else {\\n gl_Position = projection * view * model * vec4(position, 1.0);\\n gl_PointSize = pointSize;\\n }\\n f_id = id;\\n f_position = position;\\n}\"])\nvar contourVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\n\\nuniform mat4 model, view, projection;\\n\\nvoid main() {\\n gl_Position = projection * view * model * vec4(position, 1.0);\\n}\"])\nvar contourFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform vec3 contourColor;\\n\\nvoid main() {\\n gl_FragColor = vec4(contourColor, 1.0);\\n}\\n\"])\n\nexports.meshShader = {\n vertex: triVertSrc,\n fragment: triFragSrc,\n attributes: [\n {name: 'position', type: 'vec3'},\n {name: 'normal', type: 'vec3'},\n {name: 'color', type: 'vec4'},\n {name: 'uv', type: 'vec2'}\n ]\n}\nexports.wireShader = {\n vertex: edgeVertSrc,\n fragment: edgeFragSrc,\n attributes: [\n {name: 'position', type: 'vec3'},\n {name: 'color', type: 'vec4'},\n {name: 'uv', type: 'vec2'}\n ]\n}\nexports.pointShader = {\n vertex: pointVertSrc,\n fragment: pointFragSrc,\n attributes: [\n {name: 'position', type: 'vec3'},\n {name: 'color', type: 'vec4'},\n {name: 'uv', type: 'vec2'},\n {name: 'pointSize', type: 'float'}\n ]\n}\nexports.pickShader = {\n vertex: pickVertSrc,\n fragment: pickFragSrc,\n attributes: [\n {name: 'position', type: 'vec3'},\n {name: 'id', type: 'vec4'}\n ]\n}\nexports.pointPickShader = {\n vertex: pickPointVertSrc,\n fragment: pickFragSrc,\n attributes: [\n {name: 'position', type: 'vec3'},\n {name: 'pointSize', type: 'float'},\n {name: 'id', type: 'vec4'}\n ]\n}\nexports.contourShader = {\n vertex: contourVertSrc,\n fragment: contourFragSrc,\n attributes: [\n {name: 'position', type: 'vec3'}\n ]\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar Fx = require('../../components/fx');\nvar Registry = require('../../registry');\nvar getTraceColor = require('./get_trace_color');\nvar Color = require('../../components/color');\nvar fillText = Lib.fillText;\n\nmodule.exports = function hoverPoints(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var xpx = xa.c2p(xval);\n var ypx = ya.c2p(yval);\n var pt = [xpx, ypx];\n var hoveron = trace.hoveron || '';\n var minRad = (trace.mode.indexOf('markers') !== -1) ? 3 : 0.5;\n\n // look for points to hover on first, then take fills only if we\n // didn't find a point\n if(hoveron.indexOf('points') !== -1) {\n var dx = function(di) {\n // dx and dy are used in compare modes - here we want to always\n // prioritize the closest data point, at least as long as markers are\n // the same size or nonexistent, but still try to prioritize small markers too.\n var rad = Math.max(3, di.mrc || 0);\n var kink = 1 - 1 / rad;\n var dxRaw = Math.abs(xa.c2p(di.x) - xpx);\n var d = (dxRaw < rad) ? (kink * dxRaw / rad) : (dxRaw - rad + kink);\n return d;\n };\n var dy = function(di) {\n var rad = Math.max(3, di.mrc || 0);\n var kink = 1 - 1 / rad;\n var dyRaw = Math.abs(ya.c2p(di.y) - ypx);\n return (dyRaw < rad) ? (kink * dyRaw / rad) : (dyRaw - rad + kink);\n };\n var dxy = function(di) {\n // scatter points: d.mrc is the calculated marker radius\n // adjust the distance so if you're inside the marker it\n // always will show up regardless of point size, but\n // prioritize smaller points\n var rad = Math.max(minRad, di.mrc || 0);\n var dx = xa.c2p(di.x) - xpx;\n var dy = ya.c2p(di.y) - ypx;\n return Math.max(Math.sqrt(dx * dx + dy * dy) - rad, 1 - minRad / rad);\n };\n var distfn = Fx.getDistanceFunction(hovermode, dx, dy, dxy);\n\n Fx.getClosest(cd, distfn, pointData);\n\n // skip the rest (for this trace) if we didn't find a close point\n if(pointData.index !== false) {\n // the closest data point\n var di = cd[pointData.index];\n var xc = xa.c2p(di.x, true);\n var yc = ya.c2p(di.y, true);\n var rad = di.mrc || 1;\n\n // now we're done using the whole `calcdata` array, replace the\n // index with the original index (in case of inserted point from\n // stacked area)\n pointData.index = di.i;\n\n var orientation = cd[0].t.orientation;\n // TODO: for scatter and bar, option to show (sub)totals and\n // raw data? Currently stacked and/or normalized bars just show\n // the normalized individual sizes, so that's what I'm doing here\n // for now.\n var sizeVal = orientation && (di.sNorm || di.s);\n var xLabelVal = (orientation === 'h') ? sizeVal : di.x;\n var yLabelVal = (orientation === 'v') ? sizeVal : di.y;\n\n Lib.extendFlat(pointData, {\n color: getTraceColor(trace, di),\n\n x0: xc - rad,\n x1: xc + rad,\n xLabelVal: xLabelVal,\n\n y0: yc - rad,\n y1: yc + rad,\n yLabelVal: yLabelVal,\n\n spikeDistance: dxy(di),\n hovertemplate: trace.hovertemplate\n });\n\n fillText(di, trace, pointData);\n Registry.getComponentMethod('errorbars', 'hoverInfo')(di, trace, pointData);\n\n return [pointData];\n }\n }\n\n // even if hoveron is 'fills', only use it if we have polygons too\n if(hoveron.indexOf('fills') !== -1 && trace._polygons) {\n var polygons = trace._polygons;\n var polygonsIn = [];\n var inside = false;\n var xmin = Infinity;\n var xmax = -Infinity;\n var ymin = Infinity;\n var ymax = -Infinity;\n\n var i, j, polygon, pts, xCross, x0, x1, y0, y1;\n\n for(i = 0; i < polygons.length; i++) {\n polygon = polygons[i];\n // TODO: this is not going to work right for curved edges, it will\n // act as though they're straight. That's probably going to need\n // the elements themselves to capture the events. Worth it?\n if(polygon.contains(pt)) {\n inside = !inside;\n // TODO: need better than just the overall bounding box\n polygonsIn.push(polygon);\n ymin = Math.min(ymin, polygon.ymin);\n ymax = Math.max(ymax, polygon.ymax);\n }\n }\n\n if(inside) {\n // constrain ymin/max to the visible plot, so the label goes\n // at the middle of the piece you can see\n ymin = Math.max(ymin, 0);\n ymax = Math.min(ymax, ya._length);\n\n // find the overall left-most and right-most points of the\n // polygon(s) we're inside at their combined vertical midpoint.\n // This is where we will draw the hover label.\n // Note that this might not be the vertical midpoint of the\n // whole trace, if it's disjoint.\n var yAvg = (ymin + ymax) / 2;\n for(i = 0; i < polygonsIn.length; i++) {\n pts = polygonsIn[i].pts;\n for(j = 1; j < pts.length; j++) {\n y0 = pts[j - 1][1];\n y1 = pts[j][1];\n if((y0 > yAvg) !== (y1 >= yAvg)) {\n x0 = pts[j - 1][0];\n x1 = pts[j][0];\n if(y1 - y0) {\n xCross = x0 + (x1 - x0) * (yAvg - y0) / (y1 - y0);\n xmin = Math.min(xmin, xCross);\n xmax = Math.max(xmax, xCross);\n }\n }\n }\n }\n\n // constrain xmin/max to the visible plot now too\n xmin = Math.max(xmin, 0);\n xmax = Math.min(xmax, xa._length);\n\n // get only fill or line color for the hover color\n var color = Color.defaultLine;\n if(Color.opacity(trace.fillcolor)) color = trace.fillcolor;\n else if(Color.opacity((trace.line || {}).color)) {\n color = trace.line.color;\n }\n\n Lib.extendFlat(pointData, {\n // never let a 2D override 1D type as closest point\n // also: no spikeDistance, it's not allowed for fills\n distance: pointData.maxHoverDistance,\n x0: xmin,\n x1: xmax,\n y0: yAvg,\n y1: yAvg,\n color: color,\n hovertemplate: false\n });\n\n delete pointData.index;\n\n if(trace.text && !Array.isArray(trace.text)) {\n pointData.text = String(trace.text);\n } else pointData.text = trace.name;\n\n return [pointData];\n }\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar pieCalc = require('../pie/calc');\n\nfunction calc(gd, trace) {\n return pieCalc.calc(gd, trace);\n}\n\nfunction crossTraceCalc(gd) {\n pieCalc.crossTraceCalc(gd, { type: 'funnelarea' });\n}\n\nmodule.exports = {\n calc: calc,\n crossTraceCalc: crossTraceCalc\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n r.strip();\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\n\n// make sure scene exists on subplot, return it\nmodule.exports = function sceneUpdate(gd, subplot) {\n var scene = subplot._scene;\n\n var resetOpts = {\n // number of traces in subplot, since scene:subplot -> 1:1\n count: 0,\n // whether scene requires init hook in plot call (dirty plot call)\n dirty: true,\n // last used options\n lineOptions: [],\n fillOptions: [],\n markerOptions: [],\n markerSelectedOptions: [],\n markerUnselectedOptions: [],\n errorXOptions: [],\n errorYOptions: [],\n textOptions: [],\n textSelectedOptions: [],\n textUnselectedOptions: [],\n // selection batches\n selectBatch: [],\n unselectBatch: []\n };\n\n // regl- component stubs, initialized in dirty plot call\n var initOpts = {\n fill2d: false,\n scatter2d: false,\n error2d: false,\n line2d: false,\n glText: false,\n select2d: false\n };\n\n if(!subplot._scene) {\n scene = subplot._scene = {};\n\n scene.init = function init() {\n Lib.extendFlat(scene, initOpts, resetOpts);\n };\n\n scene.init();\n\n // apply new option to all regl components (used on drag)\n scene.update = function update(opt) {\n var opts = Lib.repeat(opt, scene.count);\n\n if(scene.fill2d) scene.fill2d.update(opts);\n if(scene.scatter2d) scene.scatter2d.update(opts);\n if(scene.line2d) scene.line2d.update(opts);\n if(scene.error2d) scene.error2d.update(opts.concat(opts));\n if(scene.select2d) scene.select2d.update(opts);\n if(scene.glText) {\n for(var i = 0; i < scene.count; i++) {\n scene.glText[i].update(opt);\n }\n }\n };\n\n // draw traces in proper order\n scene.draw = function draw() {\n var count = scene.count;\n var fill2d = scene.fill2d;\n var error2d = scene.error2d;\n var line2d = scene.line2d;\n var scatter2d = scene.scatter2d;\n var glText = scene.glText;\n var select2d = scene.select2d;\n var selectBatch = scene.selectBatch;\n var unselectBatch = scene.unselectBatch;\n\n for(var i = 0; i < count; i++) {\n if(fill2d && scene.fillOrder[i]) {\n fill2d.draw(scene.fillOrder[i]);\n }\n if(line2d && scene.lineOptions[i]) {\n line2d.draw(i);\n }\n if(error2d) {\n if(scene.errorXOptions[i]) error2d.draw(i);\n if(scene.errorYOptions[i]) error2d.draw(i + count);\n }\n if(scatter2d && scene.markerOptions[i]) {\n if(unselectBatch[i].length) {\n var arg = Lib.repeat([], scene.count);\n arg[i] = unselectBatch[i];\n scatter2d.draw(arg);\n } else if(!selectBatch[i].length) {\n scatter2d.draw(i);\n }\n }\n if(glText[i] && scene.textOptions[i]) {\n glText[i].render();\n }\n }\n\n if(select2d) {\n select2d.draw(selectBatch);\n }\n\n scene.dirty = false;\n };\n\n // remove scene resources\n scene.destroy = function destroy() {\n if(scene.fill2d && scene.fill2d.destroy) scene.fill2d.destroy();\n if(scene.scatter2d && scene.scatter2d.destroy) scene.scatter2d.destroy();\n if(scene.error2d && scene.error2d.destroy) scene.error2d.destroy();\n if(scene.line2d && scene.line2d.destroy) scene.line2d.destroy();\n if(scene.select2d && scene.select2d.destroy) scene.select2d.destroy();\n if(scene.glText) {\n scene.glText.forEach(function(text) {\n if(text.destroy) text.destroy();\n });\n }\n\n scene.lineOptions = null;\n scene.fillOptions = null;\n scene.markerOptions = null;\n scene.markerSelectedOptions = null;\n scene.markerUnselectedOptions = null;\n scene.errorXOptions = null;\n scene.errorYOptions = null;\n scene.textOptions = null;\n scene.textSelectedOptions = null;\n scene.textUnselectedOptions = null;\n\n scene.selectBatch = null;\n scene.unselectBatch = null;\n\n // we can't just delete _scene, because `destroy` is called in the\n // middle of supplyDefaults, before relinkPrivateKeys which will put it back.\n subplot._scene = null;\n };\n }\n\n // in case if we have scene from the last calc - reset data\n if(!scene.dirty) {\n Lib.extendFlat(scene, resetOpts);\n }\n\n return scene;\n};\n","module.exports = round\n\n/**\n * Math.round the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a vector to round\n * @returns {vec3} out\n */\nfunction round(out, a) {\n out[0] = Math.round(a[0])\n out[1] = Math.round(a[1])\n out[2] = Math.round(a[2])\n return out\n}\n","\"use strict\"\n\nmodule.exports = findZeroCrossings\n\nvar core = require(\"./lib/zc-core\")\n\nfunction findZeroCrossings(array, level) {\n var cross = []\n level = +level || 0.0\n core(array.hi(array.shape[0]-1), cross, level)\n return cross\n}","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\nvar d3 = require('d3');\nvar Lib = require('../../../lib');\nvar extendDeepAll = Lib.extendDeepAll;\nvar MID_SHIFT = require('../../../constants/alignment').MID_SHIFT;\n\nvar µ = module.exports = { version: '0.2.2' };\n\nµ.Axis = function module() {\n var config = {\n data: [],\n layout: {}\n }, inputConfig = {}, liveConfig = {};\n var svg, container, dispatch = d3.dispatch('hover'), radialScale, angularScale;\n var exports = {};\n function render(_container) {\n container = _container || container;\n var data = config.data;\n var axisConfig = config.layout;\n if (typeof container == 'string' || container.nodeName) container = d3.select(container);\n container.datum(data).each(function(_data, _index) {\n var dataOriginal = _data.slice();\n liveConfig = {\n data: µ.util.cloneJson(dataOriginal),\n layout: µ.util.cloneJson(axisConfig)\n };\n var colorIndex = 0;\n dataOriginal.forEach(function(d, i) {\n if (!d.color) {\n d.color = axisConfig.defaultColorRange[colorIndex];\n colorIndex = (colorIndex + 1) % axisConfig.defaultColorRange.length;\n }\n if (!d.strokeColor) {\n d.strokeColor = d.geometry === 'LinePlot' ? d.color : d3.rgb(d.color).darker().toString();\n }\n liveConfig.data[i].color = d.color;\n liveConfig.data[i].strokeColor = d.strokeColor;\n liveConfig.data[i].strokeDash = d.strokeDash;\n liveConfig.data[i].strokeSize = d.strokeSize;\n });\n var data = dataOriginal.filter(function(d, i) {\n var visible = d.visible;\n return typeof visible === 'undefined' || visible === true;\n });\n var isStacked = false;\n var dataWithGroupId = data.map(function(d, i) {\n isStacked = isStacked || typeof d.groupId !== 'undefined';\n return d;\n });\n if (isStacked) {\n var grouped = d3.nest().key(function(d, i) {\n return typeof d.groupId != 'undefined' ? d.groupId : 'unstacked';\n }).entries(dataWithGroupId);\n var dataYStack = [];\n var stacked = grouped.map(function(d, i) {\n if (d.key === 'unstacked') return d.values; else {\n var prevArray = d.values[0].r.map(function(d, i) {\n return 0;\n });\n d.values.forEach(function(d, i, a) {\n d.yStack = [ prevArray ];\n dataYStack.push(prevArray);\n prevArray = µ.util.sumArrays(d.r, prevArray);\n });\n return d.values;\n }\n });\n data = d3.merge(stacked);\n }\n data.forEach(function(d, i) {\n d.t = Array.isArray(d.t[0]) ? d.t : [ d.t ];\n d.r = Array.isArray(d.r[0]) ? d.r : [ d.r ];\n });\n var radius = Math.min(axisConfig.width - axisConfig.margin.left - axisConfig.margin.right, axisConfig.height - axisConfig.margin.top - axisConfig.margin.bottom) / 2;\n radius = Math.max(10, radius);\n var chartCenter = [ axisConfig.margin.left + radius, axisConfig.margin.top + radius ];\n var extent;\n if (isStacked) {\n var highestStackedValue = d3.max(µ.util.sumArrays(µ.util.arrayLast(data).r[0], µ.util.arrayLast(dataYStack)));\n extent = [ 0, highestStackedValue ];\n } else extent = d3.extent(µ.util.flattenArray(data.map(function(d, i) {\n return d.r;\n })));\n if (axisConfig.radialAxis.domain != µ.DATAEXTENT) extent[0] = 0;\n radialScale = d3.scale.linear().domain(axisConfig.radialAxis.domain != µ.DATAEXTENT && axisConfig.radialAxis.domain ? axisConfig.radialAxis.domain : extent).range([ 0, radius ]);\n liveConfig.layout.radialAxis.domain = radialScale.domain();\n var angularDataMerged = µ.util.flattenArray(data.map(function(d, i) {\n return d.t;\n }));\n var isOrdinal = typeof angularDataMerged[0] === 'string';\n var ticks;\n if (isOrdinal) {\n angularDataMerged = µ.util.deduplicate(angularDataMerged);\n ticks = angularDataMerged.slice();\n angularDataMerged = d3.range(angularDataMerged.length);\n data = data.map(function(d, i) {\n var result = d;\n d.t = [ angularDataMerged ];\n if (isStacked) result.yStack = d.yStack;\n return result;\n });\n }\n var hasOnlyLineOrDotPlot = data.filter(function(d, i) {\n return d.geometry === 'LinePlot' || d.geometry === 'DotPlot';\n }).length === data.length;\n var needsEndSpacing = axisConfig.needsEndSpacing === null ? isOrdinal || !hasOnlyLineOrDotPlot : axisConfig.needsEndSpacing;\n var useProvidedDomain = axisConfig.angularAxis.domain && axisConfig.angularAxis.domain != µ.DATAEXTENT && !isOrdinal && axisConfig.angularAxis.domain[0] >= 0;\n var angularDomain = useProvidedDomain ? axisConfig.angularAxis.domain : d3.extent(angularDataMerged);\n var angularDomainStep = Math.abs(angularDataMerged[1] - angularDataMerged[0]);\n if (hasOnlyLineOrDotPlot && !isOrdinal) angularDomainStep = 0;\n var angularDomainWithPadding = angularDomain.slice();\n if (needsEndSpacing && isOrdinal) angularDomainWithPadding[1] += angularDomainStep;\n var tickCount = axisConfig.angularAxis.ticksCount || 4;\n if (tickCount > 8) tickCount = tickCount / (tickCount / 8) + tickCount % 8;\n if (axisConfig.angularAxis.ticksStep) {\n tickCount = (angularDomainWithPadding[1] - angularDomainWithPadding[0]) / tickCount;\n }\n var angularTicksStep = axisConfig.angularAxis.ticksStep || (angularDomainWithPadding[1] - angularDomainWithPadding[0]) / (tickCount * (axisConfig.minorTicks + 1));\n if (ticks) angularTicksStep = Math.max(Math.round(angularTicksStep), 1);\n if (!angularDomainWithPadding[2]) angularDomainWithPadding[2] = angularTicksStep;\n var angularAxisRange = d3.range.apply(this, angularDomainWithPadding);\n angularAxisRange = angularAxisRange.map(function(d, i) {\n return parseFloat(d.toPrecision(12));\n });\n angularScale = d3.scale.linear().domain(angularDomainWithPadding.slice(0, 2)).range(axisConfig.direction === 'clockwise' ? [ 0, 360 ] : [ 360, 0 ]);\n liveConfig.layout.angularAxis.domain = angularScale.domain();\n liveConfig.layout.angularAxis.endPadding = needsEndSpacing ? angularDomainStep : 0;\n svg = d3.select(this).select('svg.chart-root');\n if (typeof svg === 'undefined' || svg.empty()) {\n var skeleton = \"' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '\";\n var doc = new DOMParser().parseFromString(skeleton, 'application/xml');\n var newSvg = this.appendChild(this.ownerDocument.importNode(doc.documentElement, true));\n svg = d3.select(newSvg);\n }\n svg.select('.guides-group').style({\n 'pointer-events': 'none'\n });\n svg.select('.angular.axis-group').style({\n 'pointer-events': 'none'\n });\n svg.select('.radial.axis-group').style({\n 'pointer-events': 'none'\n });\n var chartGroup = svg.select('.chart-group');\n var lineStyle = {\n fill: 'none',\n stroke: axisConfig.tickColor\n };\n var fontStyle = {\n 'font-size': axisConfig.font.size,\n 'font-family': axisConfig.font.family,\n fill: axisConfig.font.color,\n 'text-shadow': [ '-1px 0px', '1px -1px', '-1px 1px', '1px 1px' ].map(function(d, i) {\n return ' ' + d + ' 0 ' + axisConfig.font.outlineColor;\n }).join(',')\n };\n var legendContainer;\n if (axisConfig.showLegend) {\n legendContainer = svg.select('.legend-group').attr({\n transform: 'translate(' + [ radius, axisConfig.margin.top ] + ')'\n }).style({\n display: 'block'\n });\n var elements = data.map(function(d, i) {\n var datumClone = µ.util.cloneJson(d);\n datumClone.symbol = d.geometry === 'DotPlot' ? d.dotType || 'circle' : d.geometry != 'LinePlot' ? 'square' : 'line';\n datumClone.visibleInLegend = typeof d.visibleInLegend === 'undefined' || d.visibleInLegend;\n datumClone.color = d.geometry === 'LinePlot' ? d.strokeColor : d.color;\n return datumClone;\n });\n\n µ.Legend().config({\n data: data.map(function(d, i) {\n return d.name || 'Element' + i;\n }),\n legendConfig: extendDeepAll({},\n µ.Legend.defaultConfig().legendConfig,\n {\n container: legendContainer,\n elements: elements,\n reverseOrder: axisConfig.legend.reverseOrder\n }\n )\n })();\n\n var legendBBox = legendContainer.node().getBBox();\n radius = Math.min(axisConfig.width - legendBBox.width - axisConfig.margin.left - axisConfig.margin.right, axisConfig.height - axisConfig.margin.top - axisConfig.margin.bottom) / 2;\n radius = Math.max(10, radius);\n chartCenter = [ axisConfig.margin.left + radius, axisConfig.margin.top + radius ];\n radialScale.range([ 0, radius ]);\n liveConfig.layout.radialAxis.domain = radialScale.domain();\n legendContainer.attr('transform', 'translate(' + [ chartCenter[0] + radius, chartCenter[1] - radius ] + ')');\n } else {\n legendContainer = svg.select('.legend-group').style({\n display: 'none'\n });\n }\n svg.attr({\n width: axisConfig.width,\n height: axisConfig.height\n }).style({\n opacity: axisConfig.opacity\n });\n chartGroup.attr('transform', 'translate(' + chartCenter + ')').style({\n cursor: 'crosshair'\n });\n var centeringOffset = [ (axisConfig.width - (axisConfig.margin.left + axisConfig.margin.right + radius * 2 + (legendBBox ? legendBBox.width : 0))) / 2, (axisConfig.height - (axisConfig.margin.top + axisConfig.margin.bottom + radius * 2)) / 2 ];\n centeringOffset[0] = Math.max(0, centeringOffset[0]);\n centeringOffset[1] = Math.max(0, centeringOffset[1]);\n svg.select('.outer-group').attr('transform', 'translate(' + centeringOffset + ')');\n if (axisConfig.title && axisConfig.title.text) {\n var title = svg.select('g.title-group text').style(fontStyle).text(axisConfig.title.text);\n var titleBBox = title.node().getBBox();\n title.attr({\n x: chartCenter[0] - titleBBox.width / 2,\n y: chartCenter[1] - radius - 20\n });\n }\n var radialAxis = svg.select('.radial.axis-group');\n if (axisConfig.radialAxis.gridLinesVisible) {\n var gridCircles = radialAxis.selectAll('circle.grid-circle').data(radialScale.ticks(5));\n gridCircles.enter().append('circle').attr({\n 'class': 'grid-circle'\n }).style(lineStyle);\n gridCircles.attr('r', radialScale);\n gridCircles.exit().remove();\n }\n radialAxis.select('circle.outside-circle').attr({\n r: radius\n }).style(lineStyle);\n var backgroundCircle = svg.select('circle.background-circle').attr({\n r: radius\n }).style({\n fill: axisConfig.backgroundColor,\n stroke: axisConfig.stroke\n });\n function currentAngle(d, i) {\n return angularScale(d) % 360 + axisConfig.orientation;\n }\n if (axisConfig.radialAxis.visible) {\n var axis = d3.svg.axis().scale(radialScale).ticks(5).tickSize(5);\n radialAxis.call(axis).attr({\n transform: 'rotate(' + axisConfig.radialAxis.orientation + ')'\n });\n radialAxis.selectAll('.domain').style(lineStyle);\n radialAxis.selectAll('g>text').text(function(d, i) {\n return this.textContent + axisConfig.radialAxis.ticksSuffix;\n }).style(fontStyle).style({\n 'text-anchor': 'start'\n }).attr({\n x: 0,\n y: 0,\n dx: 0,\n dy: 0,\n transform: function(d, i) {\n if (axisConfig.radialAxis.tickOrientation === 'horizontal') {\n return 'rotate(' + -axisConfig.radialAxis.orientation + ') translate(' + [ 0, fontStyle['font-size'] ] + ')';\n } else return 'translate(' + [ 0, fontStyle['font-size'] ] + ')';\n }\n });\n radialAxis.selectAll('g>line').style({\n stroke: 'black'\n });\n }\n var angularAxis = svg.select('.angular.axis-group').selectAll('g.angular-tick').data(angularAxisRange);\n var angularAxisEnter = angularAxis.enter().append('g').classed('angular-tick', true);\n angularAxis.attr({\n transform: function(d, i) {\n return 'rotate(' + currentAngle(d, i) + ')';\n }\n }).style({\n display: axisConfig.angularAxis.visible ? 'block' : 'none'\n });\n angularAxis.exit().remove();\n angularAxisEnter.append('line').classed('grid-line', true).classed('major', function(d, i) {\n return i % (axisConfig.minorTicks + 1) == 0;\n }).classed('minor', function(d, i) {\n return !(i % (axisConfig.minorTicks + 1) == 0);\n }).style(lineStyle);\n angularAxisEnter.selectAll('.minor').style({\n stroke: axisConfig.minorTickColor\n });\n angularAxis.select('line.grid-line').attr({\n x1: axisConfig.tickLength ? radius - axisConfig.tickLength : 0,\n x2: radius\n }).style({\n display: axisConfig.angularAxis.gridLinesVisible ? 'block' : 'none'\n });\n angularAxisEnter.append('text').classed('axis-text', true).style(fontStyle);\n var ticksText = angularAxis.select('text.axis-text').attr({\n x: radius + axisConfig.labelOffset,\n dy: MID_SHIFT + 'em',\n transform: function(d, i) {\n var angle = currentAngle(d, i);\n var rad = radius + axisConfig.labelOffset;\n var orient = axisConfig.angularAxis.tickOrientation;\n if (orient == 'horizontal') return 'rotate(' + -angle + ' ' + rad + ' 0)'; else if (orient == 'radial') return angle < 270 && angle > 90 ? 'rotate(180 ' + rad + ' 0)' : null; else return 'rotate(' + (angle <= 180 && angle > 0 ? -90 : 90) + ' ' + rad + ' 0)';\n }\n }).style({\n 'text-anchor': 'middle',\n display: axisConfig.angularAxis.labelsVisible ? 'block' : 'none'\n }).text(function(d, i) {\n if (i % (axisConfig.minorTicks + 1) != 0) return '';\n if (ticks) {\n return ticks[d] + axisConfig.angularAxis.ticksSuffix;\n } else return d + axisConfig.angularAxis.ticksSuffix;\n }).style(fontStyle);\n if (axisConfig.angularAxis.rewriteTicks) ticksText.text(function(d, i) {\n if (i % (axisConfig.minorTicks + 1) != 0) return '';\n return axisConfig.angularAxis.rewriteTicks(this.textContent, i);\n });\n var rightmostTickEndX = d3.max(chartGroup.selectAll('.angular-tick text')[0].map(function(d, i) {\n return d.getCTM().e + d.getBBox().width;\n }));\n legendContainer.attr({\n transform: 'translate(' + [ radius + rightmostTickEndX, axisConfig.margin.top ] + ')'\n });\n var hasGeometry = svg.select('g.geometry-group').selectAll('g').size() > 0;\n var geometryContainer = svg.select('g.geometry-group').selectAll('g.geometry').data(data);\n geometryContainer.enter().append('g').attr({\n 'class': function(d, i) {\n return 'geometry geometry' + i;\n }\n });\n geometryContainer.exit().remove();\n if (data[0] || hasGeometry) {\n var geometryConfigs = [];\n data.forEach(function(d, i) {\n var geometryConfig = {};\n geometryConfig.radialScale = radialScale;\n geometryConfig.angularScale = angularScale;\n geometryConfig.container = geometryContainer.filter(function(dB, iB) {\n return iB == i;\n });\n geometryConfig.geometry = d.geometry;\n geometryConfig.orientation = axisConfig.orientation;\n geometryConfig.direction = axisConfig.direction;\n geometryConfig.index = i;\n geometryConfigs.push({\n data: d,\n geometryConfig: geometryConfig\n });\n });\n var geometryConfigsGrouped = d3.nest().key(function(d, i) {\n return typeof d.data.groupId != 'undefined' || 'unstacked';\n }).entries(geometryConfigs);\n var geometryConfigsGrouped2 = [];\n geometryConfigsGrouped.forEach(function(d, i) {\n if (d.key === 'unstacked') geometryConfigsGrouped2 = geometryConfigsGrouped2.concat(d.values.map(function(d, i) {\n return [ d ];\n })); else geometryConfigsGrouped2.push(d.values);\n });\n geometryConfigsGrouped2.forEach(function(d, i) {\n var geometry;\n if (Array.isArray(d)) geometry = d[0].geometryConfig.geometry; else geometry = d.geometryConfig.geometry;\n var finalGeometryConfig = d.map(function(dB, iB) {\n return extendDeepAll(µ[geometry].defaultConfig(), dB);\n });\n µ[geometry]().config(finalGeometryConfig)();\n });\n }\n var guides = svg.select('.guides-group');\n var tooltipContainer = svg.select('.tooltips-group');\n var angularTooltip = µ.tooltipPanel().config({\n container: tooltipContainer,\n fontSize: 8\n })();\n var radialTooltip = µ.tooltipPanel().config({\n container: tooltipContainer,\n fontSize: 8\n })();\n var geometryTooltip = µ.tooltipPanel().config({\n container: tooltipContainer,\n hasTick: true\n })();\n var angularValue, radialValue;\n if (!isOrdinal) {\n var angularGuideLine = guides.select('line').attr({\n x1: 0,\n y1: 0,\n y2: 0\n }).style({\n stroke: 'grey',\n 'pointer-events': 'none'\n });\n chartGroup.on('mousemove.angular-guide', function(d, i) {\n var mouseAngle = µ.util.getMousePos(backgroundCircle).angle;\n angularGuideLine.attr({\n x2: -radius,\n transform: 'rotate(' + mouseAngle + ')'\n }).style({\n opacity: .5\n });\n var angleWithOriginOffset = (mouseAngle + 180 + 360 - axisConfig.orientation) % 360;\n angularValue = angularScale.invert(angleWithOriginOffset);\n var pos = µ.util.convertToCartesian(radius + 12, mouseAngle + 180);\n angularTooltip.text(µ.util.round(angularValue)).move([ pos[0] + chartCenter[0], pos[1] + chartCenter[1] ]);\n }).on('mouseout.angular-guide', function(d, i) {\n guides.select('line').style({\n opacity: 0\n });\n });\n }\n var angularGuideCircle = guides.select('circle').style({\n stroke: 'grey',\n fill: 'none'\n });\n chartGroup.on('mousemove.radial-guide', function(d, i) {\n var r = µ.util.getMousePos(backgroundCircle).radius;\n angularGuideCircle.attr({\n r: r\n }).style({\n opacity: .5\n });\n radialValue = radialScale.invert(µ.util.getMousePos(backgroundCircle).radius);\n var pos = µ.util.convertToCartesian(r, axisConfig.radialAxis.orientation);\n radialTooltip.text(µ.util.round(radialValue)).move([ pos[0] + chartCenter[0], pos[1] + chartCenter[1] ]);\n }).on('mouseout.radial-guide', function(d, i) {\n angularGuideCircle.style({\n opacity: 0\n });\n geometryTooltip.hide();\n angularTooltip.hide();\n radialTooltip.hide();\n });\n svg.selectAll('.geometry-group .mark').on('mouseover.tooltip', function(d, i) {\n var el = d3.select(this);\n var color = this.style.fill;\n var newColor = 'black';\n var opacity = this.style.opacity || 1;\n el.attr({\n 'data-opacity': opacity\n });\n if (color && color !== 'none') {\n el.attr({\n 'data-fill': color\n });\n newColor = d3.hsl(color).darker().toString();\n el.style({\n fill: newColor,\n opacity: 1\n });\n var textData = {\n t: µ.util.round(d[0]),\n r: µ.util.round(d[1])\n };\n if (isOrdinal) textData.t = ticks[d[0]];\n var text = 't: ' + textData.t + ', r: ' + textData.r;\n var bbox = this.getBoundingClientRect();\n var svgBBox = svg.node().getBoundingClientRect();\n var pos = [ bbox.left + bbox.width / 2 - centeringOffset[0] - svgBBox.left, bbox.top + bbox.height / 2 - centeringOffset[1] - svgBBox.top ];\n geometryTooltip.config({\n color: newColor\n }).text(text);\n geometryTooltip.move(pos);\n } else {\n color = this.style.stroke || 'black';\n el.attr({\n 'data-stroke': color\n });\n newColor = d3.hsl(color).darker().toString();\n el.style({\n stroke: newColor,\n opacity: 1\n });\n }\n }).on('mousemove.tooltip', function(d, i) {\n if (d3.event.which != 0) return false;\n if (d3.select(this).attr('data-fill')) geometryTooltip.show();\n }).on('mouseout.tooltip', function(d, i) {\n geometryTooltip.hide();\n var el = d3.select(this);\n var fillColor = el.attr('data-fill');\n if (fillColor) el.style({\n fill: fillColor,\n opacity: el.attr('data-opacity')\n }); else el.style({\n stroke: el.attr('data-stroke'),\n opacity: el.attr('data-opacity')\n });\n });\n });\n return exports;\n }\n exports.render = function(_container) {\n render(_container);\n return this;\n };\n exports.config = function(_x) {\n if (!arguments.length) return config;\n var xClone = µ.util.cloneJson(_x);\n xClone.data.forEach(function(d, i) {\n if (!config.data[i]) config.data[i] = {};\n extendDeepAll(config.data[i], µ.Axis.defaultConfig().data[0]);\n extendDeepAll(config.data[i], d);\n });\n extendDeepAll(config.layout, µ.Axis.defaultConfig().layout);\n extendDeepAll(config.layout, xClone.layout);\n return this;\n };\n exports.getLiveConfig = function() {\n return liveConfig;\n };\n exports.getinputConfig = function() {\n return inputConfig;\n };\n exports.radialScale = function(_x) {\n return radialScale;\n };\n exports.angularScale = function(_x) {\n return angularScale;\n };\n exports.svg = function() {\n return svg;\n };\n d3.rebind(exports, dispatch, 'on');\n return exports;\n};\n\nµ.Axis.defaultConfig = function(d, i) {\n var config = {\n data: [ {\n t: [ 1, 2, 3, 4 ],\n r: [ 10, 11, 12, 13 ],\n name: 'Line1',\n geometry: 'LinePlot',\n color: null,\n strokeDash: 'solid',\n strokeColor: null,\n strokeSize: '1',\n visibleInLegend: true,\n opacity: 1\n } ],\n layout: {\n defaultColorRange: d3.scale.category10().range(),\n title: null,\n height: 450,\n width: 500,\n margin: {\n top: 40,\n right: 40,\n bottom: 40,\n left: 40\n },\n font: {\n size: 12,\n color: 'gray',\n outlineColor: 'white',\n family: 'Tahoma, sans-serif'\n },\n direction: 'clockwise',\n orientation: 0,\n labelOffset: 10,\n radialAxis: {\n domain: null,\n orientation: -45,\n ticksSuffix: '',\n visible: true,\n gridLinesVisible: true,\n tickOrientation: 'horizontal',\n rewriteTicks: null\n },\n angularAxis: {\n domain: [ 0, 360 ],\n ticksSuffix: '',\n visible: true,\n gridLinesVisible: true,\n labelsVisible: true,\n tickOrientation: 'horizontal',\n rewriteTicks: null,\n ticksCount: null,\n ticksStep: null\n },\n minorTicks: 0,\n tickLength: null,\n tickColor: 'silver',\n minorTickColor: '#eee',\n backgroundColor: 'none',\n needsEndSpacing: null,\n showLegend: true,\n legend: {\n reverseOrder: false\n },\n opacity: 1\n }\n };\n return config;\n};\n\nµ.util = {};\n\nµ.DATAEXTENT = 'dataExtent';\n\nµ.AREA = 'AreaChart';\n\nµ.LINE = 'LinePlot';\n\nµ.DOT = 'DotPlot';\n\nµ.BAR = 'BarChart';\n\nµ.util._override = function(_objA, _objB) {\n for (var x in _objA) if (x in _objB) _objB[x] = _objA[x];\n};\n\nµ.util._extend = function(_objA, _objB) {\n for (var x in _objA) _objB[x] = _objA[x];\n};\n\nµ.util._rndSnd = function() {\n return Math.random() * 2 - 1 + (Math.random() * 2 - 1) + (Math.random() * 2 - 1);\n};\n\nµ.util.dataFromEquation2 = function(_equation, _step) {\n var step = _step || 6;\n var data = d3.range(0, 360 + step, step).map(function(deg, index) {\n var theta = deg * Math.PI / 180;\n var radius = _equation(theta);\n return [ deg, radius ];\n });\n return data;\n};\n\nµ.util.dataFromEquation = function(_equation, _step, _name) {\n var step = _step || 6;\n var t = [], r = [];\n d3.range(0, 360 + step, step).forEach(function(deg, index) {\n var theta = deg * Math.PI / 180;\n var radius = _equation(theta);\n t.push(deg);\n r.push(radius);\n });\n var result = {\n t: t,\n r: r\n };\n if (_name) result.name = _name;\n return result;\n};\n\nµ.util.ensureArray = function(_val, _count) {\n if (typeof _val === 'undefined') return null;\n var arr = [].concat(_val);\n return d3.range(_count).map(function(d, i) {\n return arr[i] || arr[0];\n });\n};\n\nµ.util.fillArrays = function(_obj, _valueNames, _count) {\n _valueNames.forEach(function(d, i) {\n _obj[d] = µ.util.ensureArray(_obj[d], _count);\n });\n return _obj;\n};\n\nµ.util.cloneJson = function(json) {\n return JSON.parse(JSON.stringify(json));\n};\n\nµ.util.validateKeys = function(obj, keys) {\n if (typeof keys === 'string') keys = keys.split('.');\n var next = keys.shift();\n return obj[next] && (!keys.length || objHasKeys(obj[next], keys));\n};\n\nµ.util.sumArrays = function(a, b) {\n return d3.zip(a, b).map(function(d, i) {\n return d3.sum(d);\n });\n};\n\nµ.util.arrayLast = function(a) {\n return a[a.length - 1];\n};\n\nµ.util.arrayEqual = function(a, b) {\n var i = Math.max(a.length, b.length, 1);\n while (i-- >= 0 && a[i] === b[i]) ;\n return i === -2;\n};\n\nµ.util.flattenArray = function(arr) {\n var r = [];\n while (!µ.util.arrayEqual(r, arr)) {\n r = arr;\n arr = [].concat.apply([], arr);\n }\n return arr;\n};\n\nµ.util.deduplicate = function(arr) {\n return arr.filter(function(v, i, a) {\n return a.indexOf(v) == i;\n });\n};\n\nµ.util.convertToCartesian = function(radius, theta) {\n var thetaRadians = theta * Math.PI / 180;\n var x = radius * Math.cos(thetaRadians);\n var y = radius * Math.sin(thetaRadians);\n return [ x, y ];\n};\n\nµ.util.round = function(_value, _digits) {\n var digits = _digits || 2;\n var mult = Math.pow(10, digits);\n return Math.round(_value * mult) / mult;\n};\n\nµ.util.getMousePos = function(_referenceElement) {\n var mousePos = d3.mouse(_referenceElement.node());\n var mouseX = mousePos[0];\n var mouseY = mousePos[1];\n var mouse = {};\n mouse.x = mouseX;\n mouse.y = mouseY;\n mouse.pos = mousePos;\n mouse.angle = (Math.atan2(mouseY, mouseX) + Math.PI) * 180 / Math.PI;\n mouse.radius = Math.sqrt(mouseX * mouseX + mouseY * mouseY);\n return mouse;\n};\n\nµ.util.duplicatesCount = function(arr) {\n var uniques = {}, val;\n var dups = {};\n for (var i = 0, len = arr.length; i < len; i++) {\n val = arr[i];\n if (val in uniques) {\n uniques[val]++;\n dups[val] = uniques[val];\n } else {\n uniques[val] = 1;\n }\n }\n return dups;\n};\n\nµ.util.duplicates = function(arr) {\n return Object.keys(µ.util.duplicatesCount(arr));\n};\n\nµ.util.translator = function(obj, sourceBranch, targetBranch, reverse) {\n if (reverse) {\n var targetBranchCopy = targetBranch.slice();\n targetBranch = sourceBranch;\n sourceBranch = targetBranchCopy;\n }\n var value = sourceBranch.reduce(function(previousValue, currentValue) {\n if (typeof previousValue != 'undefined') return previousValue[currentValue];\n }, obj);\n if (typeof value === 'undefined') return;\n sourceBranch.reduce(function(previousValue, currentValue, index) {\n if (typeof previousValue == 'undefined') return;\n if (index === sourceBranch.length - 1) delete previousValue[currentValue];\n return previousValue[currentValue];\n }, obj);\n targetBranch.reduce(function(previousValue, currentValue, index) {\n if (typeof previousValue[currentValue] === 'undefined') previousValue[currentValue] = {};\n if (index === targetBranch.length - 1) previousValue[currentValue] = value;\n return previousValue[currentValue];\n }, obj);\n};\n\nµ.PolyChart = function module() {\n var config = [ µ.PolyChart.defaultConfig() ];\n var dispatch = d3.dispatch('hover');\n var dashArray = {\n solid: 'none',\n dash: [ 5, 2 ],\n dot: [ 2, 5 ]\n };\n var colorScale;\n function exports() {\n var geometryConfig = config[0].geometryConfig;\n var container = geometryConfig.container;\n if (typeof container == 'string') container = d3.select(container);\n container.datum(config).each(function(_config, _index) {\n var isStack = !!_config[0].data.yStack;\n var data = _config.map(function(d, i) {\n if (isStack) return d3.zip(d.data.t[0], d.data.r[0], d.data.yStack[0]); else return d3.zip(d.data.t[0], d.data.r[0]);\n });\n var angularScale = geometryConfig.angularScale;\n var domainMin = geometryConfig.radialScale.domain()[0];\n var generator = {};\n generator.bar = function(d, i, pI) {\n var dataConfig = _config[pI].data;\n var h = geometryConfig.radialScale(d[1]) - geometryConfig.radialScale(0);\n var stackTop = geometryConfig.radialScale(d[2] || 0);\n var w = dataConfig.barWidth;\n d3.select(this).attr({\n 'class': 'mark bar',\n d: 'M' + [ [ h + stackTop, -w / 2 ], [ h + stackTop, w / 2 ], [ stackTop, w / 2 ], [ stackTop, -w / 2 ] ].join('L') + 'Z',\n transform: function(d, i) {\n return 'rotate(' + (geometryConfig.orientation + angularScale(d[0])) + ')';\n }\n });\n };\n generator.dot = function(d, i, pI) {\n var stackedData = d[2] ? [ d[0], d[1] + d[2] ] : d;\n var symbol = d3.svg.symbol().size(_config[pI].data.dotSize).type(_config[pI].data.dotType)(d, i);\n d3.select(this).attr({\n 'class': 'mark dot',\n d: symbol,\n transform: function(d, i) {\n var coord = convertToCartesian(getPolarCoordinates(stackedData));\n return 'translate(' + [ coord.x, coord.y ] + ')';\n }\n });\n };\n var line = d3.svg.line.radial().interpolate(_config[0].data.lineInterpolation).radius(function(d) {\n return geometryConfig.radialScale(d[1]);\n }).angle(function(d) {\n return geometryConfig.angularScale(d[0]) * Math.PI / 180;\n });\n generator.line = function(d, i, pI) {\n var lineData = d[2] ? data[pI].map(function(d, i) {\n return [ d[0], d[1] + d[2] ];\n }) : data[pI];\n d3.select(this).each(generator['dot']).style({\n opacity: function(dB, iB) {\n return +_config[pI].data.dotVisible;\n },\n fill: markStyle.stroke(d, i, pI)\n }).attr({\n 'class': 'mark dot'\n });\n if (i > 0) return;\n var lineSelection = d3.select(this.parentNode).selectAll('path.line').data([ 0 ]);\n lineSelection.enter().insert('path');\n lineSelection.attr({\n 'class': 'line',\n d: line(lineData),\n transform: function(dB, iB) {\n return 'rotate(' + (geometryConfig.orientation + 90) + ')';\n },\n 'pointer-events': 'none'\n }).style({\n fill: function(dB, iB) {\n return markStyle.fill(d, i, pI);\n },\n 'fill-opacity': 0,\n stroke: function(dB, iB) {\n return markStyle.stroke(d, i, pI);\n },\n 'stroke-width': function(dB, iB) {\n return markStyle['stroke-width'](d, i, pI);\n },\n 'stroke-dasharray': function(dB, iB) {\n return markStyle['stroke-dasharray'](d, i, pI);\n },\n opacity: function(dB, iB) {\n return markStyle.opacity(d, i, pI);\n },\n display: function(dB, iB) {\n return markStyle.display(d, i, pI);\n }\n });\n };\n var angularRange = geometryConfig.angularScale.range();\n var triangleAngle = Math.abs(angularRange[1] - angularRange[0]) / data[0].length * Math.PI / 180;\n var arc = d3.svg.arc().startAngle(function(d) {\n return -triangleAngle / 2;\n }).endAngle(function(d) {\n return triangleAngle / 2;\n }).innerRadius(function(d) {\n return geometryConfig.radialScale(domainMin + (d[2] || 0));\n }).outerRadius(function(d) {\n return geometryConfig.radialScale(domainMin + (d[2] || 0)) + geometryConfig.radialScale(d[1]);\n });\n generator.arc = function(d, i, pI) {\n d3.select(this).attr({\n 'class': 'mark arc',\n d: arc,\n transform: function(d, i) {\n return 'rotate(' + (geometryConfig.orientation + angularScale(d[0]) + 90) + ')';\n }\n });\n };\n var markStyle = {\n fill: function(d, i, pI) {\n return _config[pI].data.color;\n },\n stroke: function(d, i, pI) {\n return _config[pI].data.strokeColor;\n },\n 'stroke-width': function(d, i, pI) {\n return _config[pI].data.strokeSize + 'px';\n },\n 'stroke-dasharray': function(d, i, pI) {\n return dashArray[_config[pI].data.strokeDash];\n },\n opacity: function(d, i, pI) {\n return _config[pI].data.opacity;\n },\n display: function(d, i, pI) {\n return typeof _config[pI].data.visible === 'undefined' || _config[pI].data.visible ? 'block' : 'none';\n }\n };\n var geometryLayer = d3.select(this).selectAll('g.layer').data(data);\n geometryLayer.enter().append('g').attr({\n 'class': 'layer'\n });\n var geometry = geometryLayer.selectAll('path.mark').data(function(d, i) {\n return d;\n });\n geometry.enter().append('path').attr({\n 'class': 'mark'\n });\n geometry.style(markStyle).each(generator[geometryConfig.geometryType]);\n geometry.exit().remove();\n geometryLayer.exit().remove();\n function getPolarCoordinates(d, i) {\n var r = geometryConfig.radialScale(d[1]);\n var t = (geometryConfig.angularScale(d[0]) + geometryConfig.orientation) * Math.PI / 180;\n return {\n r: r,\n t: t\n };\n }\n function convertToCartesian(polarCoordinates) {\n var x = polarCoordinates.r * Math.cos(polarCoordinates.t);\n var y = polarCoordinates.r * Math.sin(polarCoordinates.t);\n return {\n x: x,\n y: y\n };\n }\n });\n }\n exports.config = function(_x) {\n if (!arguments.length) return config;\n _x.forEach(function(d, i) {\n if (!config[i]) config[i] = {};\n extendDeepAll(config[i], µ.PolyChart.defaultConfig());\n extendDeepAll(config[i], d);\n });\n return this;\n };\n exports.getColorScale = function() {\n return colorScale;\n };\n d3.rebind(exports, dispatch, 'on');\n return exports;\n};\n\nµ.PolyChart.defaultConfig = function() {\n var config = {\n data: {\n name: 'geom1',\n t: [ [ 1, 2, 3, 4 ] ],\n r: [ [ 1, 2, 3, 4 ] ],\n dotType: 'circle',\n dotSize: 64,\n dotVisible: false,\n barWidth: 20,\n color: '#ffa500',\n strokeSize: 1,\n strokeColor: 'silver',\n strokeDash: 'solid',\n opacity: 1,\n index: 0,\n visible: true,\n visibleInLegend: true\n },\n geometryConfig: {\n geometry: 'LinePlot',\n geometryType: 'arc',\n direction: 'clockwise',\n orientation: 0,\n container: 'body',\n radialScale: null,\n angularScale: null,\n colorScale: d3.scale.category20()\n }\n };\n return config;\n};\n\nµ.BarChart = function module() {\n return µ.PolyChart();\n};\n\nµ.BarChart.defaultConfig = function() {\n var config = {\n geometryConfig: {\n geometryType: 'bar'\n }\n };\n return config;\n};\n\nµ.AreaChart = function module() {\n return µ.PolyChart();\n};\n\nµ.AreaChart.defaultConfig = function() {\n var config = {\n geometryConfig: {\n geometryType: 'arc'\n }\n };\n return config;\n};\n\nµ.DotPlot = function module() {\n return µ.PolyChart();\n};\n\nµ.DotPlot.defaultConfig = function() {\n var config = {\n geometryConfig: {\n geometryType: 'dot',\n dotType: 'circle'\n }\n };\n return config;\n};\n\nµ.LinePlot = function module() {\n return µ.PolyChart();\n};\n\nµ.LinePlot.defaultConfig = function() {\n var config = {\n geometryConfig: {\n geometryType: 'line'\n }\n };\n return config;\n};\n\nµ.Legend = function module() {\n var config = µ.Legend.defaultConfig();\n var dispatch = d3.dispatch('hover');\n function exports() {\n var legendConfig = config.legendConfig;\n var flattenData = config.data.map(function(d, i) {\n return [].concat(d).map(function(dB, iB) {\n var element = extendDeepAll({}, legendConfig.elements[i]);\n element.name = dB;\n element.color = [].concat(legendConfig.elements[i].color)[iB];\n return element;\n });\n });\n var data = d3.merge(flattenData);\n data = data.filter(function(d, i) {\n return legendConfig.elements[i] && (legendConfig.elements[i].visibleInLegend || typeof legendConfig.elements[i].visibleInLegend === 'undefined');\n });\n if (legendConfig.reverseOrder) data = data.reverse();\n var container = legendConfig.container;\n if (typeof container == 'string' || container.nodeName) container = d3.select(container);\n var colors = data.map(function(d, i) {\n return d.color;\n });\n var lineHeight = legendConfig.fontSize;\n var isContinuous = legendConfig.isContinuous == null ? typeof data[0] === 'number' : legendConfig.isContinuous;\n var height = isContinuous ? legendConfig.height : lineHeight * data.length;\n var legendContainerGroup = container.classed('legend-group', true);\n var svg = legendContainerGroup.selectAll('svg').data([ 0 ]);\n var svgEnter = svg.enter().append('svg').attr({\n width: 300,\n height: height + lineHeight,\n xmlns: 'http://www.w3.org/2000/svg',\n 'xmlns:xlink': 'http://www.w3.org/1999/xlink',\n version: '1.1'\n });\n svgEnter.append('g').classed('legend-axis', true);\n svgEnter.append('g').classed('legend-marks', true);\n var dataNumbered = d3.range(data.length);\n var colorScale = d3.scale[isContinuous ? 'linear' : 'ordinal']().domain(dataNumbered).range(colors);\n var dataScale = d3.scale[isContinuous ? 'linear' : 'ordinal']().domain(dataNumbered)[isContinuous ? 'range' : 'rangePoints']([ 0, height ]);\n var shapeGenerator = function(_type, _size) {\n var squareSize = _size * 3;\n if (_type === 'line') {\n return 'M' + [ [ -_size / 2, -_size / 12 ], [ _size / 2, -_size / 12 ], [ _size / 2, _size / 12 ], [ -_size / 2, _size / 12 ] ] + 'Z';\n } else if (d3.svg.symbolTypes.indexOf(_type) != -1) return d3.svg.symbol().type(_type).size(squareSize)(); else return d3.svg.symbol().type('square').size(squareSize)();\n };\n if (isContinuous) {\n var gradient = svg.select('.legend-marks').append('defs').append('linearGradient').attr({\n id: 'grad1',\n x1: '0%',\n y1: '0%',\n x2: '0%',\n y2: '100%'\n }).selectAll('stop').data(colors);\n gradient.enter().append('stop');\n gradient.attr({\n offset: function(d, i) {\n return i / (colors.length - 1) * 100 + '%';\n }\n }).style({\n 'stop-color': function(d, i) {\n return d;\n }\n });\n svg.append('rect').classed('legend-mark', true).attr({\n height: legendConfig.height,\n width: legendConfig.colorBandWidth,\n fill: 'url(#grad1)'\n });\n } else {\n var legendElement = svg.select('.legend-marks').selectAll('path.legend-mark').data(data);\n legendElement.enter().append('path').classed('legend-mark', true);\n legendElement.attr({\n transform: function(d, i) {\n return 'translate(' + [ lineHeight / 2, dataScale(i) + lineHeight / 2 ] + ')';\n },\n d: function(d, i) {\n var symbolType = d.symbol;\n return shapeGenerator(symbolType, lineHeight);\n },\n fill: function(d, i) {\n return colorScale(i);\n }\n });\n legendElement.exit().remove();\n }\n var legendAxis = d3.svg.axis().scale(dataScale).orient('right');\n var axis = svg.select('g.legend-axis').attr({\n transform: 'translate(' + [ isContinuous ? legendConfig.colorBandWidth : lineHeight, lineHeight / 2 ] + ')'\n }).call(legendAxis);\n axis.selectAll('.domain').style({\n fill: 'none',\n stroke: 'none'\n });\n axis.selectAll('line').style({\n fill: 'none',\n stroke: isContinuous ? legendConfig.textColor : 'none'\n });\n axis.selectAll('text').style({\n fill: legendConfig.textColor,\n 'font-size': legendConfig.fontSize\n }).text(function(d, i) {\n return data[i].name;\n });\n return exports;\n }\n exports.config = function(_x) {\n if (!arguments.length) return config;\n extendDeepAll(config, _x);\n return this;\n };\n d3.rebind(exports, dispatch, 'on');\n return exports;\n};\n\nµ.Legend.defaultConfig = function(d, i) {\n var config = {\n data: [ 'a', 'b', 'c' ],\n legendConfig: {\n elements: [ {\n symbol: 'line',\n color: 'red'\n }, {\n symbol: 'square',\n color: 'yellow'\n }, {\n symbol: 'diamond',\n color: 'limegreen'\n } ],\n height: 150,\n colorBandWidth: 30,\n fontSize: 12,\n container: 'body',\n isContinuous: null,\n textColor: 'grey',\n reverseOrder: false\n }\n };\n return config;\n};\n\nµ.tooltipPanel = function() {\n var tooltipEl, tooltipTextEl, backgroundEl;\n var config = {\n container: null,\n hasTick: false,\n fontSize: 12,\n color: 'white',\n padding: 5\n };\n var id = 'tooltip-' + µ.tooltipPanel.uid++;\n var tickSize = 10;\n var exports = function() {\n tooltipEl = config.container.selectAll('g.' + id).data([ 0 ]);\n var tooltipEnter = tooltipEl.enter().append('g').classed(id, true).style({\n 'pointer-events': 'none',\n display: 'none'\n });\n backgroundEl = tooltipEnter.append('path').style({\n fill: 'white',\n 'fill-opacity': .9\n }).attr({\n d: 'M0 0'\n });\n tooltipTextEl = tooltipEnter.append('text').attr({\n dx: config.padding + tickSize,\n dy: +config.fontSize * .3\n });\n return exports;\n };\n exports.text = function(_text) {\n var l = d3.hsl(config.color).l;\n var strokeColor = l >= .5 ? '#aaa' : 'white';\n var fillColor = l >= .5 ? 'black' : 'white';\n var text = _text || '';\n tooltipTextEl.style({\n fill: fillColor,\n 'font-size': config.fontSize + 'px'\n }).text(text);\n var padding = config.padding;\n var bbox = tooltipTextEl.node().getBBox();\n var boxStyle = {\n fill: config.color,\n stroke: strokeColor,\n 'stroke-width': '2px'\n };\n var backGroundW = bbox.width + padding * 2 + tickSize;\n var backGroundH = bbox.height + padding * 2;\n backgroundEl.attr({\n d: 'M' + [ [ tickSize, -backGroundH / 2 ], [ tickSize, -backGroundH / 4 ], [ config.hasTick ? 0 : tickSize, 0 ], [ tickSize, backGroundH / 4 ], [ tickSize, backGroundH / 2 ], [ backGroundW, backGroundH / 2 ], [ backGroundW, -backGroundH / 2 ] ].join('L') + 'Z'\n }).style(boxStyle);\n tooltipEl.attr({\n transform: 'translate(' + [ tickSize, -backGroundH / 2 + padding * 2 ] + ')'\n });\n tooltipEl.style({\n display: 'block'\n });\n return exports;\n };\n exports.move = function(_pos) {\n if (!tooltipEl) return;\n tooltipEl.attr({\n transform: 'translate(' + [ _pos[0], _pos[1] ] + ')'\n }).style({\n display: 'block'\n });\n return exports;\n };\n exports.hide = function() {\n if (!tooltipEl) return;\n tooltipEl.style({\n display: 'none'\n });\n return exports;\n };\n exports.show = function() {\n if (!tooltipEl) return;\n tooltipEl.style({\n display: 'block'\n });\n return exports;\n };\n exports.config = function(_x) {\n extendDeepAll(config, _x);\n return exports;\n };\n return exports;\n};\n\nµ.tooltipPanel.uid = 1;\n\nµ.adapter = {};\n\nµ.adapter.plotly = function module() {\n var exports = {};\n exports.convert = function(_inputConfig, reverse) {\n var outputConfig = {};\n if (_inputConfig.data) {\n outputConfig.data = _inputConfig.data.map(function(d, i) {\n var r = extendDeepAll({}, d);\n var toTranslate = [\n [ r, [ 'marker', 'color' ], [ 'color' ] ],\n [ r, [ 'marker', 'opacity' ], [ 'opacity' ] ],\n [ r, [ 'marker', 'line', 'color' ], [ 'strokeColor' ] ],\n [ r, [ 'marker', 'line', 'dash' ], [ 'strokeDash' ] ],\n [ r, [ 'marker', 'line', 'width' ], [ 'strokeSize' ] ],\n [ r, [ 'marker', 'symbol' ], [ 'dotType' ] ],\n [ r, [ 'marker', 'size' ], [ 'dotSize' ] ],\n [ r, [ 'marker', 'barWidth' ], [ 'barWidth' ] ],\n [ r, [ 'line', 'interpolation' ], [ 'lineInterpolation' ] ],\n [ r, [ 'showlegend' ], [ 'visibleInLegend' ] ]\n ];\n toTranslate.forEach(function(d, i) {\n µ.util.translator.apply(null, d.concat(reverse));\n });\n\n if (!reverse) delete r.marker;\n if (reverse) delete r.groupId;\n if (!reverse) {\n if (r.type === 'scatter') {\n if (r.mode === 'lines') r.geometry = 'LinePlot'; else if (r.mode === 'markers') r.geometry = 'DotPlot'; else if (r.mode === 'lines+markers') {\n r.geometry = 'LinePlot';\n r.dotVisible = true;\n }\n } else if (r.type === 'area') r.geometry = 'AreaChart'; else if (r.type === 'bar') r.geometry = 'BarChart';\n delete r.mode;\n delete r.type;\n } else {\n if (r.geometry === 'LinePlot') {\n r.type = 'scatter';\n if (r.dotVisible === true) {\n delete r.dotVisible;\n r.mode = 'lines+markers';\n } else r.mode = 'lines';\n } else if (r.geometry === 'DotPlot') {\n r.type = 'scatter';\n r.mode = 'markers';\n } else if (r.geometry === 'AreaChart') r.type = 'area'; else if (r.geometry === 'BarChart') r.type = 'bar';\n delete r.geometry;\n }\n return r;\n });\n if (!reverse && _inputConfig.layout && _inputConfig.layout.barmode === 'stack') {\n var duplicates = µ.util.duplicates(outputConfig.data.map(function(d, i) {\n return d.geometry;\n }));\n outputConfig.data.forEach(function(d, i) {\n var idx = duplicates.indexOf(d.geometry);\n if (idx != -1) outputConfig.data[i].groupId = idx;\n });\n }\n }\n if (_inputConfig.layout) {\n var r = extendDeepAll({}, _inputConfig.layout);\n var toTranslate = [\n [ r, [ 'plot_bgcolor' ], [ 'backgroundColor' ] ],\n [ r, [ 'showlegend' ], [ 'showLegend' ] ],\n [ r, [ 'radialaxis' ], [ 'radialAxis' ] ],\n [ r, [ 'angularaxis' ], [ 'angularAxis' ] ],\n [ r.angularaxis, [ 'showline' ], [ 'gridLinesVisible' ] ],\n [ r.angularaxis, [ 'showticklabels' ], [ 'labelsVisible' ] ],\n [ r.angularaxis, [ 'nticks' ], [ 'ticksCount' ] ],\n [ r.angularaxis, [ 'tickorientation' ], [ 'tickOrientation' ] ],\n [ r.angularaxis, [ 'ticksuffix' ], [ 'ticksSuffix' ] ],\n [ r.angularaxis, [ 'range' ], [ 'domain' ] ],\n [ r.angularaxis, [ 'endpadding' ], [ 'endPadding' ] ],\n [ r.radialaxis, [ 'showline' ], [ 'gridLinesVisible' ] ],\n [ r.radialaxis, [ 'tickorientation' ], [ 'tickOrientation' ] ],\n [ r.radialaxis, [ 'ticksuffix' ], [ 'ticksSuffix' ] ],\n [ r.radialaxis, [ 'range' ], [ 'domain' ] ],\n [ r.angularAxis, [ 'showline' ], [ 'gridLinesVisible' ] ],\n [ r.angularAxis, [ 'showticklabels' ], [ 'labelsVisible' ] ],\n [ r.angularAxis, [ 'nticks' ], [ 'ticksCount' ] ],\n [ r.angularAxis, [ 'tickorientation' ], [ 'tickOrientation' ] ],\n [ r.angularAxis, [ 'ticksuffix' ], [ 'ticksSuffix' ] ],\n [ r.angularAxis, [ 'range' ], [ 'domain' ] ],\n [ r.angularAxis, [ 'endpadding' ], [ 'endPadding' ] ],\n [ r.radialAxis, [ 'showline' ], [ 'gridLinesVisible' ] ],\n [ r.radialAxis, [ 'tickorientation' ], [ 'tickOrientation' ] ],\n [ r.radialAxis, [ 'ticksuffix' ], [ 'ticksSuffix' ] ],\n [ r.radialAxis, [ 'range' ], [ 'domain' ] ],\n [ r.font, [ 'outlinecolor' ], [ 'outlineColor' ] ],\n [ r.legend, [ 'traceorder' ], [ 'reverseOrder' ] ],\n [ r, [ 'labeloffset' ], [ 'labelOffset' ] ],\n [ r, [ 'defaultcolorrange' ], [ 'defaultColorRange' ] ]\n ];\n toTranslate.forEach(function(d, i) {\n µ.util.translator.apply(null, d.concat(reverse));\n });\n\n if (!reverse) {\n if (r.angularAxis && typeof r.angularAxis.ticklen !== 'undefined') r.tickLength = r.angularAxis.ticklen;\n if (r.angularAxis && typeof r.angularAxis.tickcolor !== 'undefined') r.tickColor = r.angularAxis.tickcolor;\n } else {\n if (typeof r.tickLength !== 'undefined') {\n r.angularaxis.ticklen = r.tickLength;\n delete r.tickLength;\n }\n if (r.tickColor) {\n r.angularaxis.tickcolor = r.tickColor;\n delete r.tickColor;\n }\n }\n if (r.legend && typeof r.legend.reverseOrder != 'boolean') {\n r.legend.reverseOrder = r.legend.reverseOrder != 'normal';\n }\n if (r.legend && typeof r.legend.traceorder == 'boolean') {\n r.legend.traceorder = r.legend.traceorder ? 'reversed' : 'normal';\n delete r.legend.reverseOrder;\n }\n if (r.margin && typeof r.margin.t != 'undefined') {\n var source = [ 't', 'r', 'b', 'l', 'pad' ];\n var target = [ 'top', 'right', 'bottom', 'left', 'pad' ];\n var margin = {};\n d3.entries(r.margin).forEach(function(dB, iB) {\n margin[target[source.indexOf(dB.key)]] = dB.value;\n });\n r.margin = margin;\n }\n if (reverse) {\n delete r.needsEndSpacing;\n delete r.minorTickColor;\n delete r.minorTicks;\n delete r.angularaxis.ticksCount;\n delete r.angularaxis.ticksCount;\n delete r.angularaxis.ticksStep;\n delete r.angularaxis.rewriteTicks;\n delete r.angularaxis.nticks;\n delete r.radialaxis.ticksCount;\n delete r.radialaxis.ticksCount;\n delete r.radialaxis.ticksStep;\n delete r.radialaxis.rewriteTicks;\n delete r.radialaxis.nticks;\n }\n outputConfig.layout = r;\n }\n return outputConfig;\n };\n return exports;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar setGroupPositions = require('../bar/cross_trace_calc').setGroupPositions;\n\nmodule.exports = function crossTraceCalc(gd, plotinfo) {\n var fullLayout = gd._fullLayout;\n var fullData = gd._fullData;\n var calcdata = gd.calcdata;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var funnels = [];\n var funnelsVert = [];\n var funnelsHorz = [];\n var cd, i;\n\n for(i = 0; i < fullData.length; i++) {\n var fullTrace = fullData[i];\n var isHorizontal = (fullTrace.orientation === 'h');\n\n if(\n fullTrace.visible === true &&\n fullTrace.xaxis === xa._id &&\n fullTrace.yaxis === ya._id &&\n fullTrace.type === 'funnel'\n ) {\n cd = calcdata[i];\n\n if(isHorizontal) {\n funnelsHorz.push(cd);\n } else {\n funnelsVert.push(cd);\n }\n\n funnels.push(cd);\n }\n }\n\n var opts = {\n mode: fullLayout.funnelmode,\n norm: fullLayout.funnelnorm,\n gap: fullLayout.funnelgap,\n groupgap: fullLayout.funnelgroupgap\n };\n\n setGroupPositions(gd, xa, ya, funnelsVert, opts);\n setGroupPositions(gd, ya, xa, funnelsHorz, opts);\n\n for(i = 0; i < funnels.length; i++) {\n cd = funnels[i];\n\n for(var j = 0; j < cd.length; j++) {\n if(j + 1 < cd.length) {\n cd[j].nextP0 = cd[j + 1].p0;\n cd[j].nextS0 = cd[j + 1].s0;\n\n cd[j].nextP1 = cd[j + 1].p1;\n cd[j].nextS1 = cd[j + 1].s1;\n }\n }\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar isNumeric = require('fast-isnumeric');\n\nvar Lib = require('../../lib');\nvar extractOpts = require('./helpers').extractOpts;\n\nmodule.exports = function calc(gd, trace, opts) {\n var fullLayout = gd._fullLayout;\n var vals = opts.vals;\n var containerStr = opts.containerStr;\n\n var container = containerStr ?\n Lib.nestedProperty(trace, containerStr).get() :\n trace;\n\n var cOpts = extractOpts(container);\n var auto = cOpts.auto !== false;\n var min = cOpts.min;\n var max = cOpts.max;\n var mid = cOpts.mid;\n\n var minVal = function() { return Lib.aggNums(Math.min, null, vals); };\n var maxVal = function() { return Lib.aggNums(Math.max, null, vals); };\n\n if(min === undefined) {\n min = minVal();\n } else if(auto) {\n if(container._colorAx && isNumeric(min)) {\n min = Math.min(min, minVal());\n } else {\n min = minVal();\n }\n }\n\n if(max === undefined) {\n max = maxVal();\n } else if(auto) {\n if(container._colorAx && isNumeric(max)) {\n max = Math.max(max, maxVal());\n } else {\n max = maxVal();\n }\n }\n\n if(auto && mid !== undefined) {\n if(max - mid > mid - min) {\n min = mid - (max - mid);\n } else if(max - mid < mid - min) {\n max = mid + (mid - min);\n }\n }\n\n if(min === max) {\n min -= 0.5;\n max += 0.5;\n }\n\n cOpts._sync('min', min);\n cOpts._sync('max', max);\n\n if(cOpts.autocolorscale) {\n var scl;\n if(min * max < 0) scl = fullLayout.colorscale.diverging;\n else if(min >= 0) scl = fullLayout.colorscale.sequential;\n else scl = fullLayout.colorscale.sequentialminus;\n cOpts._sync('colorscale', scl);\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar glslify = require('glslify');\nvar vertexShaderSource = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nvarying vec4 fragColor;\\n\\nattribute vec4 p01_04, p05_08, p09_12, p13_16,\\n p17_20, p21_24, p25_28, p29_32,\\n p33_36, p37_40, p41_44, p45_48,\\n p49_52, p53_56, p57_60, colors;\\n\\nuniform mat4 dim0A, dim1A, dim0B, dim1B, dim0C, dim1C, dim0D, dim1D,\\n loA, hiA, loB, hiB, loC, hiC, loD, hiD;\\n\\nuniform vec2 resolution, viewBoxPos, viewBoxSize;\\nuniform sampler2D mask, palette;\\nuniform float maskHeight;\\nuniform float drwLayer; // 0: context, 1: focus, 2: pick\\nuniform vec4 contextColor;\\n\\nbool isPick = (drwLayer > 1.5);\\nbool isContext = (drwLayer < 0.5);\\n\\nconst vec4 ZEROS = vec4(0.0, 0.0, 0.0, 0.0);\\nconst vec4 UNITS = vec4(1.0, 1.0, 1.0, 1.0);\\n\\nfloat val(mat4 p, mat4 v) {\\n return dot(matrixCompMult(p, v) * UNITS, UNITS);\\n}\\n\\nfloat axisY(float ratio, mat4 A, mat4 B, mat4 C, mat4 D) {\\n float y1 = val(A, dim0A) + val(B, dim0B) + val(C, dim0C) + val(D, dim0D);\\n float y2 = val(A, dim1A) + val(B, dim1B) + val(C, dim1C) + val(D, dim1D);\\n return y1 * (1.0 - ratio) + y2 * ratio;\\n}\\n\\nint iMod(int a, int b) {\\n return a - b * (a / b);\\n}\\n\\nbool fOutside(float p, float lo, float hi) {\\n return (lo < hi) && (lo > p || p > hi);\\n}\\n\\nbool vOutside(vec4 p, vec4 lo, vec4 hi) {\\n return (\\n fOutside(p[0], lo[0], hi[0]) ||\\n fOutside(p[1], lo[1], hi[1]) ||\\n fOutside(p[2], lo[2], hi[2]) ||\\n fOutside(p[3], lo[3], hi[3])\\n );\\n}\\n\\nbool mOutside(mat4 p, mat4 lo, mat4 hi) {\\n return (\\n vOutside(p[0], lo[0], hi[0]) ||\\n vOutside(p[1], lo[1], hi[1]) ||\\n vOutside(p[2], lo[2], hi[2]) ||\\n vOutside(p[3], lo[3], hi[3])\\n );\\n}\\n\\nbool outsideBoundingBox(mat4 A, mat4 B, mat4 C, mat4 D) {\\n return mOutside(A, loA, hiA) ||\\n mOutside(B, loB, hiB) ||\\n mOutside(C, loC, hiC) ||\\n mOutside(D, loD, hiD);\\n}\\n\\nbool outsideRasterMask(mat4 A, mat4 B, mat4 C, mat4 D) {\\n mat4 pnts[4];\\n pnts[0] = A;\\n pnts[1] = B;\\n pnts[2] = C;\\n pnts[3] = D;\\n\\n for(int i = 0; i < 4; ++i) {\\n for(int j = 0; j < 4; ++j) {\\n for(int k = 0; k < 4; ++k) {\\n if(0 == iMod(\\n int(255.0 * texture2D(mask,\\n vec2(\\n (float(i * 2 + j / 2) + 0.5) / 8.0,\\n (pnts[i][j][k] * (maskHeight - 1.0) + 1.0) / maskHeight\\n ))[3]\\n ) / int(pow(2.0, float(iMod(j * 4 + k, 8)))),\\n 2\\n )) return true;\\n }\\n }\\n }\\n return false;\\n}\\n\\nvec4 position(bool isContext, float v, mat4 A, mat4 B, mat4 C, mat4 D) {\\n float x = 0.5 * sign(v) + 0.5;\\n float y = axisY(x, A, B, C, D);\\n float z = 1.0 - abs(v);\\n\\n z += isContext ? 0.0 : 2.0 * float(\\n outsideBoundingBox(A, B, C, D) ||\\n outsideRasterMask(A, B, C, D)\\n );\\n\\n return vec4(\\n 2.0 * (vec2(x, y) * viewBoxSize + viewBoxPos) / resolution - 1.0,\\n z,\\n 1.0\\n );\\n}\\n\\nvoid main() {\\n mat4 A = mat4(p01_04, p05_08, p09_12, p13_16);\\n mat4 B = mat4(p17_20, p21_24, p25_28, p29_32);\\n mat4 C = mat4(p33_36, p37_40, p41_44, p45_48);\\n mat4 D = mat4(p49_52, p53_56, p57_60, ZEROS);\\n\\n float v = colors[3];\\n\\n gl_Position = position(isContext, v, A, B, C, D);\\n\\n fragColor =\\n isContext ? vec4(contextColor) :\\n isPick ? vec4(colors.rgb, 1.0) : texture2D(palette, vec2(abs(v), 0.5));\\n}\\n\"]);\nvar fragmentShaderSource = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n gl_FragColor = fragColor;\\n}\\n\"]);\nvar maxDim = require('./constants').maxDimensionCount;\n\nvar Lib = require('../../lib');\n\n// don't change; otherwise near/far plane lines are lost\nvar depthLimitEpsilon = 1e-6;\n\n// precision of multiselect is the full range divided into this many parts\nvar maskHeight = 2048;\n\nvar dummyPixel = new Uint8Array(4);\nvar dataPixel = new Uint8Array(4);\n\nvar paletteTextureConfig = {\n shape: [256, 1],\n format: 'rgba',\n type: 'uint8',\n mag: 'nearest',\n min: 'nearest'\n};\n\nfunction ensureDraw(regl) {\n regl.read({\n x: 0,\n y: 0,\n width: 1,\n height: 1,\n data: dummyPixel\n });\n}\n\nfunction clear(regl, x, y, width, height) {\n var gl = regl._gl;\n gl.enable(gl.SCISSOR_TEST);\n gl.scissor(x, y, width, height);\n regl.clear({color: [0, 0, 0, 0], depth: 1}); // clearing is done in scissored panel only\n}\n\nfunction renderBlock(regl, glAes, renderState, blockLineCount, sampleCount, item) {\n var rafKey = item.key;\n\n function render(blockNumber) {\n var count = Math.min(blockLineCount, sampleCount - blockNumber * blockLineCount);\n\n if(blockNumber === 0) {\n // stop drawing possibly stale glyphs before clearing\n window.cancelAnimationFrame(renderState.currentRafs[rafKey]);\n delete renderState.currentRafs[rafKey];\n clear(regl, item.scissorX, item.scissorY, item.scissorWidth, item.viewBoxSize[1]);\n }\n\n if(renderState.clearOnly) {\n return;\n }\n\n item.count = 2 * count;\n item.offset = 2 * blockNumber * blockLineCount;\n glAes(item);\n\n if(blockNumber * blockLineCount + count < sampleCount) {\n renderState.currentRafs[rafKey] = window.requestAnimationFrame(function() {\n render(blockNumber + 1);\n });\n }\n\n renderState.drawCompleted = false;\n }\n\n if(!renderState.drawCompleted) {\n ensureDraw(regl);\n renderState.drawCompleted = true;\n }\n\n // start with rendering item 0; recursion handles the rest\n render(0);\n}\n\nfunction adjustDepth(d) {\n // WebGL matrix operations use floats with limited precision, potentially causing a number near a border of [0, 1]\n // to end up slightly outside the border. With an epsilon, we reduce the chance that a line gets clipped by the\n // near or the far plane.\n return Math.max(depthLimitEpsilon, Math.min(1 - depthLimitEpsilon, d));\n}\n\nfunction palette(unitToColor, opacity) {\n var result = new Array(256);\n for(var i = 0; i < 256; i++) {\n result[i] = unitToColor(i / 255).concat(opacity);\n }\n return result;\n}\n\n// Maps the sample index [0...sampleCount - 1] to a range of [0, 1] as the shader expects colors in the [0, 1] range.\n// but first it shifts the sample index by 0, 8 or 16 bits depending on rgbIndex [0..2]\n// with the end result that each line will be of a unique color, making it possible for the pick handler\n// to uniquely identify which line is hovered over (bijective mapping).\n// The inverse, i.e. readPixel is invoked from 'parcoords.js'\nfunction calcPickColor(i, rgbIndex) {\n return (i >>> 8 * rgbIndex) % 256 / 255;\n}\n\nfunction makePoints(sampleCount, dims, color) {\n var points = new Array(sampleCount * (maxDim + 4));\n var n = 0;\n for(var i = 0; i < sampleCount; i++) {\n for(var k = 0; k < maxDim; k++) {\n points[n++] = (k < dims.length) ? dims[k].paddedUnitValues[i] : 0.5;\n }\n points[n++] = calcPickColor(i, 2);\n points[n++] = calcPickColor(i, 1);\n points[n++] = calcPickColor(i, 0);\n points[n++] = adjustDepth(color[i]);\n }\n return points;\n}\n\nfunction makeVecAttr(vecIndex, sampleCount, points) {\n var pointPairs = new Array(sampleCount * 8);\n var n = 0;\n for(var i = 0; i < sampleCount; i++) {\n for(var j = 0; j < 2; j++) {\n for(var k = 0; k < 4; k++) {\n var q = vecIndex * 4 + k;\n var v = points[i * 64 + q];\n if(q === 63 && j === 0) {\n v *= -1;\n }\n pointPairs[n++] = v;\n }\n }\n }\n return pointPairs;\n}\n\nfunction pad2(num) {\n var s = '0' + num;\n return s.substr(s.length - 2);\n}\n\nfunction getAttrName(i) {\n return (i < maxDim) ? 'p' + pad2(i + 1) + '_' + pad2(i + 4) : 'colors';\n}\n\nfunction setAttributes(attributes, sampleCount, points) {\n for(var i = 0; i <= maxDim; i += 4) {\n attributes[getAttrName(i)](makeVecAttr(i / 4, sampleCount, points));\n }\n}\n\nfunction emptyAttributes(regl) {\n var attributes = {};\n for(var i = 0; i <= maxDim; i += 4) {\n attributes[getAttrName(i)] = regl.buffer({usage: 'dynamic', type: 'float', data: new Uint8Array(0)});\n }\n return attributes;\n}\n\nfunction makeItem(model, leftmost, rightmost, itemNumber, i0, i1, x, y, panelSizeX, panelSizeY, crossfilterDimensionIndex, drwLayer, constraints) {\n var dims = [[], []];\n for(var k = 0; k < 64; k++) {\n dims[0][k] = (k === i0) ? 1 : 0;\n dims[1][k] = (k === i1) ? 1 : 0;\n }\n\n var overdrag = model.lines.canvasOverdrag;\n var domain = model.domain;\n var canvasWidth = model.canvasWidth;\n var canvasHeight = model.canvasHeight;\n\n var deselectedLinesColor = model.deselectedLines.color;\n\n var itemModel = Lib.extendFlat({\n key: crossfilterDimensionIndex,\n resolution: [canvasWidth, canvasHeight],\n viewBoxPos: [x + overdrag, y],\n viewBoxSize: [panelSizeX, panelSizeY],\n i0: i0,\n i1: i1,\n\n dim0A: dims[0].slice(0, 16),\n dim0B: dims[0].slice(16, 32),\n dim0C: dims[0].slice(32, 48),\n dim0D: dims[0].slice(48, 64),\n dim1A: dims[1].slice(0, 16),\n dim1B: dims[1].slice(16, 32),\n dim1C: dims[1].slice(32, 48),\n dim1D: dims[1].slice(48, 64),\n\n drwLayer: drwLayer,\n contextColor: [\n deselectedLinesColor[0] / 255,\n deselectedLinesColor[1] / 255,\n deselectedLinesColor[2] / 255,\n deselectedLinesColor[3] < 1 ?\n deselectedLinesColor[3] :\n Math.max(1 / 255, Math.pow(1 / model.lines.color.length, 1 / 3))\n ],\n\n scissorX: (itemNumber === leftmost ? 0 : x + overdrag) + (model.pad.l - overdrag) + model.layoutWidth * domain.x[0],\n scissorWidth: (itemNumber === rightmost ? canvasWidth - x + overdrag : panelSizeX + 0.5) + (itemNumber === leftmost ? x + overdrag : 0),\n scissorY: y + model.pad.b + model.layoutHeight * domain.y[0],\n scissorHeight: panelSizeY,\n\n viewportX: model.pad.l - overdrag + model.layoutWidth * domain.x[0],\n viewportY: model.pad.b + model.layoutHeight * domain.y[0],\n viewportWidth: canvasWidth,\n viewportHeight: canvasHeight\n }, constraints);\n\n return itemModel;\n}\n\nfunction expandedPixelRange(bounds) {\n var dh = maskHeight - 1;\n var a = Math.max(0, Math.floor(bounds[0] * dh), 0);\n var b = Math.min(dh, Math.ceil(bounds[1] * dh), dh);\n return [\n Math.min(a, b),\n Math.max(a, b)\n ];\n}\n\nmodule.exports = function(canvasGL, d) {\n // context & pick describe which canvas we're talking about - won't change with new data\n var isContext = d.context;\n var isPick = d.pick;\n\n var regl = d.regl;\n\n var renderState = {\n currentRafs: {},\n drawCompleted: true,\n clearOnly: false\n };\n\n // state to be set by update and used later\n var model;\n var vm;\n var initialDims;\n var sampleCount;\n var attributes = emptyAttributes(regl);\n var maskTexture;\n var paletteTexture = regl.texture(paletteTextureConfig);\n\n var prevAxisOrder = [];\n\n update(d);\n\n var glAes = regl({\n\n profile: false,\n\n blend: {\n enable: isContext,\n func: {\n srcRGB: 'src alpha',\n dstRGB: 'one minus src alpha',\n srcAlpha: 1,\n dstAlpha: 1 // 'one minus src alpha'\n },\n equation: {\n rgb: 'add',\n alpha: 'add'\n },\n color: [0, 0, 0, 0]\n },\n\n depth: {\n enable: !isContext,\n mask: true,\n func: 'less',\n range: [0, 1]\n },\n\n // for polygons\n cull: {\n enable: true,\n face: 'back'\n },\n\n scissor: {\n enable: true,\n box: {\n x: regl.prop('scissorX'),\n y: regl.prop('scissorY'),\n width: regl.prop('scissorWidth'),\n height: regl.prop('scissorHeight')\n }\n },\n\n viewport: {\n x: regl.prop('viewportX'),\n y: regl.prop('viewportY'),\n width: regl.prop('viewportWidth'),\n height: regl.prop('viewportHeight')\n },\n\n dither: false,\n\n vert: vertexShaderSource,\n\n frag: fragmentShaderSource,\n\n primitive: 'lines',\n lineWidth: 1,\n attributes: attributes,\n uniforms: {\n resolution: regl.prop('resolution'),\n viewBoxPos: regl.prop('viewBoxPos'),\n viewBoxSize: regl.prop('viewBoxSize'),\n dim0A: regl.prop('dim0A'),\n dim1A: regl.prop('dim1A'),\n dim0B: regl.prop('dim0B'),\n dim1B: regl.prop('dim1B'),\n dim0C: regl.prop('dim0C'),\n dim1C: regl.prop('dim1C'),\n dim0D: regl.prop('dim0D'),\n dim1D: regl.prop('dim1D'),\n loA: regl.prop('loA'),\n hiA: regl.prop('hiA'),\n loB: regl.prop('loB'),\n hiB: regl.prop('hiB'),\n loC: regl.prop('loC'),\n hiC: regl.prop('hiC'),\n loD: regl.prop('loD'),\n hiD: regl.prop('hiD'),\n palette: paletteTexture,\n contextColor: regl.prop('contextColor'),\n mask: regl.prop('maskTexture'),\n drwLayer: regl.prop('drwLayer'),\n maskHeight: regl.prop('maskHeight')\n },\n offset: regl.prop('offset'),\n count: regl.prop('count')\n });\n\n function update(dNew) {\n model = dNew.model;\n vm = dNew.viewModel;\n initialDims = vm.dimensions.slice();\n sampleCount = initialDims[0] ? initialDims[0].values.length : 0;\n\n var lines = model.lines;\n var color = isPick ? lines.color.map(function(_, i) {return i / lines.color.length;}) : lines.color;\n\n var points = makePoints(sampleCount, initialDims, color);\n setAttributes(attributes, sampleCount, points);\n\n if(!isContext && !isPick) {\n paletteTexture = regl.texture(Lib.extendFlat({\n data: palette(model.unitToColor, 255)\n }, paletteTextureConfig));\n }\n }\n\n function makeConstraints(isContext) {\n var i, j, k;\n\n var limits = [[], []];\n for(k = 0; k < 64; k++) {\n var p = (!isContext && k < initialDims.length) ?\n initialDims[k].brush.filter.getBounds() : [-Infinity, Infinity];\n\n limits[0][k] = p[0];\n limits[1][k] = p[1];\n }\n\n var len = maskHeight * 8;\n var mask = new Array(len);\n for(i = 0; i < len; i++) {\n mask[i] = 255;\n }\n if(!isContext) {\n for(i = 0; i < initialDims.length; i++) {\n var u = i % 8;\n var v = (i - u) / 8;\n var bitMask = Math.pow(2, u);\n var dim = initialDims[i];\n var ranges = dim.brush.filter.get();\n if(ranges.length < 2) continue; // bail if the bounding box based filter is sufficient\n\n var prevEnd = expandedPixelRange(ranges[0])[1];\n for(j = 1; j < ranges.length; j++) {\n var nextRange = expandedPixelRange(ranges[j]);\n for(k = prevEnd + 1; k < nextRange[0]; k++) {\n mask[k * 8 + v] &= ~bitMask;\n }\n prevEnd = Math.max(prevEnd, nextRange[1]);\n }\n }\n }\n\n var textureData = {\n // 8 units x 8 bits = 64 bits, just sufficient for the almost 64 dimensions we support\n shape: [8, maskHeight],\n format: 'alpha',\n type: 'uint8',\n mag: 'nearest',\n min: 'nearest',\n data: mask\n };\n if(maskTexture) maskTexture(textureData);\n else maskTexture = regl.texture(textureData);\n\n return {\n maskTexture: maskTexture,\n maskHeight: maskHeight,\n loA: limits[0].slice(0, 16),\n loB: limits[0].slice(16, 32),\n loC: limits[0].slice(32, 48),\n loD: limits[0].slice(48, 64),\n hiA: limits[1].slice(0, 16),\n hiB: limits[1].slice(16, 32),\n hiC: limits[1].slice(32, 48),\n hiD: limits[1].slice(48, 64),\n };\n }\n\n function renderGLParcoords(panels, setChanged, clearOnly) {\n var panelCount = panels.length;\n var i;\n\n var leftmost;\n var rightmost;\n var lowestX = Infinity;\n var highestX = -Infinity;\n\n for(i = 0; i < panelCount; i++) {\n if(panels[i].dim0.canvasX < lowestX) {\n lowestX = panels[i].dim0.canvasX;\n leftmost = i;\n }\n if(panels[i].dim1.canvasX > highestX) {\n highestX = panels[i].dim1.canvasX;\n rightmost = i;\n }\n }\n\n if(panelCount === 0) {\n // clear canvas here, as the panel iteration below will not enter the loop body\n clear(regl, 0, 0, model.canvasWidth, model.canvasHeight);\n }\n var constraints = makeConstraints(isContext);\n\n for(i = 0; i < panelCount; i++) {\n var p = panels[i];\n var i0 = p.dim0.crossfilterDimensionIndex;\n var i1 = p.dim1.crossfilterDimensionIndex;\n var x = p.canvasX;\n var y = p.canvasY;\n var nextX = x + p.panelSizeX;\n if(setChanged ||\n !prevAxisOrder[i0] ||\n prevAxisOrder[i0][0] !== x ||\n prevAxisOrder[i0][1] !== nextX\n ) {\n prevAxisOrder[i0] = [x, nextX];\n\n var item = makeItem(\n model,\n leftmost, rightmost, i, i0, i1, x, y,\n p.panelSizeX, p.panelSizeY,\n p.dim0.crossfilterDimensionIndex,\n isContext ? 0 : isPick ? 2 : 1,\n constraints\n );\n\n renderState.clearOnly = clearOnly;\n\n var blockLineCount = setChanged ? model.lines.blockLineCount : sampleCount;\n renderBlock(\n regl, glAes, renderState, blockLineCount, sampleCount, item\n );\n }\n }\n }\n\n function readPixel(canvasX, canvasY) {\n regl.read({\n x: canvasX,\n y: canvasY,\n width: 1,\n height: 1,\n data: dataPixel\n });\n return dataPixel;\n }\n\n function readPixels(canvasX, canvasY, width, height) {\n var pixelArray = new Uint8Array(4 * width * height);\n regl.read({\n x: canvasX,\n y: canvasY,\n width: width,\n height: height,\n data: pixelArray\n });\n return pixelArray;\n }\n\n function destroy() {\n canvasGL.style['pointer-events'] = 'none';\n paletteTexture.destroy();\n if(maskTexture) maskTexture.destroy();\n for(var k in attributes) attributes[k].destroy();\n }\n\n return {\n render: renderGLParcoords,\n readPixel: readPixel,\n readPixels: readPixels,\n destroy: destroy,\n update: update\n };\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar meta_1 = require(\"@turf/meta\");\n// Note: change RADIUS => earthRadius\nvar RADIUS = 6378137;\n/**\n * Takes one or more features and returns their area in square meters.\n *\n * @name area\n * @param {GeoJSON} geojson input GeoJSON feature(s)\n * @returns {number} area in square meters\n * @example\n * var polygon = turf.polygon([[[125, -15], [113, -22], [154, -27], [144, -15], [125, -15]]]);\n *\n * var area = turf.area(polygon);\n *\n * //addToMap\n * var addToMap = [polygon]\n * polygon.properties.area = area\n */\nfunction area(geojson) {\n return meta_1.geomReduce(geojson, function (value, geom) {\n return value + calculateArea(geom);\n }, 0);\n}\nexports.default = area;\n/**\n * Calculate Area\n *\n * @private\n * @param {Geometry} geom GeoJSON Geometries\n * @returns {number} area\n */\nfunction calculateArea(geom) {\n var total = 0;\n var i;\n switch (geom.type) {\n case \"Polygon\":\n return polygonArea(geom.coordinates);\n case \"MultiPolygon\":\n for (i = 0; i < geom.coordinates.length; i++) {\n total += polygonArea(geom.coordinates[i]);\n }\n return total;\n case \"Point\":\n case \"MultiPoint\":\n case \"LineString\":\n case \"MultiLineString\":\n return 0;\n }\n return 0;\n}\nfunction polygonArea(coords) {\n var total = 0;\n if (coords && coords.length > 0) {\n total += Math.abs(ringArea(coords[0]));\n for (var i = 1; i < coords.length; i++) {\n total -= Math.abs(ringArea(coords[i]));\n }\n }\n return total;\n}\n/**\n * @private\n * Calculate the approximate area of the polygon were it projected onto the earth.\n * Note that this area will be positive if ring is oriented clockwise, otherwise it will be negative.\n *\n * Reference:\n * Robert. G. Chamberlain and William H. Duquette, \"Some Algorithms for Polygons on a Sphere\",\n * JPL Publication 07-03, Jet Propulsion\n * Laboratory, Pasadena, CA, June 2007 http://trs-new.jpl.nasa.gov/dspace/handle/2014/40409\n *\n * @param {Array>} coords Ring Coordinates\n * @returns {number} The approximate signed geodesic area of the polygon in square meters.\n */\nfunction ringArea(coords) {\n var p1;\n var p2;\n var p3;\n var lowerIndex;\n var middleIndex;\n var upperIndex;\n var i;\n var total = 0;\n var coordsLength = coords.length;\n if (coordsLength > 2) {\n for (i = 0; i < coordsLength; i++) {\n if (i === coordsLength - 2) {\n lowerIndex = coordsLength - 2;\n middleIndex = coordsLength - 1;\n upperIndex = 0;\n }\n else if (i === coordsLength - 1) {\n lowerIndex = coordsLength - 1;\n middleIndex = 0;\n upperIndex = 1;\n }\n else {\n lowerIndex = i;\n middleIndex = i + 1;\n upperIndex = i + 2;\n }\n p1 = coords[lowerIndex];\n p2 = coords[middleIndex];\n p3 = coords[upperIndex];\n total += (rad(p3[0]) - rad(p1[0])) * Math.sin(rad(p2[1]));\n }\n total = total * RADIUS * RADIUS / 2;\n }\n return total;\n}\nfunction rad(num) {\n return num * Math.PI / 180;\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n attributes: require('./attributes'),\n supplyDefaults: require('./defaults'),\n colorbar: require('../scatter/marker_colorbar'),\n formatLabels: require('./format_labels'),\n calc: require('./calc'),\n plot: require('./plot'),\n style: require('../scatter/style').style,\n styleOnSelect: require('../scatter/style').styleOnSelect,\n hoverPoints: require('./hover'),\n selectPoints: require('../scatter/select'),\n eventData: require('./event_data'),\n\n moduleType: 'trace',\n name: 'scattercarpet',\n basePlotModule: require('../../plots/cartesian'),\n categories: ['svg', 'carpet', 'symbols', 'showLegend', 'carpetDependent', 'zoomScale'],\n meta: {\n \n \n }\n};\n","'use strict'\n\nvar rationalize = require('./lib/rationalize')\n\nmodule.exports = mul\n\nfunction mul(a, b) {\n return rationalize(a[0].mul(b[0]), a[1].mul(b[1]))\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Registry = require('../../registry');\n\nvar constants = require('./constants');\n\n\n// convert between axis names (xaxis, xaxis2, etc, elements of gd.layout)\n// and axis id's (x, x2, etc). Would probably have ditched 'xaxis'\n// completely in favor of just 'x' if it weren't ingrained in the API etc.\nexports.id2name = function id2name(id) {\n if(typeof id !== 'string' || !id.match(constants.AX_ID_PATTERN)) return;\n var axNum = id.substr(1);\n if(axNum === '1') axNum = '';\n return id.charAt(0) + 'axis' + axNum;\n};\n\nexports.name2id = function name2id(name) {\n if(!name.match(constants.AX_NAME_PATTERN)) return;\n var axNum = name.substr(5);\n if(axNum === '1') axNum = '';\n return name.charAt(0) + axNum;\n};\n\nexports.cleanId = function cleanId(id, axLetter) {\n if(!id.match(constants.AX_ID_PATTERN)) return;\n if(axLetter && id.charAt(0) !== axLetter) return;\n\n var axNum = id.substr(1).replace(/^0+/, '');\n if(axNum === '1') axNum = '';\n return id.charAt(0) + axNum;\n};\n\n// get all axis objects, as restricted in listNames\nexports.list = function(gd, axLetter, only2d) {\n var fullLayout = gd._fullLayout;\n if(!fullLayout) return [];\n\n var idList = exports.listIds(gd, axLetter);\n var out = new Array(idList.length);\n var i;\n\n for(i = 0; i < idList.length; i++) {\n var idi = idList[i];\n out[i] = fullLayout[idi.charAt(0) + 'axis' + idi.substr(1)];\n }\n\n if(!only2d) {\n var sceneIds3D = fullLayout._subplots.gl3d || [];\n\n for(i = 0; i < sceneIds3D.length; i++) {\n var scene = fullLayout[sceneIds3D[i]];\n\n if(axLetter) out.push(scene[axLetter + 'axis']);\n else out.push(scene.xaxis, scene.yaxis, scene.zaxis);\n }\n }\n\n return out;\n};\n\n// get all axis ids, optionally restricted by letter\n// this only makes sense for 2d axes\nexports.listIds = function(gd, axLetter) {\n var fullLayout = gd._fullLayout;\n if(!fullLayout) return [];\n\n var subplotLists = fullLayout._subplots;\n if(axLetter) return subplotLists[axLetter + 'axis'];\n return subplotLists.xaxis.concat(subplotLists.yaxis);\n};\n\n// get an axis object from its id 'x','x2' etc\n// optionally, id can be a subplot (ie 'x2y3') and type gets x or y from it\nexports.getFromId = function(gd, id, type) {\n var fullLayout = gd._fullLayout;\n\n if(type === 'x') id = id.replace(/y[0-9]*/, '');\n else if(type === 'y') id = id.replace(/x[0-9]*/, '');\n\n return fullLayout[exports.id2name(id)];\n};\n\n// get an axis object of specified type from the containing trace\nexports.getFromTrace = function(gd, fullTrace, type) {\n var fullLayout = gd._fullLayout;\n var ax = null;\n\n if(Registry.traceIs(fullTrace, 'gl3d')) {\n var scene = fullTrace.scene;\n if(scene.substr(0, 5) === 'scene') {\n ax = fullLayout[scene][type + 'axis'];\n }\n } else {\n ax = exports.getFromId(gd, fullTrace[type + 'axis'] || type);\n }\n\n return ax;\n};\n\n// sort x, x2, x10, y, y2, y10...\nexports.idSort = function(id1, id2) {\n var letter1 = id1.charAt(0);\n var letter2 = id2.charAt(0);\n if(letter1 !== letter2) return letter1 > letter2 ? 1 : -1;\n return +(id1.substr(1) || 1) - +(id2.substr(1) || 1);\n};\n\nexports.getAxisGroup = function getAxisGroup(fullLayout, axId) {\n var matchGroups = fullLayout._axisMatchGroups;\n\n for(var i = 0; i < matchGroups.length; i++) {\n var group = matchGroups[i];\n if(group[axId]) return 'g' + i;\n }\n return axId;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\n\n/**\n * Error bar computing function generator\n *\n * N.B. The generated function does not clean the dataPt entries. Non-numeric\n * entries result in undefined error magnitudes.\n *\n * @param {object} opts error bar attributes\n *\n * @return {function} :\n * @param {numeric} dataPt data point from where to compute the error magnitude\n * @param {number} index index of dataPt in its corresponding data array\n * @return {array}\n * - error[0] : error magnitude in the negative direction\n * - error[1] : \" \" \" \" positive \"\n */\nmodule.exports = function makeComputeError(opts) {\n var type = opts.type;\n var symmetric = opts.symmetric;\n\n if(type === 'data') {\n var array = opts.array || [];\n\n if(symmetric) {\n return function computeError(dataPt, index) {\n var val = +(array[index]);\n return [val, val];\n };\n } else {\n var arrayminus = opts.arrayminus || [];\n return function computeError(dataPt, index) {\n var val = +array[index];\n var valMinus = +arrayminus[index];\n // in case one is present and the other is missing, fill in 0\n // so we still see the present one. Mostly useful during manual\n // data entry.\n if(!isNaN(val) || !isNaN(valMinus)) {\n return [valMinus || 0, val || 0];\n }\n return [NaN, NaN];\n };\n }\n } else {\n var computeErrorValue = makeComputeErrorValue(type, opts.value);\n var computeErrorValueMinus = makeComputeErrorValue(type, opts.valueminus);\n\n if(symmetric || opts.valueminus === undefined) {\n return function computeError(dataPt) {\n var val = computeErrorValue(dataPt);\n return [val, val];\n };\n } else {\n return function computeError(dataPt) {\n return [\n computeErrorValueMinus(dataPt),\n computeErrorValue(dataPt)\n ];\n };\n }\n }\n};\n\n/**\n * Compute error bar magnitude (for all types except data)\n *\n * @param {string} type error bar type\n * @param {numeric} value error bar value\n *\n * @return {function} :\n * @param {numeric} dataPt\n */\nfunction makeComputeErrorValue(type, value) {\n if(type === 'percent') {\n return function(dataPt) {\n return Math.abs(dataPt * value / 100);\n };\n }\n if(type === 'constant') {\n return function() {\n return Math.abs(value);\n };\n }\n if(type === 'sqrt') {\n return function(dataPt) {\n return Math.sqrt(Math.abs(dataPt));\n };\n }\n}\n","module.exports = clone\n\n/**\n * Creates a new vec4 initialized with values from an existing vector\n *\n * @param {vec4} a vector to clone\n * @returns {vec4} a new 4D vector\n */\nfunction clone (a) {\n var out = new Float32Array(4)\n out[0] = a[0]\n out[1] = a[1]\n out[2] = a[2]\n out[3] = a[3]\n return out\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar scatterFormatLabels = require('../scatter/format_labels');\n\nmodule.exports = function formatLabels(cdi, trace, fullLayout) {\n var i = cdi.i;\n if(!('x' in cdi)) cdi.x = trace._x[i];\n if(!('y' in cdi)) cdi.y = trace._y[i];\n return scatterFormatLabels(cdi, trace, fullLayout);\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\n\nmodule.exports = {\n\n // layout attribute name\n name: 'updatemenus',\n\n // class names\n containerClassName: 'updatemenu-container',\n headerGroupClassName: 'updatemenu-header-group',\n headerClassName: 'updatemenu-header',\n headerArrowClassName: 'updatemenu-header-arrow',\n dropdownButtonGroupClassName: 'updatemenu-dropdown-button-group',\n dropdownButtonClassName: 'updatemenu-dropdown-button',\n buttonClassName: 'updatemenu-button',\n itemRectClassName: 'updatemenu-item-rect',\n itemTextClassName: 'updatemenu-item-text',\n\n // DOM attribute name in button group keeping track\n // of active update menu\n menuIndexAttrName: 'updatemenu-active-index',\n\n // id root pass to Plots.autoMargin\n autoMarginIdRoot: 'updatemenu-',\n\n // options when 'active: -1'\n blankHeaderOpts: { label: ' ' },\n\n // min item width / height\n minWidth: 30,\n minHeight: 30,\n\n // padding around item text\n textPadX: 24,\n arrowPadX: 16,\n\n // item rect radii\n rx: 2,\n ry: 2,\n\n // item text x offset off left edge\n textOffsetX: 12,\n\n // item text y offset (w.r.t. middle)\n textOffsetY: 3,\n\n // arrow offset off right edge\n arrowOffsetX: 4,\n\n // gap between header and buttons\n gapButtonHeader: 5,\n\n // gap between between buttons\n gapButton: 2,\n\n // color given to active buttons\n activeColor: '#F4FAFF',\n\n // color given to hovered buttons\n hoverColor: '#F4FAFF',\n\n // symbol for menu open arrow\n arrowSymbol: {\n left: '◄',\n right: '►',\n up: '▲',\n down: '▼'\n }\n};\n","\"use strict\"\n\nvar vectorizeText = require(\"vectorize-text\")\n\nmodule.exports = getGlyph\n\nvar GLYPH_CACHE = {}\n\nfunction getGlyph(symbol, font, pixelRatio) {\n var fontCache = GLYPH_CACHE[font]\n if(!fontCache) {\n fontCache = GLYPH_CACHE[font] = {}\n }\n if(symbol in fontCache) {\n return fontCache[symbol]\n }\n\n var config = {\n textAlign: \"center\",\n textBaseline: \"middle\",\n lineHeight: 1.0,\n font: font,\n lineSpacing: 1.25,\n styletags: {\n breaklines:true,\n bolds: true,\n italics: true,\n subscripts:true,\n superscripts:true\n }\n }\n\n //Get line and triangle meshes for glyph\n config.triangles = true\n var triSymbol = vectorizeText(symbol, config)\n config.triangles = false\n var lineSymbol = vectorizeText(symbol, config)\n\n var i, j\n\n if(pixelRatio && pixelRatio !== 1) {\n for(i = 0; i < triSymbol.positions.length; ++i){\n for(j = 0; j < triSymbol.positions[i].length; ++j){\n triSymbol.positions[i][j] /= pixelRatio;\n }\n }\n\n for(i = 0; i < lineSymbol.positions.length; ++i){\n for(j = 0; j < lineSymbol.positions[i].length; ++j){\n lineSymbol.positions[i][j] /= pixelRatio;\n }\n }\n }\n\n //Calculate bounding box\n var bounds = [[Infinity,Infinity], [-Infinity,-Infinity]]\n var n = lineSymbol.positions.length\n for(i = 0; i < n; ++i) {\n var p = lineSymbol.positions[i]\n for(j=0; j<2; ++j) {\n bounds[0][j] = Math.min(bounds[0][j], p[j])\n bounds[1][j] = Math.max(bounds[1][j], p[j])\n }\n }\n\n //Save cached symbol\n return fontCache[symbol] = [triSymbol, lineSymbol, bounds]\n}","'use strict'\n\nvar bnsign = require('./lib/bn-sign')\n\nmodule.exports = sign\n\nfunction sign(x) {\n return bnsign(x[0]) * bnsign(x[1])\n}\n","'use strict'\r\n\r\nvar pick = require('pick-by-alias')\r\n\r\nmodule.exports = parseRect\r\n\r\nfunction parseRect (arg) {\r\n var rect\r\n\r\n // direct arguments sequence\r\n if (arguments.length > 1) {\r\n arg = arguments\r\n }\r\n\r\n // svg viewbox\r\n if (typeof arg === 'string') {\r\n arg = arg.split(/\\s/).map(parseFloat)\r\n }\r\n else if (typeof arg === 'number') {\r\n arg = [arg]\r\n }\r\n\r\n // 0, 0, 100, 100 - array-like\r\n if (arg.length && typeof arg[0] === 'number') {\r\n // [w, w]\r\n if (arg.length === 1) {\r\n rect = {\r\n width: arg[0],\r\n height: arg[0],\r\n x: 0, y: 0\r\n }\r\n }\r\n // [w, h]\r\n else if (arg.length === 2) {\r\n rect = {\r\n width: arg[0],\r\n height: arg[1],\r\n x: 0, y: 0\r\n }\r\n }\r\n // [l, t, r, b]\r\n else {\r\n rect = {\r\n x: arg[0],\r\n y: arg[1],\r\n width: (arg[2] - arg[0]) || 0,\r\n height: (arg[3] - arg[1]) || 0\r\n }\r\n }\r\n }\r\n // {x, y, w, h} or {l, t, b, r}\r\n else if (arg) {\r\n arg = pick(arg, {\r\n left: 'x l left Left',\r\n top: 'y t top Top',\r\n width: 'w width W Width',\r\n height: 'h height W Width',\r\n bottom: 'b bottom Bottom',\r\n right: 'r right Right'\r\n })\r\n\r\n rect = {\r\n x: arg.left || 0,\r\n y: arg.top || 0\r\n }\r\n\r\n if (arg.width == null) {\r\n if (arg.right) rect.width = arg.right - rect.x\r\n else rect.width = 0\r\n }\r\n else {\r\n rect.width = arg.width\r\n }\r\n\r\n if (arg.height == null) {\r\n if (arg.bottom) rect.height = arg.bottom - rect.y\r\n else rect.height = 0\r\n }\r\n else {\r\n rect.height = arg.height\r\n }\r\n }\r\n\r\n return rect\r\n}\r\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\n\nvar parcats = require('./parcats');\n\n/**\n * Create / update parcat traces\n *\n * @param {Object} graphDiv\n * @param {Array.} parcatsModels\n */\nmodule.exports = function plot(graphDiv, parcatsModels, transitionOpts, makeOnCompleteCallback) {\n var fullLayout = graphDiv._fullLayout;\n var svg = fullLayout._paper;\n var size = fullLayout._size;\n\n parcats(\n graphDiv,\n svg,\n parcatsModels,\n {\n width: size.w,\n height: size.h,\n margin: {\n t: size.t,\n r: size.r,\n b: size.b,\n l: size.l\n }\n },\n transitionOpts,\n makeOnCompleteCallback\n );\n};\n","/*\n * World Calendars\n * https://github.com/alexcjohnson/world-calendars\n *\n * Batch-converted from kbwood/calendars\n * Many thanks to Keith Wood and all of the contributors to the original project!\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/* http://keith-wood.name/calendars.html\n Islamic calendar for jQuery v2.0.2.\n Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009.\n Available under the MIT (http://keith-wood.name/licence.html) license. \n Please attribute the author if you use it. */\n\nvar main = require('../main');\nvar assign = require('object-assign');\n\n\n/** Implementation of the Islamic or '16 civil' calendar.\n Based on code from http://www.iranchamber.com/calendar/converter/iranian_calendar_converter.php.\n See also http://en.wikipedia.org/wiki/Islamic_calendar.\n @class IslamicCalendar\n @param [language=''] {string} The language code (default English) for localisation. */\nfunction IslamicCalendar(language) {\n this.local = this.regionalOptions[language || ''] || this.regionalOptions[''];\n}\n\nIslamicCalendar.prototype = new main.baseCalendar;\n\nassign(IslamicCalendar.prototype, {\n /** The calendar name.\n @memberof IslamicCalendar */\n name: 'Islamic',\n /** Julian date of start of Islamic epoch: 16 July 622 CE.\n @memberof IslamicCalendar */\n jdEpoch: 1948439.5,\n /** Days per month in a common year.\n @memberof IslamicCalendar */\n daysPerMonth: [30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29],\n /** true if has a year zero, false if not.\n @memberof IslamicCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof IslamicCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof IslamicCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof IslamicCalendar */\n minDay: 1,\n\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof IslamicCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: { // Localisations\n '': {\n name: 'Islamic',\n epochs: ['BH', 'AH'],\n monthNames: ['Muharram', 'Safar', 'Rabi\\' al-awwal', 'Rabi\\' al-thani', 'Jumada al-awwal', 'Jumada al-thani',\n 'Rajab', 'Sha\\'aban', 'Ramadan', 'Shawwal', 'Dhu al-Qi\\'dah', 'Dhu al-Hijjah'],\n monthNamesShort: ['Muh', 'Saf', 'Rab1', 'Rab2', 'Jum1', 'Jum2', 'Raj', 'Sha\\'', 'Ram', 'Shaw', 'DhuQ', 'DhuH'],\n dayNames: ['Yawm al-ahad', 'Yawm al-ithnayn', 'Yawm ath-thulaathaa\\'',\n 'Yawm al-arbi\\'aa\\'', 'Yawm al-khamīs', 'Yawm al-jum\\'a', 'Yawm as-sabt'],\n dayNamesShort: ['Aha', 'Ith', 'Thu', 'Arb', 'Kha', 'Jum', 'Sab'],\n dayNamesMin: ['Ah','It','Th','Ar','Kh','Ju','Sa'],\n digits: null,\n dateFormat: 'yyyy/mm/dd',\n firstDay: 6,\n isRTL: false\n }\n },\n\n /** Determine whether this date is in a leap year.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return (date.year() * 11 + 14) % 30 < 11;\n },\n\n /** Determine the week of the year for a date.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n // Find Sunday of this week starting on Sunday\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-checkDate.dayOfWeek(), 'd');\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n\n /** Retrieve the number of days in a year.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function(year) {\n return (this.leapYear(year) ? 355 : 354);\n },\n\n /** Retrieve the number of days in a month.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] +\n (date.month() === 12 && this.leapYear(date.year()) ? 1 : 0);\n },\n\n /** Determine whether this date is a week day.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return this.dayOfWeek(year, month, day) !== 5;\n },\n\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = date.year();\n month = date.month();\n day = date.day();\n year = (year <= 0 ? year + 1 : year);\n return day + Math.ceil(29.5 * (month - 1)) + (year - 1) * 354 +\n Math.floor((3 + (11 * year)) / 30) + this.jdEpoch - 1;\n },\n\n /** Create a new date from a Julian date.\n @memberof IslamicCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n jd = Math.floor(jd) + 0.5;\n var year = Math.floor((30 * (jd - this.jdEpoch) + 10646) / 10631);\n year = (year <= 0 ? year - 1 : year);\n var month = Math.min(12, Math.ceil((jd - 29 - this.toJD(year, 1, 1)) / 29.5) + 1);\n var day = jd - this.toJD(year, month, 1) + 1;\n return this.newDate(year, month, day);\n }\n});\n\n// Islamic (16 civil) calendar implementation\nmain.calendars.islamic = IslamicCalendar;\n\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n treemapcolorway: {\n valType: 'colorlist',\n \n editType: 'calc',\n \n },\n extendtreemapcolors: {\n valType: 'boolean',\n dflt: true,\n \n editType: 'calc',\n \n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = function eventData(out, pt) {\n if('xVal' in pt) out.x = pt.xVal;\n if('yVal' in pt) out.y = pt.yVal;\n if(pt.xa) out.xaxis = pt.xa;\n if(pt.ya) out.yaxis = pt.ya;\n out.color = pt.color;\n out.colormodel = pt.trace.colormodel;\n return out;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/heatmap');\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n attributes: require('./attributes'),\n supplyDefaults: require('./defaults'),\n calc: require('./calc'),\n colorbar: {\n min: 'cmin',\n max: 'cmax'\n },\n plot: require('./convert'),\n\n moduleType: 'trace',\n name: 'mesh3d',\n basePlotModule: require('../../plots/gl3d'),\n categories: ['gl3d', 'showLegend'],\n meta: {\n \n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/funnel');\n","module.exports = require('gl-quat/slerp')","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../lib');\nvar Plots = require('../plots/plots');\nvar PlotSchema = require('./plot_schema');\nvar dfltConfig = require('./plot_config').dfltConfig;\n\nvar isPlainObject = Lib.isPlainObject;\nvar isArray = Array.isArray;\nvar isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n\n/**\n * Validate a data array and layout object.\n *\n * @param {array} data\n * @param {object} layout\n *\n * @return {array} array of error objects each containing:\n * - {string} code\n * error code ('object', 'array', 'schema', 'unused', 'invisible' or 'value')\n * - {string} container\n * container where the error occurs ('data' or 'layout')\n * - {number} trace\n * trace index of the 'data' container where the error occurs\n * - {array} path\n * nested path to the key that causes the error\n * - {string} astr\n * attribute string variant of 'path' compatible with Plotly.restyle and\n * Plotly.relayout.\n * - {string} msg\n * error message (shown in console in logger config argument is enable)\n */\nmodule.exports = function validate(data, layout) {\n var schema = PlotSchema.get();\n var errorList = [];\n var gd = {_context: Lib.extendFlat({}, dfltConfig)};\n\n var dataIn, layoutIn;\n\n if(isArray(data)) {\n gd.data = Lib.extendDeep([], data);\n dataIn = data;\n } else {\n gd.data = [];\n dataIn = [];\n errorList.push(format('array', 'data'));\n }\n\n if(isPlainObject(layout)) {\n gd.layout = Lib.extendDeep({}, layout);\n layoutIn = layout;\n } else {\n gd.layout = {};\n layoutIn = {};\n if(arguments.length > 1) {\n errorList.push(format('object', 'layout'));\n }\n }\n\n // N.B. dataIn and layoutIn are in general not the same as\n // gd.data and gd.layout after supplyDefaults as some attributes\n // in gd.data and gd.layout (still) get mutated during this step.\n\n Plots.supplyDefaults(gd);\n\n var dataOut = gd._fullData;\n var len = dataIn.length;\n\n for(var i = 0; i < len; i++) {\n var traceIn = dataIn[i];\n var base = ['data', i];\n\n if(!isPlainObject(traceIn)) {\n errorList.push(format('object', base));\n continue;\n }\n\n var traceOut = dataOut[i];\n var traceType = traceOut.type;\n var traceSchema = schema.traces[traceType].attributes;\n\n // PlotSchema does something fancy with trace 'type', reset it here\n // to make the trace schema compatible with Lib.validate.\n traceSchema.type = {\n valType: 'enumerated',\n values: [traceType]\n };\n\n if(traceOut.visible === false && traceIn.visible !== false) {\n errorList.push(format('invisible', base));\n }\n\n crawl(traceIn, traceOut, traceSchema, errorList, base);\n\n var transformsIn = traceIn.transforms;\n var transformsOut = traceOut.transforms;\n\n if(transformsIn) {\n if(!isArray(transformsIn)) {\n errorList.push(format('array', base, ['transforms']));\n }\n\n base.push('transforms');\n\n for(var j = 0; j < transformsIn.length; j++) {\n var path = ['transforms', j];\n var transformType = transformsIn[j].type;\n\n if(!isPlainObject(transformsIn[j])) {\n errorList.push(format('object', base, path));\n continue;\n }\n\n var transformSchema = schema.transforms[transformType] ?\n schema.transforms[transformType].attributes :\n {};\n\n // add 'type' to transform schema to validate the transform type\n transformSchema.type = {\n valType: 'enumerated',\n values: Object.keys(schema.transforms)\n };\n\n crawl(transformsIn[j], transformsOut[j], transformSchema, errorList, base, path);\n }\n }\n }\n\n var layoutOut = gd._fullLayout;\n var layoutSchema = fillLayoutSchema(schema, dataOut);\n\n crawl(layoutIn, layoutOut, layoutSchema, errorList, 'layout');\n\n // return undefined if no validation errors were found\n return (errorList.length === 0) ? void(0) : errorList;\n};\n\nfunction crawl(objIn, objOut, schema, list, base, path) {\n path = path || [];\n\n var keys = Object.keys(objIn);\n\n for(var i = 0; i < keys.length; i++) {\n var k = keys[i];\n\n // transforms are handled separately\n if(k === 'transforms') continue;\n\n var p = path.slice();\n p.push(k);\n\n var valIn = objIn[k];\n var valOut = objOut[k];\n\n var nestedSchema = getNestedSchema(schema, k);\n var isInfoArray = (nestedSchema || {}).valType === 'info_array';\n var isColorscale = (nestedSchema || {}).valType === 'colorscale';\n var items = (nestedSchema || {}).items;\n\n if(!isInSchema(schema, k)) {\n list.push(format('schema', base, p));\n } else if(isPlainObject(valIn) && isPlainObject(valOut)) {\n crawl(valIn, valOut, nestedSchema, list, base, p);\n } else if(isInfoArray && isArray(valIn)) {\n if(valIn.length > valOut.length) {\n list.push(format('unused', base, p.concat(valOut.length)));\n }\n var len = valOut.length;\n var arrayItems = Array.isArray(items);\n if(arrayItems) len = Math.min(len, items.length);\n var m, n, item, valInPart, valOutPart;\n if(nestedSchema.dimensions === 2) {\n for(n = 0; n < len; n++) {\n if(isArray(valIn[n])) {\n if(valIn[n].length > valOut[n].length) {\n list.push(format('unused', base, p.concat(n, valOut[n].length)));\n }\n var len2 = valOut[n].length;\n for(m = 0; m < (arrayItems ? Math.min(len2, items[n].length) : len2); m++) {\n item = arrayItems ? items[n][m] : items;\n valInPart = valIn[n][m];\n valOutPart = valOut[n][m];\n if(!Lib.validate(valInPart, item)) {\n list.push(format('value', base, p.concat(n, m), valInPart));\n } else if(valOutPart !== valInPart && valOutPart !== +valInPart) {\n list.push(format('dynamic', base, p.concat(n, m), valInPart, valOutPart));\n }\n }\n } else {\n list.push(format('array', base, p.concat(n), valIn[n]));\n }\n }\n } else {\n for(n = 0; n < len; n++) {\n item = arrayItems ? items[n] : items;\n valInPart = valIn[n];\n valOutPart = valOut[n];\n if(!Lib.validate(valInPart, item)) {\n list.push(format('value', base, p.concat(n), valInPart));\n } else if(valOutPart !== valInPart && valOutPart !== +valInPart) {\n list.push(format('dynamic', base, p.concat(n), valInPart, valOutPart));\n }\n }\n }\n } else if(nestedSchema.items && !isInfoArray && isArray(valIn)) {\n var _nestedSchema = items[Object.keys(items)[0]];\n var indexList = [];\n\n var j, _p;\n\n // loop over valOut items while keeping track of their\n // corresponding input container index (given by _index)\n for(j = 0; j < valOut.length; j++) {\n var _index = valOut[j]._index || j;\n\n _p = p.slice();\n _p.push(_index);\n\n if(isPlainObject(valIn[_index]) && isPlainObject(valOut[j])) {\n indexList.push(_index);\n var valInj = valIn[_index];\n var valOutj = valOut[j];\n if(isPlainObject(valInj) && valInj.visible !== false && valOutj.visible === false) {\n list.push(format('invisible', base, _p));\n } else crawl(valInj, valOutj, _nestedSchema, list, base, _p);\n }\n }\n\n // loop over valIn to determine where it went wrong for some items\n for(j = 0; j < valIn.length; j++) {\n _p = p.slice();\n _p.push(j);\n\n if(!isPlainObject(valIn[j])) {\n list.push(format('object', base, _p, valIn[j]));\n } else if(indexList.indexOf(j) === -1) {\n list.push(format('unused', base, _p));\n }\n }\n } else if(!isPlainObject(valIn) && isPlainObject(valOut)) {\n list.push(format('object', base, p, valIn));\n } else if(!isArrayOrTypedArray(valIn) && isArrayOrTypedArray(valOut) && !isInfoArray && !isColorscale) {\n list.push(format('array', base, p, valIn));\n } else if(!(k in objOut)) {\n list.push(format('unused', base, p, valIn));\n } else if(!Lib.validate(valIn, nestedSchema)) {\n list.push(format('value', base, p, valIn));\n } else if(nestedSchema.valType === 'enumerated' &&\n ((nestedSchema.coerceNumber && valIn !== +valOut) || valIn !== valOut)\n ) {\n list.push(format('dynamic', base, p, valIn, valOut));\n }\n }\n\n return list;\n}\n\n// the 'full' layout schema depends on the traces types presents\nfunction fillLayoutSchema(schema, dataOut) {\n var layoutSchema = schema.layout.layoutAttributes;\n\n for(var i = 0; i < dataOut.length; i++) {\n var traceOut = dataOut[i];\n var traceSchema = schema.traces[traceOut.type];\n var traceLayoutAttr = traceSchema.layoutAttributes;\n\n if(traceLayoutAttr) {\n if(traceOut.subplot) {\n Lib.extendFlat(layoutSchema[traceSchema.attributes.subplot.dflt], traceLayoutAttr);\n } else {\n Lib.extendFlat(layoutSchema, traceLayoutAttr);\n }\n }\n }\n\n return layoutSchema;\n}\n\n// validation error codes\nvar code2msgFunc = {\n object: function(base, astr) {\n var prefix;\n\n if(base === 'layout' && astr === '') prefix = 'The layout argument';\n else if(base[0] === 'data' && astr === '') {\n prefix = 'Trace ' + base[1] + ' in the data argument';\n } else prefix = inBase(base) + 'key ' + astr;\n\n return prefix + ' must be linked to an object container';\n },\n array: function(base, astr) {\n var prefix;\n\n if(base === 'data') prefix = 'The data argument';\n else prefix = inBase(base) + 'key ' + astr;\n\n return prefix + ' must be linked to an array container';\n },\n schema: function(base, astr) {\n return inBase(base) + 'key ' + astr + ' is not part of the schema';\n },\n unused: function(base, astr, valIn) {\n var target = isPlainObject(valIn) ? 'container' : 'key';\n\n return inBase(base) + target + ' ' + astr + ' did not get coerced';\n },\n dynamic: function(base, astr, valIn, valOut) {\n return [\n inBase(base) + 'key',\n astr,\n '(set to \\'' + valIn + '\\')',\n 'got reset to',\n '\\'' + valOut + '\\'',\n 'during defaults.'\n ].join(' ');\n },\n invisible: function(base, astr) {\n return (\n astr ? (inBase(base) + 'item ' + astr) : ('Trace ' + base[1])\n ) + ' got defaulted to be not visible';\n },\n value: function(base, astr, valIn) {\n return [\n inBase(base) + 'key ' + astr,\n 'is set to an invalid value (' + valIn + ')'\n ].join(' ');\n }\n};\n\nfunction inBase(base) {\n if(isArray(base)) return 'In data trace ' + base[1] + ', ';\n\n return 'In ' + base + ', ';\n}\n\nfunction format(code, base, path, valIn, valOut) {\n path = path || '';\n\n var container, trace;\n\n // container is either 'data' or 'layout\n // trace is the trace index if 'data', null otherwise\n\n if(isArray(base)) {\n container = base[0];\n trace = base[1];\n } else {\n container = base;\n trace = null;\n }\n\n var astr = convertPathToAttributeString(path);\n var msg = code2msgFunc[code](base, astr, valIn, valOut);\n\n // log to console if logger config option is enabled\n Lib.log(msg);\n\n return {\n code: code,\n container: container,\n trace: trace,\n path: path,\n astr: astr,\n msg: msg\n };\n}\n\nfunction isInSchema(schema, key) {\n var parts = splitKey(key);\n var keyMinusId = parts.keyMinusId;\n var id = parts.id;\n\n if((keyMinusId in schema) && schema[keyMinusId]._isSubplotObj && id) {\n return true;\n }\n\n return (key in schema);\n}\n\nfunction getNestedSchema(schema, key) {\n if(key in schema) return schema[key];\n\n var parts = splitKey(key);\n\n return schema[parts.keyMinusId];\n}\n\nvar idRegex = Lib.counterRegex('([a-z]+)');\n\nfunction splitKey(key) {\n var idMatch = key.match(idRegex);\n\n return {\n keyMinusId: idMatch && idMatch[1],\n id: idMatch && idMatch[2]\n };\n}\n\nfunction convertPathToAttributeString(path) {\n if(!isArray(path)) return String(path);\n\n var astr = '';\n\n for(var i = 0; i < path.length; i++) {\n var p = path[i];\n\n if(typeof p === 'number') {\n astr = astr.substr(0, astr.length - 1) + '[' + p + ']';\n } else {\n astr += p;\n }\n\n if(i < path.length - 1) astr += '.';\n }\n\n return astr;\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar mapboxgl = require('mapbox-gl');\n\nvar Fx = require('../../components/fx');\nvar Lib = require('../../lib');\nvar geoUtils = require('../../lib/geo_location_utils');\nvar Registry = require('../../registry');\nvar Axes = require('../cartesian/axes');\nvar dragElement = require('../../components/dragelement');\nvar prepSelect = require('../cartesian/select').prepSelect;\nvar selectOnClick = require('../cartesian/select').selectOnClick;\n\nvar constants = require('./constants');\nvar createMapboxLayer = require('./layers');\n\nfunction Mapbox(gd, id) {\n this.id = id;\n this.gd = gd;\n\n var fullLayout = gd._fullLayout;\n var context = gd._context;\n\n this.container = fullLayout._glcontainer.node();\n this.isStatic = context.staticPlot;\n\n // unique id for this Mapbox instance\n this.uid = fullLayout._uid + '-' + this.id;\n\n // create framework on instantiation for a smoother first plot call\n this.div = null;\n this.xaxis = null;\n this.yaxis = null;\n this.createFramework(fullLayout);\n\n // state variables used to infer how and what to update\n this.map = null;\n this.accessToken = null;\n this.styleObj = null;\n this.traceHash = {};\n this.layerList = [];\n this.belowLookup = {};\n this.dragging = false;\n this.wheeling = false;\n}\n\nvar proto = Mapbox.prototype;\n\nproto.plot = function(calcData, fullLayout, promises) {\n var self = this;\n var opts = fullLayout[self.id];\n\n // remove map and create a new map if access token has change\n if(self.map && (opts.accesstoken !== self.accessToken)) {\n self.map.remove();\n self.map = null;\n self.styleObj = null;\n self.traceHash = [];\n self.layerList = {};\n }\n\n var promise;\n\n if(!self.map) {\n promise = new Promise(function(resolve, reject) {\n self.createMap(calcData, fullLayout, resolve, reject);\n });\n } else {\n promise = new Promise(function(resolve, reject) {\n self.updateMap(calcData, fullLayout, resolve, reject);\n });\n }\n\n promises.push(promise);\n};\n\nproto.createMap = function(calcData, fullLayout, resolve, reject) {\n var self = this;\n var opts = fullLayout[self.id];\n\n // store style id and URL or object\n var styleObj = self.styleObj = getStyleObj(opts.style);\n\n // store access token associated with this map\n self.accessToken = opts.accesstoken;\n\n // create the map!\n var map = self.map = new mapboxgl.Map({\n container: self.div,\n\n style: styleObj.style,\n center: convertCenter(opts.center),\n zoom: opts.zoom,\n bearing: opts.bearing,\n pitch: opts.pitch,\n\n interactive: !self.isStatic,\n preserveDrawingBuffer: self.isStatic,\n\n doubleClickZoom: false,\n boxZoom: false,\n\n attributionControl: false\n })\n .addControl(new mapboxgl.AttributionControl({\n compact: true\n }));\n\n\n // make sure canvas does not inherit left and top css\n map._canvas.style.left = '0px';\n map._canvas.style.top = '0px';\n\n self.rejectOnError(reject);\n\n if(!self.isStatic) {\n self.initFx(calcData, fullLayout);\n }\n\n var promises = [];\n\n promises.push(new Promise(function(resolve) {\n map.once('load', resolve);\n }));\n\n promises = promises.concat(geoUtils.fetchTraceGeoData(calcData));\n\n Promise.all(promises).then(function() {\n self.fillBelowLookup(calcData, fullLayout);\n self.updateData(calcData);\n self.updateLayout(fullLayout);\n self.resolveOnRender(resolve);\n }).catch(reject);\n};\n\nproto.updateMap = function(calcData, fullLayout, resolve, reject) {\n var self = this;\n var map = self.map;\n var opts = fullLayout[this.id];\n\n self.rejectOnError(reject);\n\n var promises = [];\n var styleObj = getStyleObj(opts.style);\n\n if(self.styleObj.id !== styleObj.id) {\n self.styleObj = styleObj;\n map.setStyle(styleObj.style);\n\n // need to rebuild trace layers on reload\n // to avoid 'lost event' errors\n self.traceHash = {};\n\n promises.push(new Promise(function(resolve) {\n map.once('styledata', resolve);\n }));\n }\n\n promises = promises.concat(geoUtils.fetchTraceGeoData(calcData));\n\n Promise.all(promises).then(function() {\n self.fillBelowLookup(calcData, fullLayout);\n self.updateData(calcData);\n self.updateLayout(fullLayout);\n self.resolveOnRender(resolve);\n }).catch(reject);\n};\n\nproto.fillBelowLookup = function(calcData, fullLayout) {\n var opts = fullLayout[this.id];\n var layers = opts.layers;\n var i, val;\n\n var belowLookup = this.belowLookup = {};\n var hasTraceAtTop = false;\n\n for(i = 0; i < calcData.length; i++) {\n var trace = calcData[i][0].trace;\n var _module = trace._module;\n\n if(typeof trace.below === 'string') {\n val = trace.below;\n } else if(_module.getBelow) {\n // 'smart' default that depend the map's base layers\n val = _module.getBelow(trace, this);\n }\n\n if(val === '') {\n hasTraceAtTop = true;\n }\n\n belowLookup['trace-' + trace.uid] = val || '';\n }\n\n for(i = 0; i < layers.length; i++) {\n var item = layers[i];\n\n if(typeof item.below === 'string') {\n val = item.below;\n } else if(hasTraceAtTop) {\n // if one or more trace(s) set `below:''` and\n // layers[i].below is unset,\n // place layer below traces\n val = 'traces';\n } else {\n val = '';\n }\n\n belowLookup['layout-' + i] = val;\n }\n\n // N.B. If multiple layers have the 'below' value,\n // we must clear the stashed 'below' field in order\n // to make `traceHash[k].update()` and `layerList[i].update()`\n // remove/add the all those layers to have preserve\n // the correct layer ordering\n var val2list = {};\n var k, id;\n\n for(k in belowLookup) {\n val = belowLookup[k];\n if(val2list[val]) {\n val2list[val].push(k);\n } else {\n val2list[val] = [k];\n }\n }\n\n for(val in val2list) {\n var list = val2list[val];\n if(list.length > 1) {\n for(i = 0; i < list.length; i++) {\n k = list[i];\n if(k.indexOf('trace-') === 0) {\n id = k.split('trace-')[1];\n if(this.traceHash[id]) {\n this.traceHash[id].below = null;\n }\n } else if(k.indexOf('layout-') === 0) {\n id = k.split('layout-')[1];\n if(this.layerList[id]) {\n this.layerList[id].below = null;\n }\n }\n }\n }\n }\n};\n\nvar traceType2orderIndex = {\n choroplethmapbox: 0,\n densitymapbox: 1,\n scattermapbox: 2\n};\n\nproto.updateData = function(calcData) {\n var traceHash = this.traceHash;\n var traceObj, trace, i, j;\n\n // Need to sort here by trace type here,\n // in case traces with different `type` have the same\n // below value, but sorting we ensure that\n // e.g. choroplethmapbox traces will be below scattermapbox traces\n var calcDataSorted = calcData.slice().sort(function(a, b) {\n return (\n traceType2orderIndex[a[0].trace.type] -\n traceType2orderIndex[b[0].trace.type]\n );\n });\n\n // update or create trace objects\n for(i = 0; i < calcDataSorted.length; i++) {\n var calcTrace = calcDataSorted[i];\n\n trace = calcTrace[0].trace;\n traceObj = traceHash[trace.uid];\n\n var didUpdate = false;\n if(traceObj) {\n if(traceObj.type === trace.type) {\n traceObj.update(calcTrace);\n didUpdate = true;\n } else {\n traceObj.dispose();\n }\n }\n if(!didUpdate && trace._module) {\n traceHash[trace.uid] = trace._module.plot(this, calcTrace);\n }\n }\n\n // remove empty trace objects\n var ids = Object.keys(traceHash);\n idLoop:\n for(i = 0; i < ids.length; i++) {\n var id = ids[i];\n\n for(j = 0; j < calcData.length; j++) {\n trace = calcData[j][0].trace;\n if(id === trace.uid) continue idLoop;\n }\n\n traceObj = traceHash[id];\n traceObj.dispose();\n delete traceHash[id];\n }\n};\n\nproto.updateLayout = function(fullLayout) {\n var map = this.map;\n var opts = fullLayout[this.id];\n\n if(!this.dragging && !this.wheeling) {\n map.setCenter(convertCenter(opts.center));\n map.setZoom(opts.zoom);\n map.setBearing(opts.bearing);\n map.setPitch(opts.pitch);\n }\n\n this.updateLayers(fullLayout);\n this.updateFramework(fullLayout);\n this.updateFx(fullLayout);\n this.map.resize();\n\n if(this.gd._context._scrollZoom.mapbox) {\n map.scrollZoom.enable();\n } else {\n map.scrollZoom.disable();\n }\n};\n\nproto.resolveOnRender = function(resolve) {\n var map = this.map;\n\n map.on('render', function onRender() {\n if(map.loaded()) {\n map.off('render', onRender);\n // resolve at end of render loop\n //\n // Need a 10ms delay (0ms should suffice to skip a thread in the\n // render loop) to workaround mapbox-gl bug introduced in v1.3.0\n setTimeout(resolve, 10);\n }\n });\n};\n\nproto.rejectOnError = function(reject) {\n var map = this.map;\n\n function handler() {\n reject(new Error(constants.mapOnErrorMsg));\n }\n\n map.once('error', handler);\n map.once('style.error', handler);\n map.once('source.error', handler);\n map.once('tile.error', handler);\n map.once('layer.error', handler);\n};\n\nproto.createFramework = function(fullLayout) {\n var self = this;\n\n var div = self.div = document.createElement('div');\n div.id = self.uid;\n div.style.position = 'absolute';\n self.container.appendChild(div);\n\n // create mock x/y axes for hover routine\n self.xaxis = {\n _id: 'x',\n c2p: function(v) { return self.project(v).x; }\n };\n self.yaxis = {\n _id: 'y',\n c2p: function(v) { return self.project(v).y; }\n };\n\n self.updateFramework(fullLayout);\n\n // mock axis for hover formatting\n self.mockAxis = {\n type: 'linear',\n showexponent: 'all',\n exponentformat: 'B'\n };\n Axes.setConvert(self.mockAxis, fullLayout);\n};\n\nproto.initFx = function(calcData, fullLayout) {\n var self = this;\n var gd = self.gd;\n var map = self.map;\n\n // keep track of pan / zoom in user layout and emit relayout event\n map.on('moveend', function(evt) {\n if(!self.map) return;\n\n var fullLayoutNow = gd._fullLayout;\n\n // 'moveend' gets triggered by map.setCenter, map.setZoom,\n // map.setBearing and map.setPitch.\n //\n // Here, we make sure that state updates amd 'plotly_relayout'\n // are triggered only when the 'moveend' originates from a\n // mouse target (filtering out API calls) to not\n // duplicate 'plotly_relayout' events.\n\n if(evt.originalEvent || self.wheeling) {\n var optsNow = fullLayoutNow[self.id];\n Registry.call('_storeDirectGUIEdit', gd.layout, fullLayoutNow._preGUI, self.getViewEdits(optsNow));\n\n var viewNow = self.getView();\n optsNow._input.center = optsNow.center = viewNow.center;\n optsNow._input.zoom = optsNow.zoom = viewNow.zoom;\n optsNow._input.bearing = optsNow.bearing = viewNow.bearing;\n optsNow._input.pitch = optsNow.pitch = viewNow.pitch;\n gd.emit('plotly_relayout', self.getViewEditsWithDerived(viewNow));\n }\n if(evt.originalEvent && evt.originalEvent.type === 'mouseup') {\n self.dragging = false;\n } else if(self.wheeling) {\n self.wheeling = false;\n }\n\n if(fullLayoutNow._rehover) {\n fullLayoutNow._rehover();\n }\n });\n\n map.on('wheel', function() {\n self.wheeling = true;\n });\n\n map.on('mousemove', function(evt) {\n var bb = self.div.getBoundingClientRect();\n\n // some hackery to get Fx.hover to work\n evt.clientX = evt.point.x + bb.left;\n evt.clientY = evt.point.y + bb.top;\n\n evt.target.getBoundingClientRect = function() { return bb; };\n\n self.xaxis.p2c = function() { return evt.lngLat.lng; };\n self.yaxis.p2c = function() { return evt.lngLat.lat; };\n\n gd._fullLayout._rehover = function() {\n if(gd._fullLayout._hoversubplot === self.id && gd._fullLayout[self.id]) {\n Fx.hover(gd, evt, self.id);\n }\n };\n\n Fx.hover(gd, evt, self.id);\n gd._fullLayout._hoversubplot = self.id;\n });\n\n function unhover() {\n Fx.loneUnhover(fullLayout._hoverlayer);\n }\n\n map.on('dragstart', function() {\n self.dragging = true;\n unhover();\n });\n map.on('zoomstart', unhover);\n\n map.on('mouseout', function() {\n gd._fullLayout._hoversubplot = null;\n });\n\n function emitUpdate() {\n var viewNow = self.getView();\n gd.emit('plotly_relayouting', self.getViewEditsWithDerived(viewNow));\n }\n\n map.on('drag', emitUpdate);\n map.on('zoom', emitUpdate);\n\n map.on('dblclick', function() {\n var optsNow = gd._fullLayout[self.id];\n Registry.call('_storeDirectGUIEdit', gd.layout, gd._fullLayout._preGUI, self.getViewEdits(optsNow));\n\n var viewInitial = self.viewInitial;\n map.setCenter(convertCenter(viewInitial.center));\n map.setZoom(viewInitial.zoom);\n map.setBearing(viewInitial.bearing);\n map.setPitch(viewInitial.pitch);\n\n var viewNow = self.getView();\n optsNow._input.center = optsNow.center = viewNow.center;\n optsNow._input.zoom = optsNow.zoom = viewNow.zoom;\n optsNow._input.bearing = optsNow.bearing = viewNow.bearing;\n optsNow._input.pitch = optsNow.pitch = viewNow.pitch;\n\n gd.emit('plotly_doubleclick', null);\n gd.emit('plotly_relayout', self.getViewEditsWithDerived(viewNow));\n });\n\n // define event handlers on map creation, to keep one ref per map,\n // so that map.on / map.off in updateFx works as expected\n self.clearSelect = function() {\n gd._fullLayout._zoomlayer.selectAll('.select-outline').remove();\n };\n\n /**\n * Returns a click handler function that is supposed\n * to handle clicks in pan mode.\n */\n self.onClickInPanFn = function(dragOptions) {\n return function(evt) {\n var clickMode = gd._fullLayout.clickmode;\n\n if(clickMode.indexOf('select') > -1) {\n selectOnClick(evt.originalEvent, gd, [self.xaxis], [self.yaxis], self.id, dragOptions);\n }\n\n if(clickMode.indexOf('event') > -1) {\n // TODO: this does not support right-click. If we want to support it, we\n // would likely need to change mapbox to use dragElement instead of straight\n // mapbox event binding. Or perhaps better, make a simple wrapper with the\n // right mousedown, mousemove, and mouseup handlers just for a left/right click\n // pie would use this too.\n Fx.click(gd, evt.originalEvent);\n }\n };\n };\n};\n\nproto.updateFx = function(fullLayout) {\n var self = this;\n var map = self.map;\n var gd = self.gd;\n\n if(self.isStatic) return;\n\n function invert(pxpy) {\n var obj = self.map.unproject(pxpy);\n return [obj.lng, obj.lat];\n }\n\n var dragMode = fullLayout.dragmode;\n var fillRangeItems;\n\n if(dragMode === 'select') {\n fillRangeItems = function(eventData, poly) {\n var ranges = eventData.range = {};\n ranges[self.id] = [\n invert([poly.xmin, poly.ymin]),\n invert([poly.xmax, poly.ymax])\n ];\n };\n } else {\n fillRangeItems = function(eventData, poly, pts) {\n var dataPts = eventData.lassoPoints = {};\n dataPts[self.id] = pts.filtered.map(invert);\n };\n }\n\n // Note: dragOptions is needed to be declared for all dragmodes because\n // it's the object that holds persistent selection state.\n // Merge old dragOptions with new to keep possibly initialized\n // persistent selection state.\n var oldDragOptions = self.dragOptions;\n self.dragOptions = Lib.extendDeep(oldDragOptions || {}, {\n element: self.div,\n gd: gd,\n plotinfo: {\n id: self.id,\n xaxis: self.xaxis,\n yaxis: self.yaxis,\n fillRangeItems: fillRangeItems\n },\n xaxes: [self.xaxis],\n yaxes: [self.yaxis],\n subplot: self.id\n });\n\n // Unregister the old handler before potentially registering\n // a new one. Otherwise multiple click handlers might\n // be registered resulting in unwanted behavior.\n map.off('click', self.onClickInPanHandler);\n if(dragMode === 'select' || dragMode === 'lasso') {\n map.dragPan.disable();\n map.on('zoomstart', self.clearSelect);\n\n self.dragOptions.prepFn = function(e, startX, startY) {\n prepSelect(e, startX, startY, self.dragOptions, dragMode);\n };\n\n dragElement.init(self.dragOptions);\n } else {\n map.dragPan.enable();\n map.off('zoomstart', self.clearSelect);\n self.div.onmousedown = null;\n\n // TODO: this does not support right-click. If we want to support it, we\n // would likely need to change mapbox to use dragElement instead of straight\n // mapbox event binding. Or perhaps better, make a simple wrapper with the\n // right mousedown, mousemove, and mouseup handlers just for a left/right click\n // pie would use this too.\n self.onClickInPanHandler = self.onClickInPanFn(self.dragOptions);\n map.on('click', self.onClickInPanHandler);\n }\n};\n\nproto.updateFramework = function(fullLayout) {\n var domain = fullLayout[this.id].domain;\n var size = fullLayout._size;\n\n var style = this.div.style;\n style.width = size.w * (domain.x[1] - domain.x[0]) + 'px';\n style.height = size.h * (domain.y[1] - domain.y[0]) + 'px';\n style.left = size.l + domain.x[0] * size.w + 'px';\n style.top = size.t + (1 - domain.y[1]) * size.h + 'px';\n\n this.xaxis._offset = size.l + domain.x[0] * size.w;\n this.xaxis._length = size.w * (domain.x[1] - domain.x[0]);\n\n this.yaxis._offset = size.t + (1 - domain.y[1]) * size.h;\n this.yaxis._length = size.h * (domain.y[1] - domain.y[0]);\n};\n\nproto.updateLayers = function(fullLayout) {\n var opts = fullLayout[this.id];\n var layers = opts.layers;\n var layerList = this.layerList;\n var i;\n\n // if the layer arrays don't match,\n // don't try to be smart,\n // delete them all, and start all over.\n\n if(layers.length !== layerList.length) {\n for(i = 0; i < layerList.length; i++) {\n layerList[i].dispose();\n }\n\n layerList = this.layerList = [];\n\n for(i = 0; i < layers.length; i++) {\n layerList.push(createMapboxLayer(this, i, layers[i]));\n }\n } else {\n for(i = 0; i < layers.length; i++) {\n layerList[i].update(layers[i]);\n }\n }\n};\n\nproto.destroy = function() {\n if(this.map) {\n this.map.remove();\n this.map = null;\n this.container.removeChild(this.div);\n }\n};\n\nproto.toImage = function() {\n this.map.stop();\n return this.map.getCanvas().toDataURL();\n};\n\n// convenience wrapper to create set multiple layer\n// 'layout' or 'paint options at once.\nproto.setOptions = function(id, methodName, opts) {\n for(var k in opts) {\n this.map[methodName](id, k, opts[k]);\n }\n};\n\nproto.getMapLayers = function() {\n return this.map.getStyle().layers;\n};\n\n// convenience wrapper that first check in 'below' references\n// a layer that exist and then add the layer to the map,\nproto.addLayer = function(opts, below) {\n var map = this.map;\n\n if(typeof below === 'string') {\n if(below === '') {\n map.addLayer(opts, below);\n return;\n }\n\n var mapLayers = this.getMapLayers();\n for(var i = 0; i < mapLayers.length; i++) {\n if(below === mapLayers[i].id) {\n map.addLayer(opts, below);\n return;\n }\n }\n\n Lib.warn([\n 'Trying to add layer with *below* value',\n below,\n 'referencing a layer that does not exist',\n 'or that does not yet exist.'\n ].join(' '));\n }\n\n map.addLayer(opts);\n};\n\n// convenience method to project a [lon, lat] array to pixel coords\nproto.project = function(v) {\n return this.map.project(new mapboxgl.LngLat(v[0], v[1]));\n};\n\n// get map's current view values in plotly.js notation\nproto.getView = function() {\n var map = this.map;\n var mapCenter = map.getCenter();\n var center = { lon: mapCenter.lng, lat: mapCenter.lat };\n\n var canvas = map.getCanvas();\n var w = canvas.width;\n var h = canvas.height;\n return {\n center: center,\n zoom: map.getZoom(),\n bearing: map.getBearing(),\n pitch: map.getPitch(),\n _derived: {\n coordinates: [\n map.unproject([0, 0]).toArray(),\n map.unproject([w, 0]).toArray(),\n map.unproject([w, h]).toArray(),\n map.unproject([0, h]).toArray()\n ]\n }\n };\n};\n\nproto.getViewEdits = function(cont) {\n var id = this.id;\n var keys = ['center', 'zoom', 'bearing', 'pitch'];\n var obj = {};\n\n for(var i = 0; i < keys.length; i++) {\n var k = keys[i];\n obj[id + '.' + k] = cont[k];\n }\n\n return obj;\n};\n\nproto.getViewEditsWithDerived = function(cont) {\n var id = this.id;\n var obj = this.getViewEdits(cont);\n obj[id + '._derived'] = cont._derived;\n return obj;\n};\n\nfunction getStyleObj(val) {\n var styleObj = {};\n\n if(Lib.isPlainObject(val)) {\n styleObj.id = val.id;\n styleObj.style = val;\n } else if(typeof val === 'string') {\n styleObj.id = val;\n\n if(constants.styleValuesMapbox.indexOf(val) !== -1) {\n styleObj.style = convertStyleVal(val);\n } else if(constants.stylesNonMapbox[val]) {\n styleObj.style = constants.stylesNonMapbox[val];\n } else {\n styleObj.style = val;\n }\n } else {\n styleObj.id = constants.styleValueDflt;\n styleObj.style = convertStyleVal(constants.styleValueDflt);\n }\n\n styleObj.transition = {duration: 0, delay: 0};\n\n return styleObj;\n}\n\n// if style is part of the 'official' mapbox values, add URL prefix and suffix\nfunction convertStyleVal(val) {\n return constants.styleUrlPrefix + val + '-' + constants.styleUrlSuffix;\n}\n\nfunction convertCenter(center) {\n return [center.lon, center.lat];\n}\n\nmodule.exports = Mapbox;\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Registry = require('../../registry');\nvar Lib = require('../../lib');\n\nmodule.exports = function handleOHLC(traceIn, traceOut, coerce, layout) {\n var x = coerce('x');\n var open = coerce('open');\n var high = coerce('high');\n var low = coerce('low');\n var close = coerce('close');\n\n coerce('hoverlabel.split');\n\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');\n handleCalendarDefaults(traceIn, traceOut, ['x'], layout);\n\n if(!(open && high && low && close)) return;\n\n var len = Math.min(open.length, high.length, low.length, close.length);\n if(x) len = Math.min(len, Lib.minRowLength(x));\n traceOut._length = len;\n\n return len;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\n/**\n * This will be transferred over to gd and overridden by\n * config args to Plotly.plot.\n *\n * The defaults are the appropriate settings for plotly.js,\n * so we get the right experience without any config argument.\n *\n * N.B. the config options are not coerced using Lib.coerce so keys\n * like `valType` and `values` are only set for documentation purposes\n * at the moment.\n */\n\nvar configAttributes = {\n staticPlot: {\n valType: 'boolean',\n dflt: false,\n \n },\n\n plotlyServerURL: {\n valType: 'string',\n dflt: 'https://plot.ly',\n \n },\n\n editable: {\n valType: 'boolean',\n dflt: false,\n \n },\n edits: {\n annotationPosition: {\n valType: 'boolean',\n dflt: false,\n \n },\n annotationTail: {\n valType: 'boolean',\n dflt: false,\n \n },\n annotationText: {\n valType: 'boolean',\n dflt: false,\n \n },\n axisTitleText: {\n valType: 'boolean',\n dflt: false,\n \n },\n colorbarPosition: {\n valType: 'boolean',\n dflt: false,\n \n },\n colorbarTitleText: {\n valType: 'boolean',\n dflt: false,\n \n },\n legendPosition: {\n valType: 'boolean',\n dflt: false,\n \n },\n legendText: {\n valType: 'boolean',\n dflt: false,\n \n },\n shapePosition: {\n valType: 'boolean',\n dflt: false,\n \n },\n titleText: {\n valType: 'boolean',\n dflt: false,\n \n }\n },\n\n autosizable: {\n valType: 'boolean',\n dflt: false,\n \n },\n responsive: {\n valType: 'boolean',\n dflt: false,\n \n },\n fillFrame: {\n valType: 'boolean',\n dflt: false,\n \n },\n frameMargins: {\n valType: 'number',\n dflt: 0,\n min: 0,\n max: 0.5,\n \n },\n\n scrollZoom: {\n valType: 'flaglist',\n flags: ['cartesian', 'gl3d', 'geo', 'mapbox'],\n extras: [true, false],\n dflt: 'gl3d+geo+mapbox',\n \n },\n doubleClick: {\n valType: 'enumerated',\n values: [false, 'reset', 'autosize', 'reset+autosize'],\n dflt: 'reset+autosize',\n \n },\n doubleClickDelay: {\n valType: 'number',\n dflt: 300,\n min: 0,\n \n },\n\n showAxisDragHandles: {\n valType: 'boolean',\n dflt: true,\n \n },\n showAxisRangeEntryBoxes: {\n valType: 'boolean',\n dflt: true,\n \n },\n\n showTips: {\n valType: 'boolean',\n dflt: true,\n \n },\n\n showLink: {\n valType: 'boolean',\n dflt: false,\n \n },\n linkText: {\n valType: 'string',\n dflt: 'Edit chart',\n noBlank: true,\n \n },\n sendData: {\n valType: 'boolean',\n dflt: true,\n \n },\n showSources: {\n valType: 'any',\n dflt: false,\n \n },\n\n displayModeBar: {\n valType: 'enumerated',\n values: ['hover', true, false],\n dflt: 'hover',\n \n },\n showSendToCloud: {\n valType: 'boolean',\n dflt: false,\n \n },\n showEditInChartStudio: {\n valType: 'boolean',\n dflt: false,\n \n },\n modeBarButtonsToRemove: {\n valType: 'any',\n dflt: [],\n \n },\n modeBarButtonsToAdd: {\n valType: 'any',\n dflt: [],\n \n },\n modeBarButtons: {\n valType: 'any',\n dflt: false,\n \n },\n toImageButtonOptions: {\n valType: 'any',\n dflt: {},\n \n },\n displaylogo: {\n valType: 'boolean',\n dflt: true,\n \n },\n watermark: {\n valType: 'boolean',\n dflt: false,\n \n },\n\n plotGlPixelRatio: {\n valType: 'number',\n dflt: 2,\n min: 1,\n max: 4,\n \n },\n\n setBackground: {\n valType: 'any',\n dflt: 'transparent',\n \n },\n\n topojsonURL: {\n valType: 'string',\n noBlank: true,\n dflt: 'https://cdn.plot.ly/',\n \n },\n\n mapboxAccessToken: {\n valType: 'string',\n dflt: null,\n \n },\n\n logging: {\n valType: 'integer',\n min: 0,\n max: 2,\n dflt: 1,\n \n },\n\n notifyOnLogging: {\n valType: 'integer',\n min: 0,\n max: 2,\n dflt: 0,\n \n },\n\n queueLength: {\n valType: 'integer',\n min: 0,\n dflt: 0,\n \n },\n\n globalTransforms: {\n valType: 'any',\n dflt: [],\n \n },\n\n locale: {\n valType: 'string',\n dflt: 'en-US',\n \n },\n\n locales: {\n valType: 'any',\n dflt: {},\n \n }\n};\n\nvar dfltConfig = {};\n\nfunction crawl(src, target) {\n for(var k in src) {\n var obj = src[k];\n if(obj.valType) {\n target[k] = obj.dflt;\n } else {\n if(!target[k]) {\n target[k] = {};\n }\n crawl(obj, target[k]);\n }\n }\n}\n\ncrawl(configAttributes, dfltConfig);\n\nmodule.exports = {\n configAttributes: configAttributes,\n dfltConfig: dfltConfig\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\n\nmodule.exports = {\n xaxis: {\n valType: 'subplotid',\n \n dflt: 'x',\n editType: 'calc+clearAxisTypes',\n \n },\n yaxis: {\n valType: 'subplotid',\n \n dflt: 'y',\n editType: 'calc+clearAxisTypes',\n \n }\n};\n","'use strict'\n\nvar createShader = require('gl-shader')\nvar createBuffer = require('gl-buffer')\n\nvar pool = require('typedarray-pool')\n\nvar SHADERS = require('./lib/shader')\n\nmodule.exports = createPointcloud2D\n\nfunction Pointcloud2D(plot, offsetBuffer, pickBuffer, shader, pickShader) {\n this.plot = plot\n this.offsetBuffer = offsetBuffer\n this.pickBuffer = pickBuffer\n this.shader = shader\n this.pickShader = pickShader\n this.sizeMin = 0.5\n this.sizeMinCap = 2\n this.sizeMax = 20\n this.areaRatio = 1.0\n this.pointCount = 0\n this.color = [1, 0, 0, 1]\n this.borderColor = [0, 0, 0, 1]\n this.blend = false\n this.pickOffset = 0\n this.points = null\n}\n\nvar proto = Pointcloud2D.prototype\n\nproto.dispose = function() {\n this.shader.dispose()\n this.pickShader.dispose()\n this.offsetBuffer.dispose()\n this.pickBuffer.dispose()\n this.plot.removeObject(this)\n}\n\nproto.update = function(options) {\n\n var i\n\n options = options || {}\n\n function dflt(opt, value) {\n if(opt in options) {\n return options[opt]\n }\n return value\n }\n\n this.sizeMin = dflt('sizeMin', 0.5)\n // this.sizeMinCap = dflt('sizeMinCap', 2)\n this.sizeMax = dflt('sizeMax', 20)\n this.color = dflt('color', [1, 0, 0, 1]).slice()\n this.areaRatio = dflt('areaRatio', 1)\n this.borderColor = dflt('borderColor', [0, 0, 0, 1]).slice()\n this.blend = dflt('blend', false)\n\n //Update point data\n\n // Attempt straight-through processing (STP) to avoid allocation and copy\n // TODO eventually abstract out STP logic, maybe into `pool` or a layer above\n var pointCount = options.positions.length >>> 1\n var dataStraightThrough = options.positions instanceof Float32Array\n var idStraightThrough = options.idToIndex instanceof Int32Array && options.idToIndex.length >= pointCount // permit larger to help reuse\n\n var data = options.positions\n var packed = dataStraightThrough ? data : pool.mallocFloat32(data.length)\n var packedId = idStraightThrough ? options.idToIndex : pool.mallocInt32(pointCount)\n\n if(!dataStraightThrough) {\n packed.set(data)\n }\n\n if(!idStraightThrough) {\n packed.set(data)\n for(i = 0; i < pointCount; i++) {\n packedId[i] = i\n }\n }\n\n this.points = data\n\n this.offsetBuffer.update(packed)\n this.pickBuffer.update(packedId)\n\n if(!dataStraightThrough) {\n pool.free(packed)\n }\n\n if(!idStraightThrough) {\n pool.free(packedId)\n }\n\n this.pointCount = pointCount\n this.pickOffset = 0\n}\n\nfunction count(points, dataBox) {\n var visiblePointCountEstimate = 0\n var length = points.length >>> 1\n var i\n for(i = 0; i < length; i++) {\n var x = points[i * 2]\n var y = points[i * 2 + 1]\n if(x >= dataBox[0] && x <= dataBox[2] && y >= dataBox[1] && y <= dataBox[3])\n visiblePointCountEstimate++\n }\n return visiblePointCountEstimate\n}\n\nproto.unifiedDraw = (function() {\n var MATRIX = [1, 0, 0,\n 0, 1, 0,\n 0, 0, 1]\n var PICK_VEC4 = [0, 0, 0, 0]\nreturn function(pickOffset) {\n var pick = pickOffset !== void(0)\n\n var shader = pick ? this.pickShader : this.shader\n var gl = this.plot.gl\n var dataBox = this.plot.dataBox\n\n if(this.pointCount === 0) {\n return pickOffset\n }\n\n var dataX = dataBox[2] - dataBox[0]\n var dataY = dataBox[3] - dataBox[1]\n\n var visiblePointCountEstimate = count(this.points, dataBox)\n var basicPointSize = this.plot.pickPixelRatio * Math.max(Math.min(this.sizeMinCap, this.sizeMin), Math.min(this.sizeMax, this.sizeMax / Math.pow(visiblePointCountEstimate, 0.33333)))\n\n MATRIX[0] = 2.0 / dataX\n MATRIX[4] = 2.0 / dataY\n MATRIX[6] = -2.0 * dataBox[0] / dataX - 1.0\n MATRIX[7] = -2.0 * dataBox[1] / dataY - 1.0\n\n this.offsetBuffer.bind()\n\n shader.bind()\n shader.attributes.position.pointer()\n shader.uniforms.matrix = MATRIX\n shader.uniforms.color = this.color\n shader.uniforms.borderColor = this.borderColor\n shader.uniforms.pointCloud = basicPointSize < 5\n shader.uniforms.pointSize = basicPointSize\n shader.uniforms.centerFraction = Math.min(1, Math.max(0, Math.sqrt(1 - this.areaRatio)))\n\n if(pick) {\n\n PICK_VEC4[0] = ( pickOffset & 0xff)\n PICK_VEC4[1] = ((pickOffset >> 8) & 0xff)\n PICK_VEC4[2] = ((pickOffset >> 16) & 0xff)\n PICK_VEC4[3] = ((pickOffset >> 24) & 0xff)\n\n this.pickBuffer.bind()\n shader.attributes.pickId.pointer(gl.UNSIGNED_BYTE)\n shader.uniforms.pickOffset = PICK_VEC4\n this.pickOffset = pickOffset\n }\n\n // Worth switching these off, but we can't make assumptions about other\n // renderers, so let's restore it after each draw\n var blend = gl.getParameter(gl.BLEND)\n var dither = gl.getParameter(gl.DITHER)\n\n if(blend && !this.blend)\n gl.disable(gl.BLEND)\n if(dither)\n gl.disable(gl.DITHER)\n\n gl.drawArrays(gl.POINTS, 0, this.pointCount)\n\n if(blend && !this.blend)\n gl.enable(gl.BLEND)\n if(dither)\n gl.enable(gl.DITHER)\n\n return pickOffset + this.pointCount\n}\n})()\n\nproto.draw = proto.unifiedDraw\nproto.drawPick = proto.unifiedDraw\n\nproto.pick = function(x, y, value) {\n var pickOffset = this.pickOffset\n var pointCount = this.pointCount\n if(value < pickOffset || value >= pickOffset + pointCount) {\n return null\n }\n var pointId = value - pickOffset\n var points = this.points\n return {\n object: this,\n pointId: pointId,\n dataCoord: [points[2 * pointId], points[2 * pointId + 1] ]\n }\n}\n\nfunction createPointcloud2D(plot, options) {\n var gl = plot.gl\n var buffer = createBuffer(gl)\n var pickBuffer = createBuffer(gl)\n var shader = createShader(gl, SHADERS.pointVertex, SHADERS.pointFragment)\n var pickShader = createShader(gl, SHADERS.pickVertex, SHADERS.pickFragment)\n\n var result = new Pointcloud2D(plot, buffer, pickBuffer, shader, pickShader)\n result.update(options)\n\n //Register with plot\n plot.addObject(result)\n\n return result\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar helpers = require('./helpers');\nvar calcHover = require('../scattergl/hover').calcHover;\n\nfunction hoverPoints(pointData, xval, yval) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var scene = pointData.scene;\n var cdata = scene.matrixOptions.cdata;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var xpx = xa.c2p(xval);\n var ypx = ya.c2p(yval);\n var maxDistance = pointData.distance;\n\n var xi = helpers.getDimIndex(trace, xa);\n var yi = helpers.getDimIndex(trace, ya);\n if(xi === false || yi === false) return [pointData];\n\n var x = cdata[xi];\n var y = cdata[yi];\n\n var id, dxy;\n var minDist = maxDistance;\n\n for(var i = 0; i < x.length; i++) {\n var ptx = x[i];\n var pty = y[i];\n var dx = xa.c2p(ptx) - xpx;\n var dy = ya.c2p(pty) - ypx;\n var dist = Math.sqrt(dx * dx + dy * dy);\n\n if(dist < minDist) {\n minDist = dxy = dist;\n id = i;\n }\n }\n\n pointData.index = id;\n pointData.distance = minDist;\n pointData.dxy = dxy;\n\n if(id === undefined) return [pointData];\n\n return [calcHover(pointData, x, y, trace)];\n}\n\nmodule.exports = {\n hoverPoints: hoverPoints\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar meta_1 = require(\"@turf/meta\");\n/**\n * Takes a set of features, calculates the bbox of all input features, and returns a bounding box.\n *\n * @name bbox\n * @param {GeoJSON} geojson any GeoJSON object\n * @returns {BBox} bbox extent in [minX, minY, maxX, maxY] order\n * @example\n * var line = turf.lineString([[-74, 40], [-78, 42], [-82, 35]]);\n * var bbox = turf.bbox(line);\n * var bboxPolygon = turf.bboxPolygon(bbox);\n *\n * //addToMap\n * var addToMap = [line, bboxPolygon]\n */\nfunction bbox(geojson) {\n var result = [Infinity, Infinity, -Infinity, -Infinity];\n meta_1.coordEach(geojson, function (coord) {\n if (result[0] > coord[0]) {\n result[0] = coord[0];\n }\n if (result[1] > coord[1]) {\n result[1] = coord[1];\n }\n if (result[2] < coord[0]) {\n result[2] = coord[0];\n }\n if (result[3] < coord[1]) {\n result[3] = coord[1];\n }\n });\n return result;\n}\nexports.default = bbox;\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar barAttrs = require('../bar/attributes');\nvar hovertemplateAttrs = require('../../plots/template_attributes').hovertemplateAttrs;\nvar makeBinAttrs = require('./bin_attributes');\nvar constants = require('./constants');\nvar extendFlat = require('../../lib/extend').extendFlat;\n\nmodule.exports = {\n x: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n y: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n\n text: extendFlat({}, barAttrs.text, {\n \n }),\n hovertext: extendFlat({}, barAttrs.hovertext, {\n \n }),\n orientation: barAttrs.orientation,\n\n histfunc: {\n valType: 'enumerated',\n values: ['count', 'sum', 'avg', 'min', 'max'],\n \n dflt: 'count',\n editType: 'calc',\n \n },\n histnorm: {\n valType: 'enumerated',\n values: ['', 'percent', 'probability', 'density', 'probability density'],\n dflt: '',\n \n editType: 'calc',\n \n },\n\n cumulative: {\n enabled: {\n valType: 'boolean',\n dflt: false,\n \n editType: 'calc',\n \n },\n\n direction: {\n valType: 'enumerated',\n values: ['increasing', 'decreasing'],\n dflt: 'increasing',\n \n editType: 'calc',\n \n },\n\n currentbin: {\n valType: 'enumerated',\n values: ['include', 'exclude', 'half'],\n dflt: 'include',\n \n editType: 'calc',\n \n },\n editType: 'calc'\n },\n nbinsx: {\n valType: 'integer',\n min: 0,\n dflt: 0,\n \n editType: 'calc',\n \n },\n xbins: makeBinAttrs('x', true),\n\n nbinsy: {\n valType: 'integer',\n min: 0,\n dflt: 0,\n \n editType: 'calc',\n \n },\n ybins: makeBinAttrs('y', true),\n autobinx: {\n valType: 'boolean',\n dflt: null,\n \n editType: 'calc',\n \n },\n autobiny: {\n valType: 'boolean',\n dflt: null,\n \n editType: 'calc',\n \n },\n\n bingroup: {\n valType: 'string',\n \n dflt: '',\n editType: 'calc',\n \n },\n\n hovertemplate: hovertemplateAttrs({}, {\n keys: constants.eventDataKeys\n }),\n\n marker: barAttrs.marker,\n\n offsetgroup: barAttrs.offsetgroup,\n alignmentgroup: barAttrs.alignmentgroup,\n\n selected: barAttrs.selected,\n unselected: barAttrs.unselected,\n\n _deprecated: {\n bardir: barAttrs._deprecated.bardir\n }\n};\n","\"use strict\"\n\nvar createThunk = require(\"./lib/thunk.js\")\n\nfunction Procedure() {\n this.argTypes = []\n this.shimArgs = []\n this.arrayArgs = []\n this.arrayBlockIndices = []\n this.scalarArgs = []\n this.offsetArgs = []\n this.offsetArgIndex = []\n this.indexArgs = []\n this.shapeArgs = []\n this.funcName = \"\"\n this.pre = null\n this.body = null\n this.post = null\n this.debug = false\n}\n\nfunction compileCwise(user_args) {\n //Create procedure\n var proc = new Procedure()\n \n //Parse blocks\n proc.pre = user_args.pre\n proc.body = user_args.body\n proc.post = user_args.post\n\n //Parse arguments\n var proc_args = user_args.args.slice(0)\n proc.argTypes = proc_args\n for(var i=0; i0) {\n throw new Error(\"cwise: pre() block may not reference array args\")\n }\n if(i < proc.post.args.length && proc.post.args[i].count>0) {\n throw new Error(\"cwise: post() block may not reference array args\")\n }\n } else if(arg_type === \"scalar\") {\n proc.scalarArgs.push(i)\n proc.shimArgs.push(\"scalar\" + i)\n } else if(arg_type === \"index\") {\n proc.indexArgs.push(i)\n if(i < proc.pre.args.length && proc.pre.args[i].count > 0) {\n throw new Error(\"cwise: pre() block may not reference array index\")\n }\n if(i < proc.body.args.length && proc.body.args[i].lvalue) {\n throw new Error(\"cwise: body() block may not write to array index\")\n }\n if(i < proc.post.args.length && proc.post.args[i].count > 0) {\n throw new Error(\"cwise: post() block may not reference array index\")\n }\n } else if(arg_type === \"shape\") {\n proc.shapeArgs.push(i)\n if(i < proc.pre.args.length && proc.pre.args[i].lvalue) {\n throw new Error(\"cwise: pre() block may not write to array shape\")\n }\n if(i < proc.body.args.length && proc.body.args[i].lvalue) {\n throw new Error(\"cwise: body() block may not write to array shape\")\n }\n if(i < proc.post.args.length && proc.post.args[i].lvalue) {\n throw new Error(\"cwise: post() block may not write to array shape\")\n }\n } else if(typeof arg_type === \"object\" && arg_type.offset) {\n proc.argTypes[i] = \"offset\"\n proc.offsetArgs.push({ array: arg_type.array, offset:arg_type.offset })\n proc.offsetArgIndex.push(i)\n } else {\n throw new Error(\"cwise: Unknown argument type \" + proc_args[i])\n }\n }\n \n //Make sure at least one array argument was specified\n if(proc.arrayArgs.length <= 0) {\n throw new Error(\"cwise: No array arguments specified\")\n }\n \n //Make sure arguments are correct\n if(proc.pre.args.length > proc_args.length) {\n throw new Error(\"cwise: Too many arguments in pre() block\")\n }\n if(proc.body.args.length > proc_args.length) {\n throw new Error(\"cwise: Too many arguments in body() block\")\n }\n if(proc.post.args.length > proc_args.length) {\n throw new Error(\"cwise: Too many arguments in post() block\")\n }\n\n //Check debug flag\n proc.debug = !!user_args.printCode || !!user_args.debug\n \n //Retrieve name\n proc.funcName = user_args.funcName || \"cwise\"\n \n //Read in block size\n proc.blockSize = user_args.blockSize || 64\n\n return createThunk(proc)\n}\n\nmodule.exports = compileCwise\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\n\nmodule.exports = function calcSelection(cd, trace) {\n if(Lib.isArrayOrTypedArray(trace.selectedpoints)) {\n Lib.tagSelected(cd, trace);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","'use strict'\r\n\r\nvar bsearch = require('binary-search-bounds')\r\nvar m4interp = require('mat4-interpolate')\r\nvar invert44 = require('gl-mat4/invert')\r\nvar rotateX = require('gl-mat4/rotateX')\r\nvar rotateY = require('gl-mat4/rotateY')\r\nvar rotateZ = require('gl-mat4/rotateZ')\r\nvar lookAt = require('gl-mat4/lookAt')\r\nvar translate = require('gl-mat4/translate')\r\nvar scale = require('gl-mat4/scale')\r\nvar normalize = require('gl-vec3/normalize')\r\n\r\nvar DEFAULT_CENTER = [0,0,0]\r\n\r\nmodule.exports = createMatrixCameraController\r\n\r\nfunction MatrixCameraController(initialMatrix) {\r\n this._components = initialMatrix.slice()\r\n this._time = [0]\r\n this.prevMatrix = initialMatrix.slice()\r\n this.nextMatrix = initialMatrix.slice()\r\n this.computedMatrix = initialMatrix.slice()\r\n this.computedInverse = initialMatrix.slice()\r\n this.computedEye = [0,0,0]\r\n this.computedUp = [0,0,0]\r\n this.computedCenter = [0,0,0]\r\n this.computedRadius = [0]\r\n this._limits = [-Infinity, Infinity]\r\n}\r\n\r\nvar proto = MatrixCameraController.prototype\r\n\r\nproto.recalcMatrix = function(t) {\r\n var time = this._time\r\n var tidx = bsearch.le(time, t)\r\n var mat = this.computedMatrix\r\n if(tidx < 0) {\r\n return\r\n }\r\n var comps = this._components\r\n if(tidx === time.length-1) {\r\n var ptr = 16*tidx\r\n for(var i=0; i<16; ++i) {\r\n mat[i] = comps[ptr++]\r\n }\r\n } else {\r\n var dt = (time[tidx+1] - time[tidx])\r\n var ptr = 16*tidx\r\n var prev = this.prevMatrix\r\n var allEqual = true\r\n for(var i=0; i<16; ++i) {\r\n prev[i] = comps[ptr++]\r\n }\r\n var next = this.nextMatrix\r\n for(var i=0; i<16; ++i) {\r\n next[i] = comps[ptr++]\r\n allEqual = allEqual && (prev[i] === next[i])\r\n }\r\n if(dt < 1e-6 || allEqual) {\r\n for(var i=0; i<16; ++i) {\r\n mat[i] = prev[i]\r\n }\r\n } else {\r\n m4interp(mat, prev, next, (t - time[tidx])/dt)\r\n }\r\n }\r\n\r\n var up = this.computedUp\r\n up[0] = mat[1]\r\n up[1] = mat[5]\r\n up[2] = mat[9]\r\n normalize(up, up)\r\n\r\n var imat = this.computedInverse\r\n invert44(imat, mat)\r\n var eye = this.computedEye\r\n var w = imat[15]\r\n eye[0] = imat[12]/w\r\n eye[1] = imat[13]/w\r\n eye[2] = imat[14]/w\r\n\r\n var center = this.computedCenter\r\n var radius = Math.exp(this.computedRadius[0])\r\n for(var i=0; i<3; ++i) {\r\n center[i] = eye[i] - mat[2+4*i] * radius\r\n }\r\n}\r\n\r\nproto.idle = function(t) {\r\n if(t < this.lastT()) {\r\n return\r\n }\r\n var mc = this._components\r\n var ptr = mc.length-16\r\n for(var i=0; i<16; ++i) {\r\n mc.push(mc[ptr++])\r\n }\r\n this._time.push(t)\r\n}\r\n\r\nproto.flush = function(t) {\r\n var idx = bsearch.gt(this._time, t) - 2\r\n if(idx < 0) {\r\n return\r\n }\r\n this._time.splice(0, idx)\r\n this._components.splice(0, 16*idx)\r\n}\r\n\r\nproto.lastT = function() {\r\n return this._time[this._time.length-1]\r\n}\r\n\r\nproto.lookAt = function(t, eye, center, up) {\r\n this.recalcMatrix(t)\r\n eye = eye || this.computedEye\r\n center = center || DEFAULT_CENTER\r\n up = up || this.computedUp\r\n this.setMatrix(t, lookAt(this.computedMatrix, eye, center, up))\r\n var d2 = 0.0\r\n for(var i=0; i<3; ++i) {\r\n d2 += Math.pow(center[i] - eye[i], 2)\r\n }\r\n d2 = Math.log(Math.sqrt(d2))\r\n this.computedRadius[0] = d2\r\n}\r\n\r\nproto.rotate = function(t, yaw, pitch, roll) {\r\n this.recalcMatrix(t)\r\n var mat = this.computedInverse\r\n if(yaw) rotateY(mat, mat, yaw)\r\n if(pitch) rotateX(mat, mat, pitch)\r\n if(roll) rotateZ(mat, mat, roll)\r\n this.setMatrix(t, invert44(this.computedMatrix, mat))\r\n}\r\n\r\nvar tvec = [0,0,0]\r\n\r\nproto.pan = function(t, dx, dy, dz) {\r\n tvec[0] = -(dx || 0.0)\r\n tvec[1] = -(dy || 0.0)\r\n tvec[2] = -(dz || 0.0)\r\n this.recalcMatrix(t)\r\n var mat = this.computedInverse\r\n translate(mat, mat, tvec)\r\n this.setMatrix(t, invert44(mat, mat))\r\n}\r\n\r\nproto.translate = function(t, dx, dy, dz) {\r\n tvec[0] = dx || 0.0\r\n tvec[1] = dy || 0.0\r\n tvec[2] = dz || 0.0\r\n this.recalcMatrix(t)\r\n var mat = this.computedMatrix\r\n translate(mat, mat, tvec)\r\n this.setMatrix(t, mat)\r\n}\r\n\r\nproto.setMatrix = function(t, mat) {\r\n if(t < this.lastT()) {\r\n return\r\n }\r\n this._time.push(t)\r\n for(var i=0; i<16; ++i) {\r\n this._components.push(mat[i])\r\n }\r\n}\r\n\r\nproto.setDistance = function(t, d) {\r\n this.computedRadius[0] = d\r\n}\r\n\r\nproto.setDistanceLimits = function(a,b) {\r\n var lim = this._limits\r\n lim[0] = a\r\n lim[1] = b\r\n}\r\n\r\nproto.getDistanceLimits = function(out) {\r\n var lim = this._limits\r\n if(out) {\r\n out[0] = lim[0]\r\n out[1] = lim[1]\r\n return out\r\n }\r\n return lim\r\n}\r\n\r\nfunction createMatrixCameraController(options) {\r\n options = options || {}\r\n var matrix = options.matrix || \r\n [1,0,0,0,\r\n 0,1,0,0,\r\n 0,0,1,0,\r\n 0,0,0,1]\r\n return new MatrixCameraController(matrix)\r\n}\r\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar isNumeric = require('fast-isnumeric');\n\nvar Lib = require('../../lib');\nvar hasColorbar = require('../colorbar/has_colorbar');\nvar colorbarDefaults = require('../colorbar/defaults');\n\nvar isValidScale = require('./scales').isValid;\nvar traceIs = require('../../registry').traceIs;\n\nfunction npMaybe(parentCont, prefix) {\n var containerStr = prefix.slice(0, prefix.length - 1);\n return prefix ?\n Lib.nestedProperty(parentCont, containerStr).get() || {} :\n parentCont;\n}\n\n/**\n * Colorscale / colorbar default handler\n *\n * @param {object} parentContIn : user (input) parent container (e.g. trace or layout coloraxis object)\n * @param {object} parentContOut : full parent container\n * @param {object} layout : (full) layout object\n * @param {fn} coerce : Lib.coerce wrapper\n * @param {object} opts :\n * - prefix {string} : attr string prefix to colorscale container from parent root\n * - cLetter {string} : 'c or 'z' color letter\n */\nmodule.exports = function colorScaleDefaults(parentContIn, parentContOut, layout, coerce, opts) {\n var prefix = opts.prefix;\n var cLetter = opts.cLetter;\n var inTrace = '_module' in parentContOut;\n var containerIn = npMaybe(parentContIn, prefix);\n var containerOut = npMaybe(parentContOut, prefix);\n var template = npMaybe(parentContOut._template || {}, prefix) || {};\n\n // colorScaleDefaults wrapper called if-ever we need to reset the colorscale\n // attributes for containers that were linked to invalid color axes\n var thisFn = function() {\n delete parentContIn.coloraxis;\n delete parentContOut.coloraxis;\n return colorScaleDefaults(parentContIn, parentContOut, layout, coerce, opts);\n };\n\n if(inTrace) {\n var colorAxes = layout._colorAxes || {};\n var colorAx = coerce(prefix + 'coloraxis');\n\n if(colorAx) {\n var colorbarVisuals = (\n traceIs(parentContOut, 'contour') &&\n Lib.nestedProperty(parentContOut, 'contours.coloring').get()\n ) || 'heatmap';\n\n var stash = colorAxes[colorAx];\n\n if(stash) {\n stash[2].push(thisFn);\n\n if(stash[0] !== colorbarVisuals) {\n stash[0] = false;\n Lib.warn([\n 'Ignoring coloraxis:', colorAx, 'setting',\n 'as it is linked to incompatible colorscales.'\n ].join(' '));\n }\n } else {\n // stash:\n // - colorbar visual 'type'\n // - colorbar options to help in Colorbar.draw\n // - list of colorScaleDefaults wrapper functions\n colorAxes[colorAx] = [colorbarVisuals, parentContOut, [thisFn]];\n }\n return;\n }\n }\n\n var minIn = containerIn[cLetter + 'min'];\n var maxIn = containerIn[cLetter + 'max'];\n var validMinMax = isNumeric(minIn) && isNumeric(maxIn) && (minIn < maxIn);\n var auto = coerce(prefix + cLetter + 'auto', !validMinMax);\n\n if(auto) {\n coerce(prefix + cLetter + 'mid');\n } else {\n coerce(prefix + cLetter + 'min');\n coerce(prefix + cLetter + 'max');\n }\n\n // handles both the trace case (autocolorscale is false by default) and\n // the marker and marker.line case (autocolorscale is true by default)\n var sclIn = containerIn.colorscale;\n var sclTemplate = template.colorscale;\n var autoColorscaleDflt;\n if(sclIn !== undefined) autoColorscaleDflt = !isValidScale(sclIn);\n if(sclTemplate !== undefined) autoColorscaleDflt = !isValidScale(sclTemplate);\n coerce(prefix + 'autocolorscale', autoColorscaleDflt);\n\n coerce(prefix + 'colorscale');\n coerce(prefix + 'reversescale');\n\n if(prefix !== 'marker.line.') {\n // handles both the trace case where the dflt is listed in attributes and\n // the marker case where the dflt is determined by hasColorbar\n var showScaleDflt;\n if(prefix && inTrace) showScaleDflt = hasColorbar(containerIn);\n\n var showScale = coerce(prefix + 'showscale', showScaleDflt);\n if(showScale) {\n if(prefix && template) containerOut._template = template;\n colorbarDefaults(containerIn, containerOut, layout);\n }\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar handleXYDefaults = require('./xy_defaults');\nvar handleABDefaults = require('./ab_defaults');\nvar attributes = require('./attributes');\nvar colorAttrs = require('../../components/color/attributes');\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, dfltColor, fullLayout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n traceOut._clipPathId = 'clip' + traceOut.uid + 'carpet';\n\n var defaultColor = coerce('color', colorAttrs.defaultLine);\n Lib.coerceFont(coerce, 'font');\n\n coerce('carpet');\n\n handleABDefaults(traceIn, traceOut, fullLayout, coerce, defaultColor);\n\n if(!traceOut.a || !traceOut.b) {\n traceOut.visible = false;\n return;\n }\n\n if(traceOut.a.length < 3) {\n traceOut.aaxis.smoothing = 0;\n }\n\n if(traceOut.b.length < 3) {\n traceOut.baxis.smoothing = 0;\n }\n\n // NB: the input is x/y arrays. You should know that the *first* dimension of x and y\n // corresponds to b and the second to a. This sounds backwards but ends up making sense\n // the important part to know is that when you write y[j][i], j goes from 0 to b.length - 1\n // and i goes from 0 to a.length - 1.\n var validData = handleXYDefaults(traceIn, traceOut, coerce);\n if(!validData) {\n traceOut.visible = false;\n }\n\n if(traceOut._cheater) {\n coerce('cheaterslope');\n }\n};\n","'use strict'\n\nmodule.exports = cmp\n\nfunction cmp(a, b) {\n return a[0].mul(b[1]).cmp(b[0].mul(a[1]))\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar isNumeric = require('fast-isnumeric');\nvar Lib = require('../../lib');\n\nvar Registry = require('../../registry');\n\nmodule.exports = function handleXYZDefaults(traceIn, traceOut, coerce, layout, xName, yName) {\n var z = coerce('z');\n xName = xName || 'x';\n yName = yName || 'y';\n var x, y;\n\n if(z === undefined || !z.length) return 0;\n\n if(Lib.isArray1D(traceIn.z)) {\n x = coerce(xName);\n y = coerce(yName);\n\n var xlen = Lib.minRowLength(x);\n var ylen = Lib.minRowLength(y);\n\n // column z must be accompanied by xName and yName arrays\n if(xlen === 0 || ylen === 0) return 0;\n\n traceOut._length = Math.min(xlen, ylen, z.length);\n } else {\n x = coordDefaults(xName, coerce);\n y = coordDefaults(yName, coerce);\n\n // TODO put z validation elsewhere\n if(!isValidZ(z)) return 0;\n\n coerce('transpose');\n\n traceOut._length = null;\n }\n\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');\n handleCalendarDefaults(traceIn, traceOut, [xName, yName], layout);\n\n return true;\n};\n\nfunction coordDefaults(coordStr, coerce) {\n var coord = coerce(coordStr);\n var coordType = coord ? coerce(coordStr + 'type', 'array') : 'scaled';\n\n if(coordType === 'scaled') {\n coerce(coordStr + '0');\n coerce('d' + coordStr);\n }\n\n return coord;\n}\n\nfunction isValidZ(z) {\n var allRowsAreArrays = true;\n var oneRowIsFilled = false;\n var hasOneNumber = false;\n var zi;\n\n /*\n * Without this step:\n *\n * hasOneNumber = false breaks contour but not heatmap\n * allRowsAreArrays = false breaks contour but not heatmap\n * oneRowIsFilled = false breaks both\n */\n\n for(var i = 0; i < z.length; i++) {\n zi = z[i];\n if(!Lib.isArrayOrTypedArray(zi)) {\n allRowsAreArrays = false;\n break;\n }\n if(zi.length > 0) oneRowIsFilled = true;\n for(var j = 0; j < zi.length; j++) {\n if(isNumeric(zi[j])) {\n hasOneNumber = true;\n break;\n }\n }\n }\n\n return (allRowsAreArrays && oneRowIsFilled && hasOneNumber);\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar colorscaleDefaults = require('../../components/colorscale/defaults');\nvar handleLabelDefaults = require('./label_defaults');\n\n\nmodule.exports = function handleStyleDefaults(traceIn, traceOut, coerce, layout, opts) {\n var coloring = coerce('contours.coloring');\n\n var showLines;\n var lineColor = '';\n if(coloring === 'fill') showLines = coerce('contours.showlines');\n\n if(showLines !== false) {\n if(coloring !== 'lines') lineColor = coerce('line.color', '#000');\n coerce('line.width', 0.5);\n coerce('line.dash');\n }\n\n if(coloring !== 'none') {\n // plots/plots always coerces showlegend to true, but in this case\n // we default to false and (by default) show a colorbar instead\n if(traceIn.showlegend !== true) traceOut.showlegend = false;\n traceOut._dfltShowLegend = false;\n\n colorscaleDefaults(\n traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'}\n );\n }\n\n coerce('line.smoothing');\n\n handleLabelDefaults(coerce, layout, lineColor, opts);\n};\n","module.exports = rotateX;\n\n/**\n * Rotate a 3D vector around the x-axis\n * @param {vec3} out The receiving vec3\n * @param {vec3} a The vec3 point to rotate\n * @param {vec3} b The origin of the rotation\n * @param {Number} c The angle of rotation\n * @returns {vec3} out\n */\nfunction rotateX(out, a, b, c){\n var by = b[1]\n var bz = b[2]\n\n // Translate point to the origin\n var py = a[1] - by\n var pz = a[2] - bz\n\n var sc = Math.sin(c)\n var cc = Math.cos(c)\n\n // perform rotation and translate to correct position\n out[0] = a[0]\n out[1] = by + py * cc - pz * sc\n out[2] = bz + py * sc + pz * cc\n\n return out\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Registry = require('../registry');\n\nexports.getDelay = function(fullLayout) {\n if(!fullLayout._has) return 0;\n\n return (\n fullLayout._has('gl3d') ||\n fullLayout._has('gl2d') ||\n fullLayout._has('mapbox')\n ) ? 500 : 0;\n};\n\nexports.getRedrawFunc = function(gd) {\n return function() {\n var fullLayout = gd._fullLayout || {};\n var hasPolar = fullLayout._has && fullLayout._has('polar');\n var hasLegacyPolar = !hasPolar && gd.data && gd.data[0] && gd.data[0].r;\n\n if(!hasLegacyPolar) {\n Registry.getComponentMethod('colorbar', 'draw')(gd);\n }\n };\n};\n\nexports.encodeSVG = function(svg) {\n return 'data:image/svg+xml,' + encodeURIComponent(svg);\n};\n\nvar DOM_URL = window.URL || window.webkitURL;\n\nexports.createObjectURL = function(blob) {\n return DOM_URL.createObjectURL(blob);\n};\n\nexports.revokeObjectURL = function(url) {\n return DOM_URL.revokeObjectURL(url);\n};\n\nexports.createBlob = function(url, format) {\n if(format === 'svg') {\n return new window.Blob([url], {type: 'image/svg+xml;charset=utf-8'});\n } else {\n var binary = fixBinary(window.atob(url));\n return new window.Blob([binary], {type: 'image/' + format});\n }\n};\n\nexports.octetStream = function(s) {\n document.location.href = 'data:application/octet-stream' + s;\n};\n\n// Taken from https://bl.ocks.org/nolanlawson/0eac306e4dac2114c752\nfunction fixBinary(b) {\n var len = b.length;\n var buf = new ArrayBuffer(len);\n var arr = new Uint8Array(buf);\n for(var i = 0; i < len; i++) {\n arr[i] = b.charCodeAt(i);\n }\n return buf;\n}\n\nexports.IMAGE_URL_PREFIX = /^data:image\\/\\w+;base64,/;\n\nexports.MSG_IE_BAD_FORMAT = 'Sorry IE does not support downloading from canvas. Try {format:\\'svg\\'} instead.';\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\n\n// arrayOk attributes, merge them into calcdata array\nmodule.exports = function arraysToCalcdata(cd, trace) {\n for(var i = 0; i < cd.length; i++) cd[i].i = i;\n\n Lib.mergeArray(trace.text, cd, 'tx');\n Lib.mergeArray(trace.hovertext, cd, 'htx');\n\n var marker = trace.marker;\n if(marker) {\n Lib.mergeArray(marker.opacity, cd, 'mo', true);\n Lib.mergeArray(marker.color, cd, 'mc');\n\n var markerLine = marker.line;\n if(markerLine) {\n Lib.mergeArray(markerLine.color, cd, 'mlc');\n Lib.mergeArrayCastPositive(markerLine.width, cd, 'mlw');\n }\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = function makeBinAttrs(axLetter, match) {\n return {\n start: {\n valType: 'any', // for date axes\n \n editType: 'calc',\n \n },\n end: {\n valType: 'any', // for date axes\n \n editType: 'calc',\n \n },\n size: {\n valType: 'any', // for date axes\n \n editType: 'calc',\n \n },\n editType: 'calc'\n };\n};\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"css-element-queries/src/ResizeSensor.js\"),require(\"lodash.debounce\")):\"function\"==typeof define&&define.amd?define([\"css-element-queries/src/ResizeSensor.js\",\"lodash.debounce\"],e):\"object\"==typeof exports?exports.Vueresize=e(require(\"css-element-queries/src/ResizeSensor.js\"),require(\"lodash.debounce\")):t.Vueresize=e(t.ResizeSensor,t._)}(this,function(t,e){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p=\"/\",e(0)}([function(t,e,n){var r,o,i;!function(s,u){o=[t,e,n(10),n(38),n(39),n(9),n(37)],r=u,i=\"function\"==typeof r?r.apply(e,o):r,!(void 0!==i&&(t.exports=i))}(this,function(t,e,n,r,o){\"use strict\";function i(t){return t&&t.__esModule?t:{default:t}}function s(t){if(!t)return{delay:_,initial:!1};var e=t.initial,n=void 0!==e&&e,r=(0,h.default)(t).map(function(t){return parseInt(t)}).find(function(t){return!isNaN(t)});return r=r||_,{delay:r,initial:n}}function u(t,e){var n={root:document.documentElement},r=new IntersectionObserver(function(t,n){t.forEach(function(t){t.isIntersecting&&(e(),n.disconnect())})},n);return r.observe(t),r}function c(t,e){var n=e.value,r=e.arg,o=e.options,i=function(){return n(t)};switch(r){case\"debounce\":i=v(function(){return n(t)},o.delay);break;case\"throttle\":i=v(function(){return n(t)},o.delay,{leading:!0,trailing:!0,maxWait:o.delay})}var s=new l.default(t,i);return o.initial&&n(t),s}function a(t,e,n){var r=e.value,o=e.arg,i=e.modifiers,h=n.context;if(!r||\"function\"!=typeof r)return void console.warn(\"v-resize should received a function as value\");var l=s(i);return h&&h.$el===t&&h.$once(\"hook:deactivated\",function(){f(t),h.$once(\"hook:activated\",function(){a(t,{value:r,arg:o,modifiers:i},{context:h})})}),t.offsetParent?void c(t,{value:r,arg:o,options:l}):(l.initial=!0,void(t.__visibility__listener__=u(t,function(){return c(t,{value:r,arg:o,options:l})})))}function f(t){t.__visibility__listener__&&t.__visibility__listener__.disconnect(),t.resizeSensor&&l.default.detach(t)}Object.defineProperty(e,\"__esModule\",{value:!0});var h=i(n),l=i(r),p=i(o),d=p.default.debounce,v=void 0===d?p.default:d,_=150;e.default={inserted:a,unbind:f},t.exports=e.default})},function(t,e){var n=t.exports={version:\"2.4.0\"};\"number\"==typeof __e&&(__e=n)},function(t,e,n){t.exports=!n(3)(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e){var n=t.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=n)},function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(23),o=n(6);t.exports=function(t){return r(o(t))}},function(t,e,n){var r,o,i;!function(n,s){o=[],r=s,i=\"function\"==typeof r?r.apply(e,o):r,!(void 0!==i&&(t.exports=i))}(this,function(){\"use strict\";Array.prototype.find||Object.defineProperty(Array.prototype,\"find\",{value:function(t){if(null==this)throw new TypeError('\"this\" is null or not defined');var e=Object(this),n=e.length>>>0;if(\"function\"!=typeof t)throw new TypeError(\"predicate must be a function\");for(var r=arguments[1],o=0;of;)if(u=c[f++],u!=u)return!0}else for(;a>f;f++)if((t||f in c)&&c[f]===n)return t||f||0;return!t&&-1}}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(12);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(5),o=n(4).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,e){t.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},function(t,e,n){var r=n(4),o=n(1),i=n(16),s=n(21),u=\"prototype\",c=function(t,e,n){var a,f,h,l=t&c.F,p=t&c.G,d=t&c.S,v=t&c.P,_=t&c.B,y=t&c.W,g=p?o:o[e]||(o[e]={}),b=g[u],m=p?r:d?r[e]:(r[e]||{})[u];p&&(n=e);for(a in n)f=!l&&m&&void 0!==m[a],f&&a in g||(h=f?m[a]:n[a],g[a]=p&&\"function\"!=typeof m[a]?n[a]:_&&f?i(h,r):y&&m[a]==h?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e[u]=t[u],e}(h):v&&\"function\"==typeof h?i(Function.call,h):h,v&&((g.virtual||(g.virtual={}))[a]=h,t&c.R&&b&&!b[a]&&s(b,a,h)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(24),o=n(28);t.exports=n(2)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){t.exports=!n(2)&&!n(3)(function(){return 7!=Object.defineProperty(n(17)(\"div\"),\"a\",{get:function(){return 7}}).a})},function(t,e,n){var r=n(15);t.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(t){return\"String\"==r(t)?t.split(\"\"):Object(t)}},function(t,e,n){var r=n(13),o=n(22),i=n(34),s=Object.defineProperty;e.f=n(2)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return s(t,e,n)}catch(t){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(20),o=n(8),i=n(14)(!1),s=n(29)(\"IE_PROTO\");t.exports=function(t,e){var n,u=o(t),c=0,a=[];for(n in u)n!=s&&r(u,n)&&a.push(n);for(;e.length>c;)r(u,n=e[c++])&&(~i(a,n)||a.push(n));return a}},function(t,e,n){var r=n(25),o=n(18);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e,n){var r=n(19),o=n(1),i=n(3);t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],s={};s[t]=e(n),r(r.S+r.F*i(function(){n(1)}),\"Object\",s)}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var r=n(30)(\"keys\"),o=n(35);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e,n){var r=n(4),o=\"__core-js_shared__\",i=r[o]||(r[o]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,e,n){var r=n(7),o=Math.max,i=Math.min;t.exports=function(t,e){return t=r(t),t<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(7),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(6);t.exports=function(t){return Object(r(t))}},function(t,e,n){var r=n(5);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\".concat(void 0===t?\"\":t,\")_\",(++n+r).toString(36))}},function(t,e,n){var r=n(33),o=n(26);n(27)(\"keys\",function(){return function(t){return o(r(t))}})},function(t,e){!function(t,e){\"use strict\";function n(t){this.time=t.time,this.target=t.target,this.rootBounds=t.rootBounds,this.boundingClientRect=t.boundingClientRect,this.intersectionRect=t.intersectionRect||f(),this.isIntersecting=!!t.intersectionRect;var e=this.boundingClientRect,n=e.width*e.height,r=this.intersectionRect,o=r.width*r.height;n?this.intersectionRatio=o/n:this.intersectionRatio=this.isIntersecting?1:0}function r(t,e){var n=e||{};if(\"function\"!=typeof t)throw new Error(\"callback must be a function\");if(n.root&&1!=n.root.nodeType)throw new Error(\"root must be an Element\");this._checkForIntersections=i(this._checkForIntersections.bind(this),this.THROTTLE_TIMEOUT),this._callback=t,this._observationTargets=[],this._queuedEntries=[],this._rootMarginValues=this._parseRootMargin(n.rootMargin),this.thresholds=this._initThresholds(n.threshold),this.root=n.root||null,this.rootMargin=this._rootMarginValues.map(function(t){return t.value+t.unit}).join(\" \")}function o(){return t.performance&&performance.now&&performance.now()}function i(t,e){var n=null;return function(){n||(n=setTimeout(function(){t(),n=null},e))}}function s(t,e,n,r){\"function\"==typeof t.addEventListener?t.addEventListener(e,n,r||!1):\"function\"==typeof t.attachEvent&&t.attachEvent(\"on\"+e,n)}function u(t,e,n,r){\"function\"==typeof t.removeEventListener?t.removeEventListener(e,n,r||!1):\"function\"==typeof t.detatchEvent&&t.detatchEvent(\"on\"+e,n)}function c(t,e){var n=Math.max(t.top,e.top),r=Math.min(t.bottom,e.bottom),o=Math.max(t.left,e.left),i=Math.min(t.right,e.right),s=i-o,u=r-n;return s>=0&&u>=0&&{top:n,bottom:r,left:o,right:i,width:s,height:u}}function a(t){var e;try{e=t.getBoundingClientRect()}catch(t){}return e?(e.width&&e.height||(e={top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.right-e.left,height:e.bottom-e.top}),e):f()}function f(){return{top:0,bottom:0,left:0,right:0,width:0,height:0}}function h(t,e){for(var n=e;n;){if(n==t)return!0;n=l(n)}return!1}function l(t){var e=t.parentNode;return e&&11==e.nodeType&&e.host?e.host:e}if(\"IntersectionObserver\"in t&&\"IntersectionObserverEntry\"in t&&\"intersectionRatio\"in t.IntersectionObserverEntry.prototype)return void(\"isIntersecting\"in t.IntersectionObserverEntry.prototype||Object.defineProperty(t.IntersectionObserverEntry.prototype,\"isIntersecting\",{get:function(){return this.intersectionRatio>0}}));var p=[];r.prototype.THROTTLE_TIMEOUT=100,r.prototype.POLL_INTERVAL=null,r.prototype.USE_MUTATION_OBSERVER=!0,r.prototype.observe=function(t){var e=this._observationTargets.some(function(e){return e.element==t});if(!e){if(!t||1!=t.nodeType)throw new Error(\"target must be an Element\");this._registerInstance(),this._observationTargets.push({element:t,entry:null}),this._monitorIntersections(),this._checkForIntersections()}},r.prototype.unobserve=function(t){this._observationTargets=this._observationTargets.filter(function(e){return e.element!=t}),this._observationTargets.length||(this._unmonitorIntersections(),this._unregisterInstance())},r.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorIntersections(),this._unregisterInstance()},r.prototype.takeRecords=function(){var t=this._queuedEntries.slice();return this._queuedEntries=[],t},r.prototype._initThresholds=function(t){var e=t||[0];return Array.isArray(e)||(e=[e]),e.sort().filter(function(t,e,n){if(\"number\"!=typeof t||isNaN(t)||t<0||t>1)throw new Error(\"threshold must be a number between 0 and 1 inclusively\");return t!==n[e-1]})},r.prototype._parseRootMargin=function(t){var e=t||\"0px\",n=e.split(/\\s+/).map(function(t){var e=/^(-?\\d*\\.?\\d+)(px|%)$/.exec(t);if(!e)throw new Error(\"rootMargin must be specified in pixels or percent\");return{value:parseFloat(e[1]),unit:e[2]}});return n[1]=n[1]||n[0],n[2]=n[2]||n[0],n[3]=n[3]||n[1],n},r.prototype._monitorIntersections=function(){this._monitoringIntersections||(this._monitoringIntersections=!0,this.POLL_INTERVAL?this._monitoringInterval=setInterval(this._checkForIntersections,this.POLL_INTERVAL):(s(t,\"resize\",this._checkForIntersections,!0),s(e,\"scroll\",this._checkForIntersections,!0),this.USE_MUTATION_OBSERVER&&\"MutationObserver\"in t&&(this._domObserver=new MutationObserver(this._checkForIntersections),this._domObserver.observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0}))))},r.prototype._unmonitorIntersections=function(){this._monitoringIntersections&&(this._monitoringIntersections=!1,clearInterval(this._monitoringInterval),this._monitoringInterval=null,u(t,\"resize\",this._checkForIntersections,!0),u(e,\"scroll\",this._checkForIntersections,!0),this._domObserver&&(this._domObserver.disconnect(),this._domObserver=null))},r.prototype._checkForIntersections=function(){var t=this._rootIsInDom(),e=t?this._getRootRect():f();this._observationTargets.forEach(function(r){var i=r.element,s=a(i),u=this._rootContainsTarget(i),c=r.entry,f=t&&u&&this._computeTargetAndRootIntersection(i,e),h=r.entry=new n({time:o(),target:i,boundingClientRect:s,rootBounds:e,intersectionRect:f});c?t&&u?this._hasCrossedThreshold(c,h)&&this._queuedEntries.push(h):c&&c.isIntersecting&&this._queuedEntries.push(h):this._queuedEntries.push(h)},this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)},r.prototype._computeTargetAndRootIntersection=function(n,r){if(\"none\"!=t.getComputedStyle(n).display){for(var o=a(n),i=o,s=l(n),u=!1;!u;){var f=null,h=1==s.nodeType?t.getComputedStyle(s):{};if(\"none\"==h.display)return;if(s==this.root||s==e?(u=!0,f=r):s!=e.body&&s!=e.documentElement&&\"visible\"!=h.overflow&&(f=a(s)),f&&(i=c(f,i),!i))break;s=l(s)}return i}},r.prototype._getRootRect=function(){var t;if(this.root)t=a(this.root);else{var n=e.documentElement,r=e.body;t={top:0,left:0,right:n.clientWidth||r.clientWidth,width:n.clientWidth||r.clientWidth,bottom:n.clientHeight||r.clientHeight,height:n.clientHeight||r.clientHeight}}return this._expandRectByRootMargin(t)},r.prototype._expandRectByRootMargin=function(t){var e=this._rootMarginValues.map(function(e,n){return\"px\"==e.unit?e.value:e.value*(n%2?t.width:t.height)/100}),n={top:t.top-e[0],right:t.right+e[1],bottom:t.bottom+e[2],left:t.left-e[3]};return n.width=n.right-n.left,n.height=n.bottom-n.top,n},r.prototype._hasCrossedThreshold=function(t,e){var n=t&&t.isIntersecting?t.intersectionRatio||0:-1,r=e.isIntersecting?e.intersectionRatio||0:-1;if(n!==r)for(var o=0;o allPositions[k] && k < allPositions.length; k++) {\n // the current trace is missing a position from some previous trace(s)\n insertBlank(cd, j, allPositions[k], i, hasAnyBlanks, interpolate, posAttr);\n j++;\n }\n if(posj !== allPositions[k]) {\n // previous trace(s) are missing a position from the current trace\n for(i2 = 0; i2 < i; i2++) {\n insertBlank(calcTraces[indices[i2]], k, posj, i2, hasAnyBlanks, interpolate, posAttr);\n }\n allPositions.splice(k, 0, posj);\n }\n k++;\n }\n for(; k < allPositions.length; k++) {\n insertBlank(cd, j, allPositions[k], i, hasAnyBlanks, interpolate, posAttr);\n j++;\n }\n }\n\n var serieslen = allPositions.length;\n\n // stack (and normalize)!\n for(j = 0; j < cd0.length; j++) {\n sumj = cd0[j][valAttr] = cd0[j].s;\n for(i = 1; i < indices.length; i++) {\n cd = calcTraces[indices[i]];\n cd[0].trace._rawLength = cd[0].trace._length;\n cd[0].trace._length = serieslen;\n sumj += cd[j].s;\n cd[j][valAttr] = sumj;\n }\n\n if(groupnorm) {\n norm = ((groupnorm === 'fraction') ? sumj : (sumj / 100)) || 1;\n for(i = 0; i < indices.length; i++) {\n var cdj = calcTraces[indices[i]][j];\n cdj[valAttr] /= norm;\n cdj.sNorm = cdj.s / norm;\n }\n }\n }\n\n // autorange\n for(i = 0; i < indices.length; i++) {\n cd = calcTraces[indices[i]];\n var trace = cd[0].trace;\n var ppad = calc.calcMarkerSize(trace, trace._rawLength);\n var arrayPad = Array.isArray(ppad);\n if((ppad && hasAnyBlanks[i]) || arrayPad) {\n var ppadRaw = ppad;\n ppad = new Array(serieslen);\n for(j = 0; j < serieslen; j++) {\n ppad[j] = cd[j].gap ? 0 : (arrayPad ? ppadRaw[cd[j].i] : ppadRaw);\n }\n }\n var x = new Array(serieslen);\n var y = new Array(serieslen);\n for(j = 0; j < serieslen; j++) {\n x[j] = cd[j].x;\n y[j] = cd[j].y;\n }\n calc.calcAxisExpansion(gd, trace, xa, ya, x, y, ppad);\n\n // while we're here (in a loop over all traces in the stack)\n // record the orientation, so hover can find it easily\n cd[0].t.orientation = groupOpts.orientation;\n }\n }\n};\n\nfunction insertBlank(calcTrace, index, position, traceIndex, hasAnyBlanks, interpolate, posAttr) {\n hasAnyBlanks[traceIndex] = true;\n var newEntry = {\n i: null,\n gap: true,\n s: 0\n };\n newEntry[posAttr] = position;\n calcTrace.splice(index, 0, newEntry);\n // Even if we're not interpolating, if one trace has multiple\n // values at the same position and this trace only has one value there,\n // we just duplicate that one value rather than insert a zero.\n // We also make it look like a real point - because it's ambiguous which\n // one really is the real one!\n if(index && position === calcTrace[index - 1][posAttr]) {\n var prevEntry = calcTrace[index - 1];\n newEntry.s = prevEntry.s;\n // TODO is it going to cause any problems to have multiple\n // calcdata points with the same index?\n newEntry.i = prevEntry.i;\n newEntry.gap = prevEntry.gap;\n } else if(interpolate) {\n newEntry.s = getInterp(calcTrace, index, position, posAttr);\n }\n if(!index) {\n // t and trace need to stay on the first cd entry\n calcTrace[0].t = calcTrace[1].t;\n calcTrace[0].trace = calcTrace[1].trace;\n delete calcTrace[1].t;\n delete calcTrace[1].trace;\n }\n}\n\nfunction getInterp(calcTrace, index, position, posAttr) {\n var pt0 = calcTrace[index - 1];\n var pt1 = calcTrace[index + 1];\n if(!pt1) return pt0.s;\n if(!pt0) return pt1.s;\n return pt0.s + (pt1.s - pt0.s) * (position - pt0[posAttr]) / (pt1[posAttr] - pt0[posAttr]);\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar isArrayOrTypedArray = require('./array').isArrayOrTypedArray;\nvar isPlainObject = require('./is_plain_object');\n\n/**\n * Relink private _keys and keys with a function value from one container\n * to the new container.\n * Relink means copying if object is pass-by-value and adding a reference\n * if object is pass-by-ref.\n * This prevents deepCopying massive structures like a webgl context.\n */\nmodule.exports = function relinkPrivateKeys(toContainer, fromContainer) {\n for(var k in fromContainer) {\n var fromVal = fromContainer[k];\n var toVal = toContainer[k];\n\n if(toVal === fromVal) {\n continue;\n }\n if(k.charAt(0) === '_' || typeof fromVal === 'function') {\n // if it already exists at this point, it's something\n // that we recreate each time around, so ignore it\n if(k in toContainer) continue;\n\n toContainer[k] = fromVal;\n } else if(isArrayOrTypedArray(fromVal) && isArrayOrTypedArray(toVal) && isPlainObject(fromVal[0])) {\n // filter out data_array items that can contain user objects\n // most of the time the toVal === fromVal check will catch these early\n // but if the user makes new ones we also don't want to recurse in.\n if(k === 'customdata' || k === 'ids') continue;\n\n // recurse into arrays containers\n var minLen = Math.min(fromVal.length, toVal.length);\n for(var j = 0; j < minLen; j++) {\n if((toVal[j] !== fromVal[j]) && isPlainObject(fromVal[j]) && isPlainObject(toVal[j])) {\n relinkPrivateKeys(toVal[j], fromVal[j]);\n }\n }\n } else if(isPlainObject(fromVal) && isPlainObject(toVal)) {\n // recurse into objects, but only if they still exist\n relinkPrivateKeys(toVal, fromVal);\n\n if(!Object.keys(toVal).length) delete toContainer[k];\n }\n }\n};\n","exports.nextTick = function nextTick(fn) {\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n setTimeout(function () {\n fn.apply(null, args);\n }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n var cwd = '/';\n var path;\n exports.cwd = function () { return cwd };\n exports.chdir = function (dir) {\n if (!path) path = require('path');\n cwd = path.resolve(dir, cwd);\n };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\n","\"use strict\"\n\nvar bounds = require(\"binary-search-bounds\")\n\nvar NOT_FOUND = 0\nvar SUCCESS = 1\nvar EMPTY = 2\n\nmodule.exports = createWrapper\n\nfunction IntervalTreeNode(mid, left, right, leftPoints, rightPoints) {\n this.mid = mid\n this.left = left\n this.right = right\n this.leftPoints = leftPoints\n this.rightPoints = rightPoints\n this.count = (left ? left.count : 0) + (right ? right.count : 0) + leftPoints.length\n}\n\nvar proto = IntervalTreeNode.prototype\n\nfunction copy(a, b) {\n a.mid = b.mid\n a.left = b.left\n a.right = b.right\n a.leftPoints = b.leftPoints\n a.rightPoints = b.rightPoints\n a.count = b.count\n}\n\nfunction rebuild(node, intervals) {\n var ntree = createIntervalTree(intervals)\n node.mid = ntree.mid\n node.left = ntree.left\n node.right = ntree.right\n node.leftPoints = ntree.leftPoints\n node.rightPoints = ntree.rightPoints\n node.count = ntree.count\n}\n\nfunction rebuildWithInterval(node, interval) {\n var intervals = node.intervals([])\n intervals.push(interval)\n rebuild(node, intervals) \n}\n\nfunction rebuildWithoutInterval(node, interval) {\n var intervals = node.intervals([])\n var idx = intervals.indexOf(interval)\n if(idx < 0) {\n return NOT_FOUND\n }\n intervals.splice(idx, 1)\n rebuild(node, intervals)\n return SUCCESS\n}\n\nproto.intervals = function(result) {\n result.push.apply(result, this.leftPoints)\n if(this.left) {\n this.left.intervals(result)\n }\n if(this.right) {\n this.right.intervals(result)\n }\n return result\n}\n\nproto.insert = function(interval) {\n var weight = this.count - this.leftPoints.length\n this.count += 1\n if(interval[1] < this.mid) {\n if(this.left) {\n if(4*(this.left.count+1) > 3*(weight+1)) {\n rebuildWithInterval(this, interval)\n } else {\n this.left.insert(interval)\n }\n } else {\n this.left = createIntervalTree([interval])\n }\n } else if(interval[0] > this.mid) {\n if(this.right) {\n if(4*(this.right.count+1) > 3*(weight+1)) {\n rebuildWithInterval(this, interval)\n } else {\n this.right.insert(interval)\n }\n } else {\n this.right = createIntervalTree([interval])\n }\n } else {\n var l = bounds.ge(this.leftPoints, interval, compareBegin)\n var r = bounds.ge(this.rightPoints, interval, compareEnd)\n this.leftPoints.splice(l, 0, interval)\n this.rightPoints.splice(r, 0, interval)\n }\n}\n\nproto.remove = function(interval) {\n var weight = this.count - this.leftPoints\n if(interval[1] < this.mid) {\n if(!this.left) {\n return NOT_FOUND\n }\n var rw = this.right ? this.right.count : 0\n if(4 * rw > 3 * (weight-1)) {\n return rebuildWithoutInterval(this, interval)\n }\n var r = this.left.remove(interval)\n if(r === EMPTY) {\n this.left = null\n this.count -= 1\n return SUCCESS\n } else if(r === SUCCESS) {\n this.count -= 1\n }\n return r\n } else if(interval[0] > this.mid) {\n if(!this.right) {\n return NOT_FOUND\n }\n var lw = this.left ? this.left.count : 0\n if(4 * lw > 3 * (weight-1)) {\n return rebuildWithoutInterval(this, interval)\n }\n var r = this.right.remove(interval)\n if(r === EMPTY) {\n this.right = null\n this.count -= 1\n return SUCCESS\n } else if(r === SUCCESS) {\n this.count -= 1\n }\n return r\n } else {\n if(this.count === 1) {\n if(this.leftPoints[0] === interval) {\n return EMPTY\n } else {\n return NOT_FOUND\n }\n }\n if(this.leftPoints.length === 1 && this.leftPoints[0] === interval) {\n if(this.left && this.right) {\n var p = this\n var n = this.left\n while(n.right) {\n p = n\n n = n.right\n }\n if(p === this) {\n n.right = this.right\n } else {\n var l = this.left\n var r = this.right\n p.count -= n.count\n p.right = n.left\n n.left = l\n n.right = r\n }\n copy(this, n)\n this.count = (this.left?this.left.count:0) + (this.right?this.right.count:0) + this.leftPoints.length\n } else if(this.left) {\n copy(this, this.left)\n } else {\n copy(this, this.right)\n }\n return SUCCESS\n }\n for(var l = bounds.ge(this.leftPoints, interval, compareBegin); l=0 && arr[i][1] >= lo; --i) {\n var r = cb(arr[i])\n if(r) { return r }\n }\n}\n\nfunction reportRange(arr, cb) {\n for(var i=0; i this.mid) {\n if(this.right) {\n var r = this.right.queryPoint(x, cb)\n if(r) { return r }\n }\n return reportRightRange(this.rightPoints, x, cb)\n } else {\n return reportRange(this.leftPoints, cb)\n }\n}\n\nproto.queryInterval = function(lo, hi, cb) {\n if(lo < this.mid && this.left) {\n var r = this.left.queryInterval(lo, hi, cb)\n if(r) { return r }\n }\n if(hi > this.mid && this.right) {\n var r = this.right.queryInterval(lo, hi, cb)\n if(r) { return r }\n }\n if(hi < this.mid) {\n return reportLeftRange(this.leftPoints, hi, cb)\n } else if(lo > this.mid) {\n return reportRightRange(this.rightPoints, lo, cb)\n } else {\n return reportRange(this.leftPoints, cb)\n }\n}\n\nfunction compareNumbers(a, b) {\n return a - b\n}\n\nfunction compareBegin(a, b) {\n var d = a[0] - b[0]\n if(d) { return d }\n return a[1] - b[1]\n}\n\nfunction compareEnd(a, b) {\n var d = a[1] - b[1]\n if(d) { return d }\n return a[0] - b[0]\n}\n\nfunction createIntervalTree(intervals) {\n if(intervals.length === 0) {\n return null\n }\n var pts = []\n for(var i=0; i>1]\n\n var leftIntervals = []\n var rightIntervals = []\n var centerIntervals = []\n for(var i=0; i= bbox.left && e.clientX <= bbox.right &&\n e.clientY >= bbox.top && e.clientY <= bbox.bottom\n );\n });\n if(clickedTrace.size() > 0) {\n clickOrDoubleClick(gd, legend, clickedTrace, numClicks, e);\n }\n }\n });\n }\n }], gd);\n};\n\nfunction clickOrDoubleClick(gd, legend, legendItem, numClicks, evt) {\n var trace = legendItem.data()[0][0].trace;\n var evtData = {\n event: evt,\n node: legendItem.node(),\n curveNumber: trace.index,\n expandedIndex: trace._expandedIndex,\n data: gd.data,\n layout: gd.layout,\n frames: gd._transitionData._frames,\n config: gd._context,\n fullData: gd._fullData,\n fullLayout: gd._fullLayout\n };\n\n if(trace._group) {\n evtData.group = trace._group;\n }\n if(Registry.traceIs(trace, 'pie-like')) {\n evtData.label = legendItem.datum()[0].label;\n }\n\n var clickVal = Events.triggerHandler(gd, 'plotly_legendclick', evtData);\n if(clickVal === false) return;\n\n if(numClicks === 1) {\n legend._clickTimeout = setTimeout(function() {\n handleClick(legendItem, gd, numClicks);\n }, gd._context.doubleClickDelay);\n } else if(numClicks === 2) {\n if(legend._clickTimeout) clearTimeout(legend._clickTimeout);\n gd._legendMouseDownTime = 0;\n\n var dblClickVal = Events.triggerHandler(gd, 'plotly_legenddoubleclick', evtData);\n if(dblClickVal !== false) handleClick(legendItem, gd, numClicks);\n }\n}\n\nfunction drawTexts(g, gd) {\n var legendItem = g.data()[0][0];\n var fullLayout = gd._fullLayout;\n var opts = fullLayout.legend;\n var trace = legendItem.trace;\n var isPieLike = Registry.traceIs(trace, 'pie-like');\n var traceIndex = trace.index;\n var isEditable = gd._context.edits.legendText && !isPieLike;\n var maxNameLength = opts._maxNameLength;\n\n var name = isPieLike ? legendItem.label : trace.name;\n if(trace._meta) {\n name = Lib.templateString(name, trace._meta);\n }\n\n var textEl = Lib.ensureSingle(g, 'text', 'legendtext');\n\n textEl.attr('text-anchor', 'start')\n .classed('user-select-none', true)\n .call(Drawing.font, opts.font)\n .text(isEditable ? ensureLength(name, maxNameLength) : name);\n\n svgTextUtils.positionText(textEl, constants.textGap, 0);\n\n if(isEditable) {\n textEl.call(svgTextUtils.makeEditable, {gd: gd, text: name})\n .call(textLayout, g, gd)\n .on('edit', function(newName) {\n this.text(ensureLength(newName, maxNameLength))\n .call(textLayout, g, gd);\n\n var fullInput = legendItem.trace._fullInput || {};\n var update = {};\n\n if(Registry.hasTransform(fullInput, 'groupby')) {\n var groupbyIndices = Registry.getTransformIndices(fullInput, 'groupby');\n var index = groupbyIndices[groupbyIndices.length - 1];\n\n var kcont = Lib.keyedContainer(fullInput, 'transforms[' + index + '].styles', 'target', 'value.name');\n\n kcont.set(legendItem.trace._group, newName);\n\n update = kcont.constructUpdate();\n } else {\n update.name = newName;\n }\n\n return Registry.call('_guiRestyle', gd, update, traceIndex);\n });\n } else {\n textLayout(textEl, g, gd);\n }\n}\n\n/*\n * Make sure we have a reasonably clickable region.\n * If this string is missing or very short, pad it with spaces out to at least\n * 4 characters, up to the max length of other labels, on the assumption that\n * most characters are wider than spaces so a string of spaces will usually be\n * no wider than the real labels.\n */\nfunction ensureLength(str, maxLength) {\n var targetLength = Math.max(4, maxLength);\n if(str && str.trim().length >= targetLength / 2) return str;\n str = str || '';\n for(var i = targetLength - str.length; i > 0; i--) str += ' ';\n return str;\n}\n\nfunction setupTraceToggle(g, gd) {\n var doubleClickDelay = gd._context.doubleClickDelay;\n var newMouseDownTime;\n var numClicks = 1;\n\n var traceToggle = Lib.ensureSingle(g, 'rect', 'legendtoggle', function(s) {\n s.style('cursor', 'pointer')\n .attr('pointer-events', 'all')\n .call(Color.fill, 'rgba(0,0,0,0)');\n });\n\n traceToggle.on('mousedown', function() {\n newMouseDownTime = (new Date()).getTime();\n if(newMouseDownTime - gd._legendMouseDownTime < doubleClickDelay) {\n // in a click train\n numClicks += 1;\n } else {\n // new click train\n numClicks = 1;\n gd._legendMouseDownTime = newMouseDownTime;\n }\n });\n traceToggle.on('mouseup', function() {\n if(gd._dragged || gd._editing) return;\n var legend = gd._fullLayout.legend;\n\n if((new Date()).getTime() - gd._legendMouseDownTime > doubleClickDelay) {\n numClicks = Math.max(numClicks - 1, 1);\n }\n\n clickOrDoubleClick(gd, legend, g, numClicks, d3.event);\n });\n}\n\nfunction textLayout(s, g, gd) {\n svgTextUtils.convertToTspans(s, gd, function() {\n computeTextDimensions(g, gd);\n });\n}\n\nfunction computeTextDimensions(g, gd) {\n var legendItem = g.data()[0][0];\n if(legendItem && !legendItem.trace.showlegend) {\n g.remove();\n return;\n }\n\n var mathjaxGroup = g.select('g[class*=math-group]');\n var mathjaxNode = mathjaxGroup.node();\n var bw = gd._fullLayout.legend.borderwidth;\n var opts = gd._fullLayout.legend;\n var lineHeight = (legendItem ? opts : opts.title).font.size * LINE_SPACING;\n var height, width;\n\n if(mathjaxNode) {\n var mathjaxBB = Drawing.bBox(mathjaxNode);\n\n height = mathjaxBB.height;\n width = mathjaxBB.width;\n\n if(legendItem) {\n Drawing.setTranslate(mathjaxGroup, 0, height * 0.25);\n } else { // case of title\n Drawing.setTranslate(mathjaxGroup, bw, height * 0.75 + bw);\n }\n } else {\n var textEl = g.select(legendItem ?\n '.legendtext' : '.legendtitletext'\n );\n var textLines = svgTextUtils.lineCount(textEl);\n var textNode = textEl.node();\n\n height = lineHeight * textLines;\n width = textNode ? Drawing.bBox(textNode).width : 0;\n\n // approximation to height offset to center the font\n // to avoid getBoundingClientRect\n var textY = lineHeight * ((textLines - 1) / 2 - 0.3);\n if(legendItem) {\n svgTextUtils.positionText(textEl, constants.textGap, -textY);\n } else { // case of title\n svgTextUtils.positionText(textEl, constants.titlePad + bw, lineHeight + bw);\n }\n }\n\n if(legendItem) {\n legendItem.lineHeight = lineHeight;\n legendItem.height = Math.max(height, 16) + 3;\n legendItem.width = width;\n } else { // case of title\n opts._titleWidth = width;\n opts._titleHeight = height;\n }\n}\n\nfunction getTitleSize(opts) {\n var w = 0;\n var h = 0;\n\n var side = opts.title.side;\n if(side) {\n if(side.indexOf('left') !== -1) {\n w = opts._titleWidth;\n }\n if(side.indexOf('top') !== -1) {\n h = opts._titleHeight;\n }\n }\n\n return [w, h];\n}\n\n/*\n * Computes in fullLayout.legend:\n *\n * - _height: legend height including items past scrollbox height\n * - _maxHeight: maximum legend height before scrollbox is required\n * - _effHeight: legend height w/ or w/o scrollbox\n *\n * - _width: legend width\n * - _maxWidth (for orientation:h only): maximum width before starting new row\n */\nfunction computeLegendDimensions(gd, groups, traces) {\n var fullLayout = gd._fullLayout;\n var opts = fullLayout.legend;\n var gs = fullLayout._size;\n\n var isVertical = helpers.isVertical(opts);\n var isGrouped = helpers.isGrouped(opts);\n\n var bw = opts.borderwidth;\n var bw2 = 2 * bw;\n var textGap = constants.textGap;\n var itemGap = constants.itemGap;\n var endPad = 2 * (bw + itemGap);\n\n var yanchor = getYanchor(opts);\n var isBelowPlotArea = opts.y < 0 || (opts.y === 0 && yanchor === 'top');\n var isAbovePlotArea = opts.y > 1 || (opts.y === 1 && yanchor === 'bottom');\n\n // - if below/above plot area, give it the maximum potential margin-push value\n // - otherwise, extend the height of the plot area\n opts._maxHeight = Math.max(\n (isBelowPlotArea || isAbovePlotArea) ? fullLayout.height / 2 : gs.h,\n 30\n );\n\n var toggleRectWidth = 0;\n opts._width = 0;\n opts._height = 0;\n var titleSize = getTitleSize(opts);\n\n if(isVertical) {\n traces.each(function(d) {\n var h = d[0].height;\n Drawing.setTranslate(this,\n bw + titleSize[0],\n bw + titleSize[1] + opts._height + h / 2 + itemGap\n );\n opts._height += h;\n opts._width = Math.max(opts._width, d[0].width);\n });\n\n toggleRectWidth = textGap + opts._width;\n opts._width += itemGap + textGap + bw2;\n opts._height += endPad;\n\n if(isGrouped) {\n groups.each(function(d, i) {\n Drawing.setTranslate(this, 0, i * opts.tracegroupgap);\n });\n opts._height += (opts._lgroupsLength - 1) * opts.tracegroupgap;\n }\n } else {\n var xanchor = getXanchor(opts);\n var isLeftOfPlotArea = opts.x < 0 || (opts.x === 0 && xanchor === 'right');\n var isRightOfPlotArea = opts.x > 1 || (opts.x === 1 && xanchor === 'left');\n var isBeyondPlotAreaY = isAbovePlotArea || isBelowPlotArea;\n var hw = fullLayout.width / 2;\n\n // - if placed within x-margins, extend the width of the plot area\n // - else if below/above plot area and anchored in the margin, extend to opposite margin,\n // - otherwise give it the maximum potential margin-push value\n opts._maxWidth = Math.max(\n isLeftOfPlotArea ? ((isBeyondPlotAreaY && xanchor === 'left') ? gs.l + gs.w : hw) :\n isRightOfPlotArea ? ((isBeyondPlotAreaY && xanchor === 'right') ? gs.r + gs.w : hw) :\n gs.w,\n 2 * textGap);\n var maxItemWidth = 0;\n var combinedItemWidth = 0;\n traces.each(function(d) {\n var w = d[0].width + textGap;\n maxItemWidth = Math.max(maxItemWidth, w);\n combinedItemWidth += w;\n });\n\n toggleRectWidth = null;\n var maxRowWidth = 0;\n\n if(isGrouped) {\n var maxGroupHeightInRow = 0;\n var groupOffsetX = 0;\n var groupOffsetY = 0;\n groups.each(function() {\n var maxWidthInGroup = 0;\n var offsetY = 0;\n d3.select(this).selectAll('g.traces').each(function(d) {\n var h = d[0].height;\n Drawing.setTranslate(this,\n titleSize[0],\n titleSize[1] + bw + itemGap + h / 2 + offsetY\n );\n offsetY += h;\n maxWidthInGroup = Math.max(maxWidthInGroup, textGap + d[0].width);\n });\n maxGroupHeightInRow = Math.max(maxGroupHeightInRow, offsetY);\n\n var next = maxWidthInGroup + itemGap;\n\n if((next + bw + groupOffsetX) > opts._maxWidth) {\n maxRowWidth = Math.max(maxRowWidth, groupOffsetX);\n groupOffsetX = 0;\n groupOffsetY += maxGroupHeightInRow + opts.tracegroupgap;\n maxGroupHeightInRow = offsetY;\n }\n\n Drawing.setTranslate(this, groupOffsetX, groupOffsetY);\n\n groupOffsetX += next;\n });\n\n opts._width = Math.max(maxRowWidth, groupOffsetX) + bw;\n opts._height = groupOffsetY + maxGroupHeightInRow + endPad;\n } else {\n var nTraces = traces.size();\n var oneRowLegend = (combinedItemWidth + bw2 + (nTraces - 1) * itemGap) < opts._maxWidth;\n\n var maxItemHeightInRow = 0;\n var offsetX = 0;\n var offsetY = 0;\n var rowWidth = 0;\n traces.each(function(d) {\n var h = d[0].height;\n var w = textGap + d[0].width;\n var next = (oneRowLegend ? w : maxItemWidth) + itemGap;\n\n if((next + bw + offsetX) > opts._maxWidth) {\n maxRowWidth = Math.max(maxRowWidth, rowWidth);\n offsetX = 0;\n offsetY += maxItemHeightInRow;\n opts._height += maxItemHeightInRow;\n maxItemHeightInRow = 0;\n }\n\n Drawing.setTranslate(this,\n titleSize[0] + bw + offsetX,\n titleSize[1] + bw + offsetY + h / 2 + itemGap\n );\n\n rowWidth = offsetX + w + itemGap;\n offsetX += next;\n maxItemHeightInRow = Math.max(maxItemHeightInRow, h);\n });\n\n if(oneRowLegend) {\n opts._width = offsetX + bw2;\n opts._height = maxItemHeightInRow + endPad;\n } else {\n opts._width = Math.max(maxRowWidth, rowWidth) + bw2;\n opts._height += maxItemHeightInRow + endPad;\n }\n }\n }\n\n opts._width = Math.ceil(\n Math.max(\n opts._width + titleSize[0],\n opts._titleWidth + 2 * (bw + constants.titlePad)\n )\n );\n\n opts._height = Math.ceil(\n Math.max(\n opts._height + titleSize[1],\n opts._titleHeight + 2 * (bw + constants.itemGap)\n )\n );\n\n opts._effHeight = Math.min(opts._height, opts._maxHeight);\n\n var edits = gd._context.edits;\n var isEditable = edits.legendText || edits.legendPosition;\n traces.each(function(d) {\n var traceToggle = d3.select(this).select('.legendtoggle');\n var h = d[0].height;\n var w = isEditable ? textGap : (toggleRectWidth || (textGap + d[0].width));\n if(!isVertical) w += itemGap / 2;\n Drawing.setRect(traceToggle, 0, -h / 2, w, h);\n });\n}\n\nfunction expandMargin(gd) {\n var fullLayout = gd._fullLayout;\n var opts = fullLayout.legend;\n var xanchor = getXanchor(opts);\n var yanchor = getYanchor(opts);\n\n return Plots.autoMargin(gd, 'legend', {\n x: opts.x,\n y: opts.y,\n l: opts._width * (FROM_TL[xanchor]),\n r: opts._width * (FROM_BR[xanchor]),\n b: opts._effHeight * (FROM_BR[yanchor]),\n t: opts._effHeight * (FROM_TL[yanchor])\n });\n}\n\nfunction getXanchor(opts) {\n return Lib.isRightAnchor(opts) ? 'right' :\n Lib.isCenterAnchor(opts) ? 'center' :\n 'left';\n}\n\nfunction getYanchor(opts) {\n return Lib.isBottomAnchor(opts) ? 'bottom' :\n Lib.isMiddleAnchor(opts) ? 'middle' :\n 'top';\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar heatmapAttrs = require('../heatmap/attributes');\nvar scatterAttrs = require('../scatter/attributes');\nvar colorScaleAttrs = require('../../components/colorscale/attributes');\nvar dash = require('../../components/drawing/attributes').dash;\nvar fontAttrs = require('../../plots/font_attributes');\nvar extendFlat = require('../../lib/extend').extendFlat;\n\nvar filterOps = require('../../constants/filter_ops');\nvar COMPARISON_OPS2 = filterOps.COMPARISON_OPS2;\nvar INTERVAL_OPS = filterOps.INTERVAL_OPS;\n\nvar FORMAT_LINK = require('../../constants/docs').FORMAT_LINK;\n\nvar scatterLineAttrs = scatterAttrs.line;\n\nmodule.exports = extendFlat({\n z: heatmapAttrs.z,\n x: heatmapAttrs.x,\n x0: heatmapAttrs.x0,\n dx: heatmapAttrs.dx,\n y: heatmapAttrs.y,\n y0: heatmapAttrs.y0,\n dy: heatmapAttrs.dy,\n text: heatmapAttrs.text,\n hovertext: heatmapAttrs.hovertext,\n transpose: heatmapAttrs.transpose,\n xtype: heatmapAttrs.xtype,\n ytype: heatmapAttrs.ytype,\n zhoverformat: heatmapAttrs.zhoverformat,\n hovertemplate: heatmapAttrs.hovertemplate,\n hoverongaps: heatmapAttrs.hoverongaps,\n connectgaps: extendFlat({}, heatmapAttrs.connectgaps, {\n \n }),\n\n fillcolor: {\n valType: 'color',\n \n editType: 'calc',\n \n },\n\n autocontour: {\n valType: 'boolean',\n dflt: true,\n \n editType: 'calc',\n impliedEdits: {\n 'contours.start': undefined,\n 'contours.end': undefined,\n 'contours.size': undefined\n },\n \n },\n ncontours: {\n valType: 'integer',\n dflt: 15,\n min: 1,\n \n editType: 'calc',\n \n },\n\n contours: {\n type: {\n valType: 'enumerated',\n values: ['levels', 'constraint'],\n dflt: 'levels',\n \n editType: 'calc',\n \n },\n start: {\n valType: 'number',\n dflt: null,\n \n editType: 'plot',\n impliedEdits: {'^autocontour': false},\n \n },\n end: {\n valType: 'number',\n dflt: null,\n \n editType: 'plot',\n impliedEdits: {'^autocontour': false},\n \n },\n size: {\n valType: 'number',\n dflt: null,\n min: 0,\n \n editType: 'plot',\n impliedEdits: {'^autocontour': false},\n \n },\n coloring: {\n valType: 'enumerated',\n values: ['fill', 'heatmap', 'lines', 'none'],\n dflt: 'fill',\n \n editType: 'calc',\n \n },\n showlines: {\n valType: 'boolean',\n dflt: true,\n \n editType: 'plot',\n \n },\n showlabels: {\n valType: 'boolean',\n dflt: false,\n \n editType: 'plot',\n \n },\n labelfont: fontAttrs({\n editType: 'plot',\n colorEditType: 'style',\n \n }),\n labelformat: {\n valType: 'string',\n dflt: '',\n \n editType: 'plot',\n \n },\n operation: {\n valType: 'enumerated',\n values: [].concat(COMPARISON_OPS2).concat(INTERVAL_OPS),\n \n dflt: '=',\n editType: 'calc',\n \n },\n value: {\n valType: 'any',\n dflt: 0,\n \n editType: 'calc',\n \n },\n editType: 'calc',\n impliedEdits: {'autocontour': false}\n },\n\n line: {\n color: extendFlat({}, scatterLineAttrs.color, {\n editType: 'style+colorbars',\n \n }),\n width: {\n valType: 'number',\n min: 0,\n \n editType: 'style+colorbars',\n \n },\n dash: dash,\n smoothing: extendFlat({}, scatterLineAttrs.smoothing, {\n \n }),\n editType: 'plot'\n }\n},\n colorScaleAttrs('', {\n cLetter: 'z',\n autoColorDflt: false,\n editTypeOverride: 'calc'\n })\n);\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar main = require('./plot_api');\n\nexports.plot = main.plot;\nexports.newPlot = main.newPlot;\nexports.restyle = main.restyle;\nexports.relayout = main.relayout;\nexports.redraw = main.redraw;\nexports.update = main.update;\nexports._guiRestyle = main._guiRestyle;\nexports._guiRelayout = main._guiRelayout;\nexports._guiUpdate = main._guiUpdate;\nexports._storeDirectGUIEdit = main._storeDirectGUIEdit;\nexports.react = main.react;\nexports.extendTraces = main.extendTraces;\nexports.prependTraces = main.prependTraces;\nexports.addTraces = main.addTraces;\nexports.deleteTraces = main.deleteTraces;\nexports.moveTraces = main.moveTraces;\nexports.purge = main.purge;\nexports.addFrames = main.addFrames;\nexports.deleteFrames = main.deleteFrames;\nexports.animate = main.animate;\nexports.setPlotConfig = main.setPlotConfig;\n\nexports.toImage = require('./to_image');\nexports.validate = require('./validate');\nexports.downloadImage = require('../snapshot/download');\n\nvar templateApi = require('./template_api');\nexports.makeTemplate = templateApi.makeTemplate;\nexports.validateTemplate = templateApi.validateTemplate;\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar attributes = require('./attributes');\nvar constants = require('./constants');\n\nmodule.exports = function supplyDefaults(traceIn, traceOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var z = coerce('z');\n if(z === undefined || !z.length || !z[0] || !z[0].length) {\n traceOut.visible = false;\n return;\n }\n\n coerce('x0');\n coerce('y0');\n coerce('dx');\n coerce('dy');\n var colormodel = coerce('colormodel');\n\n coerce('zmin', constants.colormodel[colormodel].min);\n coerce('zmax', constants.colormodel[colormodel].max);\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n\n traceOut._length = null;\n};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","'use strict'\n\nvar createTexture = require('gl-texture2d')\n\nmodule.exports = createFBO\n\nvar colorAttachmentArrays = null\nvar FRAMEBUFFER_UNSUPPORTED\nvar FRAMEBUFFER_INCOMPLETE_ATTACHMENT\nvar FRAMEBUFFER_INCOMPLETE_DIMENSIONS\nvar FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\n\nfunction saveFBOState(gl) {\n var fbo = gl.getParameter(gl.FRAMEBUFFER_BINDING)\n var rbo = gl.getParameter(gl.RENDERBUFFER_BINDING)\n var tex = gl.getParameter(gl.TEXTURE_BINDING_2D)\n return [fbo, rbo, tex]\n}\n\nfunction restoreFBOState(gl, data) {\n gl.bindFramebuffer(gl.FRAMEBUFFER, data[0])\n gl.bindRenderbuffer(gl.RENDERBUFFER, data[1])\n gl.bindTexture(gl.TEXTURE_2D, data[2])\n}\n\nfunction lazyInitColorAttachments(gl, ext) {\n var maxColorAttachments = gl.getParameter(ext.MAX_COLOR_ATTACHMENTS_WEBGL)\n colorAttachmentArrays = new Array(maxColorAttachments + 1)\n for(var i=0; i<=maxColorAttachments; ++i) {\n var x = new Array(maxColorAttachments)\n for(var j=0; j 1) {\n ext.drawBuffersWEBGL(colorAttachmentArrays[numColors])\n }\n\n //Allocate depth/stencil buffers\n var WEBGL_depth_texture = gl.getExtension('WEBGL_depth_texture')\n if(WEBGL_depth_texture) {\n if(useStencil) {\n fbo.depth = initTexture(gl, width, height,\n WEBGL_depth_texture.UNSIGNED_INT_24_8_WEBGL,\n gl.DEPTH_STENCIL,\n gl.DEPTH_STENCIL_ATTACHMENT)\n } else if(useDepth) {\n fbo.depth = initTexture(gl, width, height,\n gl.UNSIGNED_SHORT,\n gl.DEPTH_COMPONENT,\n gl.DEPTH_ATTACHMENT)\n }\n } else {\n if(useDepth && useStencil) {\n fbo._depth_rb = initRenderBuffer(gl, width, height, gl.DEPTH_STENCIL, gl.DEPTH_STENCIL_ATTACHMENT)\n } else if(useDepth) {\n fbo._depth_rb = initRenderBuffer(gl, width, height, gl.DEPTH_COMPONENT16, gl.DEPTH_ATTACHMENT)\n } else if(useStencil) {\n fbo._depth_rb = initRenderBuffer(gl, width, height, gl.STENCIL_INDEX, gl.STENCIL_ATTACHMENT)\n }\n }\n\n //Check frame buffer state\n var status = gl.checkFramebufferStatus(gl.FRAMEBUFFER)\n if(status !== gl.FRAMEBUFFER_COMPLETE) {\n\n //Release all partially allocated resources\n fbo._destroyed = true\n\n //Release all resources\n gl.bindFramebuffer(gl.FRAMEBUFFER, null)\n gl.deleteFramebuffer(fbo.handle)\n fbo.handle = null\n if(fbo.depth) {\n fbo.depth.dispose()\n fbo.depth = null\n }\n if(fbo._depth_rb) {\n gl.deleteRenderbuffer(fbo._depth_rb)\n fbo._depth_rb = null\n }\n for(var i=0; i maxFBOSize ||\n h < 0 || h > maxFBOSize) {\n throw new Error('gl-fbo: Can\\'t resize FBO, invalid dimensions')\n }\n\n //Update shape\n fbo._shape[0] = w\n fbo._shape[1] = h\n\n //Save framebuffer state\n var state = saveFBOState(gl)\n\n //Resize framebuffer attachments\n for(var i=0; i maxFBOSize || height < 0 || height > maxFBOSize) {\n throw new Error('gl-fbo: Parameters are too large for FBO')\n }\n\n //Handle each option type\n options = options || {}\n\n //Figure out number of color buffers to use\n var numColors = 1\n if('color' in options) {\n numColors = Math.max(options.color|0, 0)\n if(numColors < 0) {\n throw new Error('gl-fbo: Must specify a nonnegative number of colors')\n }\n if(numColors > 1) {\n //Check if multiple render targets supported\n if(!WEBGL_draw_buffers) {\n throw new Error('gl-fbo: Multiple draw buffer extension not supported')\n } else if(numColors > gl.getParameter(WEBGL_draw_buffers.MAX_COLOR_ATTACHMENTS_WEBGL)) {\n throw new Error('gl-fbo: Context does not support ' + numColors + ' draw buffers')\n }\n }\n }\n\n //Determine whether to use floating point textures\n var colorType = gl.UNSIGNED_BYTE\n var OES_texture_float = gl.getExtension('OES_texture_float')\n if(options.float && numColors > 0) {\n if(!OES_texture_float) {\n throw new Error('gl-fbo: Context does not support floating point textures')\n }\n colorType = gl.FLOAT\n } else if(options.preferFloat && numColors > 0) {\n if(OES_texture_float) {\n colorType = gl.FLOAT\n }\n }\n\n //Check if we should use depth buffer\n var useDepth = true\n if('depth' in options) {\n useDepth = !!options.depth\n }\n\n //Check if we should use a stencil buffer\n var useStencil = false\n if('stencil' in options) {\n useStencil = !!options.stencil\n }\n\n return new Framebuffer(\n gl,\n width,\n height,\n colorType,\n numColors,\n useDepth,\n useStencil,\n WEBGL_draw_buffers)\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/parcoords');\n","module.exports = rotateY;\n\n/**\n * Rotates a matrix by the given angle around the Y axis\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\nfunction rotateY(out, a, rad) {\n var s = Math.sin(rad),\n c = Math.cos(rad),\n a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3],\n a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n\n if (a !== out) { // If the source and destination differ, copy the unchanged rows\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n\n // Perform axis-specific matrix multiplication\n out[0] = a00 * c - a20 * s;\n out[1] = a01 * c - a21 * s;\n out[2] = a02 * c - a22 * s;\n out[3] = a03 * c - a23 * s;\n out[8] = a00 * s + a20 * c;\n out[9] = a01 * s + a21 * c;\n out[10] = a02 * s + a22 * c;\n out[11] = a03 * s + a23 * c;\n return out;\n};","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar colorAttrs = require('../../components/color/attributes');\nvar domainAttrs = require('../domain').attributes;\nvar axesAttrs = require('../cartesian/layout_attributes');\n\nvar overrideAll = require('../../plot_api/edit_types').overrideAll;\nvar extendFlat = require('../../lib/extend').extendFlat;\n\nvar ternaryAxesAttrs = {\n title: {\n text: axesAttrs.title.text,\n font: axesAttrs.title.font\n // TODO does standoff here make sense?\n },\n color: axesAttrs.color,\n // ticks\n tickmode: axesAttrs.tickmode,\n nticks: extendFlat({}, axesAttrs.nticks, {dflt: 6, min: 1}),\n tick0: axesAttrs.tick0,\n dtick: axesAttrs.dtick,\n tickvals: axesAttrs.tickvals,\n ticktext: axesAttrs.ticktext,\n ticks: axesAttrs.ticks,\n ticklen: axesAttrs.ticklen,\n tickwidth: axesAttrs.tickwidth,\n tickcolor: axesAttrs.tickcolor,\n showticklabels: axesAttrs.showticklabels,\n showtickprefix: axesAttrs.showtickprefix,\n tickprefix: axesAttrs.tickprefix,\n showticksuffix: axesAttrs.showticksuffix,\n ticksuffix: axesAttrs.ticksuffix,\n showexponent: axesAttrs.showexponent,\n exponentformat: axesAttrs.exponentformat,\n separatethousands: axesAttrs.separatethousands,\n tickfont: axesAttrs.tickfont,\n tickangle: axesAttrs.tickangle,\n tickformat: axesAttrs.tickformat,\n tickformatstops: axesAttrs.tickformatstops,\n hoverformat: axesAttrs.hoverformat,\n // lines and grids\n showline: extendFlat({}, axesAttrs.showline, {dflt: true}),\n linecolor: axesAttrs.linecolor,\n linewidth: axesAttrs.linewidth,\n showgrid: extendFlat({}, axesAttrs.showgrid, {dflt: true}),\n gridcolor: axesAttrs.gridcolor,\n gridwidth: axesAttrs.gridwidth,\n layer: axesAttrs.layer,\n // range\n min: {\n valType: 'number',\n dflt: 0,\n \n min: 0,\n \n },\n _deprecated: {\n title: axesAttrs._deprecated.title,\n titlefont: axesAttrs._deprecated.titlefont\n }\n};\n\nvar attrs = module.exports = overrideAll({\n domain: domainAttrs({name: 'ternary'}),\n\n bgcolor: {\n valType: 'color',\n \n dflt: colorAttrs.background,\n \n },\n sum: {\n valType: 'number',\n \n dflt: 1,\n min: 0,\n \n },\n aaxis: ternaryAxesAttrs,\n baxis: ternaryAxesAttrs,\n caxis: ternaryAxesAttrs\n}, 'plot', 'from-root');\n\n// set uirevisions outside of `overrideAll` so we can get `editType: none`\nattrs.uirevision = {\n valType: 'any',\n \n editType: 'none',\n \n};\n\nattrs.aaxis.uirevision = attrs.baxis.uirevision = attrs.caxis.uirevision = {\n valType: 'any',\n \n editType: 'none',\n \n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar colorAttrs = require('../../components/color/attributes');\nvar domainAttrs = require('../domain').attributes;\nvar constants = require('./constants');\nvar overrideAll = require('../../plot_api/edit_types').overrideAll;\n\nvar geoAxesAttrs = {\n range: {\n valType: 'info_array',\n \n items: [\n {valType: 'number'},\n {valType: 'number'}\n ],\n \n },\n showgrid: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n tick0: {\n valType: 'number',\n \n dflt: 0,\n \n },\n dtick: {\n valType: 'number',\n \n \n },\n gridcolor: {\n valType: 'color',\n \n dflt: colorAttrs.lightLine,\n \n },\n gridwidth: {\n valType: 'number',\n \n min: 0,\n dflt: 1,\n \n }\n};\n\nvar attrs = module.exports = overrideAll({\n domain: domainAttrs({name: 'geo'}, {\n \n }),\n\n fitbounds: {\n valType: 'enumerated',\n values: [false, 'locations', 'geojson'],\n dflt: false,\n \n editType: 'plot',\n \n },\n\n resolution: {\n valType: 'enumerated',\n values: [110, 50],\n \n dflt: 110,\n coerceNumber: true,\n \n },\n scope: {\n valType: 'enumerated',\n \n values: Object.keys(constants.scopeDefaults),\n dflt: 'world',\n \n },\n projection: {\n type: {\n valType: 'enumerated',\n \n values: Object.keys(constants.projNames),\n \n },\n rotation: {\n lon: {\n valType: 'number',\n \n \n },\n lat: {\n valType: 'number',\n \n \n },\n roll: {\n valType: 'number',\n \n \n }\n },\n parallels: {\n valType: 'info_array',\n \n items: [\n {valType: 'number'},\n {valType: 'number'}\n ],\n \n },\n scale: {\n valType: 'number',\n \n min: 0,\n dflt: 1,\n \n },\n },\n center: {\n lon: {\n valType: 'number',\n \n \n },\n lat: {\n valType: 'number',\n \n \n }\n },\n visible: {\n valType: 'boolean',\n \n dflt: true,\n \n },\n showcoastlines: {\n valType: 'boolean',\n \n \n },\n coastlinecolor: {\n valType: 'color',\n \n dflt: colorAttrs.defaultLine,\n \n },\n coastlinewidth: {\n valType: 'number',\n \n min: 0,\n dflt: 1,\n \n },\n showland: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n landcolor: {\n valType: 'color',\n \n dflt: constants.landColor,\n \n },\n showocean: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n oceancolor: {\n valType: 'color',\n \n dflt: constants.waterColor,\n \n },\n showlakes: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n lakecolor: {\n valType: 'color',\n \n dflt: constants.waterColor,\n \n },\n showrivers: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n rivercolor: {\n valType: 'color',\n \n dflt: constants.waterColor,\n \n },\n riverwidth: {\n valType: 'number',\n \n min: 0,\n dflt: 1,\n \n },\n showcountries: {\n valType: 'boolean',\n \n \n },\n countrycolor: {\n valType: 'color',\n \n dflt: colorAttrs.defaultLine,\n \n },\n countrywidth: {\n valType: 'number',\n \n min: 0,\n dflt: 1,\n \n },\n showsubunits: {\n valType: 'boolean',\n \n \n },\n subunitcolor: {\n valType: 'color',\n \n dflt: colorAttrs.defaultLine,\n \n },\n subunitwidth: {\n valType: 'number',\n \n min: 0,\n dflt: 1,\n \n },\n showframe: {\n valType: 'boolean',\n \n \n },\n framecolor: {\n valType: 'color',\n \n dflt: colorAttrs.defaultLine,\n \n },\n framewidth: {\n valType: 'number',\n \n min: 0,\n dflt: 1,\n \n },\n bgcolor: {\n valType: 'color',\n \n dflt: colorAttrs.background,\n \n },\n lonaxis: geoAxesAttrs,\n lataxis: geoAxesAttrs\n}, 'plot', 'from-root');\n\n// set uirevision outside of overrideAll so it can be `editType: 'none'`\nattrs.uirevision = {\n valType: 'any',\n \n editType: 'none',\n \n};\n","/*!\n * repeat-string \n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\n/**\n * Results cache\n */\n\nvar res = '';\nvar cache;\n\n/**\n * Expose `repeat`\n */\n\nmodule.exports = repeat;\n\n/**\n * Repeat the given `string` the specified `number`\n * of times.\n *\n * **Example:**\n *\n * ```js\n * var repeat = require('repeat-string');\n * repeat('A', 5);\n * //=> AAAAA\n * ```\n *\n * @param {String} `string` The string to repeat\n * @param {Number} `number` The number of times to repeat the string\n * @return {String} Repeated string\n * @api public\n */\n\nfunction repeat(str, num) {\n if (typeof str !== 'string') {\n throw new TypeError('expected a string');\n }\n\n // cover common, quick use cases\n if (num === 1) return str;\n if (num === 2) return str + str;\n\n var max = str.length * num;\n if (cache !== str || typeof cache === 'undefined') {\n cache = str;\n res = '';\n } else if (res.length >= max) {\n return res.substr(0, max);\n }\n\n while (max > res.length && num > 1) {\n if (num & 1) {\n res += str;\n }\n\n num >>= 1;\n str += str;\n }\n\n res += str;\n res = res.substr(0, max);\n return res;\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar d3 = require('d3');\n\nmodule.exports = function style(gd) {\n d3.select(gd).selectAll('.im image')\n .style('opacity', function(d) {\n return d.trace.opacity;\n });\n};\n","\"use strict\";\n\nvar callable = require(\"./valid-callable\")\n , forEach = require(\"./for-each\")\n , call = Function.prototype.call;\n\nmodule.exports = function (obj, cb/*, thisArg*/) {\n\tvar result = {}, thisArg = arguments[2];\n\tcallable(cb);\n\tforEach(obj, function (value, key, targetObj, index) {\n\t\tresult[key] = call.call(cb, thisArg, value, key, targetObj, index);\n\t});\n\treturn result;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Registry = require('../registry');\nvar Lib = require('../lib');\n\n/*\n * Create or update an observer. This function is designed to be\n * idempotent so that it can be called over and over as the component\n * updates, and will attach and detach listeners as needed.\n *\n * @param {optional object} container\n * An object on which the observer is stored. This is the mechanism\n * by which it is idempotent. If it already exists, another won't be\n * added. Each time it's called, the value lookup table is updated.\n * @param {array} commandList\n * An array of commands, following either `buttons` of `updatemenus`\n * or `steps` of `sliders`.\n * @param {function} onchange\n * A listener called when the value is changed. Receives data object\n * with information about the new state.\n */\nexports.manageCommandObserver = function(gd, container, commandList, onchange) {\n var ret = {};\n var enabled = true;\n\n if(container && container._commandObserver) {\n ret = container._commandObserver;\n }\n\n if(!ret.cache) {\n ret.cache = {};\n }\n\n // Either create or just recompute this:\n ret.lookupTable = {};\n\n var binding = exports.hasSimpleAPICommandBindings(gd, commandList, ret.lookupTable);\n\n if(container && container._commandObserver) {\n if(!binding) {\n // If container exists and there are no longer any bindings,\n // remove existing:\n if(container._commandObserver.remove) {\n container._commandObserver.remove();\n container._commandObserver = null;\n return ret;\n }\n } else {\n // If container exists and there *are* bindings, then the lookup\n // table should have been updated and check is already attached,\n // so there's nothing to be done:\n return ret;\n }\n }\n\n // Determine whether there's anything to do for this binding:\n\n if(binding) {\n // Build the cache:\n bindingValueHasChanged(gd, binding, ret.cache);\n\n ret.check = function check() {\n if(!enabled) return;\n\n var update = bindingValueHasChanged(gd, binding, ret.cache);\n\n if(update.changed && onchange) {\n // Disable checks for the duration of this command in order to avoid\n // infinite loops:\n if(ret.lookupTable[update.value] !== undefined) {\n ret.disable();\n Promise.resolve(onchange({\n value: update.value,\n type: binding.type,\n prop: binding.prop,\n traces: binding.traces,\n index: ret.lookupTable[update.value]\n })).then(ret.enable, ret.enable);\n }\n }\n\n return update.changed;\n };\n\n var checkEvents = [\n 'plotly_relayout',\n 'plotly_redraw',\n 'plotly_restyle',\n 'plotly_update',\n 'plotly_animatingframe',\n 'plotly_afterplot'\n ];\n\n for(var i = 0; i < checkEvents.length; i++) {\n gd._internalOn(checkEvents[i], ret.check);\n }\n\n ret.remove = function() {\n for(var i = 0; i < checkEvents.length; i++) {\n gd._removeInternalListener(checkEvents[i], ret.check);\n }\n };\n } else {\n // TODO: It'd be really neat to actually give a *reason* for this, but at least a warning\n // is a start\n Lib.log('Unable to automatically bind plot updates to API command');\n\n ret.lookupTable = {};\n ret.remove = function() {};\n }\n\n ret.disable = function disable() {\n enabled = false;\n };\n\n ret.enable = function enable() {\n enabled = true;\n };\n\n if(container) {\n container._commandObserver = ret;\n }\n\n return ret;\n};\n\n/*\n * This function checks to see if an array of objects containing\n * method and args properties is compatible with automatic two-way\n * binding. The criteria right now are that\n *\n * 1. multiple traces may be affected\n * 2. only one property may be affected\n * 3. the same property must be affected by all commands\n */\nexports.hasSimpleAPICommandBindings = function(gd, commandList, bindingsByValue) {\n var i;\n var n = commandList.length;\n\n var refBinding;\n\n for(i = 0; i < n; i++) {\n var binding;\n var command = commandList[i];\n var method = command.method;\n var args = command.args;\n\n if(!Array.isArray(args)) args = [];\n\n // If any command has no method, refuse to bind:\n if(!method) {\n return false;\n }\n var bindings = exports.computeAPICommandBindings(gd, method, args);\n\n // Right now, handle one and *only* one property being set:\n if(bindings.length !== 1) {\n return false;\n }\n\n if(!refBinding) {\n refBinding = bindings[0];\n if(Array.isArray(refBinding.traces)) {\n refBinding.traces.sort();\n }\n } else {\n binding = bindings[0];\n if(binding.type !== refBinding.type) {\n return false;\n }\n if(binding.prop !== refBinding.prop) {\n return false;\n }\n if(Array.isArray(refBinding.traces)) {\n if(Array.isArray(binding.traces)) {\n binding.traces.sort();\n for(var j = 0; j < refBinding.traces.length; j++) {\n if(refBinding.traces[j] !== binding.traces[j]) {\n return false;\n }\n }\n } else {\n return false;\n }\n } else {\n if(binding.prop !== refBinding.prop) {\n return false;\n }\n }\n }\n\n binding = bindings[0];\n var value = binding.value;\n if(Array.isArray(value)) {\n if(value.length === 1) {\n value = value[0];\n } else {\n return false;\n }\n }\n if(bindingsByValue) {\n bindingsByValue[value] = i;\n }\n }\n\n return refBinding;\n};\n\nfunction bindingValueHasChanged(gd, binding, cache) {\n var container, value, obj;\n var changed = false;\n\n if(binding.type === 'data') {\n // If it's data, we need to get a trace. Based on the limited scope\n // of what we cover, we can just take the first trace from the list,\n // or otherwise just the first trace:\n container = gd._fullData[binding.traces !== null ? binding.traces[0] : 0];\n } else if(binding.type === 'layout') {\n container = gd._fullLayout;\n } else {\n return false;\n }\n\n value = Lib.nestedProperty(container, binding.prop).get();\n\n obj = cache[binding.type] = cache[binding.type] || {};\n\n if(obj.hasOwnProperty(binding.prop)) {\n if(obj[binding.prop] !== value) {\n changed = true;\n }\n }\n\n obj[binding.prop] = value;\n\n return {\n changed: changed,\n value: value\n };\n}\n\n/*\n * Execute an API command. There's really not much to this; it just provides\n * a common hook so that implementations don't need to be synchronized across\n * multiple components with the ability to invoke API commands.\n *\n * @param {string} method\n * The name of the plotly command to execute. Must be one of 'animate',\n * 'restyle', 'relayout', 'update'.\n * @param {array} args\n * A list of arguments passed to the API command\n */\nexports.executeAPICommand = function(gd, method, args) {\n if(method === 'skip') return Promise.resolve();\n\n var _method = Registry.apiMethodRegistry[method];\n var allArgs = [gd];\n if(!Array.isArray(args)) args = [];\n\n for(var i = 0; i < args.length; i++) {\n allArgs.push(args[i]);\n }\n\n return _method.apply(null, allArgs).catch(function(err) {\n Lib.warn('API call to Plotly.' + method + ' rejected.', err);\n return Promise.reject(err);\n });\n};\n\nexports.computeAPICommandBindings = function(gd, method, args) {\n var bindings;\n\n if(!Array.isArray(args)) args = [];\n\n switch(method) {\n case 'restyle':\n bindings = computeDataBindings(gd, args);\n break;\n case 'relayout':\n bindings = computeLayoutBindings(gd, args);\n break;\n case 'update':\n bindings = computeDataBindings(gd, [args[0], args[2]])\n .concat(computeLayoutBindings(gd, [args[1]]));\n break;\n case 'animate':\n bindings = computeAnimateBindings(gd, args);\n break;\n default:\n // This is the case where intelligent logic about what affects\n // this command is not implemented. It causes no ill effects.\n // For example, addFrames simply won't bind to a control component.\n bindings = [];\n }\n return bindings;\n};\n\nfunction computeAnimateBindings(gd, args) {\n // We'll assume that the only relevant modification an animation\n // makes that's meaningfully tracked is the frame:\n if(Array.isArray(args[0]) && args[0].length === 1 && ['string', 'number'].indexOf(typeof args[0][0]) !== -1) {\n return [{type: 'layout', prop: '_currentFrame', value: args[0][0].toString()}];\n } else {\n return [];\n }\n}\n\nfunction computeLayoutBindings(gd, args) {\n var bindings = [];\n\n var astr = args[0];\n var aobj = {};\n if(typeof astr === 'string') {\n aobj[astr] = args[1];\n } else if(Lib.isPlainObject(astr)) {\n aobj = astr;\n } else {\n return bindings;\n }\n\n crawl(aobj, function(path, attrName, attr) {\n bindings.push({type: 'layout', prop: path, value: attr});\n }, '', 0);\n\n return bindings;\n}\n\nfunction computeDataBindings(gd, args) {\n var traces, astr, val, aobj;\n var bindings = [];\n\n // Logic copied from Plotly.restyle:\n astr = args[0];\n val = args[1];\n traces = args[2];\n aobj = {};\n if(typeof astr === 'string') {\n aobj[astr] = val;\n } else if(Lib.isPlainObject(astr)) {\n // the 3-arg form\n aobj = astr;\n\n if(traces === undefined) {\n traces = val;\n }\n } else {\n return bindings;\n }\n\n if(traces === undefined) {\n // Explicitly assign this to null instead of undefined:\n traces = null;\n }\n\n crawl(aobj, function(path, attrName, _attr) {\n var thisTraces;\n var attr;\n\n if(Array.isArray(_attr)) {\n attr = _attr.slice();\n\n var nAttr = Math.min(attr.length, gd.data.length);\n if(traces) {\n nAttr = Math.min(nAttr, traces.length);\n }\n thisTraces = [];\n for(var j = 0; j < nAttr; j++) {\n thisTraces[j] = traces ? traces[j] : j;\n }\n } else {\n attr = _attr;\n thisTraces = traces ? traces.slice() : null;\n }\n\n // Convert [7] to just 7 when traces is null:\n if(thisTraces === null) {\n if(Array.isArray(attr)) {\n attr = attr[0];\n }\n } else if(Array.isArray(thisTraces)) {\n if(!Array.isArray(attr)) {\n var tmp = attr;\n attr = [];\n for(var i = 0; i < thisTraces.length; i++) {\n attr[i] = tmp;\n }\n }\n attr.length = Math.min(thisTraces.length, attr.length);\n }\n\n bindings.push({\n type: 'data',\n prop: path,\n traces: thisTraces,\n value: attr\n });\n }, '', 0);\n\n return bindings;\n}\n\nfunction crawl(attrs, callback, path, depth) {\n Object.keys(attrs).forEach(function(attrName) {\n var attr = attrs[attrName];\n\n if(attrName[0] === '_') return;\n\n var thisPath = path + (depth > 0 ? '.' : '') + attrName;\n\n if(Lib.isPlainObject(attr)) {\n crawl(attr, callback, thisPath, depth + 1);\n } else {\n // Only execute the callback on leaf nodes:\n callback(thisPath, attrName, attr);\n }\n });\n}\n","'use strict'\n\nvar inCircle = require('robust-in-sphere')[4]\nvar bsearch = require('binary-search-bounds')\n\nmodule.exports = delaunayRefine\n\nfunction testFlip(points, triangulation, stack, a, b, x) {\n var y = triangulation.opposite(a, b)\n\n //Test boundary edge\n if(y < 0) {\n return\n }\n\n //Swap edge if order flipped\n if(b < a) {\n var tmp = a\n a = b\n b = tmp\n tmp = x\n x = y\n y = tmp\n }\n\n //Test if edge is constrained\n if(triangulation.isConstraint(a, b)) {\n return\n }\n\n //Test if edge is delaunay\n if(inCircle(points[a], points[b], points[x], points[y]) < 0) {\n stack.push(a, b)\n }\n}\n\n//Assume edges are sorted lexicographically\nfunction delaunayRefine(points, triangulation) {\n var stack = []\n\n var numPoints = points.length\n var stars = triangulation.stars\n for(var a=0; a 0) {\n var b = stack.pop()\n var a = stack.pop()\n\n //Find opposite pairs\n var x = -1, y = -1\n var star = stars[a]\n for(var i=1; i= 0) {\n continue\n }\n\n //Flip the edge\n triangulation.flip(a, b)\n\n //Test flipping neighboring edges\n testFlip(points, triangulation, stack, x, a, y)\n testFlip(points, triangulation, stack, a, y, x)\n testFlip(points, triangulation, stack, y, b, x)\n testFlip(points, triangulation, stack, b, x, y)\n }\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/scattergl');\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/pie');\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nmodule.exports = function orientText(trace, xaxis, yaxis, xy, dxy, refDxy) {\n var dx = dxy[0] * trace.dpdx(xaxis);\n var dy = dxy[1] * trace.dpdy(yaxis);\n var flip = 1;\n\n var offsetMultiplier = 1.0;\n if(refDxy) {\n var l1 = Math.sqrt(dxy[0] * dxy[0] + dxy[1] * dxy[1]);\n var l2 = Math.sqrt(refDxy[0] * refDxy[0] + refDxy[1] * refDxy[1]);\n var dot = (dxy[0] * refDxy[0] + dxy[1] * refDxy[1]) / l1 / l2;\n offsetMultiplier = Math.max(0.0, dot);\n }\n\n var angle = Math.atan2(dy, dx) * 180 / Math.PI;\n if(angle < -90) {\n angle += 180;\n flip = -flip;\n } else if(angle > 90) {\n angle -= 180;\n flip = -flip;\n }\n\n return {\n angle: angle,\n flip: flip,\n p: trace.c2p(xy, xaxis, yaxis),\n offsetMultplier: offsetMultiplier\n };\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar tinycolor = require('tinycolor2');\n\nvar scales = {\n 'Greys': [\n [0, 'rgb(0,0,0)'], [1, 'rgb(255,255,255)']\n ],\n\n 'YlGnBu': [\n [0, 'rgb(8,29,88)'], [0.125, 'rgb(37,52,148)'],\n [0.25, 'rgb(34,94,168)'], [0.375, 'rgb(29,145,192)'],\n [0.5, 'rgb(65,182,196)'], [0.625, 'rgb(127,205,187)'],\n [0.75, 'rgb(199,233,180)'], [0.875, 'rgb(237,248,217)'],\n [1, 'rgb(255,255,217)']\n ],\n\n 'Greens': [\n [0, 'rgb(0,68,27)'], [0.125, 'rgb(0,109,44)'],\n [0.25, 'rgb(35,139,69)'], [0.375, 'rgb(65,171,93)'],\n [0.5, 'rgb(116,196,118)'], [0.625, 'rgb(161,217,155)'],\n [0.75, 'rgb(199,233,192)'], [0.875, 'rgb(229,245,224)'],\n [1, 'rgb(247,252,245)']\n ],\n\n 'YlOrRd': [\n [0, 'rgb(128,0,38)'], [0.125, 'rgb(189,0,38)'],\n [0.25, 'rgb(227,26,28)'], [0.375, 'rgb(252,78,42)'],\n [0.5, 'rgb(253,141,60)'], [0.625, 'rgb(254,178,76)'],\n [0.75, 'rgb(254,217,118)'], [0.875, 'rgb(255,237,160)'],\n [1, 'rgb(255,255,204)']\n ],\n\n 'Bluered': [\n [0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']\n ],\n\n // modified RdBu based on\n // http://www.kennethmoreland.com/color-maps/\n 'RdBu': [\n [0, 'rgb(5,10,172)'], [0.35, 'rgb(106,137,247)'],\n [0.5, 'rgb(190,190,190)'], [0.6, 'rgb(220,170,132)'],\n [0.7, 'rgb(230,145,90)'], [1, 'rgb(178,10,28)']\n ],\n\n // Scale for non-negative numeric values\n 'Reds': [\n [0, 'rgb(220,220,220)'], [0.2, 'rgb(245,195,157)'],\n [0.4, 'rgb(245,160,105)'], [1, 'rgb(178,10,28)']\n ],\n\n // Scale for non-positive numeric values\n 'Blues': [\n [0, 'rgb(5,10,172)'], [0.35, 'rgb(40,60,190)'],\n [0.5, 'rgb(70,100,245)'], [0.6, 'rgb(90,120,245)'],\n [0.7, 'rgb(106,137,247)'], [1, 'rgb(220,220,220)']\n ],\n\n 'Picnic': [\n [0, 'rgb(0,0,255)'], [0.1, 'rgb(51,153,255)'],\n [0.2, 'rgb(102,204,255)'], [0.3, 'rgb(153,204,255)'],\n [0.4, 'rgb(204,204,255)'], [0.5, 'rgb(255,255,255)'],\n [0.6, 'rgb(255,204,255)'], [0.7, 'rgb(255,153,255)'],\n [0.8, 'rgb(255,102,204)'], [0.9, 'rgb(255,102,102)'],\n [1, 'rgb(255,0,0)']\n ],\n\n 'Rainbow': [\n [0, 'rgb(150,0,90)'], [0.125, 'rgb(0,0,200)'],\n [0.25, 'rgb(0,25,255)'], [0.375, 'rgb(0,152,255)'],\n [0.5, 'rgb(44,255,150)'], [0.625, 'rgb(151,255,0)'],\n [0.75, 'rgb(255,234,0)'], [0.875, 'rgb(255,111,0)'],\n [1, 'rgb(255,0,0)']\n ],\n\n 'Portland': [\n [0, 'rgb(12,51,131)'], [0.25, 'rgb(10,136,186)'],\n [0.5, 'rgb(242,211,56)'], [0.75, 'rgb(242,143,56)'],\n [1, 'rgb(217,30,30)']\n ],\n\n 'Jet': [\n [0, 'rgb(0,0,131)'], [0.125, 'rgb(0,60,170)'],\n [0.375, 'rgb(5,255,255)'], [0.625, 'rgb(255,255,0)'],\n [0.875, 'rgb(250,0,0)'], [1, 'rgb(128,0,0)']\n ],\n\n 'Hot': [\n [0, 'rgb(0,0,0)'], [0.3, 'rgb(230,0,0)'],\n [0.6, 'rgb(255,210,0)'], [1, 'rgb(255,255,255)']\n ],\n\n 'Blackbody': [\n [0, 'rgb(0,0,0)'], [0.2, 'rgb(230,0,0)'],\n [0.4, 'rgb(230,210,0)'], [0.7, 'rgb(255,255,255)'],\n [1, 'rgb(160,200,255)']\n ],\n\n 'Earth': [\n [0, 'rgb(0,0,130)'], [0.1, 'rgb(0,180,180)'],\n [0.2, 'rgb(40,210,40)'], [0.4, 'rgb(230,230,50)'],\n [0.6, 'rgb(120,70,20)'], [1, 'rgb(255,255,255)']\n ],\n\n 'Electric': [\n [0, 'rgb(0,0,0)'], [0.15, 'rgb(30,0,100)'],\n [0.4, 'rgb(120,0,100)'], [0.6, 'rgb(160,90,0)'],\n [0.8, 'rgb(230,200,0)'], [1, 'rgb(255,250,220)']\n ],\n\n 'Viridis': [\n [0, '#440154'], [0.06274509803921569, '#48186a'],\n [0.12549019607843137, '#472d7b'], [0.18823529411764706, '#424086'],\n [0.25098039215686274, '#3b528b'], [0.3137254901960784, '#33638d'],\n [0.3764705882352941, '#2c728e'], [0.4392156862745098, '#26828e'],\n [0.5019607843137255, '#21918c'], [0.5647058823529412, '#1fa088'],\n [0.6274509803921569, '#28ae80'], [0.6901960784313725, '#3fbc73'],\n [0.7529411764705882, '#5ec962'], [0.8156862745098039, '#84d44b'],\n [0.8784313725490196, '#addc30'], [0.9411764705882353, '#d8e219'],\n [1, '#fde725']\n ],\n\n 'Cividis': [\n [0.000000, 'rgb(0,32,76)'], [0.058824, 'rgb(0,42,102)'],\n [0.117647, 'rgb(0,52,110)'], [0.176471, 'rgb(39,63,108)'],\n [0.235294, 'rgb(60,74,107)'], [0.294118, 'rgb(76,85,107)'],\n [0.352941, 'rgb(91,95,109)'], [0.411765, 'rgb(104,106,112)'],\n [0.470588, 'rgb(117,117,117)'], [0.529412, 'rgb(131,129,120)'],\n [0.588235, 'rgb(146,140,120)'], [0.647059, 'rgb(161,152,118)'],\n [0.705882, 'rgb(176,165,114)'], [0.764706, 'rgb(192,177,109)'],\n [0.823529, 'rgb(209,191,102)'], [0.882353, 'rgb(225,204,92)'],\n [0.941176, 'rgb(243,219,79)'], [1.000000, 'rgb(255,233,69)']\n ]\n};\n\nvar defaultScale = scales.RdBu;\n\nfunction getScale(scl, dflt) {\n if(!dflt) dflt = defaultScale;\n if(!scl) return dflt;\n\n function parseScale() {\n try {\n scl = scales[scl] || JSON.parse(scl);\n } catch(e) {\n scl = dflt;\n }\n }\n\n if(typeof scl === 'string') {\n parseScale();\n // occasionally scl is double-JSON encoded...\n if(typeof scl === 'string') parseScale();\n }\n\n if(!isValidScaleArray(scl)) return dflt;\n return scl;\n}\n\n\nfunction isValidScaleArray(scl) {\n var highestVal = 0;\n\n if(!Array.isArray(scl) || scl.length < 2) return false;\n\n if(!scl[0] || !scl[scl.length - 1]) return false;\n\n if(+scl[0][0] !== 0 || +scl[scl.length - 1][0] !== 1) return false;\n\n for(var i = 0; i < scl.length; i++) {\n var si = scl[i];\n\n if(si.length !== 2 || +si[0] < highestVal || !tinycolor(si[1]).isValid()) {\n return false;\n }\n\n highestVal = +si[0];\n }\n\n return true;\n}\n\nfunction isValidScale(scl) {\n if(scales[scl] !== undefined) return true;\n else return isValidScaleArray(scl);\n}\n\nmodule.exports = {\n scales: scales,\n defaultScale: defaultScale,\n\n get: getScale,\n isValid: isValidScale\n};\n","'use strict'\n\nmodule.exports = createLines\n\nvar createBuffer = require('gl-buffer')\nvar createVAO = require('gl-vao')\nvar createShader = require('./shaders').line\n\nvar MAJOR_AXIS = [0,0,0]\nvar MINOR_AXIS = [0,0,0]\nvar SCREEN_AXIS = [0,0,0]\nvar OFFSET_VEC = [0,0,0]\nvar SHAPE = [1,1]\n\nfunction zeroVec(a) {\n a[0] = a[1] = a[2] = 0\n return a\n}\n\nfunction copyVec(a,b) {\n a[0] = b[0]\n a[1] = b[1]\n a[2] = b[2]\n return a\n}\n\nfunction Lines(gl, vertBuffer, vao, shader, tickCount, tickOffset, gridCount, gridOffset) {\n this.gl = gl\n this.vertBuffer = vertBuffer\n this.vao = vao\n this.shader = shader\n this.tickCount = tickCount\n this.tickOffset = tickOffset\n this.gridCount = gridCount\n this.gridOffset = gridOffset\n}\n\nvar proto = Lines.prototype\n\nproto.bind = function(model, view, projection) {\n this.shader.bind()\n this.shader.uniforms.model = model\n this.shader.uniforms.view = view\n this.shader.uniforms.projection = projection\n\n SHAPE[0] = this.gl.drawingBufferWidth\n SHAPE[1] = this.gl.drawingBufferHeight\n\n this.shader.uniforms.screenShape = SHAPE\n this.vao.bind()\n}\n\nproto.unbind = function() {\n this.vao.unbind()\n}\n\nproto.drawAxisLine = function(j, bounds, offset, color, lineWidth) {\n var minorAxis = zeroVec(MINOR_AXIS)\n this.shader.uniforms.majorAxis = MINOR_AXIS\n\n minorAxis[j] = bounds[1][j] - bounds[0][j]\n this.shader.uniforms.minorAxis = minorAxis\n\n var noffset = copyVec(OFFSET_VEC, offset)\n noffset[j] += bounds[0][j]\n this.shader.uniforms.offset = noffset\n\n this.shader.uniforms.lineWidth = lineWidth\n\n this.shader.uniforms.color = color\n\n var screenAxis = zeroVec(SCREEN_AXIS)\n screenAxis[(j+2)%3] = 1\n this.shader.uniforms.screenAxis = screenAxis\n this.vao.draw(this.gl.TRIANGLES, 6)\n\n var screenAxis = zeroVec(SCREEN_AXIS)\n screenAxis[(j+1)%3] = 1\n this.shader.uniforms.screenAxis = screenAxis\n this.vao.draw(this.gl.TRIANGLES, 6)\n}\n\nproto.drawAxisTicks = function(j, offset, minorAxis, color, lineWidth) {\n if(!this.tickCount[j]) {\n return\n }\n\n var majorAxis = zeroVec(MAJOR_AXIS)\n majorAxis[j] = 1\n this.shader.uniforms.majorAxis = majorAxis\n this.shader.uniforms.offset = offset\n this.shader.uniforms.minorAxis = minorAxis\n this.shader.uniforms.color = color\n this.shader.uniforms.lineWidth = lineWidth\n\n var screenAxis = zeroVec(SCREEN_AXIS)\n screenAxis[j] = 1\n this.shader.uniforms.screenAxis = screenAxis\n this.vao.draw(this.gl.TRIANGLES, this.tickCount[j], this.tickOffset[j])\n}\n\n\nproto.drawGrid = function(i, j, bounds, offset, color, lineWidth) {\n if(!this.gridCount[i]) {\n return\n }\n\n var minorAxis = zeroVec(MINOR_AXIS)\n minorAxis[j] = bounds[1][j] - bounds[0][j]\n this.shader.uniforms.minorAxis = minorAxis\n\n var noffset = copyVec(OFFSET_VEC, offset)\n noffset[j] += bounds[0][j]\n this.shader.uniforms.offset = noffset\n\n var majorAxis = zeroVec(MAJOR_AXIS)\n majorAxis[i] = 1\n this.shader.uniforms.majorAxis = majorAxis\n\n var screenAxis = zeroVec(SCREEN_AXIS)\n screenAxis[i] = 1\n this.shader.uniforms.screenAxis = screenAxis\n this.shader.uniforms.lineWidth = lineWidth\n\n this.shader.uniforms.color = color\n this.vao.draw(this.gl.TRIANGLES, this.gridCount[i], this.gridOffset[i])\n}\n\nproto.drawZero = function(j, i, bounds, offset, color, lineWidth) {\n var minorAxis = zeroVec(MINOR_AXIS)\n this.shader.uniforms.majorAxis = minorAxis\n\n minorAxis[j] = bounds[1][j] - bounds[0][j]\n this.shader.uniforms.minorAxis = minorAxis\n\n var noffset = copyVec(OFFSET_VEC, offset)\n noffset[j] += bounds[0][j]\n this.shader.uniforms.offset = noffset\n\n var screenAxis = zeroVec(SCREEN_AXIS)\n screenAxis[i] = 1\n this.shader.uniforms.screenAxis = screenAxis\n this.shader.uniforms.lineWidth = lineWidth\n\n this.shader.uniforms.color = color\n this.vao.draw(this.gl.TRIANGLES, 6)\n}\n\nproto.dispose = function() {\n this.vao.dispose()\n this.vertBuffer.dispose()\n this.shader.dispose()\n}\n\nfunction createLines(gl, bounds, ticks) {\n var vertices = []\n var tickOffset = [0,0,0]\n var tickCount = [0,0,0]\n\n //Create grid lines for each axis/direction\n var gridOffset = [0,0,0]\n var gridCount = [0,0,0]\n\n //Add zero line\n vertices.push(\n 0,0,1, 0,1,1, 0,0,-1,\n 0,0,-1, 0,1,1, 0,1,-1)\n\n for(var i=0; i<3; ++i) {\n //Axis tick marks\n var start = ((vertices.length / 3)|0)\n for(var j=0; j\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT license.\n */\n\n'use strict';\n\nvar repeat = require('repeat-string');\n\nmodule.exports = function padLeft(str, num, ch) {\n ch = typeof ch !== 'undefined' ? (ch + '') : ' ';\n return repeat(ch, num) + str;\n};","module.exports = invert\n\n/**\n * Inverts a mat2\n *\n * @alias mat2.invert\n * @param {mat2} out the receiving matrix\n * @param {mat2} a the source matrix\n * @returns {mat2} out\n */\nfunction invert(out, a) {\n var a0 = a[0]\n var a1 = a[1]\n var a2 = a[2]\n var a3 = a[3]\n var det = a0 * a3 - a2 * a1\n\n if (!det) return null\n det = 1.0 / det\n\n out[0] = a3 * det\n out[1] = -a1 * det\n out[2] = -a2 * det\n out[3] = a0 * det\n\n return out\n}\n","\"use strict\"\n\nmodule.exports = createSlabDecomposition\n\nvar bounds = require(\"binary-search-bounds\")\nvar createRBTree = require(\"functional-red-black-tree\")\nvar orient = require(\"robust-orientation\")\nvar orderSegments = require(\"./lib/order-segments\")\n\nfunction SlabDecomposition(slabs, coordinates, horizontal) {\n this.slabs = slabs\n this.coordinates = coordinates\n this.horizontal = horizontal\n}\n\nvar proto = SlabDecomposition.prototype\n\nfunction compareHorizontal(e, y) {\n return e.y - y\n}\n\nfunction searchBucket(root, p) {\n var lastNode = null\n while(root) {\n var seg = root.key\n var l, r\n if(seg[0][0] < seg[1][0]) {\n l = seg[0]\n r = seg[1]\n } else {\n l = seg[1]\n r = seg[0]\n }\n var o = orient(l, r, p)\n if(o < 0) {\n root = root.left\n } else if(o > 0) {\n if(p[0] !== seg[1][0]) {\n lastNode = root\n root = root.right\n } else {\n var val = searchBucket(root.right, p)\n if(val) {\n return val\n }\n root = root.left\n }\n } else {\n if(p[0] !== seg[1][0]) {\n return root\n } else {\n var val = searchBucket(root.right, p)\n if(val) {\n return val\n }\n root = root.left\n }\n }\n }\n return lastNode\n}\n\nproto.castUp = function(p) {\n var bucket = bounds.le(this.coordinates, p[0])\n if(bucket < 0) {\n return -1\n }\n var root = this.slabs[bucket]\n var hitNode = searchBucket(this.slabs[bucket], p)\n var lastHit = -1\n if(hitNode) {\n lastHit = hitNode.value\n }\n //Edge case: need to handle horizontal segments (sucks)\n if(this.coordinates[bucket] === p[0]) {\n var lastSegment = null\n if(hitNode) {\n lastSegment = hitNode.key\n }\n if(bucket > 0) {\n var otherHitNode = searchBucket(this.slabs[bucket-1], p)\n if(otherHitNode) {\n if(lastSegment) {\n if(orderSegments(otherHitNode.key, lastSegment) > 0) {\n lastSegment = otherHitNode.key\n lastHit = otherHitNode.value\n }\n } else {\n lastHit = otherHitNode.value\n lastSegment = otherHitNode.key\n }\n }\n }\n var horiz = this.horizontal[bucket]\n if(horiz.length > 0) {\n var hbucket = bounds.ge(horiz, p[1], compareHorizontal)\n if(hbucket < horiz.length) {\n var e = horiz[hbucket]\n if(p[1] === e.y) {\n if(e.closed) {\n return e.index\n } else {\n while(hbucket < horiz.length-1 && horiz[hbucket+1].y === p[1]) {\n hbucket = hbucket+1\n e = horiz[hbucket]\n if(e.closed) {\n return e.index\n }\n }\n if(e.y === p[1] && !e.start) {\n hbucket = hbucket+1\n if(hbucket >= horiz.length) {\n return lastHit\n }\n e = horiz[hbucket]\n }\n }\n }\n //Check if e is above/below last segment\n if(e.start) {\n if(lastSegment) {\n var o = orient(lastSegment[0], lastSegment[1], [p[0], e.y])\n if(lastSegment[0][0] > lastSegment[1][0]) {\n o = -o\n }\n if(o > 0) {\n lastHit = e.index\n }\n } else {\n lastHit = e.index\n }\n } else if(e.y !== p[1]) {\n lastHit = e.index\n }\n }\n }\n }\n return lastHit\n}\n\nfunction IntervalSegment(y, index, start, closed) {\n this.y = y\n this.index = index\n this.start = start\n this.closed = closed\n}\n\nfunction Event(x, segment, create, index) {\n this.x = x\n this.segment = segment\n this.create = create\n this.index = index\n}\n\n\nfunction createSlabDecomposition(segments) {\n var numSegments = segments.length\n var numEvents = 2 * numSegments\n var events = new Array(numEvents)\n for(var i=0; i bounds[2]) bounds[2] = points[j + 0]\r\n if (points[j + 1] > bounds[3]) bounds[3] = points[j + 1]\r\n }\r\n }\r\n\r\n return bounds\r\n}\r\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar layoutAttributes = require('./layout_attributes');\n\nmodule.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n coerce('treemapcolorway', layoutOut.colorway);\n coerce('extendtreemapcolors');\n};\n","module.exports = preprocessPolygon\n\nvar orient = require('robust-orientation')[3]\nvar makeSlabs = require('slab-decomposition')\nvar makeIntervalTree = require('interval-tree-1d')\nvar bsearch = require('binary-search-bounds')\n\nfunction visitInterval() {\n return true\n}\n\nfunction intervalSearch(table) {\n return function(x, y) {\n var tree = table[x]\n if(tree) {\n return !!tree.queryPoint(y, visitInterval)\n }\n return false\n }\n}\n\nfunction buildVerticalIndex(segments) {\n var table = {}\n for(var i=0; i 0 && coordinates[bucket] === p[0]) {\n root = slabs[bucket-1]\n } else {\n return 1\n }\n }\n var lastOrientation = 1\n while(root) {\n var s = root.key\n var o = orient(p, s[0], s[1])\n if(s[0][0] < s[1][0]) {\n if(o < 0) {\n root = root.left\n } else if(o > 0) {\n lastOrientation = -1\n root = root.right\n } else {\n return 0\n }\n } else {\n if(o > 0) {\n root = root.left\n } else if(o < 0) {\n lastOrientation = 1\n root = root.right\n } else {\n return 0\n }\n }\n }\n return lastOrientation\n }\n}\n\nfunction classifyEmpty(p) {\n return 1\n}\n\nfunction createClassifyVertical(testVertical) {\n return function classify(p) {\n if(testVertical(p[0], p[1])) {\n return 0\n }\n return 1\n }\n}\n\nfunction createClassifyPointDegen(testVertical, testNormal) {\n return function classify(p) {\n if(testVertical(p[0], p[1])) {\n return 0\n }\n return testNormal(p)\n }\n}\n\nfunction preprocessPolygon(loops) {\n //Compute number of loops\n var numLoops = loops.length\n\n //Unpack segments\n var segments = []\n var vsegments = []\n var ptr = 0\n for(var i=0; i 1 ? {\n type: \"MultiPolygon\",\n coordinates: polygons\n } : {\n type: \"Polygon\",\n coordinates: polygons[0]\n };\n }\n };\n var d3_geo_projectGeometryType = {\n Point: d3_geo_projectPoint,\n MultiPoint: d3_geo_projectPoint,\n LineString: d3_geo_projectLine,\n MultiLineString: d3_geo_projectLine,\n Polygon: d3_geo_projectPolygon,\n MultiPolygon: d3_geo_projectPolygon,\n Sphere: d3_geo_projectPolygon\n };\n function d3_geo_projectNoop() {}\n function d3_geo_projectClockwise(ring) {\n if ((n = ring.length) < 4) return false;\n var i = 0, n, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];\n while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];\n return area <= 0;\n }\n function d3_geo_projectContains(ring, point) {\n var x = point[0], y = point[1], contains = false;\n for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {\n var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1];\n if (yi > y ^ yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi) contains = !contains;\n }\n return contains;\n }\n var ε = 1e-6, ε2 = ε * ε, π = Math.PI, halfπ = π / 2, sqrtπ = Math.sqrt(π), radians = π / 180, degrees = 180 / π;\n function sinci(x) {\n return x ? x / Math.sin(x) : 1;\n }\n function sgn(x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n }\n function asin(x) {\n return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x);\n }\n function acos(x) {\n return x > 1 ? 0 : x < -1 ? π : Math.acos(x);\n }\n function asqrt(x) {\n return x > 0 ? Math.sqrt(x) : 0;\n }\n var projection = d3.geo.projection, projectionMutator = d3.geo.projectionMutator;\n d3.geo.interrupt = function(project) {\n var lobes = [ [ [ [ -π, 0 ], [ 0, halfπ ], [ π, 0 ] ] ], [ [ [ -π, 0 ], [ 0, -halfπ ], [ π, 0 ] ] ] ];\n var bounds;\n function forward(λ, φ) {\n var sign = φ < 0 ? -1 : +1, hemilobes = lobes[+(φ < 0)];\n for (var i = 0, n = hemilobes.length - 1; i < n && λ > hemilobes[i][2][0]; ++i) ;\n var coordinates = project(λ - hemilobes[i][1][0], φ);\n coordinates[0] += project(hemilobes[i][1][0], sign * φ > sign * hemilobes[i][0][1] ? hemilobes[i][0][1] : φ)[0];\n return coordinates;\n }\n function reset() {\n bounds = lobes.map(function(hemilobes) {\n return hemilobes.map(function(lobe) {\n var x0 = project(lobe[0][0], lobe[0][1])[0], x1 = project(lobe[2][0], lobe[2][1])[0], y0 = project(lobe[1][0], lobe[0][1])[1], y1 = project(lobe[1][0], lobe[1][1])[1], t;\n if (y0 > y1) t = y0, y0 = y1, y1 = t;\n return [ [ x0, y0 ], [ x1, y1 ] ];\n });\n });\n }\n if (project.invert) forward.invert = function(x, y) {\n var hemibounds = bounds[+(y < 0)], hemilobes = lobes[+(y < 0)];\n for (var i = 0, n = hemibounds.length; i < n; ++i) {\n var b = hemibounds[i];\n if (b[0][0] <= x && x < b[1][0] && b[0][1] <= y && y < b[1][1]) {\n var coordinates = project.invert(x - project(hemilobes[i][1][0], 0)[0], y);\n coordinates[0] += hemilobes[i][1][0];\n return pointEqual(forward(coordinates[0], coordinates[1]), [ x, y ]) ? coordinates : null;\n }\n }\n };\n var projection = d3.geo.projection(forward), stream_ = projection.stream;\n projection.stream = function(stream) {\n var rotate = projection.rotate(), rotateStream = stream_(stream), sphereStream = (projection.rotate([ 0, 0 ]),\n stream_(stream));\n projection.rotate(rotate);\n rotateStream.sphere = function() {\n d3.geo.stream(sphere(), sphereStream);\n };\n return rotateStream;\n };\n projection.lobes = function(_) {\n if (!arguments.length) return lobes.map(function(lobes) {\n return lobes.map(function(lobe) {\n return [ [ lobe[0][0] * 180 / π, lobe[0][1] * 180 / π ], [ lobe[1][0] * 180 / π, lobe[1][1] * 180 / π ], [ lobe[2][0] * 180 / π, lobe[2][1] * 180 / π ] ];\n });\n });\n lobes = _.map(function(lobes) {\n return lobes.map(function(lobe) {\n return [ [ lobe[0][0] * π / 180, lobe[0][1] * π / 180 ], [ lobe[1][0] * π / 180, lobe[1][1] * π / 180 ], [ lobe[2][0] * π / 180, lobe[2][1] * π / 180 ] ];\n });\n });\n reset();\n return projection;\n };\n function sphere() {\n var ε = 1e-6, coordinates = [];\n for (var i = 0, n = lobes[0].length; i < n; ++i) {\n var lobe = lobes[0][i], λ0 = lobe[0][0] * 180 / π, φ0 = lobe[0][1] * 180 / π, φ1 = lobe[1][1] * 180 / π, λ2 = lobe[2][0] * 180 / π, φ2 = lobe[2][1] * 180 / π;\n coordinates.push(resample([ [ λ0 + ε, φ0 + ε ], [ λ0 + ε, φ1 - ε ], [ λ2 - ε, φ1 - ε ], [ λ2 - ε, φ2 + ε ] ], 30));\n }\n for (var i = lobes[1].length - 1; i >= 0; --i) {\n var lobe = lobes[1][i], λ0 = lobe[0][0] * 180 / π, φ0 = lobe[0][1] * 180 / π, φ1 = lobe[1][1] * 180 / π, λ2 = lobe[2][0] * 180 / π, φ2 = lobe[2][1] * 180 / π;\n coordinates.push(resample([ [ λ2 - ε, φ2 - ε ], [ λ2 - ε, φ1 + ε ], [ λ0 + ε, φ1 + ε ], [ λ0 + ε, φ0 - ε ] ], 30));\n }\n return {\n type: \"Polygon\",\n coordinates: [ d3.merge(coordinates) ]\n };\n }\n function resample(coordinates, m) {\n var i = -1, n = coordinates.length, p0 = coordinates[0], p1, dx, dy, resampled = [];\n while (++i < n) {\n p1 = coordinates[i];\n dx = (p1[0] - p0[0]) / m;\n dy = (p1[1] - p0[1]) / m;\n for (var j = 0; j < m; ++j) resampled.push([ p0[0] + j * dx, p0[1] + j * dy ]);\n p0 = p1;\n }\n resampled.push(p1);\n return resampled;\n }\n function pointEqual(a, b) {\n return Math.abs(a[0] - b[0]) < ε && Math.abs(a[1] - b[1]) < ε;\n }\n return projection;\n };\n function eckert4(λ, φ) {\n var k = (2 + halfπ) * Math.sin(φ);\n φ /= 2;\n for (var i = 0, δ = Infinity; i < 10 && Math.abs(δ) > ε; i++) {\n var cosφ = Math.cos(φ);\n φ -= δ = (φ + Math.sin(φ) * (cosφ + 2) - k) / (2 * cosφ * (1 + cosφ));\n }\n return [ 2 / Math.sqrt(π * (4 + π)) * λ * (1 + Math.cos(φ)), 2 * Math.sqrt(π / (4 + π)) * Math.sin(φ) ];\n }\n eckert4.invert = function(x, y) {\n var A = .5 * y * Math.sqrt((4 + π) / π), k = asin(A), c = Math.cos(k);\n return [ x / (2 / Math.sqrt(π * (4 + π)) * (1 + c)), asin((k + A * (c + 2)) / (2 + halfπ)) ];\n };\n (d3.geo.eckert4 = function() {\n return projection(eckert4);\n }).raw = eckert4;\n var hammerAzimuthalEqualArea = d3.geo.azimuthalEqualArea.raw;\n function hammer(A, B) {\n if (arguments.length < 2) B = A;\n if (B === 1) return hammerAzimuthalEqualArea;\n if (B === Infinity) return hammerQuarticAuthalic;\n function forward(λ, φ) {\n var coordinates = hammerAzimuthalEqualArea(λ / B, φ);\n coordinates[0] *= A;\n return coordinates;\n }\n forward.invert = function(x, y) {\n var coordinates = hammerAzimuthalEqualArea.invert(x / A, y);\n coordinates[0] *= B;\n return coordinates;\n };\n return forward;\n }\n function hammerProjection() {\n var B = 2, m = projectionMutator(hammer), p = m(B);\n p.coefficient = function(_) {\n if (!arguments.length) return B;\n return m(B = +_);\n };\n return p;\n }\n function hammerQuarticAuthalic(λ, φ) {\n return [ λ * Math.cos(φ) / Math.cos(φ /= 2), 2 * Math.sin(φ) ];\n }\n hammerQuarticAuthalic.invert = function(x, y) {\n var φ = 2 * asin(y / 2);\n return [ x * Math.cos(φ / 2) / Math.cos(φ), φ ];\n };\n (d3.geo.hammer = hammerProjection).raw = hammer;\n function kavrayskiy7(λ, φ) {\n return [ 3 * λ / (2 * π) * Math.sqrt(π * π / 3 - φ * φ), φ ];\n }\n kavrayskiy7.invert = function(x, y) {\n return [ 2 / 3 * π * x / Math.sqrt(π * π / 3 - y * y), y ];\n };\n (d3.geo.kavrayskiy7 = function() {\n return projection(kavrayskiy7);\n }).raw = kavrayskiy7;\n function miller(λ, φ) {\n return [ λ, 1.25 * Math.log(Math.tan(π / 4 + .4 * φ)) ];\n }\n miller.invert = function(x, y) {\n return [ x, 2.5 * Math.atan(Math.exp(.8 * y)) - .625 * π ];\n };\n (d3.geo.miller = function() {\n return projection(miller);\n }).raw = miller;\n function mollweideBromleyθ(Cp) {\n return function(θ) {\n var Cpsinθ = Cp * Math.sin(θ), i = 30, δ;\n do θ -= δ = (θ + Math.sin(θ) - Cpsinθ) / (1 + Math.cos(θ)); while (Math.abs(δ) > ε && --i > 0);\n return θ / 2;\n };\n }\n function mollweideBromley(Cx, Cy, Cp) {\n var θ = mollweideBromleyθ(Cp);\n function forward(λ, φ) {\n return [ Cx * λ * Math.cos(φ = θ(φ)), Cy * Math.sin(φ) ];\n }\n forward.invert = function(x, y) {\n var θ = asin(y / Cy);\n return [ x / (Cx * Math.cos(θ)), asin((2 * θ + Math.sin(2 * θ)) / Cp) ];\n };\n return forward;\n }\n var mollweideθ = mollweideBromleyθ(π), mollweide = mollweideBromley(Math.SQRT2 / halfπ, Math.SQRT2, π);\n (d3.geo.mollweide = function() {\n return projection(mollweide);\n }).raw = mollweide;\n function naturalEarth(λ, φ) {\n var φ2 = φ * φ, φ4 = φ2 * φ2;\n return [ λ * (.8707 - .131979 * φ2 + φ4 * (-.013791 + φ4 * (.003971 * φ2 - .001529 * φ4))), φ * (1.007226 + φ2 * (.015085 + φ4 * (-.044475 + .028874 * φ2 - .005916 * φ4))) ];\n }\n naturalEarth.invert = function(x, y) {\n var φ = y, i = 25, δ;\n do {\n var φ2 = φ * φ, φ4 = φ2 * φ2;\n φ -= δ = (φ * (1.007226 + φ2 * (.015085 + φ4 * (-.044475 + .028874 * φ2 - .005916 * φ4))) - y) / (1.007226 + φ2 * (.015085 * 3 + φ4 * (-.044475 * 7 + .028874 * 9 * φ2 - .005916 * 11 * φ4)));\n } while (Math.abs(δ) > ε && --i > 0);\n return [ x / (.8707 + (φ2 = φ * φ) * (-.131979 + φ2 * (-.013791 + φ2 * φ2 * φ2 * (.003971 - .001529 * φ2)))), φ ];\n };\n (d3.geo.naturalEarth = function() {\n return projection(naturalEarth);\n }).raw = naturalEarth;\n var robinsonConstants = [ [ .9986, -.062 ], [ 1, 0 ], [ .9986, .062 ], [ .9954, .124 ], [ .99, .186 ], [ .9822, .248 ], [ .973, .31 ], [ .96, .372 ], [ .9427, .434 ], [ .9216, .4958 ], [ .8962, .5571 ], [ .8679, .6176 ], [ .835, .6769 ], [ .7986, .7346 ], [ .7597, .7903 ], [ .7186, .8435 ], [ .6732, .8936 ], [ .6213, .9394 ], [ .5722, .9761 ], [ .5322, 1 ] ];\n robinsonConstants.forEach(function(d) {\n d[1] *= 1.0144;\n });\n function robinson(λ, φ) {\n var i = Math.min(18, Math.abs(φ) * 36 / π), i0 = Math.floor(i), di = i - i0, ax = (k = robinsonConstants[i0])[0], ay = k[1], bx = (k = robinsonConstants[++i0])[0], by = k[1], cx = (k = robinsonConstants[Math.min(19, ++i0)])[0], cy = k[1], k;\n return [ λ * (bx + di * (cx - ax) / 2 + di * di * (cx - 2 * bx + ax) / 2), (φ > 0 ? halfπ : -halfπ) * (by + di * (cy - ay) / 2 + di * di * (cy - 2 * by + ay) / 2) ];\n }\n robinson.invert = function(x, y) {\n var yy = y / halfπ, φ = yy * 90, i = Math.min(18, Math.abs(φ / 5)), i0 = Math.max(0, Math.floor(i));\n do {\n var ay = robinsonConstants[i0][1], by = robinsonConstants[i0 + 1][1], cy = robinsonConstants[Math.min(19, i0 + 2)][1], u = cy - ay, v = cy - 2 * by + ay, t = 2 * (Math.abs(yy) - by) / u, c = v / u, di = t * (1 - c * t * (1 - 2 * c * t));\n if (di >= 0 || i0 === 1) {\n φ = (y >= 0 ? 5 : -5) * (di + i);\n var j = 50, δ;\n do {\n i = Math.min(18, Math.abs(φ) / 5);\n i0 = Math.floor(i);\n di = i - i0;\n ay = robinsonConstants[i0][1];\n by = robinsonConstants[i0 + 1][1];\n cy = robinsonConstants[Math.min(19, i0 + 2)][1];\n φ -= (δ = (y >= 0 ? halfπ : -halfπ) * (by + di * (cy - ay) / 2 + di * di * (cy - 2 * by + ay) / 2) - y) * degrees;\n } while (Math.abs(δ) > ε2 && --j > 0);\n break;\n }\n } while (--i0 >= 0);\n var ax = robinsonConstants[i0][0], bx = robinsonConstants[i0 + 1][0], cx = robinsonConstants[Math.min(19, i0 + 2)][0];\n return [ x / (bx + di * (cx - ax) / 2 + di * di * (cx - 2 * bx + ax) / 2), φ * radians ];\n };\n (d3.geo.robinson = function() {\n return projection(robinson);\n }).raw = robinson;\n function sinusoidal(λ, φ) {\n return [ λ * Math.cos(φ), φ ];\n }\n sinusoidal.invert = function(x, y) {\n return [ x / Math.cos(y), y ];\n };\n (d3.geo.sinusoidal = function() {\n return projection(sinusoidal);\n }).raw = sinusoidal;\n function aitoff(λ, φ) {\n var cosφ = Math.cos(φ), sinciα = sinci(acos(cosφ * Math.cos(λ /= 2)));\n return [ 2 * cosφ * Math.sin(λ) * sinciα, Math.sin(φ) * sinciα ];\n }\n aitoff.invert = function(x, y) {\n if (x * x + 4 * y * y > π * π + ε) return;\n var λ = x, φ = y, i = 25;\n do {\n var sinλ = Math.sin(λ), sinλ_2 = Math.sin(λ / 2), cosλ_2 = Math.cos(λ / 2), sinφ = Math.sin(φ), cosφ = Math.cos(φ), sin_2φ = Math.sin(2 * φ), sin2φ = sinφ * sinφ, cos2φ = cosφ * cosφ, sin2λ_2 = sinλ_2 * sinλ_2, C = 1 - cos2φ * cosλ_2 * cosλ_2, E = C ? acos(cosφ * cosλ_2) * Math.sqrt(F = 1 / C) : F = 0, F, fx = 2 * E * cosφ * sinλ_2 - x, fy = E * sinφ - y, δxδλ = F * (cos2φ * sin2λ_2 + E * cosφ * cosλ_2 * sin2φ), δxδφ = F * (.5 * sinλ * sin_2φ - E * 2 * sinφ * sinλ_2), δyδλ = F * .25 * (sin_2φ * sinλ_2 - E * sinφ * cos2φ * sinλ), δyδφ = F * (sin2φ * cosλ_2 + E * sin2λ_2 * cosφ), denominator = δxδφ * δyδλ - δyδφ * δxδλ;\n if (!denominator) break;\n var δλ = (fy * δxδφ - fx * δyδφ) / denominator, δφ = (fx * δyδλ - fy * δxδλ) / denominator;\n λ -= δλ, φ -= δφ;\n } while ((Math.abs(δλ) > ε || Math.abs(δφ) > ε) && --i > 0);\n return [ λ, φ ];\n };\n (d3.geo.aitoff = function() {\n return projection(aitoff);\n }).raw = aitoff;\n function winkel3(λ, φ) {\n var coordinates = aitoff(λ, φ);\n return [ (coordinates[0] + λ / halfπ) / 2, (coordinates[1] + φ) / 2 ];\n }\n winkel3.invert = function(x, y) {\n var λ = x, φ = y, i = 25;\n do {\n var cosφ = Math.cos(φ), sinφ = Math.sin(φ), sin_2φ = Math.sin(2 * φ), sin2φ = sinφ * sinφ, cos2φ = cosφ * cosφ, sinλ = Math.sin(λ), cosλ_2 = Math.cos(λ / 2), sinλ_2 = Math.sin(λ / 2), sin2λ_2 = sinλ_2 * sinλ_2, C = 1 - cos2φ * cosλ_2 * cosλ_2, E = C ? acos(cosφ * cosλ_2) * Math.sqrt(F = 1 / C) : F = 0, F, fx = .5 * (2 * E * cosφ * sinλ_2 + λ / halfπ) - x, fy = .5 * (E * sinφ + φ) - y, δxδλ = .5 * F * (cos2φ * sin2λ_2 + E * cosφ * cosλ_2 * sin2φ) + .5 / halfπ, δxδφ = F * (sinλ * sin_2φ / 4 - E * sinφ * sinλ_2), δyδλ = .125 * F * (sin_2φ * sinλ_2 - E * sinφ * cos2φ * sinλ), δyδφ = .5 * F * (sin2φ * cosλ_2 + E * sin2λ_2 * cosφ) + .5, denominator = δxδφ * δyδλ - δyδφ * δxδλ, δλ = (fy * δxδφ - fx * δyδφ) / denominator, δφ = (fx * δyδλ - fy * δxδλ) / denominator;\n λ -= δλ, φ -= δφ;\n } while ((Math.abs(δλ) > ε || Math.abs(δφ) > ε) && --i > 0);\n return [ λ, φ ];\n };\n (d3.geo.winkel3 = function() {\n return projection(winkel3);\n }).raw = winkel3;\n}\n\nmodule.exports = addProjectionsToD3;\n","module.exports = inverse;\n\n/**\n * Returns the inverse of the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a vector to invert\n * @returns {vec3} out\n */\nfunction inverse(out, a) {\n out[0] = 1.0 / a[0]\n out[1] = 1.0 / a[1]\n out[2] = 1.0 / a[2]\n return out\n}","\"use strict\"\n\nvar uniq = require(\"uniq\")\n\n// This function generates very simple loops analogous to how you typically traverse arrays (the outermost loop corresponds to the slowest changing index, the innermost loop to the fastest changing index)\n// TODO: If two arrays have the same strides (and offsets) there is potential for decreasing the number of \"pointers\" and related variables. The drawback is that the type signature would become more specific and that there would thus be less potential for caching, but it might still be worth it, especially when dealing with large numbers of arguments.\nfunction innerFill(order, proc, body) {\n var dimension = order.length\n , nargs = proc.arrayArgs.length\n , has_index = proc.indexArgs.length>0\n , code = []\n , vars = []\n , idx=0, pidx=0, i, j\n for(i=0; i 0) {\n code.push(\"var \" + vars.join(\",\"))\n } \n //Scan loop\n for(i=dimension-1; i>=0; --i) { // Start at largest stride and work your way inwards\n idx = order[i]\n code.push([\"for(i\",i,\"=0;i\",i,\" 0) {\n code.push([\"index[\",pidx,\"]-=s\",pidx].join(\"\"))\n }\n code.push([\"++index[\",idx,\"]\"].join(\"\"))\n }\n code.push(\"}\")\n }\n return code.join(\"\\n\")\n}\n\n// Generate \"outer\" loops that loop over blocks of data, applying \"inner\" loops to the blocks by manipulating the local variables in such a way that the inner loop only \"sees\" the current block.\n// TODO: If this is used, then the previous declaration (done by generateCwiseOp) of s* is essentially unnecessary.\n// I believe the s* are not used elsewhere (in particular, I don't think they're used in the pre/post parts and \"shape\" is defined independently), so it would be possible to make defining the s* dependent on what loop method is being used.\nfunction outerFill(matched, order, proc, body) {\n var dimension = order.length\n , nargs = proc.arrayArgs.length\n , blockSize = proc.blockSize\n , has_index = proc.indexArgs.length > 0\n , code = []\n for(var i=0; i0;){\"].join(\"\")) // Iterate back to front\n code.push([\"if(j\",i,\"<\",blockSize,\"){\"].join(\"\")) // Either decrease j by blockSize (s = blockSize), or set it to zero (after setting s = j).\n code.push([\"s\",order[i],\"=j\",i].join(\"\"))\n code.push([\"j\",i,\"=0\"].join(\"\"))\n code.push([\"}else{s\",order[i],\"=\",blockSize].join(\"\"))\n code.push([\"j\",i,\"-=\",blockSize,\"}\"].join(\"\"))\n if(has_index) {\n code.push([\"index[\",order[i],\"]=j\",i].join(\"\"))\n }\n }\n for(var i=0; i 0) {\n allEqual = allEqual && summary[i] === summary[i-1]\n }\n }\n if(allEqual) {\n return summary[0]\n }\n return summary.join(\"\")\n}\n\n//Generates a cwise operator\nfunction generateCWiseOp(proc, typesig) {\n\n //Compute dimension\n // Arrays get put first in typesig, and there are two entries per array (dtype and order), so this gets the number of dimensions in the first array arg.\n var dimension = (typesig[1].length - Math.abs(proc.arrayBlockIndices[0]))|0\n var orders = new Array(proc.arrayArgs.length)\n var dtypes = new Array(proc.arrayArgs.length)\n for(var i=0; i 0) {\n vars.push(\"shape=SS.slice(0)\") // Makes the shape over which we iterate available to the user defined functions (so you can use width/height for example)\n }\n if(proc.indexArgs.length > 0) {\n // Prepare an array to keep track of the (logical) indices, initialized to dimension zeroes.\n var zeros = new Array(dimension)\n for(var i=0; i 0) {\n code.push(\"var \" + vars.join(\",\"))\n }\n for(var i=0; i 3) {\n code.push(processBlock(proc.pre, proc, dtypes))\n }\n\n //Process body\n var body = processBlock(proc.body, proc, dtypes)\n var matched = countMatches(loopOrders)\n if(matched < dimension) {\n code.push(outerFill(matched, loopOrders[0], proc, body)) // TODO: Rather than passing loopOrders[0], it might be interesting to look at passing an order that represents the majority of the arguments for example.\n } else {\n code.push(innerFill(loopOrders[0], proc, body))\n }\n\n //Inline epilog\n if(proc.post.body.length > 3) {\n code.push(processBlock(proc.post, proc, dtypes))\n }\n \n if(proc.debug) {\n console.log(\"-----Generated cwise routine for \", typesig, \":\\n\" + code.join(\"\\n\") + \"\\n----------\")\n }\n \n var loopName = [(proc.funcName||\"unnamed\"), \"_cwise_loop_\", orders[0].join(\"s\"),\"m\",matched,typeSummary(dtypes)].join(\"\")\n var f = new Function([\"function \",loopName,\"(\", arglist.join(\",\"),\"){\", code.join(\"\\n\"),\"} return \", loopName].join(\"\"))\n return f()\n}\nmodule.exports = generateCWiseOp\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar axisIDs = require('../../plots/cartesian/axis_ids');\nvar svgTextUtils = require('../../lib/svg_text_utils');\nvar constants = require('./constants');\nvar LINE_SPACING = require('../../constants/alignment').LINE_SPACING;\nvar name = constants.name;\n\nfunction isVisible(ax) {\n var rangeSlider = ax && ax[name];\n return rangeSlider && rangeSlider.visible;\n}\nexports.isVisible = isVisible;\n\nexports.makeData = function(fullLayout) {\n var axes = axisIDs.list({ _fullLayout: fullLayout }, 'x', true);\n var margin = fullLayout.margin;\n var rangeSliderData = [];\n\n if(!fullLayout._has('gl2d')) {\n for(var i = 0; i < axes.length; i++) {\n var ax = axes[i];\n\n if(isVisible(ax)) {\n rangeSliderData.push(ax);\n\n var opts = ax[name];\n opts._id = name + ax._id;\n opts._height = (fullLayout.height - margin.b - margin.t) * opts.thickness;\n opts._offsetShift = Math.floor(opts.borderwidth / 2);\n }\n }\n }\n\n fullLayout._rangeSliderData = rangeSliderData;\n};\n\nexports.autoMarginOpts = function(gd, ax) {\n var fullLayout = gd._fullLayout;\n var opts = ax[name];\n var axLetter = ax._id.charAt(0);\n\n var bottomDepth = 0;\n var titleHeight = 0;\n if(ax.side === 'bottom') {\n bottomDepth = ax._depth;\n if(ax.title.text !== fullLayout._dfltTitle[axLetter]) {\n // as in rangeslider/draw.js\n titleHeight = 1.5 * ax.title.font.size + 10 + opts._offsetShift;\n // multi-line extra bump\n var extraLines = (ax.title.text.match(svgTextUtils.BR_TAG_ALL) || []).length;\n titleHeight += extraLines * ax.title.font.size * LINE_SPACING;\n }\n }\n\n return {\n x: 0,\n y: ax._counterDomainMin,\n l: 0,\n r: 0,\n t: 0,\n b: opts._height + bottomDepth + Math.max(fullLayout.margin.b, titleHeight),\n pad: constants.extraPad + opts._offsetShift * 2\n };\n};\n","module.exports = function parseUnit(str, out) {\n if (!out)\n out = [ 0, '' ]\n\n str = String(str)\n var num = parseFloat(str, 10)\n out[0] = num\n out[1] = str.match(/[\\d.\\-\\+]*\\s*(.*)/)[1] || ''\n return out\n}","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar listAxes = require('../../plots/cartesian/axis_ids').list;\nvar getAutoRange = require('../../plots/cartesian/autorange').getAutoRange;\nvar constants = require('./constants');\n\nmodule.exports = function calcAutorange(gd) {\n var axes = listAxes(gd, 'x', true);\n\n // Compute new slider range using axis autorange if necessary.\n //\n // Copy back range to input range slider container to skip\n // this step in subsequent draw calls.\n\n for(var i = 0; i < axes.length; i++) {\n var ax = axes[i];\n var opts = ax[constants.name];\n\n if(opts && opts.visible && opts.autorange) {\n opts._input.autorange = true;\n opts._input.range = opts.range = getAutoRange(gd, ax);\n }\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nmodule.exports = {\n RELATIVE_CULL_TOLERANCE: 1e-6\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n barmode: {\n valType: 'enumerated',\n values: ['stack', 'overlay'],\n dflt: 'stack',\n \n editType: 'calc',\n \n },\n bargap: {\n valType: 'number',\n dflt: 0.1,\n min: 0,\n max: 1,\n \n editType: 'calc',\n \n }\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict'\n\nvar BN = require('bn.js')\n\nmodule.exports = isBN\n\n//Test if x is a bignumber\n//FIXME: obviously this is the wrong way to do it\nfunction isBN(x) {\n return x && typeof x === 'object' && Boolean(x.words)\n}\n","module.exports = length\n\n/**\n * Calculates the length of a vec4\n *\n * @param {vec4} a vector to calculate length of\n * @returns {Number} length of a\n */\nfunction length (a) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3]\n return Math.sqrt(x * x + y * y + z * z + w * w)\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../lib');\nvar EventEmitter = require('events').EventEmitter;\n\nvar helpers = require('./helpers');\n\nfunction svgToImg(opts) {\n var ev = opts.emitter || new EventEmitter();\n\n var promise = new Promise(function(resolve, reject) {\n var Image = window.Image;\n var svg = opts.svg;\n var format = opts.format || 'png';\n\n // IE only support svg\n if(Lib.isIE() && format !== 'svg') {\n var ieSvgError = new Error(helpers.MSG_IE_BAD_FORMAT);\n reject(ieSvgError);\n // eventually remove the ev\n // in favor of promises\n if(!opts.promise) {\n return ev.emit('error', ieSvgError);\n } else {\n return promise;\n }\n }\n\n var canvas = opts.canvas;\n var scale = opts.scale || 1;\n var w0 = opts.width || 300;\n var h0 = opts.height || 150;\n var w1 = scale * w0;\n var h1 = scale * h0;\n\n var ctx = canvas.getContext('2d');\n var img = new Image();\n var svgBlob, url;\n\n if(format === 'svg' || Lib.isIE9orBelow() || Lib.isSafari()) {\n url = helpers.encodeSVG(svg);\n } else {\n svgBlob = helpers.createBlob(svg, 'svg');\n url = helpers.createObjectURL(svgBlob);\n }\n\n canvas.width = w1;\n canvas.height = h1;\n\n img.onload = function() {\n var imgData;\n\n svgBlob = null;\n helpers.revokeObjectURL(url);\n\n // don't need to draw to canvas if svg\n // save some time and also avoid failure on IE\n if(format !== 'svg') {\n ctx.drawImage(img, 0, 0, w1, h1);\n }\n\n switch(format) {\n case 'jpeg':\n imgData = canvas.toDataURL('image/jpeg');\n break;\n case 'png':\n imgData = canvas.toDataURL('image/png');\n break;\n case 'webp':\n imgData = canvas.toDataURL('image/webp');\n break;\n case 'svg':\n imgData = url;\n break;\n default:\n var errorMsg = 'Image format is not jpeg, png, svg or webp.';\n reject(new Error(errorMsg));\n // eventually remove the ev\n // in favor of promises\n if(!opts.promise) {\n return ev.emit('error', errorMsg);\n }\n }\n resolve(imgData);\n // eventually remove the ev\n // in favor of promises\n if(!opts.promise) {\n ev.emit('success', imgData);\n }\n };\n\n img.onerror = function(err) {\n svgBlob = null;\n helpers.revokeObjectURL(url);\n\n reject(err);\n // eventually remove the ev\n // in favor of promises\n if(!opts.promise) {\n return ev.emit('error', err);\n }\n };\n\n img.src = url;\n });\n\n // temporary for backward compatibility\n // move to only Promise in 2.0.0\n // and eliminate the EventEmitter\n if(opts.promise) {\n return promise;\n }\n\n return ev;\n}\n\nmodule.exports = svgToImg;\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar isArrayOrTypedArray = require('../../lib').isArrayOrTypedArray;\n\n/*\n * Construct a 2D array of cheater values given a, b, and a slope.\n * If\n */\nmodule.exports = function(a, b, cheaterslope) {\n var i, j, ascal, bscal, aval, bval;\n var data = [];\n\n var na = isArrayOrTypedArray(a) ? a.length : a;\n var nb = isArrayOrTypedArray(b) ? b.length : b;\n var adata = isArrayOrTypedArray(a) ? a : null;\n var bdata = isArrayOrTypedArray(b) ? b : null;\n\n // If we're using data, scale it so that for data that's just barely\n // not evenly spaced, the switch to value-based indexing is continuous.\n // This means evenly spaced data should look the same whether value\n // or index cheatertype.\n if(adata) {\n ascal = (adata.length - 1) / (adata[adata.length - 1] - adata[0]) / (na - 1);\n }\n\n if(bdata) {\n bscal = (bdata.length - 1) / (bdata[bdata.length - 1] - bdata[0]) / (nb - 1);\n }\n\n var xval;\n var xmin = Infinity;\n var xmax = -Infinity;\n for(j = 0; j < nb; j++) {\n data[j] = [];\n bval = bdata ? (bdata[j] - bdata[0]) * bscal : j / (nb - 1);\n for(i = 0; i < na; i++) {\n aval = adata ? (adata[i] - adata[0]) * ascal : i / (na - 1);\n xval = aval - bval * cheaterslope;\n xmin = Math.min(xval, xmin);\n xmax = Math.max(xval, xmax);\n data[j][i] = xval;\n }\n }\n\n // Normalize cheater values to the 0-1 range. This comes into play when you have\n // multiple cheater plots. After careful consideration, it seems better if cheater\n // values are normalized to a consistent range. Otherwise one cheater affects the\n // layout of other cheaters on the same axis.\n var slope = 1.0 / (xmax - xmin);\n var offset = -xmin * slope;\n for(j = 0; j < nb; j++) {\n for(i = 0; i < na; i++) {\n data[j][i] = slope * data[j][i] + offset;\n }\n }\n\n return data;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar mouseOffset = require('mouse-event-offset');\nvar hasHover = require('has-hover');\nvar supportsPassive = require('has-passive-events');\n\nvar removeElement = require('../../lib').removeElement;\nvar constants = require('../../plots/cartesian/constants');\n\nvar dragElement = module.exports = {};\n\ndragElement.align = require('./align');\ndragElement.getCursor = require('./cursor');\n\nvar unhover = require('./unhover');\ndragElement.unhover = unhover.wrapped;\ndragElement.unhoverRaw = unhover.raw;\n\n/**\n * Abstracts click & drag interactions\n *\n * During the interaction, a \"coverSlip\" element - a transparent\n * div covering the whole page - is created, which has two key effects:\n * - Lets you drag beyond the boundaries of the plot itself without\n * dropping (but if you drag all the way out of the browser window the\n * interaction will end)\n * - Freezes the cursor: whatever mouse cursor the drag element had when the\n * interaction started gets copied to the coverSlip for use until mouseup\n *\n * If the user executes a drag bigger than MINDRAG, callbacks will fire as:\n * prepFn, moveFn (1 or more times), doneFn\n * If the user does not drag enough, prepFn and clickFn will fire.\n *\n * Note: If you cancel contextmenu, clickFn will fire even with a right click\n * (unlike native events) so you'll get a `plotly_click` event. Cancel context eg:\n * gd.addEventListener('contextmenu', function(e) { e.preventDefault(); });\n * TODO: we should probably turn this into a `config` parameter, so we can fix it\n * such that if you *don't* cancel contextmenu, we can prevent partial drags, which\n * put you in a weird state.\n *\n * If the user clicks multiple times quickly, clickFn will fire each time\n * but numClicks will increase to help you recognize doubleclicks.\n *\n * @param {object} options with keys:\n * element (required) the DOM element to drag\n * prepFn (optional) function(event, startX, startY)\n * executed on mousedown\n * startX and startY are the clientX and clientY pixel position\n * of the mousedown event\n * moveFn (optional) function(dx, dy)\n * executed on move, ONLY after we've exceeded MINDRAG\n * (we keep executing moveFn if you move back to where you started)\n * dx and dy are the net pixel offset of the drag,\n * dragged is true/false, has the mouse moved enough to\n * constitute a drag\n * doneFn (optional) function(e)\n * executed on mouseup, ONLY if we exceeded MINDRAG (so you can be\n * sure that moveFn has been called at least once)\n * numClicks is how many clicks we've registered within\n * a doubleclick time\n * e is the original mouseup event\n * clickFn (optional) function(numClicks, e)\n * executed on mouseup if we have NOT exceeded MINDRAG (ie moveFn\n * has not been called at all)\n * numClicks is how many clicks we've registered within\n * a doubleclick time\n * e is the original mousedown event\n * clampFn (optional, function(dx, dy) return [dx2, dy2])\n * Provide custom clamping function for small displacements.\n * By default, clamping is done using `minDrag` to x and y displacements\n * independently.\n */\ndragElement.init = function init(options) {\n var gd = options.gd;\n var numClicks = 1;\n var doubleClickDelay = gd._context.doubleClickDelay;\n var element = options.element;\n\n var startX,\n startY,\n newMouseDownTime,\n cursor,\n dragCover,\n initialEvent,\n initialTarget,\n rightClick;\n\n if(!gd._mouseDownTime) gd._mouseDownTime = 0;\n\n element.style.pointerEvents = 'all';\n\n element.onmousedown = onStart;\n\n if(!supportsPassive) {\n element.ontouchstart = onStart;\n } else {\n if(element._ontouchstart) {\n element.removeEventListener('touchstart', element._ontouchstart);\n }\n element._ontouchstart = onStart;\n element.addEventListener('touchstart', onStart, {passive: false});\n }\n\n function _clampFn(dx, dy, minDrag) {\n if(Math.abs(dx) < minDrag) dx = 0;\n if(Math.abs(dy) < minDrag) dy = 0;\n return [dx, dy];\n }\n\n var clampFn = options.clampFn || _clampFn;\n\n function onStart(e) {\n // make dragging and dragged into properties of gd\n // so that others can look at and modify them\n gd._dragged = false;\n gd._dragging = true;\n var offset = pointerOffset(e);\n startX = offset[0];\n startY = offset[1];\n initialTarget = e.target;\n initialEvent = e;\n rightClick = e.buttons === 2 || e.ctrlKey;\n\n // fix Fx.hover for touch events\n if(typeof e.clientX === 'undefined' && typeof e.clientY === 'undefined') {\n e.clientX = startX;\n e.clientY = startY;\n }\n\n newMouseDownTime = (new Date()).getTime();\n if(newMouseDownTime - gd._mouseDownTime < doubleClickDelay) {\n // in a click train\n numClicks += 1;\n } else {\n // new click train\n numClicks = 1;\n gd._mouseDownTime = newMouseDownTime;\n }\n\n if(options.prepFn) options.prepFn(e, startX, startY);\n\n if(hasHover && !rightClick) {\n dragCover = coverSlip();\n dragCover.style.cursor = window.getComputedStyle(element).cursor;\n } else if(!hasHover) {\n // document acts as a dragcover for mobile, bc we can't create dragcover dynamically\n dragCover = document;\n cursor = window.getComputedStyle(document.documentElement).cursor;\n document.documentElement.style.cursor = window.getComputedStyle(element).cursor;\n }\n\n document.addEventListener('mouseup', onDone);\n document.addEventListener('touchend', onDone);\n\n if(options.dragmode !== false) {\n e.preventDefault();\n document.addEventListener('mousemove', onMove);\n document.addEventListener('touchmove', onMove, {passive: false});\n }\n\n return;\n }\n\n function onMove(e) {\n e.preventDefault();\n\n var offset = pointerOffset(e);\n var minDrag = options.minDrag || constants.MINDRAG;\n var dxdy = clampFn(offset[0] - startX, offset[1] - startY, minDrag);\n var dx = dxdy[0];\n var dy = dxdy[1];\n\n if(dx || dy) {\n gd._dragged = true;\n dragElement.unhover(gd);\n }\n\n if(gd._dragged && options.moveFn && !rightClick) {\n gd._dragdata = {\n element: element,\n dx: dx,\n dy: dy\n };\n options.moveFn(dx, dy);\n }\n\n return;\n }\n\n function onDone(e) {\n delete gd._dragdata;\n\n if(options.dragmode !== false) {\n e.preventDefault();\n document.removeEventListener('mousemove', onMove);\n document.removeEventListener('touchmove', onMove);\n }\n\n document.removeEventListener('mouseup', onDone);\n document.removeEventListener('touchend', onDone);\n\n if(hasHover) {\n removeElement(dragCover);\n } else if(cursor) {\n dragCover.documentElement.style.cursor = cursor;\n cursor = null;\n }\n\n if(!gd._dragging) {\n gd._dragged = false;\n return;\n }\n gd._dragging = false;\n\n // don't count as a dblClick unless the mouseUp is also within\n // the dblclick delay\n if((new Date()).getTime() - gd._mouseDownTime > doubleClickDelay) {\n numClicks = Math.max(numClicks - 1, 1);\n }\n\n if(gd._dragged) {\n if(options.doneFn) options.doneFn();\n } else {\n if(options.clickFn) options.clickFn(numClicks, initialEvent);\n\n // If we haven't dragged, this should be a click. But because of the\n // coverSlip changing the element, the natural system might not generate one,\n // so we need to make our own. But right clicks don't normally generate\n // click events, only contextmenu events, which happen on mousedown.\n if(!rightClick) {\n var e2;\n\n try {\n e2 = new MouseEvent('click', e);\n } catch(err) {\n var offset = pointerOffset(e);\n e2 = document.createEvent('MouseEvents');\n e2.initMouseEvent('click',\n e.bubbles, e.cancelable,\n e.view, e.detail,\n e.screenX, e.screenY,\n offset[0], offset[1],\n e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,\n e.button, e.relatedTarget);\n }\n\n initialTarget.dispatchEvent(e2);\n }\n }\n\n gd._dragging = false;\n gd._dragged = false;\n return;\n }\n};\n\nfunction coverSlip() {\n var cover = document.createElement('div');\n\n cover.className = 'dragcover';\n var cStyle = cover.style;\n cStyle.position = 'fixed';\n cStyle.left = 0;\n cStyle.right = 0;\n cStyle.top = 0;\n cStyle.bottom = 0;\n cStyle.zIndex = 999999999;\n cStyle.background = 'none';\n\n document.body.appendChild(cover);\n\n return cover;\n}\n\ndragElement.coverSlip = coverSlip;\n\nfunction pointerOffset(e) {\n return mouseOffset(\n e.changedTouches ? e.changedTouches[0] : e,\n document.body\n );\n}\n","'use strict'\n\nvar glslify = require('glslify')\n\nmodule.exports = {\n fragment: glslify([\"precision lowp float;\\n#define GLSLIFY 1\\nvarying vec4 fragColor;\\nvoid main() {\\n gl_FragColor = vec4(fragColor.rgb * fragColor.a, fragColor.a);\\n}\\n\"]),\n vertex: glslify([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nattribute vec2 position;\\nattribute vec4 color;\\nattribute vec2 weight;\\n\\nuniform vec2 shape;\\nuniform mat3 viewTransform;\\n\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n vec3 vPosition = viewTransform * vec3( position + (weight-.5)/(shape-1.) , 1.0);\\n fragColor = color;\\n gl_Position = vec4(vPosition.xy, 0, vPosition.z);\\n}\\n\"]),\n pickFragment: glslify([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nvarying vec4 fragId;\\nvarying vec2 vWeight;\\n\\nuniform vec2 shape;\\nuniform vec4 pickOffset;\\n\\nvoid main() {\\n vec2 d = step(.5, vWeight);\\n vec4 id = fragId + pickOffset;\\n id.x += d.x + d.y*shape.x;\\n\\n id.y += floor(id.x / 256.0);\\n id.x -= floor(id.x / 256.0) * 256.0;\\n\\n id.z += floor(id.y / 256.0);\\n id.y -= floor(id.y / 256.0) * 256.0;\\n\\n id.w += floor(id.z / 256.0);\\n id.z -= floor(id.z / 256.0) * 256.0;\\n\\n gl_FragColor = id/255.;\\n}\\n\"]),\n pickVertex: glslify([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nattribute vec2 position;\\nattribute vec4 pickId;\\nattribute vec2 weight;\\n\\nuniform vec2 shape;\\nuniform mat3 viewTransform;\\n\\nvarying vec4 fragId;\\nvarying vec2 vWeight;\\n\\nvoid main() {\\n vWeight = weight;\\n\\n fragId = pickId;\\n\\n vec3 vPosition = viewTransform * vec3( position + (weight-.5)/(shape-1.) , 1.0);\\n gl_Position = vec4(vPosition.xy, 0, vPosition.z);\\n}\\n\"])\n}\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","module.exports = rotateY;\n\n/**\n * Rotate a 3D vector around the y-axis\n * @param {vec3} out The receiving vec3\n * @param {vec3} a The vec3 point to rotate\n * @param {vec3} b The origin of the rotation\n * @param {Number} c The angle of rotation\n * @returns {vec3} out\n */\nfunction rotateY(out, a, b, c){\n var bx = b[0]\n var bz = b[2]\n\n // translate point to the origin\n var px = a[0] - bx\n var pz = a[2] - bz\n \n var sc = Math.sin(c)\n var cc = Math.cos(c)\n \n // perform rotation and translate to correct position\n out[0] = bx + pz * sc + px * cc\n out[1] = a[1]\n out[2] = bz + pz * cc - px * sc\n \n return out\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n attributes: require('./attributes'),\n layoutAttributes: require('./layout_attributes'),\n supplyDefaults: require('./defaults').supplyDefaults,\n crossTraceDefaults: require('./defaults').crossTraceDefaults,\n supplyLayoutDefaults: require('./layout_defaults').supplyLayoutDefaults,\n calc: require('./calc'),\n crossTraceCalc: require('./cross_trace_calc').crossTraceCalc,\n plot: require('./plot').plot,\n style: require('./style').style,\n styleOnSelect: require('./style').styleOnSelect,\n hoverPoints: require('./hover').hoverPoints,\n eventData: require('./event_data'),\n selectPoints: require('./select'),\n\n moduleType: 'trace',\n name: 'box',\n basePlotModule: require('../../plots/cartesian'),\n categories: ['cartesian', 'svg', 'symbols', 'oriented', 'box-violin', 'showLegend', 'boxLayout', 'zoomScale'],\n meta: {\n \n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/histogram');\n","\"use strict\"\n\nmodule.exports = extractPlanes\n\nfunction extractPlanes(M, zNear, zFar) {\n var z = zNear || 0.0\n var zf = zFar || 1.0\n return [\n [ M[12] + M[0], M[13] + M[1], M[14] + M[2], M[15] + M[3] ],\n [ M[12] - M[0], M[13] - M[1], M[14] - M[2], M[15] - M[3] ],\n [ M[12] + M[4], M[13] + M[5], M[14] + M[6], M[15] + M[7] ],\n [ M[12] - M[4], M[13] - M[5], M[14] - M[6], M[15] - M[7] ],\n [ z*M[12] + M[8], z*M[13] + M[9], z*M[14] + M[10], z*M[15] + M[11] ],\n [ zf*M[12] - M[8], zf*M[13] - M[9], zf*M[14] - M[10], zf*M[15] - M[11] ]\n ]\n}","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar layoutAttributes = require('./layout_attributes');\nvar handleArrayContainerDefaults = require('../array_container_defaults');\n\nmodule.exports = function handleTickLabelDefaults(containerIn, containerOut, coerce, axType, options, config) {\n if(!config || config.pass === 1) {\n handlePrefixSuffix(containerIn, containerOut, coerce, axType, options);\n }\n\n if(!config || config.pass === 2) {\n handleOtherDefaults(containerIn, containerOut, coerce, axType, options);\n }\n};\n\nfunction handlePrefixSuffix(containerIn, containerOut, coerce, axType, options) {\n var showAttrDflt = getShowAttrDflt(containerIn);\n\n var tickPrefix = coerce('tickprefix');\n if(tickPrefix) coerce('showtickprefix', showAttrDflt);\n\n var tickSuffix = coerce('ticksuffix', options.tickSuffixDflt);\n if(tickSuffix) coerce('showticksuffix', showAttrDflt);\n}\n\nfunction handleOtherDefaults(containerIn, containerOut, coerce, axType, options) {\n var showAttrDflt = getShowAttrDflt(containerIn);\n\n var tickPrefix = coerce('tickprefix');\n if(tickPrefix) coerce('showtickprefix', showAttrDflt);\n\n var tickSuffix = coerce('ticksuffix', options.tickSuffixDflt);\n if(tickSuffix) coerce('showticksuffix', showAttrDflt);\n\n var showTickLabels = coerce('showticklabels');\n if(showTickLabels) {\n var font = options.font || {};\n var contColor = containerOut.color;\n // as with titlefont.color, inherit axis.color only if one was\n // explicitly provided\n var dfltFontColor = (contColor && contColor !== layoutAttributes.color.dflt) ?\n contColor : font.color;\n Lib.coerceFont(coerce, 'tickfont', {\n family: font.family,\n size: font.size,\n color: dfltFontColor\n });\n coerce('tickangle');\n\n if(axType !== 'category') {\n var tickFormat = coerce('tickformat');\n var tickformatStops = containerIn.tickformatstops;\n if(Array.isArray(tickformatStops) && tickformatStops.length) {\n handleArrayContainerDefaults(containerIn, containerOut, {\n name: 'tickformatstops',\n inclusionAttr: 'enabled',\n handleItemDefaults: tickformatstopDefaults\n });\n }\n if(!tickFormat && axType !== 'date') {\n coerce('showexponent', showAttrDflt);\n coerce('exponentformat');\n coerce('separatethousands');\n }\n }\n }\n}\n\n/*\n * Attributes 'showexponent', 'showtickprefix' and 'showticksuffix'\n * share values.\n *\n * If only 1 attribute is set,\n * the remaining attributes inherit that value.\n *\n * If 2 attributes are set to the same value,\n * the remaining attribute inherits that value.\n *\n * If 2 attributes are set to different values,\n * the remaining is set to its dflt value.\n *\n */\nfunction getShowAttrDflt(containerIn) {\n var showAttrsAll = ['showexponent', 'showtickprefix', 'showticksuffix'];\n var showAttrs = showAttrsAll.filter(function(a) {\n return containerIn[a] !== undefined;\n });\n var sameVal = function(a) {\n return containerIn[a] === containerIn[showAttrs[0]];\n };\n\n if(showAttrs.every(sameVal) || showAttrs.length === 1) {\n return containerIn[showAttrs[0]];\n }\n}\n\nfunction tickformatstopDefaults(valueIn, valueOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(valueIn, valueOut, layoutAttributes.tickformatstops, attr, dflt);\n }\n\n var enabled = coerce('enabled');\n if(enabled) {\n coerce('dtickrange');\n coerce('value');\n }\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Color = require('../../components/color');\nvar hasColorscale = require('../../components/colorscale/helpers').hasColorscale;\nvar colorscaleDefaults = require('../../components/colorscale/defaults');\n\nvar subTypes = require('./subtypes');\n\n/*\n * opts: object of flags to control features not all marker users support\n * noLine: caller does not support marker lines\n * gradient: caller supports gradients\n * noSelect: caller does not support selected/unselected attribute containers\n */\nmodule.exports = function markerDefaults(traceIn, traceOut, defaultColor, layout, coerce, opts) {\n var isBubble = subTypes.isBubble(traceIn);\n var lineColor = (traceIn.line || {}).color;\n var defaultMLC;\n\n opts = opts || {};\n\n // marker.color inherit from line.color (even if line.color is an array)\n if(lineColor) defaultColor = lineColor;\n\n coerce('marker.symbol');\n coerce('marker.opacity', isBubble ? 0.7 : 1);\n coerce('marker.size');\n\n coerce('marker.color', defaultColor);\n if(hasColorscale(traceIn, 'marker')) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'marker.', cLetter: 'c'});\n }\n\n if(!opts.noSelect) {\n coerce('selected.marker.color');\n coerce('unselected.marker.color');\n coerce('selected.marker.size');\n coerce('unselected.marker.size');\n }\n\n if(!opts.noLine) {\n // if there's a line with a different color than the marker, use\n // that line color as the default marker line color\n // (except when it's an array)\n // mostly this is for transparent markers to behave nicely\n if(lineColor && !Array.isArray(lineColor) && (traceOut.marker.color !== lineColor)) {\n defaultMLC = lineColor;\n } else if(isBubble) defaultMLC = Color.background;\n else defaultMLC = Color.defaultLine;\n\n coerce('marker.line.color', defaultMLC);\n if(hasColorscale(traceIn, 'marker.line')) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'marker.line.', cLetter: 'c'});\n }\n\n coerce('marker.line.width', isBubble ? 1 : 0);\n }\n\n if(isBubble) {\n coerce('marker.sizeref');\n coerce('marker.sizemin');\n coerce('marker.sizemode');\n }\n\n if(opts.gradient) {\n var gradientType = coerce('marker.gradient.type');\n if(gradientType !== 'none') {\n coerce('marker.gradient.color');\n }\n }\n};\n","module.exports = require('./length')\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar constants = require('./constants');\n\nexports.isOpenSymbol = function(symbol) {\n return (typeof symbol === 'string') ?\n constants.OPEN_RE.test(symbol) :\n symbol % 200 > 100;\n};\n\nexports.isDotSymbol = function(symbol) {\n return (typeof symbol === 'string') ?\n constants.DOT_RE.test(symbol) :\n symbol > 200;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar Color = require('../../components/color');\n\nvar heatmapHoverPoints = require('../heatmap/hover');\n\nmodule.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLayer) {\n var hoverData = heatmapHoverPoints(pointData, xval, yval, hovermode, hoverLayer, true);\n\n if(hoverData) {\n hoverData.forEach(function(hoverPt) {\n var trace = hoverPt.trace;\n if(trace.contours.type === 'constraint') {\n if(trace.fillcolor && Color.opacity(trace.fillcolor)) {\n hoverPt.color = Color.addOpacity(trace.fillcolor, 1);\n } else if(trace.contours.showlines && Color.opacity(trace.line.color)) {\n hoverPt.color = Color.addOpacity(trace.line.color, 1);\n }\n }\n });\n }\n\n return hoverData;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","module.exports = normalize\n\n/**\n * Normalize a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a vector to normalize\n * @returns {vec4} out\n */\nfunction normalize (out, a) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3]\n var len = x * x + y * y + z * z + w * w\n if (len > 0) {\n len = 1 / Math.sqrt(len)\n out[0] = x * len\n out[1] = y * len\n out[2] = z * len\n out[3] = w * len\n }\n return out\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n attributes: require('./attributes'),\n supplyDefaults: require('./defaults').supplyDefaults,\n calc: require('./calc'),\n colorbar: {\n min: 'cmin',\n max: 'cmax'\n },\n plot: require('./convert').createIsosurfaceTrace,\n\n moduleType: 'trace',\n name: 'isosurface',\n basePlotModule: require('../../plots/gl3d'),\n categories: ['gl3d', 'showLegend'],\n meta: {\n \n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar d3 = require('d3');\nvar Drawing = require('../../components/drawing');\nvar Registry = require('../../registry');\n\nfunction style(gd) {\n var s = d3.select(gd).selectAll('g.trace.scatter');\n\n s.style('opacity', function(d) {\n return d[0].trace.opacity;\n });\n\n s.selectAll('g.points').each(function(d) {\n var sel = d3.select(this);\n var trace = d.trace || d[0].trace;\n stylePoints(sel, trace, gd);\n });\n\n s.selectAll('g.text').each(function(d) {\n var sel = d3.select(this);\n var trace = d.trace || d[0].trace;\n styleText(sel, trace, gd);\n });\n\n s.selectAll('g.trace path.js-line')\n .call(Drawing.lineGroupStyle);\n\n s.selectAll('g.trace path.js-fill')\n .call(Drawing.fillGroupStyle);\n\n Registry.getComponentMethod('errorbars', 'style')(s);\n}\n\nfunction stylePoints(sel, trace, gd) {\n Drawing.pointStyle(sel.selectAll('path.point'), trace, gd);\n}\n\nfunction styleText(sel, trace, gd) {\n Drawing.textPointStyle(sel.selectAll('text'), trace, gd);\n}\n\nfunction styleOnSelect(gd, cd, sel) {\n var trace = cd[0].trace;\n\n if(trace.selectedpoints) {\n Drawing.selectedPointStyle(sel.selectAll('path.point'), trace);\n Drawing.selectedTextStyle(sel.selectAll('text'), trace);\n } else {\n stylePoints(sel, trace, gd);\n styleText(sel, trace, gd);\n }\n}\n\nmodule.exports = {\n style: style,\n stylePoints: stylePoints,\n styleText: styleText,\n styleOnSelect: styleOnSelect\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","'use strict'\n\nvar glslify = require('glslify')\nvar createShader = require('gl-shader')\n\nvar vertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position, offset;\\nattribute vec4 color;\\nuniform mat4 model, view, projection;\\nuniform float capSize;\\nvarying vec4 fragColor;\\nvarying vec3 fragPosition;\\n\\nvoid main() {\\n vec4 worldPosition = model * vec4(position, 1.0);\\n worldPosition = (worldPosition / worldPosition.w) + vec4(capSize * offset, 0.0);\\n gl_Position = projection * view * worldPosition;\\n fragColor = color;\\n fragPosition = position;\\n}\"])\nvar fragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float opacity;\\nvarying vec3 fragPosition;\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n if (\\n outOfRange(clipBounds[0], clipBounds[1], fragPosition) ||\\n fragColor.a * opacity == 0.\\n ) discard;\\n\\n gl_FragColor = opacity * fragColor;\\n}\"])\n\nmodule.exports = function(gl) {\n return createShader(gl, vertSrc, fragSrc, null, [\n {name: 'position', type: 'vec3'},\n {name: 'color', type: 'vec4'},\n {name: 'offset', type: 'vec3'}\n ])\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar colorScaleAttrs = require('../../components/colorscale/attributes');\nvar isosurfaceAttrs = require('../isosurface/attributes');\nvar baseAttrs = require('../../plots/attributes');\n\nvar extendFlat = require('../../lib/extend').extendFlat;\nvar overrideAll = require('../../plot_api/edit_types').overrideAll;\n\nvar attrs = module.exports = overrideAll(extendFlat({\n x: isosurfaceAttrs.x,\n y: isosurfaceAttrs.y,\n z: isosurfaceAttrs.z,\n value: isosurfaceAttrs.value,\n isomin: isosurfaceAttrs.isomin,\n isomax: isosurfaceAttrs.isomax,\n surface: isosurfaceAttrs.surface,\n spaceframe: {\n show: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n fill: {\n valType: 'number',\n \n min: 0,\n max: 1,\n dflt: 1,\n \n }\n },\n\n slices: isosurfaceAttrs.slices,\n caps: isosurfaceAttrs.caps,\n text: isosurfaceAttrs.text,\n hovertext: isosurfaceAttrs.hovertext,\n hovertemplate: isosurfaceAttrs.hovertemplate\n},\n\ncolorScaleAttrs('', {\n colorAttr: '`value`',\n showScaleDflt: true,\n editTypeOverride: 'calc'\n}), {\n\n colorbar: isosurfaceAttrs.colorbar,\n opacity: isosurfaceAttrs.opacity,\n opacityscale: {\n valType: 'any',\n \n editType: 'calc',\n \n },\n\n lightposition: isosurfaceAttrs.lightposition,\n lighting: isosurfaceAttrs.lighting,\n flatshading: isosurfaceAttrs.flatshading,\n contour: isosurfaceAttrs.contour,\n\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo),\n showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false})\n}), 'calc', 'nested');\n\nattrs.x.editType = attrs.y.editType = attrs.z.editType = attrs.value.editType = 'calc+clearAxisTypes';\nattrs.transforms = undefined;\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar colorScaleAttrs = require('../../components/colorscale/attributes');\nvar hovertemplateAttrs = require('../../plots/template_attributes').hovertemplateAttrs;\nvar baseAttrs = require('../../plots/attributes');\nvar scatterMapboxAttrs = require('../scattermapbox/attributes');\n\nvar extendFlat = require('../../lib/extend').extendFlat;\n\n/*\n * - https://docs.mapbox.com/help/tutorials/make-a-heatmap-with-mapbox-gl-js/\n * - https://docs.mapbox.com/mapbox-gl-js/example/heatmap-layer/\n * - https://docs.mapbox.com/mapbox-gl-js/style-spec/#layers-heatmap\n * - https://blog.mapbox.com/introducing-heatmaps-in-mapbox-gl-js-71355ada9e6c\n *\n * Gotchas:\n * - https://github.com/mapbox/mapbox-gl-js/issues/6463\n * - https://github.com/mapbox/mapbox-gl-js/issues/6112\n */\n\n/*\n *\n * In mathematical terms, Mapbox GL heatmaps are a bivariate (2D) kernel density\n * estimation with a Gaussian kernel. It means that each data point has an area\n * of “influence” around it (called a kernel) where the numerical value of\n * influence (which we call density) decreases as you go further from the point.\n * If we sum density values of all points in every pixel of the screen, we get a\n * combined density value which we then map to a heatmap color.\n *\n */\n\nmodule.exports = extendFlat({\n lon: scatterMapboxAttrs.lon,\n lat: scatterMapboxAttrs.lat,\n\n z: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n\n radius: {\n valType: 'number',\n \n editType: 'plot',\n arrayOk: true,\n min: 1,\n dflt: 30,\n \n },\n\n below: {\n valType: 'string',\n \n editType: 'plot',\n \n },\n\n text: scatterMapboxAttrs.text,\n hovertext: scatterMapboxAttrs.hovertext,\n\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: ['lon', 'lat', 'z', 'text', 'name']\n }),\n hovertemplate: hovertemplateAttrs(),\n showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false})\n},\n colorScaleAttrs('', {\n cLetter: 'z',\n editTypeOverride: 'calc'\n })\n);\n","module.exports = min\n\n/**\n * Returns the minimum of two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @returns {vec4} out\n */\nfunction min (out, a, b) {\n out[0] = Math.min(a[0], b[0])\n out[1] = Math.min(a[1], b[1])\n out[2] = Math.min(a[2], b[2])\n out[3] = Math.min(a[3], b[3])\n return out\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar d3 = require('d3');\n\nvar Lib = require('../../lib');\nvar geoUtils = require('../../lib/geo_location_utils');\nvar getTopojsonFeatures = require('../../lib/topojson_utils').getTopojsonFeatures;\nvar findExtremes = require('../../plots/cartesian/autorange').findExtremes;\n\nvar style = require('./style').style;\n\nfunction plot(gd, geo, calcData) {\n var choroplethLayer = geo.layers.backplot.select('.choroplethlayer');\n\n Lib.makeTraceGroups(choroplethLayer, calcData, 'trace choropleth').each(function(calcTrace) {\n var sel = d3.select(this);\n\n var paths = sel.selectAll('path.choroplethlocation')\n .data(Lib.identity);\n\n paths.enter().append('path')\n .classed('choroplethlocation', true);\n\n paths.exit().remove();\n\n // call style here within topojson request callback\n style(gd, calcTrace);\n });\n}\n\nfunction calcGeoJSON(calcTrace, fullLayout) {\n var trace = calcTrace[0].trace;\n var geoLayout = fullLayout[trace.geo];\n var geo = geoLayout._subplot;\n var locationmode = trace.locationmode;\n var len = trace._length;\n\n var features = locationmode === 'geojson-id' ?\n geoUtils.extractTraceFeature(calcTrace) :\n getTopojsonFeatures(trace, geo.topojson);\n\n var lonArray = [];\n var latArray = [];\n\n for(var i = 0; i < len; i++) {\n var calcPt = calcTrace[i];\n var feature = locationmode === 'geojson-id' ?\n calcPt.fOut :\n geoUtils.locationToFeature(locationmode, calcPt.loc, features);\n\n if(feature) {\n calcPt.geojson = feature;\n calcPt.ct = feature.properties.ct;\n calcPt._polygons = geoUtils.feature2polygons(feature);\n\n var bboxFeature = geoUtils.computeBbox(feature);\n lonArray.push(bboxFeature[0], bboxFeature[2]);\n latArray.push(bboxFeature[1], bboxFeature[3]);\n } else {\n calcPt.geojson = null;\n }\n }\n\n if(geoLayout.fitbounds === 'geojson' && locationmode === 'geojson-id') {\n var bboxGeojson = geoUtils.computeBbox(geoUtils.getTraceGeojson(trace));\n lonArray = [bboxGeojson[0], bboxGeojson[2]];\n latArray = [bboxGeojson[1], bboxGeojson[3]];\n }\n\n var opts = {padded: true};\n trace._extremes.lon = findExtremes(geoLayout.lonaxis._ax, lonArray, opts);\n trace._extremes.lat = findExtremes(geoLayout.lataxis._ax, latArray, opts);\n}\n\nmodule.exports = {\n calcGeoJSON: calcGeoJSON,\n plot: plot\n};\n","module.exports = clamp\n\nfunction clamp(value, min, max) {\n return min < max\n ? (value < min ? min : value > max ? max : value)\n : (value < max ? max : value > min ? min : value)\n}\n","\"use strict\"\n\nmodule.exports = stronglyConnectedComponents\n\nfunction stronglyConnectedComponents(adjList) {\n var numVertices = adjList.length;\n var index = new Array(numVertices)\n var lowValue = new Array(numVertices)\n var active = new Array(numVertices)\n var child = new Array(numVertices)\n var scc = new Array(numVertices)\n var sccLinks = new Array(numVertices)\n \n //Initialize tables\n for(var i=0; i 0) {\n v = T[T.length-1]\n var e = adjList[v]\n if (child[v] < e.length) { // If we're not done iterating over the children, first try finishing that.\n for(var i=child[v]; i= 0) {\n // Node v is not yet assigned an scc, but once it is that scc can apparently reach scc[u].\n sccLinks[v].push(scc[u])\n }\n }\n child[v] = i // Remember where we left off.\n } else { // If we're done iterating over the children, check whether we have an scc.\n if(lowValue[v] === index[v]) { // TODO: It /might/ be true that T is always a prefix of S (at this point!!!), and if so, this could be used here.\n var component = []\n var links = [], linkCount = 0\n for(var i=S.length-1; i>=0; --i) {\n var w = S[i]\n active[w] = false\n component.push(w)\n links.push(sccLinks[w])\n linkCount += sccLinks[w].length\n scc[w] = components.length\n if(w === v) {\n S.length = i\n break\n }\n }\n components.push(component)\n var allLinks = new Array(linkCount)\n for(var i=0; i= numVertices - 0.5) { // Note: the indices would be rounded -0.49 is valid.\n return false;\n }\n }\n return true;\n}\n\nproto.update = function(data) {\n var scene = this.scene;\n var layout = scene.fullSceneLayout;\n\n this.data = data;\n\n var numVertices = data.x.length;\n\n var positions = zip3(\n toDataCoords(layout.xaxis, data.x, scene.dataScale[0], data.xcalendar),\n toDataCoords(layout.yaxis, data.y, scene.dataScale[1], data.ycalendar),\n toDataCoords(layout.zaxis, data.z, scene.dataScale[2], data.zcalendar)\n );\n\n var cells;\n if(data.i && data.j && data.k) {\n if(\n data.i.length !== data.j.length ||\n data.j.length !== data.k.length ||\n !hasValidIndices(data.i, numVertices) ||\n !hasValidIndices(data.j, numVertices) ||\n !hasValidIndices(data.k, numVertices)\n ) {\n return;\n }\n cells = zip3(\n toRoundIndex(data.i),\n toRoundIndex(data.j),\n toRoundIndex(data.k)\n );\n } else if(data.alphahull === 0) {\n cells = convexHull(positions);\n } else if(data.alphahull > 0) {\n cells = alphaShape(data.alphahull, positions);\n } else {\n cells = delaunayCells(data.delaunayaxis, positions);\n }\n\n var config = {\n positions: positions,\n cells: cells,\n lightPosition: [data.lightposition.x, data.lightposition.y, data.lightposition.z],\n ambient: data.lighting.ambient,\n diffuse: data.lighting.diffuse,\n specular: data.lighting.specular,\n roughness: data.lighting.roughness,\n fresnel: data.lighting.fresnel,\n vertexNormalsEpsilon: data.lighting.vertexnormalsepsilon,\n faceNormalsEpsilon: data.lighting.facenormalsepsilon,\n opacity: data.opacity,\n contourEnable: data.contour.show,\n contourColor: str2RgbaArray(data.contour.color).slice(0, 3),\n contourWidth: data.contour.width,\n useFacetNormals: data.flatshading\n };\n\n if(data.intensity) {\n var cOpts = extractOpts(data);\n this.color = '#fff';\n var mode = data.intensitymode;\n config[mode + 'Intensity'] = data.intensity;\n config[mode + 'IntensityBounds'] = [cOpts.min, cOpts.max];\n config.colormap = parseColorScale(data);\n } else if(data.vertexcolor) {\n this.color = data.vertexcolor[0];\n config.vertexColors = parseColorArray(data.vertexcolor);\n } else if(data.facecolor) {\n this.color = data.facecolor[0];\n config.cellColors = parseColorArray(data.facecolor);\n } else {\n this.color = data.color;\n config.meshColor = str2RgbaArray(data.color);\n }\n\n // Update mesh\n this.mesh.update(config);\n};\n\nproto.dispose = function() {\n this.scene.glplot.remove(this.mesh);\n this.mesh.dispose();\n};\n\nfunction createMesh3DTrace(scene, data) {\n var gl = scene.glplot.gl;\n var mesh = createMesh({gl: gl});\n var result = new Mesh3DTrace(scene, mesh, data.uid);\n mesh._trace = result;\n result.update(data);\n scene.glplot.add(mesh);\n return result;\n}\n\nmodule.exports = createMesh3DTrace;\n","/*\n * World Calendars\n * https://github.com/alexcjohnson/world-calendars\n *\n * Batch-converted from kbwood/calendars\n * Many thanks to Keith Wood and all of the contributors to the original project!\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/* http://keith-wood.name/calendars.html\n Calendars extras for jQuery v2.0.2.\n Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009.\n Available under the MIT (http://keith-wood.name/licence.html) license. \n Please attribute the author if you use it. */\n\nvar assign = require('object-assign');\nvar main = require('./main');\n\n\nassign(main.regionalOptions[''], {\n invalidArguments: 'Invalid arguments',\n invalidFormat: 'Cannot format a date from another calendar',\n missingNumberAt: 'Missing number at position {0}',\n unknownNameAt: 'Unknown name at position {0}',\n unexpectedLiteralAt: 'Unexpected literal at position {0}',\n unexpectedText: 'Additional text found at end'\n});\nmain.local = main.regionalOptions[''];\n\nassign(main.cdate.prototype, {\n\n /** Format this date.\n Found in the jquery.calendars.plus.js module.\n @memberof CDate\n @param [format] {string} The date format to use (see formatDate).\n @param [settings] {object} Options for the formatDate function.\n @return {string} The formatted date. */\n formatDate: function(format, settings) {\n if (typeof format !== 'string') {\n settings = format;\n format = '';\n }\n return this._calendar.formatDate(format || '', this, settings);\n }\n});\n\nassign(main.baseCalendar.prototype, {\n\n UNIX_EPOCH: main.instance().newDate(1970, 1, 1).toJD(),\n SECS_PER_DAY: 24 * 60 * 60,\n TICKS_EPOCH: main.instance().jdEpoch, // 1 January 0001 CE\n TICKS_PER_DAY: 24 * 60 * 60 * 10000000,\n\n /** Date form for ATOM (RFC 3339/ISO 8601).\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n ATOM: 'yyyy-mm-dd',\n /** Date form for cookies.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n COOKIE: 'D, dd M yyyy',\n /** Date form for full date.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n FULL: 'DD, MM d, yyyy',\n /** Date form for ISO 8601.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n ISO_8601: 'yyyy-mm-dd',\n /** Date form for Julian date.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n JULIAN: 'J',\n /** Date form for RFC 822.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_822: 'D, d M yy',\n /** Date form for RFC 850.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_850: 'DD, dd-M-yy',\n /** Date form for RFC 1036.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_1036: 'D, d M yy',\n /** Date form for RFC 1123.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_1123: 'D, d M yyyy',\n /** Date form for RFC 2822.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_2822: 'D, d M yyyy',\n /** Date form for RSS (RFC 822).\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RSS: 'D, d M yy',\n /** Date form for Windows ticks.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n TICKS: '!',\n /** Date form for Unix timestamp.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n TIMESTAMP: '@',\n /** Date form for W3c (ISO 8601).\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n W3C: 'yyyy-mm-dd',\n\n /** Format a date object into a string value.\n The format can be combinations of the following:\n

    \n
  • d - day of month (no leading zero)
  • \n
  • dd - day of month (two digit)
  • \n
  • o - day of year (no leading zeros)
  • \n
  • oo - day of year (three digit)
  • \n
  • D - day name short
  • \n
  • DD - day name long
  • \n
  • w - week of year (no leading zero)
  • \n
  • ww - week of year (two digit)
  • \n
  • m - month of year (no leading zero)
  • \n
  • mm - month of year (two digit)
  • \n
  • M - month name short
  • \n
  • MM - month name long
  • \n
  • yy - year (two digit)
  • \n
  • yyyy - year (four digit)
  • \n
  • YYYY - formatted year
  • \n
  • J - Julian date (days since January 1, 4713 BCE Greenwich noon)
  • \n
  • @ - Unix timestamp (s since 01/01/1970)
  • \n
  • ! - Windows ticks (100ns since 01/01/0001)
  • \n
  • '...' - literal text
  • \n
  • '' - single quote
  • \n
\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar\n @param [format] {string} The desired format of the date (defaults to calendar format).\n @param date {CDate} The date value to format.\n @param [settings] {object} Addition options, whose attributes include:\n @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday.\n @property [dayNames] {string[]} Names of the days from Sunday.\n @property [monthNamesShort] {string[]} Abbreviated names of the months.\n @property [monthNames] {string[]} Names of the months.\n @property [calculateWeek] {CalendarsPickerCalculateWeek} Function that determines week of the year.\n @property [localNumbers=false] {boolean} true to localise numbers (if available),\n false to use normal Arabic numerals.\n @return {string} The date in the above format.\n @throws Errors if the date is from a different calendar. */\n formatDate: function(format, date, settings) {\n if (typeof format !== 'string') {\n settings = date;\n date = format;\n format = '';\n }\n if (!date) {\n return '';\n }\n if (date.calendar() !== this) {\n throw main.local.invalidFormat || main.regionalOptions[''].invalidFormat;\n }\n format = format || this.local.dateFormat;\n settings = settings || {};\n var dayNamesShort = settings.dayNamesShort || this.local.dayNamesShort;\n var dayNames = settings.dayNames || this.local.dayNames;\n var monthNumbers = settings.monthNumbers || this.local.monthNumbers;\n var monthNamesShort = settings.monthNamesShort || this.local.monthNamesShort;\n var monthNames = settings.monthNames || this.local.monthNames;\n var calculateWeek = settings.calculateWeek || this.local.calculateWeek;\n // Check whether a format character is doubled\n var doubled = function(match, step) {\n var matches = 1;\n while (iFormat + matches < format.length && format.charAt(iFormat + matches) === match) {\n matches++;\n }\n iFormat += matches - 1;\n return Math.floor(matches / (step || 1)) > 1;\n };\n // Format a number, with leading zeroes if necessary\n var formatNumber = function(match, value, len, step) {\n var num = '' + value;\n if (doubled(match, step)) {\n while (num.length < len) {\n num = '0' + num;\n }\n }\n return num;\n };\n // Format a name, short or long as requested\n var formatName = function(match, value, shortNames, longNames) {\n return (doubled(match) ? longNames[value] : shortNames[value]);\n };\n // Format month number\n // (e.g. Chinese calendar needs to account for intercalary months)\n var calendar = this;\n var formatMonth = function(date) {\n return (typeof monthNumbers === 'function') ?\n monthNumbers.call(calendar, date, doubled('m')) :\n localiseNumbers(formatNumber('m', date.month(), 2));\n };\n // Format a month name, short or long as requested\n var formatMonthName = function(date, useLongName) {\n if (useLongName) {\n return (typeof monthNames === 'function') ?\n monthNames.call(calendar, date) :\n monthNames[date.month() - calendar.minMonth];\n } else {\n return (typeof monthNamesShort === 'function') ?\n monthNamesShort.call(calendar, date) :\n monthNamesShort[date.month() - calendar.minMonth];\n }\n };\n // Localise numbers if requested and available\n var digits = this.local.digits;\n var localiseNumbers = function(value) {\n return (settings.localNumbers && digits ? digits(value) : value);\n };\n var output = '';\n var literal = false;\n for (var iFormat = 0; iFormat < format.length; iFormat++) {\n if (literal) {\n if (format.charAt(iFormat) === \"'\" && !doubled(\"'\")) {\n literal = false;\n }\n else {\n output += format.charAt(iFormat);\n }\n }\n else {\n switch (format.charAt(iFormat)) {\n case 'd': output += localiseNumbers(formatNumber('d', date.day(), 2)); break;\n case 'D': output += formatName('D', date.dayOfWeek(),\n dayNamesShort, dayNames); break;\n case 'o': output += formatNumber('o', date.dayOfYear(), 3); break;\n case 'w': output += formatNumber('w', date.weekOfYear(), 2); break;\n case 'm': output += formatMonth(date); break;\n case 'M': output += formatMonthName(date, doubled('M')); break;\n case 'y':\n output += (doubled('y', 2) ? date.year() :\n (date.year() % 100 < 10 ? '0' : '') + date.year() % 100);\n break;\n case 'Y':\n doubled('Y', 2);\n output += date.formatYear();\n break;\n case 'J': output += date.toJD(); break;\n case '@': output += (date.toJD() - this.UNIX_EPOCH) * this.SECS_PER_DAY; break;\n case '!': output += (date.toJD() - this.TICKS_EPOCH) * this.TICKS_PER_DAY; break;\n case \"'\":\n if (doubled(\"'\")) {\n output += \"'\";\n }\n else {\n literal = true;\n }\n break;\n default:\n output += format.charAt(iFormat);\n }\n }\n }\n return output;\n },\n\n /** Parse a string value into a date object.\n See formatDate for the possible formats, plus:\n
    \n
  • * - ignore rest of string
  • \n
\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar\n @param format {string} The expected format of the date ('' for default calendar format).\n @param value {string} The date in the above format.\n @param [settings] {object} Additional options whose attributes include:\n @property [shortYearCutoff] {number} The cutoff year for determining the century.\n @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday.\n @property [dayNames] {string[]} Names of the days from Sunday.\n @property [monthNamesShort] {string[]} Abbreviated names of the months.\n @property [monthNames] {string[]} Names of the months.\n @return {CDate} The extracted date value or null if value is blank.\n @throws Errors if the format and/or value are missing,\n if the value doesn't match the format, or if the date is invalid. */\n parseDate: function(format, value, settings) {\n if (value == null) {\n throw main.local.invalidArguments || main.regionalOptions[''].invalidArguments;\n }\n value = (typeof value === 'object' ? value.toString() : value + '');\n if (value === '') {\n return null;\n }\n format = format || this.local.dateFormat;\n settings = settings || {};\n var shortYearCutoff = settings.shortYearCutoff || this.shortYearCutoff;\n shortYearCutoff = (typeof shortYearCutoff !== 'string' ? shortYearCutoff :\n this.today().year() % 100 + parseInt(shortYearCutoff, 10));\n var dayNamesShort = settings.dayNamesShort || this.local.dayNamesShort;\n var dayNames = settings.dayNames || this.local.dayNames;\n var parseMonth = settings.parseMonth || this.local.parseMonth;\n var monthNumbers = settings.monthNumbers || this.local.monthNumbers;\n var monthNamesShort = settings.monthNamesShort || this.local.monthNamesShort;\n var monthNames = settings.monthNames || this.local.monthNames;\n var jd = -1;\n var year = -1;\n var month = -1;\n var day = -1;\n var doy = -1;\n var shortYear = false;\n var literal = false;\n // Check whether a format character is doubled\n var doubled = function(match, step) {\n var matches = 1;\n while (iFormat + matches < format.length && format.charAt(iFormat + matches) === match) {\n matches++;\n }\n iFormat += matches - 1;\n return Math.floor(matches / (step || 1)) > 1;\n };\n // Extract a number from the string value\n var getNumber = function(match, step) {\n var isDoubled = doubled(match, step);\n var size = [2, 3, isDoubled ? 4 : 2, isDoubled ? 4 : 2, 10, 11, 20]['oyYJ@!'.indexOf(match) + 1];\n var digits = new RegExp('^-?\\\\d{1,' + size + '}');\n var num = value.substring(iValue).match(digits);\n if (!num) {\n throw (main.local.missingNumberAt || main.regionalOptions[''].missingNumberAt).\n replace(/\\{0\\}/, iValue);\n }\n iValue += num[0].length;\n return parseInt(num[0], 10);\n };\n // Extract a month number from the string value\n var calendar = this;\n var getMonthNumber = function() {\n if (typeof monthNumbers === 'function') {\n doubled('m'); // update iFormat\n var month = monthNumbers.call(calendar, value.substring(iValue));\n iValue += month.length;\n return month;\n }\n\n return getNumber('m');\n };\n // Extract a name from the string value and convert to an index\n var getName = function(match, shortNames, longNames, step) {\n var names = (doubled(match, step) ? longNames : shortNames);\n for (var i = 0; i < names.length; i++) {\n if (value.substr(iValue, names[i].length).toLowerCase() === names[i].toLowerCase()) {\n iValue += names[i].length;\n return i + calendar.minMonth;\n }\n }\n throw (main.local.unknownNameAt || main.regionalOptions[''].unknownNameAt).\n replace(/\\{0\\}/, iValue);\n };\n // Extract a month number from the string value\n var getMonthName = function() {\n if (typeof monthNames === 'function') {\n var month = doubled('M') ?\n monthNames.call(calendar, value.substring(iValue)) :\n monthNamesShort.call(calendar, value.substring(iValue));\n iValue += month.length;\n return month;\n }\n\n return getName('M', monthNamesShort, monthNames);\n };\n // Confirm that a literal character matches the string value\n var checkLiteral = function() {\n if (value.charAt(iValue) !== format.charAt(iFormat)) {\n throw (main.local.unexpectedLiteralAt ||\n main.regionalOptions[''].unexpectedLiteralAt).replace(/\\{0\\}/, iValue);\n }\n iValue++;\n };\n var iValue = 0;\n for (var iFormat = 0; iFormat < format.length; iFormat++) {\n if (literal) {\n if (format.charAt(iFormat) === \"'\" && !doubled(\"'\")) {\n literal = false;\n }\n else {\n checkLiteral();\n }\n }\n else {\n switch (format.charAt(iFormat)) {\n case 'd': day = getNumber('d'); break;\n case 'D': getName('D', dayNamesShort, dayNames); break;\n case 'o': doy = getNumber('o'); break;\n case 'w': getNumber('w'); break;\n case 'm': month = getMonthNumber(); break;\n case 'M': month = getMonthName(); break;\n case 'y':\n var iSave = iFormat;\n shortYear = !doubled('y', 2);\n iFormat = iSave;\n year = getNumber('y', 2);\n break;\n case 'Y': year = getNumber('Y', 2); break;\n case 'J':\n jd = getNumber('J') + 0.5;\n if (value.charAt(iValue) === '.') {\n iValue++;\n getNumber('J');\n }\n break;\n case '@': jd = getNumber('@') / this.SECS_PER_DAY + this.UNIX_EPOCH; break;\n case '!': jd = getNumber('!') / this.TICKS_PER_DAY + this.TICKS_EPOCH; break;\n case '*': iValue = value.length; break;\n case \"'\":\n if (doubled(\"'\")) {\n checkLiteral();\n }\n else {\n literal = true;\n }\n break;\n default: checkLiteral();\n }\n }\n }\n if (iValue < value.length) {\n throw main.local.unexpectedText || main.regionalOptions[''].unexpectedText;\n }\n if (year === -1) {\n year = this.today().year();\n }\n else if (year < 100 && shortYear) {\n year += (shortYearCutoff === -1 ? 1900 : this.today().year() -\n this.today().year() % 100 - (year <= shortYearCutoff ? 0 : 100));\n }\n if (typeof month === 'string') {\n month = parseMonth.call(this, year, month);\n }\n if (doy > -1) {\n month = 1;\n day = doy;\n for (var dim = this.daysInMonth(year, month); day > dim; dim = this.daysInMonth(year, month)) {\n month++;\n day -= dim;\n }\n }\n return (jd > -1 ? this.fromJD(jd) : this.newDate(year, month, day));\n },\n\n /** A date may be specified as an exact value or a relative one.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar\n @param dateSpec {CDate|number|string} The date as an object or string in the given format or\n an offset - numeric days from today, or string amounts and periods, e.g. '+1m +2w'.\n @param defaultDate {CDate} The date to use if no other supplied, may be null.\n @param currentDate {CDate} The current date as a possible basis for relative dates,\n if null today is used (optional)\n @param [dateFormat] {string} The expected date format - see formatDate.\n @param [settings] {object} Additional options whose attributes include:\n @property [shortYearCutoff] {number} The cutoff year for determining the century.\n @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday.\n @property [dayNames] {string[]} Names of the days from Sunday.\n @property [monthNamesShort] {string[]} Abbreviated names of the months.\n @property [monthNames] {string[]} Names of the months.\n @return {CDate} The decoded date. */\n determineDate: function(dateSpec, defaultDate, currentDate, dateFormat, settings) {\n if (currentDate && typeof currentDate !== 'object') {\n settings = dateFormat;\n dateFormat = currentDate;\n currentDate = null;\n }\n if (typeof dateFormat !== 'string') {\n settings = dateFormat;\n dateFormat = '';\n }\n var calendar = this;\n var offsetString = function(offset) {\n try {\n return calendar.parseDate(dateFormat, offset, settings);\n }\n catch (e) {\n // Ignore\n }\n offset = offset.toLowerCase();\n var date = (offset.match(/^c/) && currentDate ?\n currentDate.newDate() : null) || calendar.today();\n var pattern = /([+-]?[0-9]+)\\s*(d|w|m|y)?/g;\n var matches = pattern.exec(offset);\n while (matches) {\n date.add(parseInt(matches[1], 10), matches[2] || 'd');\n matches = pattern.exec(offset);\n }\n return date;\n };\n defaultDate = (defaultDate ? defaultDate.newDate() : null);\n dateSpec = (dateSpec == null ? defaultDate :\n (typeof dateSpec === 'string' ? offsetString(dateSpec) : (typeof dateSpec === 'number' ?\n (isNaN(dateSpec) || dateSpec === Infinity || dateSpec === -Infinity ? defaultDate :\n calendar.today().add(dateSpec, 'd')) : calendar.newDate(dateSpec))));\n return dateSpec;\n }\n});\n\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Polar = module.exports = require('./micropolar');\n\nPolar.manager = require('./micropolar_manager');\n","'use strict'\n\nvar DEFAULT_VERTEX_NORMALS_EPSILON = 1e-6; // may be too large if triangles are very small\nvar DEFAULT_FACE_NORMALS_EPSILON = 1e-6;\n\nvar createShader = require('gl-shader')\nvar createBuffer = require('gl-buffer')\nvar createVAO = require('gl-vao')\nvar createTexture = require('gl-texture2d')\nvar normals = require('normals')\nvar multiply = require('gl-mat4/multiply')\nvar invert = require('gl-mat4/invert')\nvar ndarray = require('ndarray')\nvar colormap = require('colormap')\nvar getContour = require('simplicial-complex-contour')\nvar pool = require('typedarray-pool')\nvar shaders = require('./lib/shaders')\nvar closestPoint = require('./lib/closest-point')\n\nvar meshShader = shaders.meshShader\nvar wireShader = shaders.wireShader\nvar pointShader = shaders.pointShader\nvar pickShader = shaders.pickShader\nvar pointPickShader = shaders.pointPickShader\nvar contourShader = shaders.contourShader\n\nvar IDENTITY = [\n 1,0,0,0,\n 0,1,0,0,\n 0,0,1,0,\n 0,0,0,1]\n\n\nfunction SimplicialMesh(gl\n , texture\n , triShader\n , lineShader\n , pointShader\n , pickShader\n , pointPickShader\n , contourShader\n , trianglePositions\n , triangleIds\n , triangleColors\n , triangleUVs\n , triangleNormals\n , triangleVAO\n , edgePositions\n , edgeIds\n , edgeColors\n , edgeUVs\n , edgeVAO\n , pointPositions\n , pointIds\n , pointColors\n , pointUVs\n , pointSizes\n , pointVAO\n , contourPositions\n , contourVAO) {\n\n this.gl = gl\n this.pixelRatio = 1\n this.cells = []\n this.positions = []\n this.intensity = []\n this.texture = texture\n this.dirty = true\n\n this.triShader = triShader\n this.lineShader = lineShader\n this.pointShader = pointShader\n this.pickShader = pickShader\n this.pointPickShader = pointPickShader\n this.contourShader = contourShader\n\n this.trianglePositions = trianglePositions\n this.triangleColors = triangleColors\n this.triangleNormals = triangleNormals\n this.triangleUVs = triangleUVs\n this.triangleIds = triangleIds\n this.triangleVAO = triangleVAO\n this.triangleCount = 0\n\n this.lineWidth = 1\n this.edgePositions = edgePositions\n this.edgeColors = edgeColors\n this.edgeUVs = edgeUVs\n this.edgeIds = edgeIds\n this.edgeVAO = edgeVAO\n this.edgeCount = 0\n\n this.pointPositions = pointPositions\n this.pointColors = pointColors\n this.pointUVs = pointUVs\n this.pointSizes = pointSizes\n this.pointIds = pointIds\n this.pointVAO = pointVAO\n this.pointCount = 0\n\n this.contourLineWidth = 1\n this.contourPositions = contourPositions\n this.contourVAO = contourVAO\n this.contourCount = 0\n this.contourColor = [0,0,0]\n this.contourEnable = true\n\n this.pickId = 1\n this.bounds = [\n [ Infinity, Infinity, Infinity],\n [-Infinity,-Infinity,-Infinity] ]\n this.clipBounds = [\n [-Infinity,-Infinity,-Infinity],\n [ Infinity, Infinity, Infinity] ]\n\n this.lightPosition = [1e5, 1e5, 0]\n this.ambientLight = 0.8\n this.diffuseLight = 0.8\n this.specularLight = 2.0\n this.roughness = 0.5\n this.fresnel = 1.5\n\n this.opacity = 1.0\n this.hasAlpha = false\n this.opacityscale = false\n\n this._model = IDENTITY\n this._view = IDENTITY\n this._projection = IDENTITY\n this._resolution = [1,1]\n}\n\nvar proto = SimplicialMesh.prototype\n\nproto.isOpaque = function() {\n return !this.hasAlpha\n}\n\nproto.isTransparent = function() {\n return this.hasAlpha\n}\n\nproto.pickSlots = 1\n\nproto.setPickBase = function(id) {\n this.pickId = id\n}\n\nfunction getOpacityFromScale(ratio, opacityscale) {\n\n if(!opacityscale) return 1\n if(!opacityscale.length) return 1\n\n for(var i = 0; i < opacityscale.length; ++i) {\n if(opacityscale.length < 2) return 1\n if(opacityscale[i][0] === ratio) return opacityscale[i][1]\n if(opacityscale[i][0] > ratio && i > 0) {\n var d = (opacityscale[i][0] - ratio) / (opacityscale[i][0] - opacityscale[i - 1][0])\n return opacityscale[i][1] * (1 - d) + d * opacityscale[i - 1][1]\n }\n }\n\n return 1\n}\n\nfunction genColormap(param, opacityscale) {\n var colors = colormap({\n colormap: param\n , nshades: 256\n , format: 'rgba'\n })\n\n var result = new Uint8Array(256*4)\n for(var i=0; i<256; ++i) {\n var c = colors[i]\n for(var j=0; j<3; ++j) {\n result[4*i+j] = c[j]\n }\n if(!opacityscale) {\n result[4*i+3] = 255 * c[3]\n } else {\n result[4*i+3] = 255 * getOpacityFromScale(i / 255.0, opacityscale)\n }\n }\n\n return ndarray(result, [256,256,4], [4,0,1])\n}\n\nfunction unpackIntensity(cells, numVerts, cellIntensity) {\n var result = new Array(numVerts)\n for(var i=0; i 0) {\n var shader = this.triShader\n shader.bind()\n shader.uniforms = uniforms\n\n this.triangleVAO.bind()\n gl.drawArrays(gl.TRIANGLES, 0, this.triangleCount*3)\n this.triangleVAO.unbind()\n }\n\n if(this.edgeCount > 0 && this.lineWidth > 0) {\n var shader = this.lineShader\n shader.bind()\n shader.uniforms = uniforms\n\n this.edgeVAO.bind()\n gl.lineWidth(this.lineWidth * this.pixelRatio)\n gl.drawArrays(gl.LINES, 0, this.edgeCount*2)\n this.edgeVAO.unbind()\n }\n\n if(this.pointCount > 0) {\n var shader = this.pointShader\n shader.bind()\n shader.uniforms = uniforms\n\n this.pointVAO.bind()\n gl.drawArrays(gl.POINTS, 0, this.pointCount)\n this.pointVAO.unbind()\n }\n\n if(this.contourEnable && this.contourCount > 0 && this.contourLineWidth > 0) {\n var shader = this.contourShader\n shader.bind()\n shader.uniforms = uniforms\n\n this.contourVAO.bind()\n gl.drawArrays(gl.LINES, 0, this.contourCount)\n this.contourVAO.unbind()\n }\n}\n\nproto.drawPick = function(params) {\n params = params || {}\n\n var gl = this.gl\n\n var model = params.model || IDENTITY\n var view = params.view || IDENTITY\n var projection = params.projection || IDENTITY\n\n var clipBounds = [[-1e6,-1e6,-1e6],[1e6,1e6,1e6]]\n for(var i=0; i<3; ++i) {\n clipBounds[0][i] = Math.max(clipBounds[0][i], this.clipBounds[0][i])\n clipBounds[1][i] = Math.min(clipBounds[1][i], this.clipBounds[1][i])\n }\n\n //Save camera parameters\n this._model = [].slice.call(model)\n this._view = [].slice.call(view)\n this._projection = [].slice.call(projection)\n this._resolution = [gl.drawingBufferWidth, gl.drawingBufferHeight]\n\n var uniforms = {\n model: model,\n view: view,\n projection: projection,\n clipBounds: clipBounds,\n pickId: this.pickId / 255.0,\n }\n\n var shader = this.pickShader\n shader.bind()\n shader.uniforms = uniforms\n\n if(this.triangleCount > 0) {\n this.triangleVAO.bind()\n gl.drawArrays(gl.TRIANGLES, 0, this.triangleCount*3)\n this.triangleVAO.unbind()\n }\n\n if(this.edgeCount > 0) {\n this.edgeVAO.bind()\n gl.lineWidth(this.lineWidth * this.pixelRatio)\n gl.drawArrays(gl.LINES, 0, this.edgeCount*2)\n this.edgeVAO.unbind()\n }\n\n if(this.pointCount > 0) {\n var shader = this.pointPickShader\n shader.bind()\n shader.uniforms = uniforms\n\n this.pointVAO.bind()\n gl.drawArrays(gl.POINTS, 0, this.pointCount)\n this.pointVAO.unbind()\n }\n}\n\n\nproto.pick = function(pickData) {\n if(!pickData) {\n return null\n }\n if(pickData.id !== this.pickId) {\n return null\n }\n\n var cellId = pickData.value[0] + 256*pickData.value[1] + 65536*pickData.value[2]\n var cell = this.cells[cellId]\n var positions = this.positions\n\n var simplex = new Array(cell.length)\n for(var i=0; i 0;\n\n traces.each(function(d) {\n var trace = d[0].trace;\n // || {} is in case the trace (specifically scatterternary)\n // doesn't support error bars at all, but does go through\n // the scatter.plot mechanics, which calls ErrorBars.plot\n // internally\n var xObj = trace.error_x || {};\n var yObj = trace.error_y || {};\n\n var keyFunc;\n\n if(trace.ids) {\n keyFunc = function(d) {return d.id;};\n }\n\n var sparse = (\n subTypes.hasMarkers(trace) &&\n trace.marker.maxdisplayed > 0\n );\n\n if(!yObj.visible && !xObj.visible) d = [];\n\n var errorbars = d3.select(this).selectAll('g.errorbar')\n .data(d, keyFunc);\n\n errorbars.exit().remove();\n\n if(!d.length) return;\n\n if(!xObj.visible) errorbars.selectAll('path.xerror').remove();\n if(!yObj.visible) errorbars.selectAll('path.yerror').remove();\n\n errorbars.style('opacity', 1);\n\n var enter = errorbars.enter().append('g')\n .classed('errorbar', true);\n\n if(hasAnimation) {\n enter.style('opacity', 0).transition()\n .duration(transitionOpts.duration)\n .style('opacity', 1);\n }\n\n Drawing.setClipUrl(errorbars, plotinfo.layerClipId, gd);\n\n errorbars.each(function(d) {\n var errorbar = d3.select(this);\n var coords = errorCoords(d, xa, ya);\n\n if(sparse && !d.vis) return;\n\n var path;\n\n var yerror = errorbar.select('path.yerror');\n if(yObj.visible && isNumeric(coords.x) &&\n isNumeric(coords.yh) &&\n isNumeric(coords.ys)) {\n var yw = yObj.width;\n\n path = 'M' + (coords.x - yw) + ',' +\n coords.yh + 'h' + (2 * yw) + // hat\n 'm-' + yw + ',0V' + coords.ys; // bar\n\n\n if(!coords.noYS) path += 'm-' + yw + ',0h' + (2 * yw); // shoe\n\n isNew = !yerror.size();\n\n if(isNew) {\n yerror = errorbar.append('path')\n .style('vector-effect', 'non-scaling-stroke')\n .classed('yerror', true);\n } else if(hasAnimation) {\n yerror = yerror\n .transition()\n .duration(transitionOpts.duration)\n .ease(transitionOpts.easing);\n }\n\n yerror.attr('d', path);\n } else yerror.remove();\n\n var xerror = errorbar.select('path.xerror');\n if(xObj.visible && isNumeric(coords.y) &&\n isNumeric(coords.xh) &&\n isNumeric(coords.xs)) {\n var xw = (xObj.copy_ystyle ? yObj : xObj).width;\n\n path = 'M' + coords.xh + ',' +\n (coords.y - xw) + 'v' + (2 * xw) + // hat\n 'm0,-' + xw + 'H' + coords.xs; // bar\n\n if(!coords.noXS) path += 'm0,-' + xw + 'v' + (2 * xw); // shoe\n\n isNew = !xerror.size();\n\n if(isNew) {\n xerror = errorbar.append('path')\n .style('vector-effect', 'non-scaling-stroke')\n .classed('xerror', true);\n } else if(hasAnimation) {\n xerror = xerror\n .transition()\n .duration(transitionOpts.duration)\n .ease(transitionOpts.easing);\n }\n\n xerror.attr('d', path);\n } else xerror.remove();\n });\n });\n};\n\n// compute the coordinates of the error-bar objects\nfunction errorCoords(d, xa, ya) {\n var out = {\n x: xa.c2p(d.x),\n y: ya.c2p(d.y)\n };\n\n // calculate the error bar size and hat and shoe locations\n if(d.yh !== undefined) {\n out.yh = ya.c2p(d.yh);\n out.ys = ya.c2p(d.ys);\n\n // if the shoes go off-scale (ie log scale, error bars past zero)\n // clip the bar and hide the shoes\n if(!isNumeric(out.ys)) {\n out.noYS = true;\n out.ys = ya.c2p(d.ys, true);\n }\n }\n\n if(d.xh !== undefined) {\n out.xh = xa.c2p(d.xh);\n out.xs = xa.c2p(d.xs);\n\n if(!isNumeric(out.xs)) {\n out.noXS = true;\n out.xs = xa.c2p(d.xs, true);\n }\n }\n\n return out;\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\n\n/**\n * Return news array containing only the unique items\n * found in input array.\n *\n * IMPORTANT: Note that items are considered unique\n * if `String({})` is unique. For example;\n *\n * Lib.filterUnique([ { a: 1 }, { b: 2 } ])\n *\n * returns [{ a: 1 }]\n *\n * and\n *\n * Lib.filterUnique([ '1', 1 ])\n *\n * returns ['1']\n *\n *\n * @param {array} array base array\n * @return {array} new filtered array\n */\nmodule.exports = function filterUnique(array) {\n var seen = {};\n var out = [];\n var j = 0;\n\n for(var i = 0; i < array.length; i++) {\n var item = array[i];\n\n if(seen[item] !== 1) {\n seen[item] = 1;\n out[j++] = item;\n }\n }\n\n return out;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n eventDataKeys: [\n 'initial',\n 'delta',\n 'final'\n ]\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar isNumeric = require('fast-isnumeric');\n\nvar isArrayOrTypedArray = require('../../lib').isArrayOrTypedArray;\nvar BADNUM = require('../../constants/numerical').BADNUM;\n\nvar colorscaleCalc = require('../../components/colorscale/calc');\nvar _ = require('../../lib')._;\n\nmodule.exports = function calc(gd, trace) {\n var len = trace._length;\n var calcTrace = new Array(len);\n var z = trace.z;\n var hasZ = isArrayOrTypedArray(z) && z.length;\n\n for(var i = 0; i < len; i++) {\n var cdi = calcTrace[i] = {};\n\n var lon = trace.lon[i];\n var lat = trace.lat[i];\n\n cdi.lonlat = isNumeric(lon) && isNumeric(lat) ?\n [+lon, +lat] :\n [BADNUM, BADNUM];\n\n if(hasZ) {\n var zi = z[i];\n cdi.z = isNumeric(zi) ? zi : BADNUM;\n }\n }\n\n colorscaleCalc(gd, trace, {\n vals: hasZ ? z : [0, 1],\n containerStr: '',\n cLetter: 'z'\n });\n\n if(len) {\n calcTrace[0].t = {\n labels: {\n lat: _(gd, 'lat:') + ' ',\n lon: _(gd, 'lon:') + ' '\n }\n };\n }\n\n return calcTrace;\n};\n","'use strict';\n\nmodule.exports = earcut;\nmodule.exports.default = earcut;\n\nfunction earcut(data, holeIndices, dim) {\n\n dim = dim || 2;\n\n var hasHoles = holeIndices && holeIndices.length,\n outerLen = hasHoles ? holeIndices[0] * dim : data.length,\n outerNode = linkedList(data, 0, outerLen, dim, true),\n triangles = [];\n\n if (!outerNode || outerNode.next === outerNode.prev) return triangles;\n\n var minX, minY, maxX, maxY, x, y, invSize;\n\n if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim);\n\n // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n if (data.length > 80 * dim) {\n minX = maxX = data[0];\n minY = maxY = data[1];\n\n for (var i = dim; i < outerLen; i += dim) {\n x = data[i];\n y = data[i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n }\n\n // minX, minY and invSize are later used to transform coords into integers for z-order calculation\n invSize = Math.max(maxX - minX, maxY - minY);\n invSize = invSize !== 0 ? 1 / invSize : 0;\n }\n\n earcutLinked(outerNode, triangles, dim, minX, minY, invSize);\n\n return triangles;\n}\n\n// create a circular doubly linked list from polygon points in the specified winding order\nfunction linkedList(data, start, end, dim, clockwise) {\n var i, last;\n\n if (clockwise === (signedArea(data, start, end, dim) > 0)) {\n for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);\n } else {\n for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last);\n }\n\n if (last && equals(last, last.next)) {\n removeNode(last);\n last = last.next;\n }\n\n return last;\n}\n\n// eliminate colinear or duplicate points\nfunction filterPoints(start, end) {\n if (!start) return start;\n if (!end) end = start;\n\n var p = start,\n again;\n do {\n again = false;\n\n if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n removeNode(p);\n p = end = p.prev;\n if (p === p.next) break;\n again = true;\n\n } else {\n p = p.next;\n }\n } while (again || p !== end);\n\n return end;\n}\n\n// main ear slicing loop which triangulates a polygon (given as a linked list)\nfunction earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {\n if (!ear) return;\n\n // interlink polygon nodes in z-order\n if (!pass && invSize) indexCurve(ear, minX, minY, invSize);\n\n var stop = ear,\n prev, next;\n\n // iterate through ears, slicing them one by one\n while (ear.prev !== ear.next) {\n prev = ear.prev;\n next = ear.next;\n\n if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\n // cut off the triangle\n triangles.push(prev.i / dim);\n triangles.push(ear.i / dim);\n triangles.push(next.i / dim);\n\n removeNode(ear);\n\n // skipping the next vertex leads to less sliver triangles\n ear = next.next;\n stop = next.next;\n\n continue;\n }\n\n ear = next;\n\n // if we looped through the whole remaining polygon and can't find any more ears\n if (ear === stop) {\n // try filtering points and slicing again\n if (!pass) {\n earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);\n\n // if this didn't work, try curing all small self-intersections locally\n } else if (pass === 1) {\n ear = cureLocalIntersections(filterPoints(ear), triangles, dim);\n earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);\n\n // as a last resort, try splitting the remaining polygon into two\n } else if (pass === 2) {\n splitEarcut(ear, triangles, dim, minX, minY, invSize);\n }\n\n break;\n }\n }\n}\n\n// check whether a polygon node forms a valid ear with adjacent nodes\nfunction isEar(ear) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // now make sure we don't have other points inside the potential ear\n var p = ear.next.next;\n\n while (p !== ear.prev) {\n if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.next;\n }\n\n return true;\n}\n\nfunction isEarHashed(ear, minX, minY, invSize) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // triangle bbox; min & max are calculated like this for speed\n var minTX = a.x < b.x ? (a.x < c.x ? a.x : c.x) : (b.x < c.x ? b.x : c.x),\n minTY = a.y < b.y ? (a.y < c.y ? a.y : c.y) : (b.y < c.y ? b.y : c.y),\n maxTX = a.x > b.x ? (a.x > c.x ? a.x : c.x) : (b.x > c.x ? b.x : c.x),\n maxTY = a.y > b.y ? (a.y > c.y ? a.y : c.y) : (b.y > c.y ? b.y : c.y);\n\n // z-order range for the current triangle bbox;\n var minZ = zOrder(minTX, minTY, minX, minY, invSize),\n maxZ = zOrder(maxTX, maxTY, minX, minY, invSize);\n\n var p = ear.prevZ,\n n = ear.nextZ;\n\n // look for points inside the triangle in both directions\n while (p && p.z >= minZ && n && n.z <= maxZ) {\n if (p !== ear.prev && p !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n\n if (n !== ear.prev && n !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) &&\n area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n // look for remaining points in decreasing z-order\n while (p && p.z >= minZ) {\n if (p !== ear.prev && p !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n }\n\n // look for remaining points in increasing z-order\n while (n && n.z <= maxZ) {\n if (n !== ear.prev && n !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) &&\n area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n return true;\n}\n\n// go through all polygon nodes and cure small local self-intersections\nfunction cureLocalIntersections(start, triangles, dim) {\n var p = start;\n do {\n var a = p.prev,\n b = p.next.next;\n\n if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\n\n triangles.push(a.i / dim);\n triangles.push(p.i / dim);\n triangles.push(b.i / dim);\n\n // remove two nodes involved\n removeNode(p);\n removeNode(p.next);\n\n p = start = b;\n }\n p = p.next;\n } while (p !== start);\n\n return filterPoints(p);\n}\n\n// try splitting polygon into two and triangulate them independently\nfunction splitEarcut(start, triangles, dim, minX, minY, invSize) {\n // look for a valid diagonal that divides the polygon into two\n var a = start;\n do {\n var b = a.next.next;\n while (b !== a.prev) {\n if (a.i !== b.i && isValidDiagonal(a, b)) {\n // split the polygon in two by the diagonal\n var c = splitPolygon(a, b);\n\n // filter colinear points around the cuts\n a = filterPoints(a, a.next);\n c = filterPoints(c, c.next);\n\n // run earcut on each half\n earcutLinked(a, triangles, dim, minX, minY, invSize);\n earcutLinked(c, triangles, dim, minX, minY, invSize);\n return;\n }\n b = b.next;\n }\n a = a.next;\n } while (a !== start);\n}\n\n// link every hole into the outer loop, producing a single-ring polygon without holes\nfunction eliminateHoles(data, holeIndices, outerNode, dim) {\n var queue = [],\n i, len, start, end, list;\n\n for (i = 0, len = holeIndices.length; i < len; i++) {\n start = holeIndices[i] * dim;\n end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n list = linkedList(data, start, end, dim, false);\n if (list === list.next) list.steiner = true;\n queue.push(getLeftmost(list));\n }\n\n queue.sort(compareX);\n\n // process holes from left to right\n for (i = 0; i < queue.length; i++) {\n eliminateHole(queue[i], outerNode);\n outerNode = filterPoints(outerNode, outerNode.next);\n }\n\n return outerNode;\n}\n\nfunction compareX(a, b) {\n return a.x - b.x;\n}\n\n// find a bridge between vertices that connects hole with an outer ring and and link it\nfunction eliminateHole(hole, outerNode) {\n outerNode = findHoleBridge(hole, outerNode);\n if (outerNode) {\n var b = splitPolygon(outerNode, hole);\n filterPoints(b, b.next);\n }\n}\n\n// David Eberly's algorithm for finding a bridge between hole and outer polygon\nfunction findHoleBridge(hole, outerNode) {\n var p = outerNode,\n hx = hole.x,\n hy = hole.y,\n qx = -Infinity,\n m;\n\n // find a segment intersected by a ray from the hole's leftmost point to the left;\n // segment's endpoint with lesser x will be potential connection point\n do {\n if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\n var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\n if (x <= hx && x > qx) {\n qx = x;\n if (x === hx) {\n if (hy === p.y) return p;\n if (hy === p.next.y) return p.next;\n }\n m = p.x < p.next.x ? p : p.next;\n }\n }\n p = p.next;\n } while (p !== outerNode);\n\n if (!m) return null;\n\n if (hx === qx) return m; // hole touches outer segment; pick leftmost endpoint\n\n // look for points inside the triangle of hole point, segment intersection and endpoint;\n // if there are no points found, we have a valid connection;\n // otherwise choose the point of the minimum angle with the ray as connection point\n\n var stop = m,\n mx = m.x,\n my = m.y,\n tanMin = Infinity,\n tan;\n\n p = m;\n\n do {\n if (hx >= p.x && p.x >= mx && hx !== p.x &&\n pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n\n tan = Math.abs(hy - p.y) / (hx - p.x); // tangential\n\n if (locallyInside(p, hole) &&\n (tan < tanMin || (tan === tanMin && (p.x > m.x || (p.x === m.x && sectorContainsSector(m, p)))))) {\n m = p;\n tanMin = tan;\n }\n }\n\n p = p.next;\n } while (p !== stop);\n\n return m;\n}\n\n// whether sector in vertex m contains sector in vertex p in the same coordinates\nfunction sectorContainsSector(m, p) {\n return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\n}\n\n// interlink polygon nodes in z-order\nfunction indexCurve(start, minX, minY, invSize) {\n var p = start;\n do {\n if (p.z === null) p.z = zOrder(p.x, p.y, minX, minY, invSize);\n p.prevZ = p.prev;\n p.nextZ = p.next;\n p = p.next;\n } while (p !== start);\n\n p.prevZ.nextZ = null;\n p.prevZ = null;\n\n sortLinked(p);\n}\n\n// Simon Tatham's linked list merge sort algorithm\n// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html\nfunction sortLinked(list) {\n var i, p, q, e, tail, numMerges, pSize, qSize,\n inSize = 1;\n\n do {\n p = list;\n list = null;\n tail = null;\n numMerges = 0;\n\n while (p) {\n numMerges++;\n q = p;\n pSize = 0;\n for (i = 0; i < inSize; i++) {\n pSize++;\n q = q.nextZ;\n if (!q) break;\n }\n qSize = inSize;\n\n while (pSize > 0 || (qSize > 0 && q)) {\n\n if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\n e = p;\n p = p.nextZ;\n pSize--;\n } else {\n e = q;\n q = q.nextZ;\n qSize--;\n }\n\n if (tail) tail.nextZ = e;\n else list = e;\n\n e.prevZ = tail;\n tail = e;\n }\n\n p = q;\n }\n\n tail.nextZ = null;\n inSize *= 2;\n\n } while (numMerges > 1);\n\n return list;\n}\n\n// z-order of a point given coords and inverse of the longer side of data bbox\nfunction zOrder(x, y, minX, minY, invSize) {\n // coords are transformed into non-negative 15-bit integer range\n x = 32767 * (x - minX) * invSize;\n y = 32767 * (y - minY) * invSize;\n\n x = (x | (x << 8)) & 0x00FF00FF;\n x = (x | (x << 4)) & 0x0F0F0F0F;\n x = (x | (x << 2)) & 0x33333333;\n x = (x | (x << 1)) & 0x55555555;\n\n y = (y | (y << 8)) & 0x00FF00FF;\n y = (y | (y << 4)) & 0x0F0F0F0F;\n y = (y | (y << 2)) & 0x33333333;\n y = (y | (y << 1)) & 0x55555555;\n\n return x | (y << 1);\n}\n\n// find the leftmost node of a polygon ring\nfunction getLeftmost(start) {\n var p = start,\n leftmost = start;\n do {\n if (p.x < leftmost.x || (p.x === leftmost.x && p.y < leftmost.y)) leftmost = p;\n p = p.next;\n } while (p !== start);\n\n return leftmost;\n}\n\n// check if a point lies within a convex triangle\nfunction pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {\n return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 &&\n (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 &&\n (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;\n}\n\n// check if a diagonal between two polygon nodes is valid (lies in polygon interior)\nfunction isValidDiagonal(a, b) {\n return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && // dones't intersect other edges\n (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && // locally visible\n (area(a.prev, a, b.prev) || area(a, b.prev, b)) || // does not create opposite-facing sectors\n equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0); // special zero-length case\n}\n\n// signed area of a triangle\nfunction area(p, q, r) {\n return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n}\n\n// check if two points are equal\nfunction equals(p1, p2) {\n return p1.x === p2.x && p1.y === p2.y;\n}\n\n// check if two segments intersect\nfunction intersects(p1, q1, p2, q2) {\n var o1 = sign(area(p1, q1, p2));\n var o2 = sign(area(p1, q1, q2));\n var o3 = sign(area(p2, q2, p1));\n var o4 = sign(area(p2, q2, q1));\n\n if (o1 !== o2 && o3 !== o4) return true; // general case\n\n if (o1 === 0 && onSegment(p1, p2, q1)) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1\n if (o2 === 0 && onSegment(p1, q2, q1)) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1\n if (o3 === 0 && onSegment(p2, p1, q2)) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2\n if (o4 === 0 && onSegment(p2, q1, q2)) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2\n\n return false;\n}\n\n// for collinear points p, q, r, check if point q lies on segment pr\nfunction onSegment(p, q, r) {\n return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);\n}\n\nfunction sign(num) {\n return num > 0 ? 1 : num < 0 ? -1 : 0;\n}\n\n// check if a polygon diagonal intersects any polygon segments\nfunction intersectsPolygon(a, b) {\n var p = a;\n do {\n if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&\n intersects(p, p.next, a, b)) return true;\n p = p.next;\n } while (p !== a);\n\n return false;\n}\n\n// check if a polygon diagonal is locally inside the polygon\nfunction locallyInside(a, b) {\n return area(a.prev, a, a.next) < 0 ?\n area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 :\n area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n}\n\n// check if the middle point of a polygon diagonal is inside the polygon\nfunction middleInside(a, b) {\n var p = a,\n inside = false,\n px = (a.x + b.x) / 2,\n py = (a.y + b.y) / 2;\n do {\n if (((p.y > py) !== (p.next.y > py)) && p.next.y !== p.y &&\n (px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x))\n inside = !inside;\n p = p.next;\n } while (p !== a);\n\n return inside;\n}\n\n// link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;\n// if one belongs to the outer ring and another to a hole, it merges it into a single ring\nfunction splitPolygon(a, b) {\n var a2 = new Node(a.i, a.x, a.y),\n b2 = new Node(b.i, b.x, b.y),\n an = a.next,\n bp = b.prev;\n\n a.next = b;\n b.prev = a;\n\n a2.next = an;\n an.prev = a2;\n\n b2.next = a2;\n a2.prev = b2;\n\n bp.next = b2;\n b2.prev = bp;\n\n return b2;\n}\n\n// create a node and optionally link it with previous one (in a circular doubly linked list)\nfunction insertNode(i, x, y, last) {\n var p = new Node(i, x, y);\n\n if (!last) {\n p.prev = p;\n p.next = p;\n\n } else {\n p.next = last.next;\n p.prev = last;\n last.next.prev = p;\n last.next = p;\n }\n return p;\n}\n\nfunction removeNode(p) {\n p.next.prev = p.prev;\n p.prev.next = p.next;\n\n if (p.prevZ) p.prevZ.nextZ = p.nextZ;\n if (p.nextZ) p.nextZ.prevZ = p.prevZ;\n}\n\nfunction Node(i, x, y) {\n // vertex index in coordinates array\n this.i = i;\n\n // vertex coordinates\n this.x = x;\n this.y = y;\n\n // previous and next vertex nodes in a polygon ring\n this.prev = null;\n this.next = null;\n\n // z-order curve value\n this.z = null;\n\n // previous and next nodes in z-order\n this.prevZ = null;\n this.nextZ = null;\n\n // indicates whether this is a steiner point\n this.steiner = false;\n}\n\n// return a percentage difference between the polygon area and its triangulation area;\n// used to verify correctness of triangulation\nearcut.deviation = function (data, holeIndices, dim, triangles) {\n var hasHoles = holeIndices && holeIndices.length;\n var outerLen = hasHoles ? holeIndices[0] * dim : data.length;\n\n var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));\n if (hasHoles) {\n for (var i = 0, len = holeIndices.length; i < len; i++) {\n var start = holeIndices[i] * dim;\n var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n polygonArea -= Math.abs(signedArea(data, start, end, dim));\n }\n }\n\n var trianglesArea = 0;\n for (i = 0; i < triangles.length; i += 3) {\n var a = triangles[i] * dim;\n var b = triangles[i + 1] * dim;\n var c = triangles[i + 2] * dim;\n trianglesArea += Math.abs(\n (data[a] - data[c]) * (data[b + 1] - data[a + 1]) -\n (data[a] - data[b]) * (data[c + 1] - data[a + 1]));\n }\n\n return polygonArea === 0 && trianglesArea === 0 ? 0 :\n Math.abs((trianglesArea - polygonArea) / polygonArea);\n};\n\nfunction signedArea(data, start, end, dim) {\n var sum = 0;\n for (var i = start, j = end - dim; i < end; i += dim) {\n sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\n j = i;\n }\n return sum;\n}\n\n// turn a polygon in a multi-dimensional array form (e.g. as in GeoJSON) into a form Earcut accepts\nearcut.flatten = function (data) {\n var dim = data[0][0].length,\n result = {vertices: [], holes: [], dimensions: dim},\n holeIndex = 0;\n\n for (var i = 0; i < data.length; i++) {\n for (var j = 0; j < data[i].length; j++) {\n for (var d = 0; d < dim; d++) result.vertices.push(data[i][j][d]);\n }\n if (i > 0) {\n holeIndex += data[i - 1].length;\n result.holes.push(holeIndex);\n }\n }\n return result;\n};\n","'use strict'\n\nmodule.exports = boundary\n\nfunction boundary (cells) {\n var i, j, k\n var n = cells.length\n var sz = 0\n for (i = 0; i < n; ++i) {\n sz += cells[i].length\n }\n var result = new Array(sz)\n var ptr = 0\n for (i = 0; i < n; ++i) {\n var c = cells[i]\n var d = c.length\n for (j = 0; j < d; ++j) {\n var b = result[ptr++] = new Array(d - 1)\n var p = 0\n for (k = 0; k < d; ++k) {\n if (k === j) {\n continue\n }\n b[p++] = c[k]\n }\n if (j & 1) {\n var tmp = b[1]\n b[1] = b[0]\n b[0] = tmp\n }\n }\n }\n return result\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar Axes = require('../../plots/cartesian/axes');\nvar handleArrayContainerDefaults = require('../../plots/array_container_defaults');\n\nvar attributes = require('./attributes');\nvar helpers = require('./helpers');\n\n\nmodule.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n handleArrayContainerDefaults(layoutIn, layoutOut, {\n name: 'shapes',\n handleItemDefaults: handleShapeDefaults\n });\n};\n\nfunction handleShapeDefaults(shapeIn, shapeOut, fullLayout) {\n function coerce(attr, dflt) {\n return Lib.coerce(shapeIn, shapeOut, attributes, attr, dflt);\n }\n\n var visible = coerce('visible');\n\n if(!visible) return;\n\n coerce('layer');\n coerce('opacity');\n coerce('fillcolor');\n coerce('line.color');\n coerce('line.width');\n coerce('line.dash');\n\n var dfltType = shapeIn.path ? 'path' : 'rect';\n var shapeType = coerce('type', dfltType);\n var xSizeMode = coerce('xsizemode');\n var ySizeMode = coerce('ysizemode');\n\n // positioning\n var axLetters = ['x', 'y'];\n for(var i = 0; i < 2; i++) {\n var axLetter = axLetters[i];\n var attrAnchor = axLetter + 'anchor';\n var sizeMode = axLetter === 'x' ? xSizeMode : ySizeMode;\n var gdMock = {_fullLayout: fullLayout};\n var ax;\n var pos2r;\n var r2pos;\n\n // xref, yref\n var axRef = Axes.coerceRef(shapeIn, shapeOut, gdMock, axLetter, '', 'paper');\n\n if(axRef !== 'paper') {\n ax = Axes.getFromId(gdMock, axRef);\n ax._shapeIndices.push(shapeOut._index);\n r2pos = helpers.rangeToShapePosition(ax);\n pos2r = helpers.shapePositionToRange(ax);\n } else {\n pos2r = r2pos = Lib.identity;\n }\n\n // Coerce x0, x1, y0, y1\n if(shapeType !== 'path') {\n var dflt0 = 0.25;\n var dflt1 = 0.75;\n\n // hack until V2.0 when log has regular range behavior - make it look like other\n // ranges to send to coerce, then put it back after\n // this is all to give reasonable default position behavior on log axes, which is\n // a pretty unimportant edge case so we could just ignore this.\n var attr0 = axLetter + '0';\n var attr1 = axLetter + '1';\n var in0 = shapeIn[attr0];\n var in1 = shapeIn[attr1];\n shapeIn[attr0] = pos2r(shapeIn[attr0], true);\n shapeIn[attr1] = pos2r(shapeIn[attr1], true);\n\n if(sizeMode === 'pixel') {\n coerce(attr0, 0);\n coerce(attr1, 10);\n } else {\n Axes.coercePosition(shapeOut, gdMock, coerce, axRef, attr0, dflt0);\n Axes.coercePosition(shapeOut, gdMock, coerce, axRef, attr1, dflt1);\n }\n\n // hack part 2\n shapeOut[attr0] = r2pos(shapeOut[attr0]);\n shapeOut[attr1] = r2pos(shapeOut[attr1]);\n shapeIn[attr0] = in0;\n shapeIn[attr1] = in1;\n }\n\n // Coerce xanchor and yanchor\n if(sizeMode === 'pixel') {\n // Hack for log axis described above\n var inAnchor = shapeIn[attrAnchor];\n shapeIn[attrAnchor] = pos2r(shapeIn[attrAnchor], true);\n\n Axes.coercePosition(shapeOut, gdMock, coerce, axRef, attrAnchor, 0.25);\n\n // Hack part 2\n shapeOut[attrAnchor] = r2pos(shapeOut[attrAnchor]);\n shapeIn[attrAnchor] = inAnchor;\n }\n }\n\n if(shapeType === 'path') {\n coerce('path');\n } else {\n Lib.noneOrAll(shapeIn, shapeOut, ['x0', 'x1', 'y0', 'y1']);\n }\n}\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.4',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = function zip3(x, y, z, len) {\n len = len || x.length;\n\n var result = new Array(len);\n for(var i = 0; i < len; i++) {\n result[i] = [x[i], y[i], z[i]];\n }\n return result;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\n\nvar layoutAttributes = require('./layout_attributes');\n\nmodule.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n\n coerce('hiddenlabels');\n coerce('piecolorway', layoutOut.colorway);\n coerce('extendpiecolors');\n};\n","module.exports = subtract\n\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @returns {vec4} out\n */\nfunction subtract (out, a, b) {\n out[0] = a[0] - b[0]\n out[1] = a[1] - b[1]\n out[2] = a[2] - b[2]\n out[3] = a[3] - b[3]\n return out\n}\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar hovertemplateAttrs = require('../../plots/template_attributes').hovertemplateAttrs;\nvar texttemplateAttrs = require('../../plots/template_attributes').texttemplateAttrs;\nvar scatterAttrs = require('../scatter/attributes');\nvar baseAttrs = require('../../plots/attributes');\nvar colorAttributes = require('../../components/colorscale/attributes');\nvar dash = require('../../components/drawing/attributes').dash;\n\nvar extendFlat = require('../../lib/extend').extendFlat;\nvar overrideAll = require('../../plot_api/edit_types').overrideAll;\n\nvar scatterMarkerAttrs = scatterAttrs.marker;\nvar scatterLineAttrs = scatterAttrs.line;\nvar scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n\nmodule.exports = overrideAll({\n lon: {\n valType: 'data_array',\n \n },\n lat: {\n valType: 'data_array',\n \n },\n\n locations: {\n valType: 'data_array',\n \n },\n locationmode: {\n valType: 'enumerated',\n values: ['ISO-3', 'USA-states', 'country names', 'geojson-id'],\n \n dflt: 'ISO-3',\n \n },\n\n geojson: {\n valType: 'any',\n \n editType: 'calc',\n \n },\n featureidkey: {\n valType: 'string',\n \n editType: 'calc',\n dflt: 'id',\n \n },\n\n mode: extendFlat({}, scatterAttrs.mode, {dflt: 'markers'}),\n\n text: extendFlat({}, scatterAttrs.text, {\n \n }),\n texttemplate: texttemplateAttrs({editType: 'plot'}, {\n keys: ['lat', 'lon', 'location', 'text']\n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {\n \n }),\n\n textfont: scatterAttrs.textfont,\n textposition: scatterAttrs.textposition,\n\n line: {\n color: scatterLineAttrs.color,\n width: scatterLineAttrs.width,\n dash: dash\n },\n connectgaps: scatterAttrs.connectgaps,\n\n marker: extendFlat({\n symbol: scatterMarkerAttrs.symbol,\n opacity: scatterMarkerAttrs.opacity,\n size: scatterMarkerAttrs.size,\n sizeref: scatterMarkerAttrs.sizeref,\n sizemin: scatterMarkerAttrs.sizemin,\n sizemode: scatterMarkerAttrs.sizemode,\n colorbar: scatterMarkerAttrs.colorbar,\n line: extendFlat({\n width: scatterMarkerLineAttrs.width\n },\n colorAttributes('marker.line')\n ),\n gradient: scatterMarkerAttrs.gradient\n },\n colorAttributes('marker')\n ),\n\n fill: {\n valType: 'enumerated',\n values: ['none', 'toself'],\n dflt: 'none',\n \n \n },\n fillcolor: scatterAttrs.fillcolor,\n\n selected: scatterAttrs.selected,\n unselected: scatterAttrs.unselected,\n\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: ['lon', 'lat', 'location', 'text', 'name']\n }),\n hovertemplate: hovertemplateAttrs(),\n}, 'calc', 'nested');\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\n/*\n * Return a function that evaluates a set of linear or bicubic control points.\n * This will get evaluated a lot, so we'll at least do a bit of extra work to\n * flatten some of the choices. In particular, we'll unroll the linear/bicubic\n * combinations and we'll allow computing results in parallel to cut down\n * on repeated arithmetic.\n *\n * Take note that we don't search for the correct range in this function. The\n * reason is for consistency due to the corrresponding derivative function. In\n * particular, the derivatives aren't continuous across cells, so it's important\n * to be able control whether the derivative at a cell boundary is approached\n * from one side or the other.\n */\nmodule.exports = function(arrays, na, nb, asmoothing, bsmoothing) {\n var imax = na - 2;\n var jmax = nb - 2;\n\n if(asmoothing && bsmoothing) {\n return function(out, i, j) {\n if(!out) out = [];\n var f0, f1, f2, f3, ak, k;\n\n var i0 = Math.max(0, Math.min(Math.floor(i), imax));\n var j0 = Math.max(0, Math.min(Math.floor(j), jmax));\n var u = Math.max(0, Math.min(1, i - i0));\n var v = Math.max(0, Math.min(1, j - j0));\n\n // Since it's a grid of control points, the actual indices are * 3:\n i0 *= 3;\n j0 *= 3;\n\n // Precompute some numbers:\n var u2 = u * u;\n var u3 = u2 * u;\n var ou = 1 - u;\n var ou2 = ou * ou;\n var ou3 = ou2 * ou;\n\n var v2 = v * v;\n var v3 = v2 * v;\n var ov = 1 - v;\n var ov2 = ov * ov;\n var ov3 = ov2 * ov;\n\n for(k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ou3 * ak[j0][i0] + 3 * (ou2 * u * ak[j0][i0 + 1] + ou * u2 * ak[j0][i0 + 2]) + u3 * ak[j0][i0 + 3];\n f1 = ou3 * ak[j0 + 1][i0] + 3 * (ou2 * u * ak[j0 + 1][i0 + 1] + ou * u2 * ak[j0 + 1][i0 + 2]) + u3 * ak[j0 + 1][i0 + 3];\n f2 = ou3 * ak[j0 + 2][i0] + 3 * (ou2 * u * ak[j0 + 2][i0 + 1] + ou * u2 * ak[j0 + 2][i0 + 2]) + u3 * ak[j0 + 2][i0 + 3];\n f3 = ou3 * ak[j0 + 3][i0] + 3 * (ou2 * u * ak[j0 + 3][i0 + 1] + ou * u2 * ak[j0 + 3][i0 + 2]) + u3 * ak[j0 + 3][i0 + 3];\n out[k] = ov3 * f0 + 3 * (ov2 * v * f1 + ov * v2 * f2) + v3 * f3;\n }\n\n return out;\n };\n } else if(asmoothing) {\n // Handle smooth in the a-direction but linear in the b-direction by performing four\n // linear interpolations followed by one cubic interpolation of the result\n return function(out, i, j) {\n if(!out) out = [];\n\n var i0 = Math.max(0, Math.min(Math.floor(i), imax));\n var j0 = Math.max(0, Math.min(Math.floor(j), jmax));\n var u = Math.max(0, Math.min(1, i - i0));\n var v = Math.max(0, Math.min(1, j - j0));\n\n var f0, f1, f2, f3, k, ak;\n i0 *= 3;\n var u2 = u * u;\n var u3 = u2 * u;\n var ou = 1 - u;\n var ou2 = ou * ou;\n var ou3 = ou2 * ou;\n var ov = 1 - v;\n for(k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ov * ak[j0][i0] + v * ak[j0 + 1][i0];\n f1 = ov * ak[j0][i0 + 1] + v * ak[j0 + 1][i0 + 1];\n f2 = ov * ak[j0][i0 + 2] + v * ak[j0 + 1][i0 + 1];\n f3 = ov * ak[j0][i0 + 3] + v * ak[j0 + 1][i0 + 1];\n\n out[k] = ou3 * f0 + 3 * (ou2 * u * f1 + ou * u2 * f2) + u3 * f3;\n }\n return out;\n };\n } else if(bsmoothing) {\n // Same as the above case, except reversed:\n return function(out, i, j) {\n if(!out) out = [];\n\n var i0 = Math.max(0, Math.min(Math.floor(i), imax));\n var j0 = Math.max(0, Math.min(Math.floor(j), jmax));\n var u = Math.max(0, Math.min(1, i - i0));\n var v = Math.max(0, Math.min(1, j - j0));\n\n var f0, f1, f2, f3, k, ak;\n j0 *= 3;\n var v2 = v * v;\n var v3 = v2 * v;\n var ov = 1 - v;\n var ov2 = ov * ov;\n var ov3 = ov2 * ov;\n var ou = 1 - u;\n for(k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ou * ak[j0][i0] + u * ak[j0][i0 + 1];\n f1 = ou * ak[j0 + 1][i0] + u * ak[j0 + 1][i0 + 1];\n f2 = ou * ak[j0 + 2][i0] + u * ak[j0 + 2][i0 + 1];\n f3 = ou * ak[j0 + 3][i0] + u * ak[j0 + 3][i0 + 1];\n\n out[k] = ov3 * f0 + 3 * (ov2 * v * f1 + ov * v2 * f2) + v3 * f3;\n }\n return out;\n };\n } else {\n // Finally, both directions are linear:\n return function(out, i, j) {\n if(!out) out = [];\n\n var i0 = Math.max(0, Math.min(Math.floor(i), imax));\n var j0 = Math.max(0, Math.min(Math.floor(j), jmax));\n var u = Math.max(0, Math.min(1, i - i0));\n var v = Math.max(0, Math.min(1, j - j0));\n\n var f0, f1, k, ak;\n var ov = 1 - v;\n var ou = 1 - u;\n for(k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ou * ak[j0][i0] + u * ak[j0][i0 + 1];\n f1 = ou * ak[j0 + 1][i0] + u * ak[j0 + 1][i0 + 1];\n\n out[k] = ov * f0 + v * f1;\n }\n return out;\n };\n }\n};\n","module.exports = ceil\n\n/**\n * Math.ceil the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a vector to ceil\n * @returns {vec3} out\n */\nfunction ceil(out, a) {\n out[0] = Math.ceil(a[0])\n out[1] = Math.ceil(a[1])\n out[2] = Math.ceil(a[2])\n return out\n}\n","'use strict'\n\nvar BN = require('bn.js')\n\nmodule.exports = str2BN\n\nfunction str2BN(x) {\n return new BN(x)\n}\n","'use strict'\n\nmodule.exports = createSelectBuffer\n\nvar createFBO = require('gl-fbo')\nvar pool = require('typedarray-pool')\nvar ndarray = require('ndarray')\n\nvar nextPow2 = require('bit-twiddle').nextPow2\n\nvar selectRange = require('cwise/lib/wrapper')({\"args\":[\"array\",{\"offset\":[0,0,1],\"array\":0},{\"offset\":[0,0,2],\"array\":0},{\"offset\":[0,0,3],\"array\":0},\"scalar\",\"scalar\",\"index\"],\"pre\":{\"body\":\"{this_closestD2=1e8,this_closestX=-1,this_closestY=-1}\",\"args\":[],\"thisVars\":[\"this_closestD2\",\"this_closestX\",\"this_closestY\"],\"localVars\":[]},\"body\":{\"body\":\"{if(_inline_1_arg0_<255||_inline_1_arg1_<255||_inline_1_arg2_<255||_inline_1_arg3_<255){var _inline_1_l=_inline_1_arg4_-_inline_1_arg6_[0],_inline_1_a=_inline_1_arg5_-_inline_1_arg6_[1],_inline_1_f=_inline_1_l*_inline_1_l+_inline_1_a*_inline_1_a;_inline_1_f this.buffer.length) {\n pool.free(this.buffer)\n var buffer = this.buffer = pool.mallocUint8(nextPow2(r*c*4))\n for(var i=0; i -1 ? vph + barPad : -(barH + barPad);\n\n var pathbarOrigin = {\n x0: barW, // slide to the right\n x1: barW,\n y0: barDifY,\n y1: barDifY + barH\n };\n\n var findClosestEdge = function(pt, ref, size) {\n var e = trace.tiling.pad;\n var isLeftOfRect = function(x) { return x - e <= ref.x0; };\n var isRightOfRect = function(x) { return x + e >= ref.x1; };\n var isBottomOfRect = function(y) { return y - e <= ref.y0; };\n var isTopOfRect = function(y) { return y + e >= ref.y1; };\n\n return {\n x0: isLeftOfRect(pt.x0 - e) ? 0 : isRightOfRect(pt.x0 - e) ? size[0] : pt.x0,\n x1: isLeftOfRect(pt.x1 + e) ? 0 : isRightOfRect(pt.x1 + e) ? size[0] : pt.x1,\n y0: isBottomOfRect(pt.y0 - e) ? 0 : isTopOfRect(pt.y0 - e) ? size[1] : pt.y0,\n y1: isBottomOfRect(pt.y1 + e) ? 0 : isTopOfRect(pt.y1 + e) ? size[1] : pt.y1\n };\n };\n\n // stash of 'previous' position data used by tweening functions\n var prevEntry = null;\n var prevLookupPathbar = {};\n var prevLookupSlices = {};\n var nextOfPrevEntry = null;\n var getPrev = function(pt, onPathbar) {\n return onPathbar ?\n prevLookupPathbar[getKey(pt)] :\n prevLookupSlices[getKey(pt)];\n };\n\n var getOrigin = function(pt, onPathbar, refRect, size) {\n if(onPathbar) {\n return prevLookupPathbar[getKey(hierarchy)] || pathbarOrigin;\n } else {\n var ref = prevLookupSlices[trace.level] || refRect;\n\n if(hasVisibleDepth(pt)) { // case of an empty object - happens when maxdepth is set\n return findClosestEdge(pt, ref, size);\n }\n }\n return {};\n };\n\n // N.B. handle multiple-root special case\n if(cd0.hasMultipleRoots && isRoot) {\n maxDepth++;\n }\n\n trace._maxDepth = maxDepth;\n trace._backgroundColor = fullLayout.paper_bgcolor;\n trace._entryDepth = entry.data.depth;\n trace._atRootLevel = isRoot;\n\n var cenX = -vpw / 2 + gs.l + gs.w * (domain.x[1] + domain.x[0]) / 2;\n var cenY = -vph / 2 + gs.t + gs.h * (1 - (domain.y[1] + domain.y[0]) / 2);\n\n var viewMapX = function(x) { return cenX + x; };\n var viewMapY = function(y) { return cenY + y; };\n\n var barY0 = viewMapY(0);\n var barX0 = viewMapX(0);\n\n var viewBarX = function(x) { return barX0 + x; };\n var viewBarY = function(y) { return barY0 + y; };\n\n function pos(x, y) {\n return x + ',' + y;\n }\n\n var xStart = viewBarX(0);\n var limitX0 = function(p) { p.x = Math.max(xStart, p.x); };\n\n var edgeshape = trace.pathbar.edgeshape;\n\n // pathbar(directory) path generation fn\n var pathAncestor = function(d) {\n var _x0 = viewBarX(Math.max(Math.min(d.x0, d.x0), 0));\n var _x1 = viewBarX(Math.min(Math.max(d.x1, d.x1), barW));\n var _y0 = viewBarY(d.y0);\n var _y1 = viewBarY(d.y1);\n\n var halfH = barH / 2;\n\n var pL = {};\n var pR = {};\n\n pL.x = _x0;\n pR.x = _x1;\n\n pL.y = pR.y = (_y0 + _y1) / 2;\n\n var pA = {x: _x0, y: _y0};\n var pB = {x: _x1, y: _y0};\n var pC = {x: _x1, y: _y1};\n var pD = {x: _x0, y: _y1};\n\n if(edgeshape === '>') {\n pA.x -= halfH;\n pB.x -= halfH;\n pC.x -= halfH;\n pD.x -= halfH;\n } else if(edgeshape === '/') {\n pC.x -= halfH;\n pD.x -= halfH;\n pL.x -= halfH / 2;\n pR.x -= halfH / 2;\n } else if(edgeshape === '\\\\') {\n pA.x -= halfH;\n pB.x -= halfH;\n pL.x -= halfH / 2;\n pR.x -= halfH / 2;\n } else if(edgeshape === '<') {\n pL.x -= halfH;\n pR.x -= halfH;\n }\n\n limitX0(pA);\n limitX0(pD);\n limitX0(pL);\n\n limitX0(pB);\n limitX0(pC);\n limitX0(pR);\n\n return (\n 'M' + pos(pA.x, pA.y) +\n 'L' + pos(pB.x, pB.y) +\n 'L' + pos(pR.x, pR.y) +\n 'L' + pos(pC.x, pC.y) +\n 'L' + pos(pD.x, pD.y) +\n 'L' + pos(pL.x, pL.y) +\n 'Z'\n );\n };\n\n // slice path generation fn\n var pathDescendant = function(d) {\n var _x0 = viewMapX(d.x0);\n var _x1 = viewMapX(d.x1);\n var _y0 = viewMapY(d.y0);\n var _y1 = viewMapY(d.y1);\n\n var dx = _x1 - _x0;\n var dy = _y1 - _y0;\n if(!dx || !dy) return '';\n\n var FILLET = 0; // TODO: may expose this constant\n\n var r = (\n dx > 2 * FILLET &&\n dy > 2 * FILLET\n ) ? FILLET : 0;\n\n var arc = function(rx, ry) { return r ? 'a' + pos(r, r) + ' 0 0 1 ' + pos(rx, ry) : ''; };\n\n return (\n 'M' + pos(_x0, _y0 + r) +\n arc(r, -r) +\n 'L' + pos(_x1 - r, _y0) +\n arc(r, r) +\n 'L' + pos(_x1, _y1 - r) +\n arc(-r, r) +\n 'L' + pos(_x0 + r, _y1) +\n arc(-r, -r) + 'Z'\n );\n };\n\n var toMoveInsideSlice = function(pt, opts) {\n var x0 = pt.x0;\n var x1 = pt.x1;\n var y0 = pt.y0;\n var y1 = pt.y1;\n var textBB = pt.textBB;\n\n var hasFlag = function(f) { return trace.textposition.indexOf(f) !== -1; };\n\n var hasBottom = hasFlag('bottom');\n var hasTop = hasFlag('top') || (opts.isHeader && !hasBottom);\n\n var anchor =\n hasTop ? 'start' :\n hasBottom ? 'end' : 'middle';\n\n var hasRight = hasFlag('right');\n var hasLeft = hasFlag('left') || opts.onPathbar;\n\n var leftToRight =\n hasLeft ? -1 :\n hasRight ? 1 : 0;\n\n var pad = trace.marker.pad;\n if(opts.isHeader) {\n x0 += pad.l - TEXTPAD;\n x1 -= pad.r - TEXTPAD;\n if(x0 >= x1) {\n var mid = (x0 + x1) / 2;\n x0 = mid;\n x1 = mid;\n }\n\n // limit the drawing area for headers\n var limY;\n if(hasBottom) {\n limY = y1 - pad.b;\n if(y0 < limY && limY < y1) y0 = limY;\n } else {\n limY = y0 + pad.t;\n if(y0 < limY && limY < y1) y1 = limY;\n }\n }\n\n // position the text relative to the slice\n var transform = toMoveInsideBar(x0, x1, y0, y1, textBB, {\n isHorizontal: false,\n constrained: true,\n angle: 0,\n anchor: anchor,\n leftToRight: leftToRight\n });\n transform.fontSize = opts.fontSize;\n\n transform.targetX = viewMapX(transform.targetX);\n transform.targetY = viewMapY(transform.targetY);\n\n if(isNaN(transform.targetX) || isNaN(transform.targetY)) {\n return {};\n }\n\n if(x0 !== x1 && y0 !== y1) {\n recordMinTextSize(trace.type, transform, fullLayout);\n }\n\n return {\n scale: transform.scale,\n rotate: transform.rotate,\n textX: transform.textX,\n textY: transform.textY,\n anchorX: transform.anchorX,\n anchorY: transform.anchorY,\n targetX: transform.targetX,\n targetY: transform.targetY\n };\n };\n\n var interpFromParent = function(pt, onPathbar) {\n var parentPrev;\n var i = 0;\n var Q = pt;\n while(!parentPrev && i < maxDepth) { // loop to find a parent/grandParent on the previous graph\n i++;\n Q = Q.parent;\n if(Q) {\n parentPrev = getPrev(Q, onPathbar);\n } else i = maxDepth;\n }\n return parentPrev || {};\n };\n\n var makeExitSliceInterpolator = function(pt, onPathbar, refRect, size) {\n var prev = getPrev(pt, onPathbar);\n var next;\n\n if(onPathbar) {\n next = pathbarOrigin;\n } else {\n var entryPrev = getPrev(entry, onPathbar);\n if(entryPrev) {\n // 'entryPrev' is here has the previous coordinates of the entry\n // node, which corresponds to the last \"clicked\" node when zooming in\n next = findClosestEdge(pt, entryPrev, size);\n } else {\n // this happens when maxdepth is set, when leaves must\n // be removed and the entry is new (i.e. does not have a 'prev' object)\n next = {};\n }\n }\n\n return d3.interpolate(prev, next);\n };\n\n var makeUpdateSliceInterpolator = function(pt, onPathbar, refRect, size) {\n var prev0 = getPrev(pt, onPathbar);\n var prev;\n\n if(prev0) {\n // if pt already on graph, this is easy\n prev = prev0;\n } else {\n // for new pts:\n if(onPathbar) {\n prev = pathbarOrigin;\n } else {\n if(prevEntry) {\n // if trace was visible before\n if(pt.parent) {\n var ref = nextOfPrevEntry || refRect;\n\n if(ref && !onPathbar) {\n prev = findClosestEdge(pt, ref, size);\n } else {\n // if new leaf (when maxdepth is set),\n // grow it from its parent node\n prev = {};\n Lib.extendFlat(prev, interpFromParent(pt, onPathbar));\n }\n } else {\n prev = pt;\n }\n } else {\n prev = {};\n }\n }\n }\n\n return d3.interpolate(prev, {\n x0: pt.x0,\n x1: pt.x1,\n y0: pt.y0,\n y1: pt.y1\n });\n };\n\n var makeUpdateTextInterpolator = function(pt, onPathbar, refRect, size) {\n var prev0 = getPrev(pt, onPathbar);\n var prev = {};\n var origin = getOrigin(pt, onPathbar, refRect, size);\n\n Lib.extendFlat(prev, {\n transform: toMoveInsideSlice({\n x0: origin.x0,\n x1: origin.x1,\n y0: origin.y0,\n y1: origin.y1,\n textBB: pt.textBB,\n _text: pt._text\n }, {\n isHeader: helpers.isHeader(pt, trace)\n })\n });\n\n if(prev0) {\n // if pt already on graph, this is easy\n prev = prev0;\n } else {\n // for new pts:\n if(pt.parent) {\n Lib.extendFlat(prev, interpFromParent(pt, onPathbar));\n }\n }\n\n var transform = pt.transform;\n if(pt.x0 !== pt.x1 && pt.y0 !== pt.y1) {\n recordMinTextSize(trace.type, transform, fullLayout);\n }\n\n return d3.interpolate(prev, {\n transform: {\n scale: transform.scale,\n rotate: transform.rotate,\n textX: transform.textX,\n textY: transform.textY,\n anchorX: transform.anchorX,\n anchorY: transform.anchorY,\n targetX: transform.targetX,\n targetY: transform.targetY\n }\n });\n };\n\n var handleSlicesExit = function(slices, onPathbar, refRect, size, pathSlice) {\n var width = size[0];\n var height = size[1];\n\n if(hasTransition) {\n slices.exit().transition()\n .each(function() {\n var sliceTop = d3.select(this);\n\n var slicePath = sliceTop.select('path.surface');\n slicePath.transition().attrTween('d', function(pt2) {\n var interp = makeExitSliceInterpolator(pt2, onPathbar, refRect, [width, height]);\n return function(t) { return pathSlice(interp(t)); };\n });\n\n var sliceTextGroup = sliceTop.select('g.slicetext');\n sliceTextGroup.attr('opacity', 0);\n })\n .remove();\n } else {\n slices.exit().remove();\n }\n };\n\n var strTransform = function(d) {\n var transform = d.transform;\n\n if(d.x0 !== d.x1 && d.y0 !== d.y1) {\n recordMinTextSize(trace.type, transform, fullLayout);\n }\n\n return Lib.getTextTransform({\n textX: transform.textX,\n textY: transform.textY,\n anchorX: transform.anchorX,\n anchorY: transform.anchorY,\n targetX: transform.targetX,\n targetY: transform.targetY,\n scale: transform.scale,\n rotate: transform.rotate\n });\n };\n\n if(hasTransition) {\n // Important: do this before binding new sliceData!\n\n selAncestors.each(function(pt) {\n prevLookupPathbar[getKey(pt)] = {\n x0: pt.x0,\n x1: pt.x1,\n y0: pt.y0,\n y1: pt.y1\n };\n\n if(pt.transform) {\n prevLookupPathbar[getKey(pt)].transform = {\n textX: pt.transform.textX,\n textY: pt.transform.textY,\n anchorX: pt.transform.anchorX,\n anchorY: pt.transform.anchorY,\n targetX: pt.transform.targetX,\n targetY: pt.transform.targetY,\n scale: pt.transform.scale,\n rotate: pt.transform.rotate\n };\n }\n });\n\n selDescendants.each(function(pt) {\n prevLookupSlices[getKey(pt)] = {\n x0: pt.x0,\n x1: pt.x1,\n y0: pt.y0,\n y1: pt.y1\n };\n\n if(pt.transform) {\n prevLookupSlices[getKey(pt)].transform = {\n textX: pt.transform.textX,\n textY: pt.transform.textY,\n anchorX: pt.transform.anchorX,\n anchorY: pt.transform.anchorY,\n targetX: pt.transform.targetX,\n targetY: pt.transform.targetY,\n scale: pt.transform.scale,\n rotate: pt.transform.rotate\n };\n }\n\n if(!prevEntry && helpers.isEntry(pt)) {\n prevEntry = pt;\n }\n });\n }\n\n nextOfPrevEntry = drawDescendants(gd, cd, entry, selDescendants, {\n width: vpw,\n height: vph,\n\n viewX: viewMapX,\n viewY: viewMapY,\n\n pathSlice: pathDescendant,\n toMoveInsideSlice: toMoveInsideSlice,\n\n prevEntry: prevEntry,\n makeUpdateSliceInterpolator: makeUpdateSliceInterpolator,\n makeUpdateTextInterpolator: makeUpdateTextInterpolator,\n\n handleSlicesExit: handleSlicesExit,\n hasTransition: hasTransition,\n strTransform: strTransform\n });\n\n if(trace.pathbar.visible) {\n drawAncestors(gd, cd, entry, selAncestors, {\n barDifY: barDifY,\n width: barW,\n height: barH,\n\n viewX: viewBarX,\n viewY: viewBarY,\n\n pathSlice: pathAncestor,\n toMoveInsideSlice: toMoveInsideSlice,\n\n makeUpdateSliceInterpolator: makeUpdateSliceInterpolator,\n makeUpdateTextInterpolator: makeUpdateTextInterpolator,\n\n handleSlicesExit: handleSlicesExit,\n hasTransition: hasTransition,\n strTransform: strTransform\n });\n }\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n // not really a 'subplot' attribute container,\n // but this is the flag we use to denote attributes that\n // support yaxis, yaxis2, yaxis3, ... counters\n _isSubplotObj: true,\n\n rangemode: {\n valType: 'enumerated',\n values: ['auto', 'fixed', 'match'],\n dflt: 'match',\n \n editType: 'calc',\n \n },\n range: {\n valType: 'info_array',\n \n items: [\n {valType: 'any', editType: 'plot'},\n {valType: 'any', editType: 'plot'}\n ],\n editType: 'plot',\n \n },\n editType: 'calc'\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = function eventData(out, pt) {\n // Note: hoverOnBox property is needed for click-to-select\n // to ignore when a box was clicked. This is the reason box\n // implements this custom eventData function.\n if(pt.hoverOnBox) out.hoverOnBox = pt.hoverOnBox;\n\n if('xVal' in pt) out.x = pt.xVal;\n if('yVal' in pt) out.y = pt.yVal;\n if(pt.xa) out.xaxis = pt.xa;\n if(pt.ya) out.yaxis = pt.ya;\n\n return out;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar numConstants = require('../../constants/numerical');\nvar oneYear = numConstants.ONEAVGYEAR;\nvar oneMonth = numConstants.ONEAVGMONTH;\nvar oneDay = numConstants.ONEDAY;\nvar oneHour = numConstants.ONEHOUR;\nvar oneMin = numConstants.ONEMIN;\nvar oneSec = numConstants.ONESEC;\nvar tickIncrement = require('../../plots/cartesian/axes').tickIncrement;\n\n\n/*\n * make a function that will find rounded bin edges\n * @param {number} leftGap: how far from the left edge of any bin is the closest data value?\n * @param {number} rightGap: how far from the right edge of any bin is the closest data value?\n * @param {Array[number]} binEdges: the actual edge values used in binning\n * @param {object} pa: the position axis\n * @param {string} calendar: the data calendar\n *\n * @return {function(v, isRightEdge)}:\n * find the start (isRightEdge is falsy) or end (truthy) label value for a bin edge `v`\n */\nmodule.exports = function getBinSpanLabelRound(leftGap, rightGap, binEdges, pa, calendar) {\n // the rounding digit is the largest digit that changes in *all* of 4 regions:\n // - inside the rightGap before binEdges[0] (shifted 10% to the left)\n // - inside the leftGap after binEdges[0] (expanded by 10% of rightGap on each end)\n // - same for binEdges[1]\n var dv0 = -1.1 * rightGap;\n var dv1 = -0.1 * rightGap;\n var dv2 = leftGap - dv1;\n var edge0 = binEdges[0];\n var edge1 = binEdges[1];\n var leftDigit = Math.min(\n biggestDigitChanged(edge0 + dv1, edge0 + dv2, pa, calendar),\n biggestDigitChanged(edge1 + dv1, edge1 + dv2, pa, calendar)\n );\n var rightDigit = Math.min(\n biggestDigitChanged(edge0 + dv0, edge0 + dv1, pa, calendar),\n biggestDigitChanged(edge1 + dv0, edge1 + dv1, pa, calendar)\n );\n\n // normally we try to make the label for the right edge different from\n // the left edge label, so it's unambiguous which bin gets data on the edge.\n // but if this results in more than 3 extra digits (or for dates, more than\n // 2 fields ie hr&min or min&sec, which is 3600x), it'll be more clutter than\n // useful so keep the label cleaner instead\n var digit, disambiguateEdges;\n if(leftDigit > rightDigit && rightDigit < Math.abs(edge1 - edge0) / 4000) {\n digit = leftDigit;\n disambiguateEdges = false;\n } else {\n digit = Math.min(leftDigit, rightDigit);\n disambiguateEdges = true;\n }\n\n if(pa.type === 'date' && digit > oneDay) {\n var dashExclude = (digit === oneYear) ? 1 : 6;\n var increment = (digit === oneYear) ? 'M12' : 'M1';\n\n return function(v, isRightEdge) {\n var dateStr = pa.c2d(v, oneYear, calendar);\n var dashPos = dateStr.indexOf('-', dashExclude);\n if(dashPos > 0) dateStr = dateStr.substr(0, dashPos);\n var roundedV = pa.d2c(dateStr, 0, calendar);\n\n if(roundedV < v) {\n var nextV = tickIncrement(roundedV, increment, false, calendar);\n if((roundedV + nextV) / 2 < v + leftGap) roundedV = nextV;\n }\n\n if(isRightEdge && disambiguateEdges) {\n return tickIncrement(roundedV, increment, true, calendar);\n }\n\n return roundedV;\n };\n }\n\n return function(v, isRightEdge) {\n var roundedV = digit * Math.round(v / digit);\n // if we rounded down and we could round up and still be < leftGap\n // (or what leftGap values round to), do that\n if(roundedV + (digit / 10) < v && roundedV + (digit * 0.9) < v + leftGap) {\n roundedV += digit;\n }\n // finally for the right edge back off one digit - but only if we can do that\n // and not clip off any data that's potentially in the bin\n if(isRightEdge && disambiguateEdges) {\n roundedV -= digit;\n }\n return roundedV;\n };\n};\n\n/*\n * Find the largest digit that changes within a (calcdata) region [v1, v2]\n * if dates, \"digit\" means date/time part when it's bigger than a second\n * returns the unit value to round to this digit, eg 0.01 to round to hundredths, or\n * 100 to round to hundreds. returns oneMonth or oneYear for month or year rounding,\n * so that Math.min will work, rather than 'M1' and 'M12'\n */\nfunction biggestDigitChanged(v1, v2, pa, calendar) {\n // are we crossing zero? can't say anything.\n // in principle this doesn't apply to dates but turns out this doesn't matter.\n if(v1 * v2 <= 0) return Infinity;\n\n var dv = Math.abs(v2 - v1);\n var isDate = pa.type === 'date';\n var digit = biggestGuaranteedDigitChanged(dv, isDate);\n // see if a larger digit also changed\n for(var i = 0; i < 10; i++) {\n // numbers: next digit needs to be >10x but <100x then gets rounded down.\n // dates: next digit can be as much as 60x (then rounded down)\n var nextDigit = biggestGuaranteedDigitChanged(digit * 80, isDate);\n // if we get to years, the chain stops\n if(digit === nextDigit) break;\n if(didDigitChange(nextDigit, v1, v2, isDate, pa, calendar)) digit = nextDigit;\n else break;\n }\n return digit;\n}\n\n/*\n * Find the largest digit that *definitely* changes in a region [v, v + dv] for any v\n * for nonuniform date regions (months/years) pick the largest\n */\nfunction biggestGuaranteedDigitChanged(dv, isDate) {\n if(isDate && dv > oneSec) {\n // this is supposed to be the biggest *guaranteed* change\n // so compare to the longest month and year across any calendar,\n // and we'll iterate back up later\n // note: does not support rounding larger than one year. We could add\n // that if anyone wants it, but seems unusual and not strictly necessary.\n if(dv > oneDay) {\n if(dv > oneYear * 1.1) return oneYear;\n if(dv > oneMonth * 1.1) return oneMonth;\n return oneDay;\n }\n\n if(dv > oneHour) return oneHour;\n if(dv > oneMin) return oneMin;\n return oneSec;\n }\n return Math.pow(10, Math.floor(Math.log(dv) / Math.LN10));\n}\n\nfunction didDigitChange(digit, v1, v2, isDate, pa, calendar) {\n if(isDate && digit > oneDay) {\n var dateParts1 = dateParts(v1, pa, calendar);\n var dateParts2 = dateParts(v2, pa, calendar);\n var parti = (digit === oneYear) ? 0 : 1;\n return dateParts1[parti] !== dateParts2[parti];\n }\n return Math.floor(v2 / digit) - Math.floor(v1 / digit) > 0.1;\n}\n\nfunction dateParts(v, pa, calendar) {\n var parts = pa.c2d(v, oneYear, calendar).split('-');\n if(parts[0] === '') {\n parts.unshift();\n parts[0] = '-' + parts[0];\n }\n return parts;\n}\n","module.exports = fromQuat;\n\n/**\n * Creates a matrix from a quaternion rotation.\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @returns {mat4} out\n */\nfunction fromQuat(out, q) {\n var x = q[0], y = q[1], z = q[2], w = q[3],\n x2 = x + x,\n y2 = y + y,\n z2 = z + z,\n\n xx = x * x2,\n yx = y * x2,\n yy = y * y2,\n zx = z * x2,\n zy = z * y2,\n zz = z * z2,\n wx = w * x2,\n wy = w * y2,\n wz = w * z2;\n\n out[0] = 1 - yy - zz;\n out[1] = yx + wz;\n out[2] = zx - wy;\n out[3] = 0;\n\n out[4] = yx - wz;\n out[5] = 1 - xx - zz;\n out[6] = zy + wx;\n out[7] = 0;\n\n out[8] = zx + wy;\n out[9] = zy - wx;\n out[10] = 1 - xx - yy;\n out[11] = 0;\n\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n\n return out;\n};","/*\n * Ben Postlethwaite\n * January 2013\n * License MIT\n */\n'use strict';\n\nvar colorScale = require('./colorScale');\nvar lerp = require('lerp')\n\nmodule.exports = createColormap;\n\nfunction createColormap (spec) {\n /*\n * Default Options\n */\n var indicies, fromrgba, torgba,\n nsteps, cmap, colormap, format,\n nshades, colors, alpha, i;\n\n if ( !spec ) spec = {};\n\n nshades = (spec.nshades || 72) - 1;\n format = spec.format || 'hex';\n\n colormap = spec.colormap;\n if (!colormap) colormap = 'jet';\n\n if (typeof colormap === 'string') {\n colormap = colormap.toLowerCase();\n\n if (!colorScale[colormap]) {\n throw Error(colormap + ' not a supported colorscale');\n }\n\n cmap = colorScale[colormap];\n\n } else if (Array.isArray(colormap)) {\n cmap = colormap.slice();\n\n } else {\n throw Error('unsupported colormap option', colormap);\n }\n\n if (cmap.length > nshades + 1) {\n throw new Error(\n colormap+' map requires nshades to be at least size '+cmap.length\n );\n }\n\n if (!Array.isArray(spec.alpha)) {\n\n if (typeof spec.alpha === 'number') {\n alpha = [spec.alpha, spec.alpha];\n\n } else {\n alpha = [1, 1];\n }\n\n } else if (spec.alpha.length !== 2) {\n alpha = [1, 1];\n\n } else {\n alpha = spec.alpha.slice();\n }\n\n // map index points from 0..1 to 0..n-1\n indicies = cmap.map(function(c) {\n return Math.round(c.index * nshades);\n });\n\n // Add alpha channel to the map\n alpha[0] = Math.min(Math.max(alpha[0], 0), 1);\n alpha[1] = Math.min(Math.max(alpha[1], 0), 1);\n\n var steps = cmap.map(function(c, i) {\n var index = cmap[i].index\n\n var rgba = cmap[i].rgb.slice();\n\n // if user supplies their own map use it\n if (rgba.length === 4 && rgba[3] >= 0 && rgba[3] <= 1) {\n return rgba\n }\n rgba[3] = alpha[0] + (alpha[1] - alpha[0])*index;\n\n return rgba\n })\n\n\n /*\n * map increasing linear values between indicies to\n * linear steps in colorvalues\n */\n var colors = []\n for (i = 0; i < indicies.length-1; ++i) {\n nsteps = indicies[i+1] - indicies[i];\n fromrgba = steps[i];\n torgba = steps[i+1];\n\n for (var j = 0; j < nsteps; j++) {\n var amt = j / nsteps\n colors.push([\n Math.round(lerp(fromrgba[0], torgba[0], amt)),\n Math.round(lerp(fromrgba[1], torgba[1], amt)),\n Math.round(lerp(fromrgba[2], torgba[2], amt)),\n lerp(fromrgba[3], torgba[3], amt)\n ])\n }\n }\n\n //add 1 step as last value\n colors.push(cmap[cmap.length - 1].rgb.concat(alpha[1]))\n\n if (format === 'hex') colors = colors.map( rgb2hex );\n else if (format === 'rgbaString') colors = colors.map( rgbaStr );\n else if (format === 'float') colors = colors.map( rgb2float );\n\n return colors;\n};\n\nfunction rgb2float (rgba) {\n return [\n rgba[0] / 255,\n rgba[1] / 255,\n rgba[2] / 255,\n rgba[3]\n ]\n}\n\nfunction rgb2hex (rgba) {\n var dig, hex = '#';\n for (var i = 0; i < 3; ++i) {\n dig = rgba[i];\n dig = dig.toString(16);\n hex += ('00' + dig).substr( dig.length );\n }\n return hex;\n}\n\nfunction rgbaStr (rgba) {\n return 'rgba(' + rgba.join(',') + ')';\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar isArrayOrTypedArray = require('../../lib').isArrayOrTypedArray;\nvar hasColorscale = require('../../components/colorscale/helpers').hasColorscale;\nvar colorscaleDefaults = require('../../components/colorscale/defaults');\n\nmodule.exports = function lineDefaults(traceIn, traceOut, defaultColor, layout, coerce, opts) {\n var markerColor = (traceIn.marker || {}).color;\n\n coerce('line.color', defaultColor);\n\n if(hasColorscale(traceIn, 'line')) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'line.', cLetter: 'c'});\n } else {\n var lineColorDflt = (isArrayOrTypedArray(markerColor) ? false : markerColor) || defaultColor;\n coerce('line.color', lineColorDflt);\n }\n\n coerce('line.width');\n if(!(opts || {}).noDash) coerce('line.dash');\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar d3 = require('d3');\nvar tinycolor = require('tinycolor2');\n\nvar Registry = require('../../registry');\nvar Lib = require('../../lib');\nvar Color = require('../../components/color');\nvar Drawing = require('../../components/drawing');\nvar Plots = require('../plots');\nvar Axes = require('../../plots/cartesian/axes');\nvar setConvertCartesian = require('../cartesian/set_convert');\nvar setConvertPolar = require('./set_convert');\nvar doAutoRange = require('../cartesian/autorange').doAutoRange;\nvar dragBox = require('../cartesian/dragbox');\nvar dragElement = require('../../components/dragelement');\nvar Fx = require('../../components/fx');\nvar Titles = require('../../components/titles');\nvar prepSelect = require('../cartesian/select').prepSelect;\nvar selectOnClick = require('../cartesian/select').selectOnClick;\nvar clearSelect = require('../cartesian/select').clearSelect;\nvar setCursor = require('../../lib/setcursor');\nvar clearGlCanvases = require('../../lib/clear_gl_canvases');\nvar redrawReglTraces = require('../../plot_api/subroutines').redrawReglTraces;\n\nvar MID_SHIFT = require('../../constants/alignment').MID_SHIFT;\nvar constants = require('./constants');\nvar helpers = require('./helpers');\n\nvar _ = Lib._;\nvar mod = Lib.mod;\nvar deg2rad = Lib.deg2rad;\nvar rad2deg = Lib.rad2deg;\n\nfunction Polar(gd, id) {\n this.id = id;\n this.gd = gd;\n\n this._hasClipOnAxisFalse = null;\n this.vangles = null;\n this.radialAxisAngle = null;\n this.traceHash = {};\n this.layers = {};\n this.clipPaths = {};\n this.clipIds = {};\n this.viewInitial = {};\n\n var fullLayout = gd._fullLayout;\n var clipIdBase = 'clip' + fullLayout._uid + id;\n\n this.clipIds.forTraces = clipIdBase + '-for-traces';\n this.clipPaths.forTraces = fullLayout._clips.append('clipPath')\n .attr('id', this.clipIds.forTraces);\n this.clipPaths.forTraces.append('path');\n\n this.framework = fullLayout._polarlayer.append('g')\n .attr('class', id);\n\n // unfortunately, we have to keep track of some axis tick settings\n // as polar subplots do not implement the 'ticks' editType\n this.radialTickLayout = null;\n this.angularTickLayout = null;\n}\n\nvar proto = Polar.prototype;\n\nmodule.exports = function createPolar(gd, id) {\n return new Polar(gd, id);\n};\n\nproto.plot = function(polarCalcData, fullLayout) {\n var _this = this;\n var polarLayout = fullLayout[_this.id];\n\n _this._hasClipOnAxisFalse = false;\n for(var i = 0; i < polarCalcData.length; i++) {\n var trace = polarCalcData[i][0].trace;\n if(trace.cliponaxis === false) {\n _this._hasClipOnAxisFalse = true;\n break;\n }\n }\n\n _this.updateLayers(fullLayout, polarLayout);\n _this.updateLayout(fullLayout, polarLayout);\n Plots.generalUpdatePerTraceModule(_this.gd, _this, polarCalcData, polarLayout);\n _this.updateFx(fullLayout, polarLayout);\n};\n\nproto.updateLayers = function(fullLayout, polarLayout) {\n var _this = this;\n var layers = _this.layers;\n var radialLayout = polarLayout.radialaxis;\n var angularLayout = polarLayout.angularaxis;\n var layerNames = constants.layerNames;\n\n var frontPlotIndex = layerNames.indexOf('frontplot');\n var layerData = layerNames.slice(0, frontPlotIndex);\n var isAngularAxisBelowTraces = angularLayout.layer === 'below traces';\n var isRadialAxisBelowTraces = radialLayout.layer === 'below traces';\n\n if(isAngularAxisBelowTraces) layerData.push('angular-line');\n if(isRadialAxisBelowTraces) layerData.push('radial-line');\n if(isAngularAxisBelowTraces) layerData.push('angular-axis');\n if(isRadialAxisBelowTraces) layerData.push('radial-axis');\n\n layerData.push('frontplot');\n\n if(!isAngularAxisBelowTraces) layerData.push('angular-line');\n if(!isRadialAxisBelowTraces) layerData.push('radial-line');\n if(!isAngularAxisBelowTraces) layerData.push('angular-axis');\n if(!isRadialAxisBelowTraces) layerData.push('radial-axis');\n\n var join = _this.framework.selectAll('.polarsublayer')\n .data(layerData, String);\n\n join.enter().append('g')\n .attr('class', function(d) { return 'polarsublayer ' + d;})\n .each(function(d) {\n var sel = layers[d] = d3.select(this);\n\n switch(d) {\n case 'frontplot':\n // TODO add option to place in 'backplot' layer??\n sel.append('g').classed('barlayer', true);\n sel.append('g').classed('scatterlayer', true);\n break;\n case 'backplot':\n sel.append('g').classed('maplayer', true);\n break;\n case 'plotbg':\n layers.bg = sel.append('path');\n break;\n case 'radial-grid':\n sel.style('fill', 'none');\n break;\n case 'angular-grid':\n sel.style('fill', 'none');\n break;\n case 'radial-line':\n sel.append('line').style('fill', 'none');\n break;\n case 'angular-line':\n sel.append('path').style('fill', 'none');\n break;\n }\n });\n\n join.order();\n};\n\n/* Polar subplots juggle with 6 'axis objects' (!), these are:\n *\n * - polarLayout.radialaxis (aka radialLayout in this file):\n * - polarLayout.angularaxis (aka angularLayout in this file):\n * used for data -> calcdata conversions (aka d2c) during the calc step\n *\n * - this.radialAxis\n * extends polarLayout.radialaxis, adds mocked 'domain' and\n * few other keys in order to reuse Cartesian doAutoRange and the Axes\n * drawing routines.\n * used for calcdata -> geometric conversions (aka c2g) during the plot step\n * + setGeometry setups ax.c2g for given ax.range\n * + setScale setups ax._m,ax._b for given ax.range\n *\n * - this.angularAxis\n * extends polarLayout.angularaxis, adds mocked 'range' and 'domain' and\n * a few other keys in order to reuse the Axes drawing routines.\n * used for calcdata -> geometric conversions (aka c2g) during the plot step\n * + setGeometry setups ax.c2g given ax.rotation, ax.direction & ax._categories,\n * and mocks ax.range\n * + setScale setups ax._m,ax._b with that mocked ax.range\n *\n * - this.xaxis\n * - this.yaxis\n * setup so that polar traces can reuse plot methods of Cartesian traces\n * which mostly rely on 2pixel methods (e.g ax.c2p)\n */\nproto.updateLayout = function(fullLayout, polarLayout) {\n var _this = this;\n var layers = _this.layers;\n var gs = fullLayout._size;\n\n // axis attributes\n var radialLayout = polarLayout.radialaxis;\n var angularLayout = polarLayout.angularaxis;\n // layout domains\n var xDomain = polarLayout.domain.x;\n var yDomain = polarLayout.domain.y;\n // offsets from paper edge to layout domain box\n _this.xOffset = gs.l + gs.w * xDomain[0];\n _this.yOffset = gs.t + gs.h * (1 - yDomain[1]);\n // lengths of the layout domain box\n var xLength = _this.xLength = gs.w * (xDomain[1] - xDomain[0]);\n var yLength = _this.yLength = gs.h * (yDomain[1] - yDomain[0]);\n // sector to plot\n var sector = polarLayout.sector;\n _this.sectorInRad = sector.map(deg2rad);\n var sectorBBox = _this.sectorBBox = computeSectorBBox(sector);\n var dxSectorBBox = sectorBBox[2] - sectorBBox[0];\n var dySectorBBox = sectorBBox[3] - sectorBBox[1];\n // aspect ratios\n var arDomain = yLength / xLength;\n var arSector = Math.abs(dySectorBBox / dxSectorBBox);\n // actual lengths and domains of subplot box\n var xLength2, yLength2;\n var xDomain2, yDomain2;\n var gap;\n if(arDomain > arSector) {\n xLength2 = xLength;\n yLength2 = xLength * arSector;\n gap = (yLength - yLength2) / gs.h / 2;\n xDomain2 = [xDomain[0], xDomain[1]];\n yDomain2 = [yDomain[0] + gap, yDomain[1] - gap];\n } else {\n xLength2 = yLength / arSector;\n yLength2 = yLength;\n gap = (xLength - xLength2) / gs.w / 2;\n xDomain2 = [xDomain[0] + gap, xDomain[1] - gap];\n yDomain2 = [yDomain[0], yDomain[1]];\n }\n _this.xLength2 = xLength2;\n _this.yLength2 = yLength2;\n _this.xDomain2 = xDomain2;\n _this.yDomain2 = yDomain2;\n // actual offsets from paper edge to the subplot box top-left corner\n var xOffset2 = _this.xOffset2 = gs.l + gs.w * xDomain2[0];\n var yOffset2 = _this.yOffset2 = gs.t + gs.h * (1 - yDomain2[1]);\n // circle radius in px\n var radius = _this.radius = xLength2 / dxSectorBBox;\n // 'inner' radius in px (when polar.hole is set)\n var innerRadius = _this.innerRadius = polarLayout.hole * radius;\n // circle center position in px\n var cx = _this.cx = xOffset2 - radius * sectorBBox[0];\n var cy = _this.cy = yOffset2 + radius * sectorBBox[3];\n // circle center in the coordinate system of plot area\n var cxx = _this.cxx = cx - xOffset2;\n var cyy = _this.cyy = cy - yOffset2;\n\n _this.radialAxis = _this.mockAxis(fullLayout, polarLayout, radialLayout, {\n // make this an 'x' axis to make positioning (especially rotation) easier\n _id: 'x',\n // convert to 'x' axis equivalent\n side: {\n counterclockwise: 'top',\n clockwise: 'bottom'\n }[radialLayout.side],\n // spans length 1 radius\n domain: [innerRadius / gs.w, radius / gs.w]\n });\n\n _this.angularAxis = _this.mockAxis(fullLayout, polarLayout, angularLayout, {\n side: 'right',\n // to get auto nticks right\n domain: [0, Math.PI],\n // don't pass through autorange logic\n autorange: false\n });\n\n _this.doAutoRange(fullLayout, polarLayout);\n // N.B. this sets _this.vangles\n _this.updateAngularAxis(fullLayout, polarLayout);\n // N.B. this sets _this.radialAxisAngle\n _this.updateRadialAxis(fullLayout, polarLayout);\n _this.updateRadialAxisTitle(fullLayout, polarLayout);\n\n _this.xaxis = _this.mockCartesianAxis(fullLayout, polarLayout, {\n _id: 'x',\n domain: xDomain2\n });\n\n _this.yaxis = _this.mockCartesianAxis(fullLayout, polarLayout, {\n _id: 'y',\n domain: yDomain2\n });\n\n var dPath = _this.pathSubplot();\n\n _this.clipPaths.forTraces.select('path')\n .attr('d', dPath)\n .attr('transform', strTranslate(cxx, cyy));\n\n layers.frontplot\n .attr('transform', strTranslate(xOffset2, yOffset2))\n .call(Drawing.setClipUrl, _this._hasClipOnAxisFalse ? null : _this.clipIds.forTraces, _this.gd);\n\n layers.bg\n .attr('d', dPath)\n .attr('transform', strTranslate(cx, cy))\n .call(Color.fill, polarLayout.bgcolor);\n};\n\nproto.mockAxis = function(fullLayout, polarLayout, axLayout, opts) {\n var ax = Lib.extendFlat({}, axLayout, opts);\n setConvertPolar(ax, polarLayout, fullLayout);\n return ax;\n};\n\nproto.mockCartesianAxis = function(fullLayout, polarLayout, opts) {\n var _this = this;\n var axId = opts._id;\n\n var ax = Lib.extendFlat({type: 'linear'}, opts);\n setConvertCartesian(ax, fullLayout);\n\n var bboxIndices = {\n x: [0, 2],\n y: [1, 3]\n };\n\n ax.setRange = function() {\n var sectorBBox = _this.sectorBBox;\n var ind = bboxIndices[axId];\n var rl = _this.radialAxis._rl;\n var drl = (rl[1] - rl[0]) / (1 - polarLayout.hole);\n ax.range = [sectorBBox[ind[0]] * drl, sectorBBox[ind[1]] * drl];\n };\n\n ax.isPtWithinRange = axId === 'x' ?\n function(d) { return _this.isPtInside(d); } :\n function() { return true; };\n\n ax.setRange();\n ax.setScale();\n return ax;\n};\n\nproto.doAutoRange = function(fullLayout, polarLayout) {\n var gd = this.gd;\n var radialAxis = this.radialAxis;\n var radialLayout = polarLayout.radialaxis;\n\n radialAxis.setScale();\n doAutoRange(gd, radialAxis);\n\n var rng = radialAxis.range;\n radialLayout.range = rng.slice();\n radialLayout._input.range = rng.slice();\n\n radialAxis._rl = [\n radialAxis.r2l(rng[0], null, 'gregorian'),\n radialAxis.r2l(rng[1], null, 'gregorian')\n ];\n};\n\nproto.updateRadialAxis = function(fullLayout, polarLayout) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var radius = _this.radius;\n var innerRadius = _this.innerRadius;\n var cx = _this.cx;\n var cy = _this.cy;\n var radialLayout = polarLayout.radialaxis;\n var a0 = mod(polarLayout.sector[0], 360);\n var ax = _this.radialAxis;\n var hasRoomForIt = innerRadius < radius;\n\n _this.fillViewInitialKey('radialaxis.angle', radialLayout.angle);\n _this.fillViewInitialKey('radialaxis.range', ax.range.slice());\n\n ax.setGeometry();\n\n // rotate auto tick labels by 180 if in quadrant II and III to make them\n // readable from left-to-right\n //\n // TODO try moving deeper in Axes.drawLabels for better results?\n if(ax.tickangle === 'auto' && (a0 > 90 && a0 <= 270)) {\n ax.tickangle = 180;\n }\n\n // easier to set rotate angle with custom translate function\n var transFn = function(d) {\n return 'translate(' + (ax.l2p(d.x) + innerRadius) + ',0)';\n };\n\n // set special grid path function\n var gridPathFn = function(d) {\n return _this.pathArc(ax.r2p(d.x) + innerRadius);\n };\n\n var newTickLayout = strTickLayout(radialLayout);\n if(_this.radialTickLayout !== newTickLayout) {\n layers['radial-axis'].selectAll('.xtick').remove();\n _this.radialTickLayout = newTickLayout;\n }\n\n if(hasRoomForIt) {\n ax.setScale();\n\n var vals = Axes.calcTicks(ax);\n var valsClipped = Axes.clipEnds(ax, vals);\n var tickSign = Axes.getTickSigns(ax)[2];\n\n Axes.drawTicks(gd, ax, {\n vals: vals,\n layer: layers['radial-axis'],\n path: Axes.makeTickPath(ax, 0, tickSign),\n transFn: transFn,\n crisp: false\n });\n\n Axes.drawGrid(gd, ax, {\n vals: valsClipped,\n layer: layers['radial-grid'],\n path: gridPathFn,\n transFn: Lib.noop,\n crisp: false\n });\n\n Axes.drawLabels(gd, ax, {\n vals: vals,\n layer: layers['radial-axis'],\n transFn: transFn,\n labelFns: Axes.makeLabelFns(ax, 0)\n });\n }\n\n // stash 'actual' radial axis angle for drag handlers (in degrees)\n var angle = _this.radialAxisAngle = _this.vangles ?\n rad2deg(snapToVertexAngle(deg2rad(radialLayout.angle), _this.vangles)) :\n radialLayout.angle;\n\n var tLayer = strTranslate(cx, cy);\n var tLayer2 = tLayer + strRotate(-angle);\n\n updateElement(\n layers['radial-axis'],\n hasRoomForIt && (radialLayout.showticklabels || radialLayout.ticks),\n {transform: tLayer2}\n );\n\n updateElement(\n layers['radial-grid'],\n hasRoomForIt && radialLayout.showgrid,\n {transform: tLayer}\n );\n\n updateElement(\n layers['radial-line'].select('line'),\n hasRoomForIt && radialLayout.showline,\n {\n x1: innerRadius,\n y1: 0,\n x2: radius,\n y2: 0,\n transform: tLayer2\n }\n )\n .attr('stroke-width', radialLayout.linewidth)\n .call(Color.stroke, radialLayout.linecolor);\n};\n\nproto.updateRadialAxisTitle = function(fullLayout, polarLayout, _angle) {\n var _this = this;\n var gd = _this.gd;\n var radius = _this.radius;\n var cx = _this.cx;\n var cy = _this.cy;\n var radialLayout = polarLayout.radialaxis;\n var titleClass = _this.id + 'title';\n\n var angle = _angle !== undefined ? _angle : _this.radialAxisAngle;\n var angleRad = deg2rad(angle);\n var cosa = Math.cos(angleRad);\n var sina = Math.sin(angleRad);\n\n var pad = 0;\n\n // Hint: no need to check if there is in fact a title.text set\n // because if plot is editable, pad needs to be calculated anyways\n // to properly show placeholder text when title is empty.\n if(radialLayout.title) {\n var h = Drawing.bBox(_this.layers['radial-axis'].node()).height;\n var ts = radialLayout.title.font.size;\n pad = radialLayout.side === 'counterclockwise' ?\n -h - ts * 0.4 :\n h + ts * 0.8;\n }\n\n _this.layers['radial-axis-title'] = Titles.draw(gd, titleClass, {\n propContainer: radialLayout,\n propName: _this.id + '.radialaxis.title',\n placeholder: _(gd, 'Click to enter radial axis title'),\n attributes: {\n x: cx + (radius / 2) * cosa + pad * sina,\n y: cy - (radius / 2) * sina + pad * cosa,\n 'text-anchor': 'middle'\n },\n transform: {rotate: -angle}\n });\n};\n\nproto.updateAngularAxis = function(fullLayout, polarLayout) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var radius = _this.radius;\n var innerRadius = _this.innerRadius;\n var cx = _this.cx;\n var cy = _this.cy;\n var angularLayout = polarLayout.angularaxis;\n var ax = _this.angularAxis;\n\n _this.fillViewInitialKey('angularaxis.rotation', angularLayout.rotation);\n\n ax.setGeometry();\n ax.setScale();\n\n // 't'ick to 'g'eometric radians is used all over the place here\n var t2g = function(d) { return ax.t2g(d.x); };\n\n // run rad2deg on tick0 and ditck for thetaunit: 'radians' axes\n if(ax.type === 'linear' && ax.thetaunit === 'radians') {\n ax.tick0 = rad2deg(ax.tick0);\n ax.dtick = rad2deg(ax.dtick);\n }\n\n var _transFn = function(rad) {\n return strTranslate(cx + radius * Math.cos(rad), cy - radius * Math.sin(rad));\n };\n\n var transFn = function(d) {\n return _transFn(t2g(d));\n };\n\n var transFn2 = function(d) {\n var rad = t2g(d);\n return _transFn(rad) + strRotate(-rad2deg(rad));\n };\n\n var gridPathFn = function(d) {\n var rad = t2g(d);\n var cosRad = Math.cos(rad);\n var sinRad = Math.sin(rad);\n return 'M' + [cx + innerRadius * cosRad, cy - innerRadius * sinRad] +\n 'L' + [cx + radius * cosRad, cy - radius * sinRad];\n };\n\n var out = Axes.makeLabelFns(ax, 0);\n var labelStandoff = out.labelStandoff;\n var labelFns = {};\n\n labelFns.xFn = function(d) {\n var rad = t2g(d);\n return Math.cos(rad) * labelStandoff;\n };\n\n labelFns.yFn = function(d) {\n var rad = t2g(d);\n var ff = Math.sin(rad) > 0 ? 0.2 : 1;\n return -Math.sin(rad) * (labelStandoff + d.fontSize * ff) +\n Math.abs(Math.cos(rad)) * (d.fontSize * MID_SHIFT);\n };\n\n labelFns.anchorFn = function(d) {\n var rad = t2g(d);\n var cos = Math.cos(rad);\n return Math.abs(cos) < 0.1 ?\n 'middle' :\n (cos > 0 ? 'start' : 'end');\n };\n\n labelFns.heightFn = function(d, a, h) {\n var rad = t2g(d);\n return -0.5 * (1 + Math.sin(rad)) * h;\n };\n\n var newTickLayout = strTickLayout(angularLayout);\n if(_this.angularTickLayout !== newTickLayout) {\n layers['angular-axis'].selectAll('.' + ax._id + 'tick').remove();\n _this.angularTickLayout = newTickLayout;\n }\n\n var vals = Axes.calcTicks(ax);\n\n // angle of polygon vertices in geometric radians (null means circles)\n // TODO what to do when ax.period > ax._categories ??\n var vangles;\n if(polarLayout.gridshape === 'linear') {\n vangles = vals.map(t2g);\n\n // ax._vals should be always ordered, make them\n // always turn counterclockwise for convenience here\n if(Lib.angleDelta(vangles[0], vangles[1]) < 0) {\n vangles = vangles.slice().reverse();\n }\n } else {\n vangles = null;\n }\n _this.vangles = vangles;\n\n // Use tickval filter for category axes instead of tweaking\n // the range w.r.t sector, so that sectors that cross 360 can\n // show all their ticks.\n if(ax.type === 'category') {\n vals = vals.filter(function(d) {\n return Lib.isAngleInsideSector(t2g(d), _this.sectorInRad);\n });\n }\n\n if(ax.visible) {\n var tickSign = ax.ticks === 'inside' ? -1 : 1;\n var pad = (ax.linewidth || 1) / 2;\n\n Axes.drawTicks(gd, ax, {\n vals: vals,\n layer: layers['angular-axis'],\n path: 'M' + (tickSign * pad) + ',0h' + (tickSign * ax.ticklen),\n transFn: transFn2,\n crisp: false\n });\n\n Axes.drawGrid(gd, ax, {\n vals: vals,\n layer: layers['angular-grid'],\n path: gridPathFn,\n transFn: Lib.noop,\n crisp: false\n });\n\n Axes.drawLabels(gd, ax, {\n vals: vals,\n layer: layers['angular-axis'],\n repositionOnUpdate: true,\n transFn: transFn,\n labelFns: labelFns\n });\n }\n\n // TODO maybe two arcs is better here?\n // maybe split style attributes between inner and outer angular axes?\n\n updateElement(layers['angular-line'].select('path'), angularLayout.showline, {\n d: _this.pathSubplot(),\n transform: strTranslate(cx, cy)\n })\n .attr('stroke-width', angularLayout.linewidth)\n .call(Color.stroke, angularLayout.linecolor);\n};\n\nproto.updateFx = function(fullLayout, polarLayout) {\n if(!this.gd._context.staticPlot) {\n this.updateAngularDrag(fullLayout);\n this.updateRadialDrag(fullLayout, polarLayout, 0);\n this.updateRadialDrag(fullLayout, polarLayout, 1);\n this.updateMainDrag(fullLayout);\n }\n};\n\nproto.updateMainDrag = function(fullLayout) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var zoomlayer = fullLayout._zoomlayer;\n var MINZOOM = constants.MINZOOM;\n var OFFEDGE = constants.OFFEDGE;\n var radius = _this.radius;\n var innerRadius = _this.innerRadius;\n var cx = _this.cx;\n var cy = _this.cy;\n var cxx = _this.cxx;\n var cyy = _this.cyy;\n var sectorInRad = _this.sectorInRad;\n var vangles = _this.vangles;\n var radialAxis = _this.radialAxis;\n var clampTiny = helpers.clampTiny;\n var findXYatLength = helpers.findXYatLength;\n var findEnclosingVertexAngles = helpers.findEnclosingVertexAngles;\n var chw = constants.cornerHalfWidth;\n var chl = constants.cornerLen / 2;\n\n var mainDrag = dragBox.makeDragger(layers, 'path', 'maindrag', 'crosshair');\n\n d3.select(mainDrag)\n .attr('d', _this.pathSubplot())\n .attr('transform', strTranslate(cx, cy));\n\n var dragOpts = {\n element: mainDrag,\n gd: gd,\n subplot: _this.id,\n plotinfo: {\n id: _this.id,\n xaxis: _this.xaxis,\n yaxis: _this.yaxis\n },\n xaxes: [_this.xaxis],\n yaxes: [_this.yaxis]\n };\n\n // mouse px position at drag start (0), move (1)\n var x0, y0;\n // radial distance from circle center at drag start (0), move (1)\n var r0, r1;\n // zoombox persistent quantities\n var path0, dimmed, lum;\n // zoombox, corners elements\n var zb, corners;\n\n function norm(x, y) {\n return Math.sqrt(x * x + y * y);\n }\n\n function xy2r(x, y) {\n return norm(x - cxx, y - cyy);\n }\n\n function xy2a(x, y) {\n return Math.atan2(cyy - y, x - cxx);\n }\n\n function ra2xy(r, a) {\n return [r * Math.cos(a), r * Math.sin(-a)];\n }\n\n function pathCorner(r, a) {\n if(r === 0) return _this.pathSector(2 * chw);\n\n var da = chl / r;\n var am = a - da;\n var ap = a + da;\n var rb = Math.max(0, Math.min(r, radius));\n var rm = rb - chw;\n var rp = rb + chw;\n\n return 'M' + ra2xy(rm, am) +\n 'A' + [rm, rm] + ' 0,0,0 ' + ra2xy(rm, ap) +\n 'L' + ra2xy(rp, ap) +\n 'A' + [rp, rp] + ' 0,0,1 ' + ra2xy(rp, am) +\n 'Z';\n }\n\n // (x,y) is the pt at middle of the va0 <-> va1 edge\n //\n // ... we could eventually add another mode for cursor\n // angles 'close to' enough to a particular vertex.\n function pathCornerForPolygons(r, va0, va1) {\n if(r === 0) return _this.pathSector(2 * chw);\n\n var xy0 = ra2xy(r, va0);\n var xy1 = ra2xy(r, va1);\n var x = clampTiny((xy0[0] + xy1[0]) / 2);\n var y = clampTiny((xy0[1] + xy1[1]) / 2);\n var innerPts, outerPts;\n\n if(x && y) {\n var m = y / x;\n var mperp = -1 / m;\n var midPts = findXYatLength(chw, m, x, y);\n innerPts = findXYatLength(chl, mperp, midPts[0][0], midPts[0][1]);\n outerPts = findXYatLength(chl, mperp, midPts[1][0], midPts[1][1]);\n } else {\n var dx, dy;\n if(y) {\n // horizontal handles\n dx = chl;\n dy = chw;\n } else {\n // vertical handles\n dx = chw;\n dy = chl;\n }\n innerPts = [[x - dx, y - dy], [x + dx, y - dy]];\n outerPts = [[x - dx, y + dy], [x + dx, y + dy]];\n }\n\n return 'M' + innerPts.join('L') +\n 'L' + outerPts.reverse().join('L') + 'Z';\n }\n\n function zoomPrep() {\n r0 = null;\n r1 = null;\n path0 = _this.pathSubplot();\n dimmed = false;\n\n var polarLayoutNow = gd._fullLayout[_this.id];\n lum = tinycolor(polarLayoutNow.bgcolor).getLuminance();\n\n zb = dragBox.makeZoombox(zoomlayer, lum, cx, cy, path0);\n zb.attr('fill-rule', 'evenodd');\n corners = dragBox.makeCorners(zoomlayer, cx, cy);\n clearSelect(gd);\n }\n\n // N.B. this sets scoped 'r0' and 'r1'\n // return true if 'valid' zoom distance, false otherwise\n function clampAndSetR0R1(rr0, rr1) {\n rr1 = Math.max(Math.min(rr1, radius), innerRadius);\n\n // starting or ending drag near center (outer edge),\n // clamps radial distance at origin (at r=radius)\n if(rr0 < OFFEDGE) rr0 = 0;\n else if((radius - rr0) < OFFEDGE) rr0 = radius;\n else if(rr1 < OFFEDGE) rr1 = 0;\n else if((radius - rr1) < OFFEDGE) rr1 = radius;\n\n // make sure r0 < r1,\n // to get correct fill pattern in path1 below\n if(Math.abs(rr1 - rr0) > MINZOOM) {\n if(rr0 < rr1) {\n r0 = rr0;\n r1 = rr1;\n } else {\n r0 = rr1;\n r1 = rr0;\n }\n return true;\n } else {\n r0 = null;\n r1 = null;\n return false;\n }\n }\n\n function applyZoomMove(path1, cpath) {\n path1 = path1 || path0;\n cpath = cpath || 'M0,0Z';\n\n zb.attr('d', path1);\n corners.attr('d', cpath);\n dragBox.transitionZoombox(zb, corners, dimmed, lum);\n dimmed = true;\n\n var updateObj = {};\n computeZoomUpdates(updateObj);\n gd.emit('plotly_relayouting', updateObj);\n }\n\n function zoomMove(dx, dy) {\n var x1 = x0 + dx;\n var y1 = y0 + dy;\n var rr0 = xy2r(x0, y0);\n var rr1 = Math.min(xy2r(x1, y1), radius);\n var a0 = xy2a(x0, y0);\n var path1;\n var cpath;\n\n if(clampAndSetR0R1(rr0, rr1)) {\n path1 = path0 + _this.pathSector(r1);\n if(r0) path1 += _this.pathSector(r0);\n // keep 'starting' angle\n cpath = pathCorner(r0, a0) + pathCorner(r1, a0);\n }\n applyZoomMove(path1, cpath);\n }\n\n function findPolygonRadius(x, y, va0, va1) {\n var xy = helpers.findIntersectionXY(va0, va1, va0, [x - cxx, cyy - y]);\n return norm(xy[0], xy[1]);\n }\n\n function zoomMoveForPolygons(dx, dy) {\n var x1 = x0 + dx;\n var y1 = y0 + dy;\n var a0 = xy2a(x0, y0);\n var a1 = xy2a(x1, y1);\n var vangles0 = findEnclosingVertexAngles(a0, vangles);\n var vangles1 = findEnclosingVertexAngles(a1, vangles);\n var rr0 = findPolygonRadius(x0, y0, vangles0[0], vangles0[1]);\n var rr1 = Math.min(findPolygonRadius(x1, y1, vangles1[0], vangles1[1]), radius);\n var path1;\n var cpath;\n\n if(clampAndSetR0R1(rr0, rr1)) {\n path1 = path0 + _this.pathSector(r1);\n if(r0) path1 += _this.pathSector(r0);\n // keep 'starting' angle here too\n cpath = [\n pathCornerForPolygons(r0, vangles0[0], vangles0[1]),\n pathCornerForPolygons(r1, vangles0[0], vangles0[1])\n ].join(' ');\n }\n applyZoomMove(path1, cpath);\n }\n\n function zoomDone() {\n dragBox.removeZoombox(gd);\n\n if(r0 === null || r1 === null) return;\n var updateObj = {};\n computeZoomUpdates(updateObj);\n\n dragBox.showDoubleClickNotifier(gd);\n\n Registry.call('_guiRelayout', gd, updateObj);\n }\n\n function computeZoomUpdates(update) {\n var rl = radialAxis._rl;\n var m = (rl[1] - rl[0]) / (1 - innerRadius / radius) / radius;\n var newRng = [\n rl[0] + (r0 - innerRadius) * m,\n rl[0] + (r1 - innerRadius) * m\n ];\n update[_this.id + '.radialaxis.range'] = newRng;\n }\n\n function zoomClick(numClicks, evt) {\n var clickMode = gd._fullLayout.clickmode;\n\n dragBox.removeZoombox(gd);\n\n // TODO double once vs twice logic (autorange vs fixed range)\n if(numClicks === 2) {\n var updateObj = {};\n for(var k in _this.viewInitial) {\n updateObj[_this.id + '.' + k] = _this.viewInitial[k];\n }\n\n gd.emit('plotly_doubleclick', null);\n Registry.call('_guiRelayout', gd, updateObj);\n }\n\n if(clickMode.indexOf('select') > -1 && numClicks === 1) {\n selectOnClick(evt, gd, [_this.xaxis], [_this.yaxis], _this.id, dragOpts);\n }\n\n if(clickMode.indexOf('event') > -1) {\n Fx.click(gd, evt, _this.id);\n }\n }\n\n dragOpts.prepFn = function(evt, startX, startY) {\n var dragModeNow = gd._fullLayout.dragmode;\n\n var bbox = mainDrag.getBoundingClientRect();\n x0 = startX - bbox.left;\n y0 = startY - bbox.top;\n\n // need to offset x/y as bbox center does not\n // match origin for asymmetric polygons\n if(vangles) {\n var offset = helpers.findPolygonOffset(radius, sectorInRad[0], sectorInRad[1], vangles);\n x0 += cxx + offset[0];\n y0 += cyy + offset[1];\n }\n\n switch(dragModeNow) {\n case 'zoom':\n if(vangles) {\n dragOpts.moveFn = zoomMoveForPolygons;\n } else {\n dragOpts.moveFn = zoomMove;\n }\n dragOpts.clickFn = zoomClick;\n dragOpts.doneFn = zoomDone;\n zoomPrep(evt, startX, startY);\n break;\n case 'select':\n case 'lasso':\n prepSelect(evt, startX, startY, dragOpts, dragModeNow);\n break;\n }\n };\n\n mainDrag.onmousemove = function(evt) {\n Fx.hover(gd, evt, _this.id);\n gd._fullLayout._lasthover = mainDrag;\n gd._fullLayout._hoversubplot = _this.id;\n };\n\n mainDrag.onmouseout = function(evt) {\n if(gd._dragging) return;\n dragElement.unhover(gd, evt);\n };\n\n dragElement.init(dragOpts);\n};\n\nproto.updateRadialDrag = function(fullLayout, polarLayout, rngIndex) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var radius = _this.radius;\n var innerRadius = _this.innerRadius;\n var cx = _this.cx;\n var cy = _this.cy;\n var radialAxis = _this.radialAxis;\n var bl = constants.radialDragBoxSize;\n var bl2 = bl / 2;\n\n if(!radialAxis.visible) return;\n\n var angle0 = deg2rad(_this.radialAxisAngle);\n var rl = radialAxis._rl;\n var rl0 = rl[0];\n var rl1 = rl[1];\n var rbase = rl[rngIndex];\n var m = 0.75 * (rl[1] - rl[0]) / (1 - polarLayout.hole) / radius;\n\n var tx, ty, className;\n if(rngIndex) {\n tx = cx + (radius + bl2) * Math.cos(angle0);\n ty = cy - (radius + bl2) * Math.sin(angle0);\n className = 'radialdrag';\n } else {\n // the 'inner' box can get called:\n // - when polar.hole>0\n // - when polar.sector isn't a full circle\n // otherwise it is hidden behind the main drag.\n tx = cx + (innerRadius - bl2) * Math.cos(angle0);\n ty = cy - (innerRadius - bl2) * Math.sin(angle0);\n className = 'radialdrag-inner';\n }\n\n var radialDrag = dragBox.makeRectDragger(layers, className, 'crosshair', -bl2, -bl2, bl, bl);\n var dragOpts = {element: radialDrag, gd: gd};\n\n updateElement(d3.select(radialDrag), radialAxis.visible && innerRadius < radius, {\n transform: strTranslate(tx, ty)\n });\n\n // move function (either rotate or re-range flavor)\n var moveFn2;\n // rotate angle on done\n var angle1;\n // re-range range[1] (or range[0]) on done\n var rprime;\n\n function moveFn(dx, dy) {\n if(moveFn2) {\n moveFn2(dx, dy);\n } else {\n var dvec = [dx, -dy];\n var rvec = [Math.cos(angle0), Math.sin(angle0)];\n var comp = Math.abs(Lib.dot(dvec, rvec) / Math.sqrt(Lib.dot(dvec, dvec)));\n\n // mostly perpendicular motions rotate,\n // mostly parallel motions re-range\n if(!isNaN(comp)) {\n moveFn2 = comp < 0.5 ? rotateMove : rerangeMove;\n }\n }\n\n var update = {};\n computeRadialAxisUpdates(update);\n gd.emit('plotly_relayouting', update);\n }\n\n function computeRadialAxisUpdates(update) {\n if(angle1 !== null) {\n update[_this.id + '.radialaxis.angle'] = angle1;\n } else if(rprime !== null) {\n update[_this.id + '.radialaxis.range[' + rngIndex + ']'] = rprime;\n }\n }\n\n function doneFn() {\n if(angle1 !== null) {\n Registry.call('_guiRelayout', gd, _this.id + '.radialaxis.angle', angle1);\n } else if(rprime !== null) {\n Registry.call('_guiRelayout', gd, _this.id + '.radialaxis.range[' + rngIndex + ']', rprime);\n }\n }\n\n function rotateMove(dx, dy) {\n // disable for inner drag boxes\n if(rngIndex === 0) return;\n\n var x1 = tx + dx;\n var y1 = ty + dy;\n\n angle1 = Math.atan2(cy - y1, x1 - cx);\n if(_this.vangles) angle1 = snapToVertexAngle(angle1, _this.vangles);\n angle1 = rad2deg(angle1);\n\n var transform = strTranslate(cx, cy) + strRotate(-angle1);\n layers['radial-axis'].attr('transform', transform);\n layers['radial-line'].select('line').attr('transform', transform);\n\n var fullLayoutNow = _this.gd._fullLayout;\n var polarLayoutNow = fullLayoutNow[_this.id];\n _this.updateRadialAxisTitle(fullLayoutNow, polarLayoutNow, angle1);\n }\n\n function rerangeMove(dx, dy) {\n // project (dx, dy) unto unit radial axis vector\n var dr = Lib.dot([dx, -dy], [Math.cos(angle0), Math.sin(angle0)]);\n rprime = rbase - m * dr;\n\n // make sure rprime does not change the range[0] -> range[1] sign\n if((m > 0) !== (rngIndex ? rprime > rl0 : rprime < rl1)) {\n rprime = null;\n return;\n }\n\n var fullLayoutNow = gd._fullLayout;\n var polarLayoutNow = fullLayoutNow[_this.id];\n\n // update radial range -> update c2g -> update _m,_b\n radialAxis.range[rngIndex] = rprime;\n radialAxis._rl[rngIndex] = rprime;\n _this.updateRadialAxis(fullLayoutNow, polarLayoutNow);\n\n _this.xaxis.setRange();\n _this.xaxis.setScale();\n _this.yaxis.setRange();\n _this.yaxis.setScale();\n\n var hasRegl = false;\n\n for(var traceType in _this.traceHash) {\n var moduleCalcData = _this.traceHash[traceType];\n var moduleCalcDataVisible = Lib.filterVisible(moduleCalcData);\n var _module = moduleCalcData[0][0].trace._module;\n _module.plot(gd, _this, moduleCalcDataVisible, polarLayoutNow);\n if(Registry.traceIs(traceType, 'gl') && moduleCalcDataVisible.length) hasRegl = true;\n }\n\n if(hasRegl) {\n clearGlCanvases(gd);\n redrawReglTraces(gd);\n }\n }\n\n dragOpts.prepFn = function() {\n moveFn2 = null;\n angle1 = null;\n rprime = null;\n\n dragOpts.moveFn = moveFn;\n dragOpts.doneFn = doneFn;\n\n clearSelect(gd);\n };\n\n dragOpts.clampFn = function(dx, dy) {\n if(Math.sqrt(dx * dx + dy * dy) < constants.MINDRAG) {\n dx = 0;\n dy = 0;\n }\n return [dx, dy];\n };\n\n dragElement.init(dragOpts);\n};\n\nproto.updateAngularDrag = function(fullLayout) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var radius = _this.radius;\n var angularAxis = _this.angularAxis;\n var cx = _this.cx;\n var cy = _this.cy;\n var cxx = _this.cxx;\n var cyy = _this.cyy;\n var dbs = constants.angularDragBoxSize;\n\n var angularDrag = dragBox.makeDragger(layers, 'path', 'angulardrag', 'move');\n var dragOpts = {element: angularDrag, gd: gd};\n\n d3.select(angularDrag)\n .attr('d', _this.pathAnnulus(radius, radius + dbs))\n .attr('transform', strTranslate(cx, cy))\n .call(setCursor, 'move');\n\n function xy2a(x, y) {\n return Math.atan2(cyy + dbs - y, x - cxx - dbs);\n }\n\n // scatter trace, points and textpoints selections\n var scatterTraces = layers.frontplot.select('.scatterlayer').selectAll('.trace');\n var scatterPoints = scatterTraces.selectAll('.point');\n var scatterTextPoints = scatterTraces.selectAll('.textpoint');\n\n // mouse px position at drag start (0), move (1)\n var x0, y0;\n // angular axis angle rotation at drag start (0), move (1)\n var rot0, rot1;\n // induced radial axis rotation (only used on polygon grids)\n var rrot1;\n // angle about circle center at drag start\n var a0;\n\n function moveFn(dx, dy) {\n var fullLayoutNow = _this.gd._fullLayout;\n var polarLayoutNow = fullLayoutNow[_this.id];\n\n var x1 = x0 + dx;\n var y1 = y0 + dy;\n var a1 = xy2a(x1, y1);\n var da = rad2deg(a1 - a0);\n rot1 = rot0 + da;\n\n layers.frontplot.attr('transform',\n strTranslate(_this.xOffset2, _this.yOffset2) + strRotate([-da, cxx, cyy])\n );\n\n if(_this.vangles) {\n rrot1 = _this.radialAxisAngle + da;\n\n var trans = strTranslate(cx, cy) + strRotate(-da);\n var trans2 = strTranslate(cx, cy) + strRotate(-rrot1);\n\n layers.bg.attr('transform', trans);\n layers['radial-grid'].attr('transform', trans);\n layers['radial-axis'].attr('transform', trans2);\n layers['radial-line'].select('line').attr('transform', trans2);\n _this.updateRadialAxisTitle(fullLayoutNow, polarLayoutNow, rrot1);\n } else {\n _this.clipPaths.forTraces.select('path').attr('transform',\n strTranslate(cxx, cyy) + strRotate(da)\n );\n }\n\n // 'un-rotate' marker and text points\n scatterPoints.each(function() {\n var sel = d3.select(this);\n var xy = Drawing.getTranslate(sel);\n sel.attr('transform', strTranslate(xy.x, xy.y) + strRotate([da]));\n });\n scatterTextPoints.each(function() {\n var sel = d3.select(this);\n var tx = sel.select('text');\n var xy = Drawing.getTranslate(sel);\n // N.B rotate -> translate ordering matters\n sel.attr('transform', strRotate([da, tx.attr('x'), tx.attr('y')]) + strTranslate(xy.x, xy.y));\n });\n\n // update rotation -> range -> _m,_b\n angularAxis.rotation = Lib.modHalf(rot1, 360);\n _this.updateAngularAxis(fullLayoutNow, polarLayoutNow);\n\n if(_this._hasClipOnAxisFalse && !Lib.isFullCircle(_this.sectorInRad)) {\n scatterTraces.call(Drawing.hideOutsideRangePoints, _this);\n }\n\n var hasRegl = false;\n\n for(var traceType in _this.traceHash) {\n if(Registry.traceIs(traceType, 'gl')) {\n var moduleCalcData = _this.traceHash[traceType];\n var moduleCalcDataVisible = Lib.filterVisible(moduleCalcData);\n var _module = moduleCalcData[0][0].trace._module;\n _module.plot(gd, _this, moduleCalcDataVisible, polarLayoutNow);\n if(moduleCalcDataVisible.length) hasRegl = true;\n }\n }\n\n if(hasRegl) {\n clearGlCanvases(gd);\n redrawReglTraces(gd);\n }\n\n var update = {};\n computeRotationUpdates(update);\n gd.emit('plotly_relayouting', update);\n }\n\n function computeRotationUpdates(updateObj) {\n updateObj[_this.id + '.angularaxis.rotation'] = rot1;\n\n if(_this.vangles) {\n updateObj[_this.id + '.radialaxis.angle'] = rrot1;\n }\n }\n\n function doneFn() {\n scatterTextPoints.select('text').attr('transform', null);\n\n var updateObj = {};\n computeRotationUpdates(updateObj);\n Registry.call('_guiRelayout', gd, updateObj);\n }\n\n dragOpts.prepFn = function(evt, startX, startY) {\n var polarLayoutNow = fullLayout[_this.id];\n rot0 = polarLayoutNow.angularaxis.rotation;\n\n var bbox = angularDrag.getBoundingClientRect();\n x0 = startX - bbox.left;\n y0 = startY - bbox.top;\n a0 = xy2a(x0, y0);\n\n dragOpts.moveFn = moveFn;\n dragOpts.doneFn = doneFn;\n\n clearSelect(gd);\n };\n\n // I don't what we should do in this case, skip we now\n if(_this.vangles && !Lib.isFullCircle(_this.sectorInRad)) {\n dragOpts.prepFn = Lib.noop;\n setCursor(d3.select(angularDrag), null);\n }\n\n dragElement.init(dragOpts);\n};\n\nproto.isPtInside = function(d) {\n var sectorInRad = this.sectorInRad;\n var vangles = this.vangles;\n var thetag = this.angularAxis.c2g(d.theta);\n var radialAxis = this.radialAxis;\n var r = radialAxis.c2l(d.r);\n var rl = radialAxis._rl;\n\n var fn = vangles ? helpers.isPtInsidePolygon : Lib.isPtInsideSector;\n return fn(r, thetag, rl, sectorInRad, vangles);\n};\n\nproto.pathArc = function(r) {\n var sectorInRad = this.sectorInRad;\n var vangles = this.vangles;\n var fn = vangles ? helpers.pathPolygon : Lib.pathArc;\n return fn(r, sectorInRad[0], sectorInRad[1], vangles);\n};\n\nproto.pathSector = function(r) {\n var sectorInRad = this.sectorInRad;\n var vangles = this.vangles;\n var fn = vangles ? helpers.pathPolygon : Lib.pathSector;\n return fn(r, sectorInRad[0], sectorInRad[1], vangles);\n};\n\nproto.pathAnnulus = function(r0, r1) {\n var sectorInRad = this.sectorInRad;\n var vangles = this.vangles;\n var fn = vangles ? helpers.pathPolygonAnnulus : Lib.pathAnnulus;\n return fn(r0, r1, sectorInRad[0], sectorInRad[1], vangles);\n};\n\nproto.pathSubplot = function() {\n var r0 = this.innerRadius;\n var r1 = this.radius;\n return r0 ? this.pathAnnulus(r0, r1) : this.pathSector(r1);\n};\n\nproto.fillViewInitialKey = function(key, val) {\n if(!(key in this.viewInitial)) {\n this.viewInitial[key] = val;\n }\n};\n\nfunction strTickLayout(axLayout) {\n var out = axLayout.ticks + String(axLayout.ticklen) + String(axLayout.showticklabels);\n if('side' in axLayout) out += axLayout.side;\n return out;\n}\n\n// Finds the bounding box of a given circle sector,\n// inspired by https://math.stackexchange.com/q/1852703\n//\n// assumes:\n// - sector[0] < sector[1]\n// - counterclockwise rotation\nfunction computeSectorBBox(sector) {\n var s0 = sector[0];\n var s1 = sector[1];\n var arc = s1 - s0;\n var a0 = mod(s0, 360);\n var a1 = a0 + arc;\n\n var ax0 = Math.cos(deg2rad(a0));\n var ay0 = Math.sin(deg2rad(a0));\n var ax1 = Math.cos(deg2rad(a1));\n var ay1 = Math.sin(deg2rad(a1));\n\n var x0, y0, x1, y1;\n\n if((a0 <= 90 && a1 >= 90) || (a0 > 90 && a1 >= 450)) {\n y1 = 1;\n } else if(ay0 <= 0 && ay1 <= 0) {\n y1 = 0;\n } else {\n y1 = Math.max(ay0, ay1);\n }\n\n if((a0 <= 180 && a1 >= 180) || (a0 > 180 && a1 >= 540)) {\n x0 = -1;\n } else if(ax0 >= 0 && ax1 >= 0) {\n x0 = 0;\n } else {\n x0 = Math.min(ax0, ax1);\n }\n\n if((a0 <= 270 && a1 >= 270) || (a0 > 270 && a1 >= 630)) {\n y0 = -1;\n } else if(ay0 >= 0 && ay1 >= 0) {\n y0 = 0;\n } else {\n y0 = Math.min(ay0, ay1);\n }\n\n if(a1 >= 360) {\n x1 = 1;\n } else if(ax0 <= 0 && ax1 <= 0) {\n x1 = 0;\n } else {\n x1 = Math.max(ax0, ax1);\n }\n\n return [x0, y0, x1, y1];\n}\n\nfunction snapToVertexAngle(a, vangles) {\n var fn = function(v) { return Lib.angleDist(a, v); };\n var ind = Lib.findIndexOfMin(vangles, fn);\n return vangles[ind];\n}\n\nfunction updateElement(sel, showAttr, attrs) {\n if(showAttr) {\n sel.attr('display', null);\n sel.attr(attrs);\n } else if(sel) {\n sel.attr('display', 'none');\n }\n return sel;\n}\n\nfunction strTranslate(x, y) {\n return 'translate(' + x + ',' + y + ')';\n}\n\nfunction strRotate(angle) {\n return 'rotate(' + angle + ')';\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\n\nexports.formatPiePercent = function formatPiePercent(v, separators) {\n var vRounded = (v * 100).toPrecision(3);\n if(vRounded.lastIndexOf('.') !== -1) {\n vRounded = vRounded.replace(/[.]?0+$/, '');\n }\n return Lib.numSeparate(vRounded, separators) + '%';\n};\n\nexports.formatPieValue = function formatPieValue(v, separators) {\n var vRounded = v.toPrecision(10);\n if(vRounded.lastIndexOf('.') !== -1) {\n vRounded = vRounded.replace(/[.]?0+$/, '');\n }\n return Lib.numSeparate(vRounded, separators);\n};\n\nexports.getFirstFilled = function getFirstFilled(array, indices) {\n if(!Array.isArray(array)) return;\n for(var i = 0; i < indices.length; i++) {\n var v = array[indices[i]];\n if(v || v === 0 || v === '') return v;\n }\n};\n\nexports.castOption = function castOption(item, indices) {\n if(Array.isArray(item)) return exports.getFirstFilled(item, indices);\n else if(item) return item;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\n/**\n * Push array with unique items\n *\n * Ignores falsy items, except 0 so we can use it to construct arrays of indices.\n *\n * @param {array} array\n * array to be filled\n * @param {any} item\n * item to be or not to be inserted\n * @return {array}\n * ref to array (now possibly containing one more item)\n *\n */\nmodule.exports = function pushUnique(array, item) {\n if(item instanceof RegExp) {\n var itemStr = item.toString();\n for(var i = 0; i < array.length; i++) {\n if(array[i] instanceof RegExp && array[i].toString() === itemStr) {\n return array;\n }\n }\n array.push(item);\n } else if((item || item === 0) && array.indexOf(item) === -1) array.push(item);\n\n return array;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar d3 = require('d3');\n\nvar Color = require('../color');\n\nvar ARROWPATHS = require('./arrow_paths');\n\n/**\n * Add arrowhead(s) to a path or line element\n *\n * @param {d3.selection} el3: a d3-selected line or path element\n *\n * @param {string} ends: 'none', 'start', 'end', or 'start+end' for which ends get arrowheads\n *\n * @param {object} options: style information. Must have all the following:\n * @param {number} options.arrowhead: end head style - see ./arrow_paths\n * @param {number} options.startarrowhead: start head style - see ./arrow_paths\n * @param {number} options.arrowsize: relative size of the end head vs line width\n * @param {number} options.startarrowsize: relative size of the start head vs line width\n * @param {number} options.standoff: distance in px to move the end arrow point from its target\n * @param {number} options.startstandoff: distance in px to move the start arrow point from its target\n * @param {number} options.arrowwidth: width of the arrow line\n * @param {string} options.arrowcolor: color of the arrow line, for the head to match\n * Note that the opacity of this color is ignored, as it's assumed the container\n * of both the line and head has opacity applied to it so there isn't greater opacity\n * where they overlap.\n */\nmodule.exports = function drawArrowHead(el3, ends, options) {\n var el = el3.node();\n var headStyle = ARROWPATHS[options.arrowhead || 0];\n var startHeadStyle = ARROWPATHS[options.startarrowhead || 0];\n var scale = (options.arrowwidth || 1) * (options.arrowsize || 1);\n var startScale = (options.arrowwidth || 1) * (options.startarrowsize || 1);\n var doStart = ends.indexOf('start') >= 0;\n var doEnd = ends.indexOf('end') >= 0;\n var backOff = headStyle.backoff * scale + options.standoff;\n var startBackOff = startHeadStyle.backoff * startScale + options.startstandoff;\n\n var start, end, startRot, endRot;\n\n if(el.nodeName === 'line') {\n start = {x: +el3.attr('x1'), y: +el3.attr('y1')};\n end = {x: +el3.attr('x2'), y: +el3.attr('y2')};\n\n var dx = start.x - end.x;\n var dy = start.y - end.y;\n\n startRot = Math.atan2(dy, dx);\n endRot = startRot + Math.PI;\n if(backOff && startBackOff) {\n if(backOff + startBackOff > Math.sqrt(dx * dx + dy * dy)) {\n hideLine();\n return;\n }\n }\n\n if(backOff) {\n if(backOff * backOff > dx * dx + dy * dy) {\n hideLine();\n return;\n }\n var backOffX = backOff * Math.cos(startRot);\n var backOffY = backOff * Math.sin(startRot);\n\n end.x += backOffX;\n end.y += backOffY;\n el3.attr({x2: end.x, y2: end.y});\n }\n\n if(startBackOff) {\n if(startBackOff * startBackOff > dx * dx + dy * dy) {\n hideLine();\n return;\n }\n var startBackOffX = startBackOff * Math.cos(startRot);\n var startbackOffY = startBackOff * Math.sin(startRot);\n\n start.x -= startBackOffX;\n start.y -= startbackOffY;\n el3.attr({x1: start.x, y1: start.y});\n }\n } else if(el.nodeName === 'path') {\n var pathlen = el.getTotalLength();\n // using dash to hide the backOff region of the path.\n // if we ever allow dash for the arrow we'll have to\n // do better than this hack... maybe just manually\n // combine the two\n var dashArray = '';\n\n if(pathlen < backOff + startBackOff) {\n hideLine();\n return;\n }\n\n\n var start0 = el.getPointAtLength(0);\n var dstart = el.getPointAtLength(0.1);\n\n startRot = Math.atan2(start0.y - dstart.y, start0.x - dstart.x);\n start = el.getPointAtLength(Math.min(startBackOff, pathlen));\n\n dashArray = '0px,' + startBackOff + 'px,';\n\n var end0 = el.getPointAtLength(pathlen);\n var dend = el.getPointAtLength(pathlen - 0.1);\n\n endRot = Math.atan2(end0.y - dend.y, end0.x - dend.x);\n end = el.getPointAtLength(Math.max(0, pathlen - backOff));\n\n var shortening = dashArray ? startBackOff + backOff : backOff;\n dashArray += (pathlen - shortening) + 'px,' + pathlen + 'px';\n\n el3.style('stroke-dasharray', dashArray);\n }\n\n function hideLine() { el3.style('stroke-dasharray', '0px,100px'); }\n\n function drawhead(arrowHeadStyle, p, rot, arrowScale) {\n if(!arrowHeadStyle.path) return;\n if(arrowHeadStyle.noRotate) rot = 0;\n\n d3.select(el.parentNode).append('path')\n .attr({\n 'class': el3.attr('class'),\n d: arrowHeadStyle.path,\n transform:\n 'translate(' + p.x + ',' + p.y + ')' +\n (rot ? 'rotate(' + (rot * 180 / Math.PI) + ')' : '') +\n 'scale(' + arrowScale + ')'\n })\n .style({\n fill: Color.rgb(options.arrowcolor),\n 'stroke-width': 0\n });\n }\n\n if(doStart) drawhead(startHeadStyle, start, startRot, startScale);\n if(doEnd) drawhead(headStyle, end, endRot, scale);\n};\n","'use strict'\n\nvar bn2num = require('./lib/bn-to-num')\nvar ctz = require('./lib/ctz')\n\nmodule.exports = roundRat\n\n// Round a rational to the closest float\nfunction roundRat (f) {\n var a = f[0]\n var b = f[1]\n if (a.cmpn(0) === 0) {\n return 0\n }\n var h = a.abs().divmod(b.abs())\n var iv = h.div\n var x = bn2num(iv)\n var ir = h.mod\n var sgn = (a.negative !== b.negative) ? -1 : 1\n if (ir.cmpn(0) === 0) {\n return sgn * x\n }\n if (x) {\n var s = ctz(x) + 4\n var y = bn2num(ir.ushln(s).divRound(b))\n return sgn * (x + y * Math.pow(2, -s))\n } else {\n var ybits = b.bitLength() - ir.bitLength() + 53\n var y = bn2num(ir.ushln(ybits).divRound(b))\n if (ybits < 1023) {\n return sgn * y * Math.pow(2, -ybits)\n }\n y *= Math.pow(2, -1023)\n return sgn * y * Math.pow(2, 1023 - ybits)\n }\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar scatterAttrs = require('../scatter/attributes');\nvar baseAttrs = require('../../plots/attributes');\nvar hovertemplateAttrs = require('../../plots/template_attributes').hovertemplateAttrs;\nvar texttemplateAttrs = require('../../plots/template_attributes').texttemplateAttrs;\nvar colorScaleAttrs = require('../../components/colorscale/attributes');\n\nvar extendFlat = require('../../lib/extend').extendFlat;\n\nvar scatterMarkerAttrs = scatterAttrs.marker;\nvar scatterLineAttrs = scatterAttrs.line;\nvar scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n\nmodule.exports = {\n carpet: {\n valType: 'string',\n \n editType: 'calc',\n \n },\n a: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n b: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n mode: extendFlat({}, scatterAttrs.mode, {dflt: 'markers'}),\n text: extendFlat({}, scatterAttrs.text, {\n \n }),\n texttemplate: texttemplateAttrs({editType: 'plot'}, {\n keys: ['a', 'b', 'text']\n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {\n \n }),\n line: {\n color: scatterLineAttrs.color,\n width: scatterLineAttrs.width,\n dash: scatterLineAttrs.dash,\n shape: extendFlat({}, scatterLineAttrs.shape,\n {values: ['linear', 'spline']}),\n smoothing: scatterLineAttrs.smoothing,\n editType: 'calc'\n },\n connectgaps: scatterAttrs.connectgaps,\n fill: extendFlat({}, scatterAttrs.fill, {\n values: ['none', 'toself', 'tonext'],\n dflt: 'none',\n \n }),\n fillcolor: scatterAttrs.fillcolor,\n marker: extendFlat({\n symbol: scatterMarkerAttrs.symbol,\n opacity: scatterMarkerAttrs.opacity,\n maxdisplayed: scatterMarkerAttrs.maxdisplayed,\n size: scatterMarkerAttrs.size,\n sizeref: scatterMarkerAttrs.sizeref,\n sizemin: scatterMarkerAttrs.sizemin,\n sizemode: scatterMarkerAttrs.sizemode,\n line: extendFlat({\n width: scatterMarkerLineAttrs.width,\n editType: 'calc'\n },\n colorScaleAttrs('marker.line')\n ),\n gradient: scatterMarkerAttrs.gradient,\n editType: 'calc'\n },\n colorScaleAttrs('marker')\n ),\n\n textfont: scatterAttrs.textfont,\n textposition: scatterAttrs.textposition,\n\n selected: scatterAttrs.selected,\n unselected: scatterAttrs.unselected,\n\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: ['a', 'b', 'text', 'name']\n }),\n hoveron: scatterAttrs.hoveron,\n hovertemplate: hovertemplateAttrs()\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\n// var Lib = require('../../lib');\n\nfunction calc(gd, trace) {\n var cd = [];\n\n var lastReading = trace.value;\n if(!(typeof trace._lastValue === 'number')) trace._lastValue = trace.value;\n var secondLastReading = trace._lastValue;\n var deltaRef = secondLastReading;\n if(trace._hasDelta && typeof trace.delta.reference === 'number') {\n deltaRef = trace.delta.reference;\n }\n cd[0] = {\n y: lastReading,\n lastY: secondLastReading,\n\n delta: lastReading - deltaRef,\n relativeDelta: (lastReading - deltaRef) / deltaRef,\n };\n return cd;\n}\n\nmodule.exports = {\n calc: calc\n};\n","'use strict'\n\nmodule.exports = require('./quad')\n\r\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjpudWxsLCJzb3VyY2VzIjpbIkY6L3NvdXJjZS92dWUtcGxvdGx5LmpzL25vZGVfbW9kdWxlcy9wb2ludC1jbHVzdGVyL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vcXVhZCcpXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUNaO0FBQ0EsTUFBTSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDOyJ9","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n mode: {\n valType: 'enumerated',\n dflt: 'afterall',\n \n values: ['immediate', 'next', 'afterall'],\n \n },\n direction: {\n valType: 'enumerated',\n \n values: ['forward', 'reverse'],\n dflt: 'forward',\n \n },\n fromcurrent: {\n valType: 'boolean',\n dflt: false,\n \n \n },\n frame: {\n duration: {\n valType: 'number',\n \n min: 0,\n dflt: 500,\n \n },\n redraw: {\n valType: 'boolean',\n \n dflt: true,\n \n },\n },\n transition: {\n duration: {\n valType: 'number',\n \n min: 0,\n dflt: 500,\n editType: 'none',\n \n },\n easing: {\n valType: 'enumerated',\n dflt: 'cubic-in-out',\n values: [\n 'linear',\n 'quad',\n 'cubic',\n 'sin',\n 'exp',\n 'circle',\n 'elastic',\n 'back',\n 'bounce',\n 'linear-in',\n 'quad-in',\n 'cubic-in',\n 'sin-in',\n 'exp-in',\n 'circle-in',\n 'elastic-in',\n 'back-in',\n 'bounce-in',\n 'linear-out',\n 'quad-out',\n 'cubic-out',\n 'sin-out',\n 'exp-out',\n 'circle-out',\n 'elastic-out',\n 'back-out',\n 'bounce-out',\n 'linear-in-out',\n 'quad-in-out',\n 'cubic-in-out',\n 'sin-in-out',\n 'exp-in-out',\n 'circle-in-out',\n 'elastic-in-out',\n 'back-in-out',\n 'bounce-in-out'\n ],\n \n editType: 'none',\n \n },\n ordering: {\n valType: 'enumerated',\n values: ['layout first', 'traces first'],\n dflt: 'layout first',\n \n editType: 'none',\n \n }\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = function eventData(out, pt /* , trace, cd, pointNumber */) {\n // standard cartesian event data\n out.x = 'xVal' in pt ? pt.xVal : pt.x;\n out.y = 'yVal' in pt ? pt.yVal : pt.y;\n\n // for funnel\n if('initial' in pt) out.initial = pt.initial;\n if('delta' in pt) out.delta = pt.delta;\n if('final' in pt) out.final = pt.final;\n\n if(pt.xa) out.xaxis = pt.xa;\n if(pt.ya) out.yaxis = pt.ya;\n\n return out;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar annAttrs = require('../../components/annotations/attributes');\nvar extendFlat = require('../../lib/extend').extendFlat;\nvar overrideAll = require('../../plot_api/edit_types').overrideAll;\nvar fontAttrs = require('../../plots/font_attributes');\nvar domainAttrs = require('../../plots/domain').attributes;\n\nvar FORMAT_LINK = require('../../constants/docs').FORMAT_LINK;\n\nvar attrs = module.exports = overrideAll({\n domain: domainAttrs({name: 'table', trace: true}),\n\n columnwidth: {\n valType: 'number',\n arrayOk: true,\n dflt: null,\n \n \n },\n\n columnorder: {\n valType: 'data_array',\n \n \n },\n\n header: {\n\n values: {\n valType: 'data_array',\n \n dflt: [],\n \n },\n\n format: {\n valType: 'data_array',\n \n dflt: [],\n \n },\n\n prefix: {\n valType: 'string',\n arrayOk: true,\n dflt: null,\n \n \n },\n\n suffix: {\n valType: 'string',\n arrayOk: true,\n dflt: null,\n \n \n },\n\n height: {\n valType: 'number',\n dflt: 28,\n \n \n },\n\n align: extendFlat({}, annAttrs.align, {arrayOk: true}),\n\n line: {\n width: {\n valType: 'number',\n arrayOk: true,\n dflt: 1,\n \n },\n color: {\n valType: 'color',\n arrayOk: true,\n dflt: 'grey',\n \n }\n },\n\n fill: {\n color: {\n valType: 'color',\n arrayOk: true,\n dflt: 'white',\n \n \n }\n },\n\n font: extendFlat({}, fontAttrs({arrayOk: true}))\n },\n\n cells: {\n\n values: {\n valType: 'data_array',\n \n dflt: [],\n \n },\n\n format: {\n valType: 'data_array',\n \n dflt: [],\n \n },\n\n prefix: {\n valType: 'string',\n arrayOk: true,\n dflt: null,\n \n \n },\n\n suffix: {\n valType: 'string',\n arrayOk: true,\n dflt: null,\n \n \n },\n\n height: {\n valType: 'number',\n dflt: 20,\n \n \n },\n\n align: extendFlat({}, annAttrs.align, {arrayOk: true}),\n\n line: {\n width: {\n valType: 'number',\n arrayOk: true,\n dflt: 1,\n \n },\n color: {\n valType: 'color',\n arrayOk: true,\n dflt: 'grey',\n \n }\n },\n\n fill: {\n color: {\n valType: 'color',\n arrayOk: true,\n \n dflt: 'white',\n \n }\n },\n\n font: extendFlat({}, fontAttrs({arrayOk: true}))\n }\n}, 'calc', 'from-root');\nattrs.transforms = undefined;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar d3 = require('d3');\nvar tinycolor = require('tinycolor2');\n\nvar Registry = require('../../registry');\nvar Lib = require('../../lib');\nvar _ = Lib._;\nvar Color = require('../../components/color');\nvar Drawing = require('../../components/drawing');\nvar setConvert = require('../cartesian/set_convert');\nvar extendFlat = require('../../lib/extend').extendFlat;\nvar Plots = require('../plots');\nvar Axes = require('../cartesian/axes');\nvar dragElement = require('../../components/dragelement');\nvar Fx = require('../../components/fx');\nvar Titles = require('../../components/titles');\nvar prepSelect = require('../cartesian/select').prepSelect;\nvar selectOnClick = require('../cartesian/select').selectOnClick;\nvar clearSelect = require('../cartesian/select').clearSelect;\nvar constants = require('../cartesian/constants');\n\nfunction Ternary(options, fullLayout) {\n this.id = options.id;\n this.graphDiv = options.graphDiv;\n this.init(fullLayout);\n this.makeFramework(fullLayout);\n\n // unfortunately, we have to keep track of some axis tick settings\n // as ternary subplots do not implement the 'ticks' editType\n this.aTickLayout = null;\n this.bTickLayout = null;\n this.cTickLayout = null;\n}\n\nmodule.exports = Ternary;\n\nvar proto = Ternary.prototype;\n\nproto.init = function(fullLayout) {\n this.container = fullLayout._ternarylayer;\n this.defs = fullLayout._defs;\n this.layoutId = fullLayout._uid;\n this.traceHash = {};\n this.layers = {};\n};\n\nproto.plot = function(ternaryCalcData, fullLayout) {\n var _this = this;\n var ternaryLayout = fullLayout[_this.id];\n var graphSize = fullLayout._size;\n\n _this._hasClipOnAxisFalse = false;\n for(var i = 0; i < ternaryCalcData.length; i++) {\n var trace = ternaryCalcData[i][0].trace;\n\n if(trace.cliponaxis === false) {\n _this._hasClipOnAxisFalse = true;\n break;\n }\n }\n\n _this.updateLayers(ternaryLayout);\n _this.adjustLayout(ternaryLayout, graphSize);\n Plots.generalUpdatePerTraceModule(_this.graphDiv, _this, ternaryCalcData, ternaryLayout);\n _this.layers.plotbg.select('path').call(Color.fill, ternaryLayout.bgcolor);\n};\n\nproto.makeFramework = function(fullLayout) {\n var _this = this;\n var gd = _this.graphDiv;\n var ternaryLayout = fullLayout[_this.id];\n\n var clipId = _this.clipId = 'clip' + _this.layoutId + _this.id;\n var clipIdRelative = _this.clipIdRelative = 'clip-relative' + _this.layoutId + _this.id;\n\n // clippath for this ternary subplot\n _this.clipDef = Lib.ensureSingleById(fullLayout._clips, 'clipPath', clipId, function(s) {\n s.append('path').attr('d', 'M0,0Z');\n });\n\n // 'relative' clippath (i.e. no translation) for this ternary subplot\n _this.clipDefRelative = Lib.ensureSingleById(fullLayout._clips, 'clipPath', clipIdRelative, function(s) {\n s.append('path').attr('d', 'M0,0Z');\n });\n\n // container for everything in this ternary subplot\n _this.plotContainer = Lib.ensureSingle(_this.container, 'g', _this.id);\n _this.updateLayers(ternaryLayout);\n\n Drawing.setClipUrl(_this.layers.backplot, clipId, gd);\n Drawing.setClipUrl(_this.layers.grids, clipId, gd);\n};\n\nproto.updateLayers = function(ternaryLayout) {\n var _this = this;\n var layers = _this.layers;\n\n // inside that container, we have one container for the data, and\n // one each for the three axes around it.\n\n var plotLayers = ['draglayer', 'plotbg', 'backplot', 'grids'];\n\n if(ternaryLayout.aaxis.layer === 'below traces') {\n plotLayers.push('aaxis', 'aline');\n }\n if(ternaryLayout.baxis.layer === 'below traces') {\n plotLayers.push('baxis', 'bline');\n }\n if(ternaryLayout.caxis.layer === 'below traces') {\n plotLayers.push('caxis', 'cline');\n }\n\n plotLayers.push('frontplot');\n\n if(ternaryLayout.aaxis.layer === 'above traces') {\n plotLayers.push('aaxis', 'aline');\n }\n if(ternaryLayout.baxis.layer === 'above traces') {\n plotLayers.push('baxis', 'bline');\n }\n if(ternaryLayout.caxis.layer === 'above traces') {\n plotLayers.push('caxis', 'cline');\n }\n\n var toplevel = _this.plotContainer.selectAll('g.toplevel')\n .data(plotLayers, String);\n\n var grids = ['agrid', 'bgrid', 'cgrid'];\n\n toplevel.enter().append('g')\n .attr('class', function(d) { return 'toplevel ' + d; })\n .each(function(d) {\n var s = d3.select(this);\n layers[d] = s;\n\n // containers for different trace types.\n // NOTE - this is different from cartesian, where all traces\n // are in front of grids. Here I'm putting maps behind the grids\n // so the grids will always be visible if they're requested.\n // Perhaps we want that for cartesian too?\n if(d === 'frontplot') {\n s.append('g').classed('scatterlayer', true);\n } else if(d === 'backplot') {\n s.append('g').classed('maplayer', true);\n } else if(d === 'plotbg') {\n s.append('path').attr('d', 'M0,0Z');\n } else if(d === 'aline' || d === 'bline' || d === 'cline') {\n s.append('path');\n } else if(d === 'grids') {\n grids.forEach(function(d) {\n layers[d] = s.append('g').classed('grid ' + d, true);\n });\n }\n });\n\n toplevel.order();\n};\n\nvar whRatio = Math.sqrt(4 / 3);\n\nproto.adjustLayout = function(ternaryLayout, graphSize) {\n var _this = this;\n var domain = ternaryLayout.domain;\n var xDomainCenter = (domain.x[0] + domain.x[1]) / 2;\n var yDomainCenter = (domain.y[0] + domain.y[1]) / 2;\n var xDomain = domain.x[1] - domain.x[0];\n var yDomain = domain.y[1] - domain.y[0];\n var wmax = xDomain * graphSize.w;\n var hmax = yDomain * graphSize.h;\n var sum = ternaryLayout.sum;\n var amin = ternaryLayout.aaxis.min;\n var bmin = ternaryLayout.baxis.min;\n var cmin = ternaryLayout.caxis.min;\n\n var x0, y0, w, h, xDomainFinal, yDomainFinal;\n\n if(wmax > whRatio * hmax) {\n h = hmax;\n w = h * whRatio;\n } else {\n w = wmax;\n h = w / whRatio;\n }\n\n xDomainFinal = xDomain * w / wmax;\n yDomainFinal = yDomain * h / hmax;\n\n x0 = graphSize.l + graphSize.w * xDomainCenter - w / 2;\n y0 = graphSize.t + graphSize.h * (1 - yDomainCenter) - h / 2;\n\n _this.x0 = x0;\n _this.y0 = y0;\n _this.w = w;\n _this.h = h;\n _this.sum = sum;\n\n // set up the x and y axis objects we'll use to lay out the points\n _this.xaxis = {\n type: 'linear',\n range: [amin + 2 * cmin - sum, sum - amin - 2 * bmin],\n domain: [\n xDomainCenter - xDomainFinal / 2,\n xDomainCenter + xDomainFinal / 2\n ],\n _id: 'x'\n };\n setConvert(_this.xaxis, _this.graphDiv._fullLayout);\n _this.xaxis.setScale();\n _this.xaxis.isPtWithinRange = function(d) {\n return (\n d.a >= _this.aaxis.range[0] &&\n d.a <= _this.aaxis.range[1] &&\n d.b >= _this.baxis.range[1] &&\n d.b <= _this.baxis.range[0] &&\n d.c >= _this.caxis.range[1] &&\n d.c <= _this.caxis.range[0]\n );\n };\n\n _this.yaxis = {\n type: 'linear',\n range: [amin, sum - bmin - cmin],\n domain: [\n yDomainCenter - yDomainFinal / 2,\n yDomainCenter + yDomainFinal / 2\n ],\n _id: 'y'\n };\n setConvert(_this.yaxis, _this.graphDiv._fullLayout);\n _this.yaxis.setScale();\n _this.yaxis.isPtWithinRange = function() { return true; };\n\n // set up the modified axes for tick drawing\n var yDomain0 = _this.yaxis.domain[0];\n\n // aaxis goes up the left side. Set it up as a y axis, but with\n // fictitious angles and domain, but then rotate and translate\n // it into place at the end\n var aaxis = _this.aaxis = extendFlat({}, ternaryLayout.aaxis, {\n range: [amin, sum - bmin - cmin],\n side: 'left',\n // tickangle = 'auto' means 0 anyway for a y axis, need to coerce to 0 here\n // so we can shift by 30.\n tickangle: (+ternaryLayout.aaxis.tickangle || 0) - 30,\n domain: [yDomain0, yDomain0 + yDomainFinal * whRatio],\n anchor: 'free',\n position: 0,\n _id: 'y',\n _length: w\n });\n setConvert(aaxis, _this.graphDiv._fullLayout);\n aaxis.setScale();\n\n // baxis goes across the bottom (backward). We can set it up as an x axis\n // without any enclosing transformation.\n var baxis = _this.baxis = extendFlat({}, ternaryLayout.baxis, {\n range: [sum - amin - cmin, bmin],\n side: 'bottom',\n domain: _this.xaxis.domain,\n anchor: 'free',\n position: 0,\n _id: 'x',\n _length: w\n });\n setConvert(baxis, _this.graphDiv._fullLayout);\n baxis.setScale();\n\n // caxis goes down the right side. Set it up as a y axis, with\n // post-transformation similar to aaxis\n var caxis = _this.caxis = extendFlat({}, ternaryLayout.caxis, {\n range: [sum - amin - bmin, cmin],\n side: 'right',\n tickangle: (+ternaryLayout.caxis.tickangle || 0) + 30,\n domain: [yDomain0, yDomain0 + yDomainFinal * whRatio],\n anchor: 'free',\n position: 0,\n _id: 'y',\n _length: w\n });\n setConvert(caxis, _this.graphDiv._fullLayout);\n caxis.setScale();\n\n var triangleClip = 'M' + x0 + ',' + (y0 + h) + 'h' + w + 'l-' + (w / 2) + ',-' + h + 'Z';\n _this.clipDef.select('path').attr('d', triangleClip);\n _this.layers.plotbg.select('path').attr('d', triangleClip);\n\n var triangleClipRelative = 'M0,' + h + 'h' + w + 'l-' + (w / 2) + ',-' + h + 'Z';\n _this.clipDefRelative.select('path').attr('d', triangleClipRelative);\n\n var plotTransform = 'translate(' + x0 + ',' + y0 + ')';\n _this.plotContainer.selectAll('.scatterlayer,.maplayer')\n .attr('transform', plotTransform);\n\n _this.clipDefRelative.select('path').attr('transform', null);\n\n // TODO: shift axes to accommodate linewidth*sin(30) tick mark angle\n\n // TODO: there's probably an easier way to handle these translations/offsets now...\n var bTransform = 'translate(' + (x0 - baxis._offset) + ',' + (y0 + h) + ')';\n\n _this.layers.baxis.attr('transform', bTransform);\n _this.layers.bgrid.attr('transform', bTransform);\n\n var aTransform = 'translate(' + (x0 + w / 2) + ',' + y0 +\n ')rotate(30)translate(0,' + -aaxis._offset + ')';\n _this.layers.aaxis.attr('transform', aTransform);\n _this.layers.agrid.attr('transform', aTransform);\n\n var cTransform = 'translate(' + (x0 + w / 2) + ',' + y0 +\n ')rotate(-30)translate(0,' + -caxis._offset + ')';\n _this.layers.caxis.attr('transform', cTransform);\n _this.layers.cgrid.attr('transform', cTransform);\n\n _this.drawAxes(true);\n\n _this.layers.aline.select('path')\n .attr('d', aaxis.showline ?\n 'M' + x0 + ',' + (y0 + h) + 'l' + (w / 2) + ',-' + h : 'M0,0')\n .call(Color.stroke, aaxis.linecolor || '#000')\n .style('stroke-width', (aaxis.linewidth || 0) + 'px');\n _this.layers.bline.select('path')\n .attr('d', baxis.showline ?\n 'M' + x0 + ',' + (y0 + h) + 'h' + w : 'M0,0')\n .call(Color.stroke, baxis.linecolor || '#000')\n .style('stroke-width', (baxis.linewidth || 0) + 'px');\n _this.layers.cline.select('path')\n .attr('d', caxis.showline ?\n 'M' + (x0 + w / 2) + ',' + y0 + 'l' + (w / 2) + ',' + h : 'M0,0')\n .call(Color.stroke, caxis.linecolor || '#000')\n .style('stroke-width', (caxis.linewidth || 0) + 'px');\n\n if(!_this.graphDiv._context.staticPlot) {\n _this.initInteractions();\n }\n\n Drawing.setClipUrl(\n _this.layers.frontplot,\n _this._hasClipOnAxisFalse ? null : _this.clipId,\n _this.graphDiv\n );\n};\n\nproto.drawAxes = function(doTitles) {\n var _this = this;\n var gd = _this.graphDiv;\n var titlesuffix = _this.id.substr(7) + 'title';\n var layers = _this.layers;\n var aaxis = _this.aaxis;\n var baxis = _this.baxis;\n var caxis = _this.caxis;\n\n _this.drawAx(aaxis);\n _this.drawAx(baxis);\n _this.drawAx(caxis);\n\n if(doTitles) {\n var apad = Math.max(aaxis.showticklabels ? aaxis.tickfont.size / 2 : 0,\n (caxis.showticklabels ? caxis.tickfont.size * 0.75 : 0) +\n (caxis.ticks === 'outside' ? caxis.ticklen * 0.87 : 0));\n var bpad = (baxis.showticklabels ? baxis.tickfont.size : 0) +\n (baxis.ticks === 'outside' ? baxis.ticklen : 0) + 3;\n\n layers['a-title'] = Titles.draw(gd, 'a' + titlesuffix, {\n propContainer: aaxis,\n propName: _this.id + '.aaxis.title',\n placeholder: _(gd, 'Click to enter Component A title'),\n attributes: {\n x: _this.x0 + _this.w / 2,\n y: _this.y0 - aaxis.title.font.size / 3 - apad,\n 'text-anchor': 'middle'\n }\n });\n layers['b-title'] = Titles.draw(gd, 'b' + titlesuffix, {\n propContainer: baxis,\n propName: _this.id + '.baxis.title',\n placeholder: _(gd, 'Click to enter Component B title'),\n attributes: {\n x: _this.x0 - bpad,\n y: _this.y0 + _this.h + baxis.title.font.size * 0.83 + bpad,\n 'text-anchor': 'middle'\n }\n });\n layers['c-title'] = Titles.draw(gd, 'c' + titlesuffix, {\n propContainer: caxis,\n propName: _this.id + '.caxis.title',\n placeholder: _(gd, 'Click to enter Component C title'),\n attributes: {\n x: _this.x0 + _this.w + bpad,\n y: _this.y0 + _this.h + caxis.title.font.size * 0.83 + bpad,\n 'text-anchor': 'middle'\n }\n });\n }\n};\n\nproto.drawAx = function(ax) {\n var _this = this;\n var gd = _this.graphDiv;\n var axName = ax._name;\n var axLetter = axName.charAt(0);\n var axId = ax._id;\n var axLayer = _this.layers[axName];\n var counterAngle = 30;\n\n var stashKey = axLetter + 'tickLayout';\n var newTickLayout = strTickLayout(ax);\n if(_this[stashKey] !== newTickLayout) {\n axLayer.selectAll('.' + axId + 'tick').remove();\n _this[stashKey] = newTickLayout;\n }\n\n ax.setScale();\n\n var vals = Axes.calcTicks(ax);\n var valsClipped = Axes.clipEnds(ax, vals);\n var transFn = Axes.makeTransFn(ax);\n var tickSign = Axes.getTickSigns(ax)[2];\n\n var caRad = Lib.deg2rad(counterAngle);\n var pad = tickSign * (ax.linewidth || 1) / 2;\n var len = tickSign * ax.ticklen;\n var w = _this.w;\n var h = _this.h;\n\n var tickPath = axLetter === 'b' ?\n 'M0,' + pad + 'l' + (Math.sin(caRad) * len) + ',' + (Math.cos(caRad) * len) :\n 'M' + pad + ',0l' + (Math.cos(caRad) * len) + ',' + (-Math.sin(caRad) * len);\n\n var gridPath = {\n a: 'M0,0l' + h + ',-' + (w / 2),\n b: 'M0,0l-' + (w / 2) + ',-' + h,\n c: 'M0,0l-' + h + ',' + (w / 2)\n }[axLetter];\n\n Axes.drawTicks(gd, ax, {\n vals: ax.ticks === 'inside' ? valsClipped : vals,\n layer: axLayer,\n path: tickPath,\n transFn: transFn,\n crisp: false\n });\n\n Axes.drawGrid(gd, ax, {\n vals: valsClipped,\n layer: _this.layers[axLetter + 'grid'],\n path: gridPath,\n transFn: transFn,\n crisp: false\n });\n\n Axes.drawLabels(gd, ax, {\n vals: vals,\n layer: axLayer,\n transFn: transFn,\n labelFns: Axes.makeLabelFns(ax, 0, counterAngle)\n });\n};\n\nfunction strTickLayout(axLayout) {\n return axLayout.ticks + String(axLayout.ticklen) + String(axLayout.showticklabels);\n}\n\n// hard coded paths for zoom corners\n// uses the same sizing as cartesian, length is MINZOOM/2, width is 3px\nvar CLEN = constants.MINZOOM / 2 + 0.87;\nvar BLPATH = 'm-0.87,.5h' + CLEN + 'v3h-' + (CLEN + 5.2) +\n 'l' + (CLEN / 2 + 2.6) + ',-' + (CLEN * 0.87 + 4.5) +\n 'l2.6,1.5l-' + (CLEN / 2) + ',' + (CLEN * 0.87) + 'Z';\nvar BRPATH = 'm0.87,.5h-' + CLEN + 'v3h' + (CLEN + 5.2) +\n 'l-' + (CLEN / 2 + 2.6) + ',-' + (CLEN * 0.87 + 4.5) +\n 'l-2.6,1.5l' + (CLEN / 2) + ',' + (CLEN * 0.87) + 'Z';\nvar TOPPATH = 'm0,1l' + (CLEN / 2) + ',' + (CLEN * 0.87) +\n 'l2.6,-1.5l-' + (CLEN / 2 + 2.6) + ',-' + (CLEN * 0.87 + 4.5) +\n 'l-' + (CLEN / 2 + 2.6) + ',' + (CLEN * 0.87 + 4.5) +\n 'l2.6,1.5l' + (CLEN / 2) + ',-' + (CLEN * 0.87) + 'Z';\nvar STARTMARKER = 'm0.5,0.5h5v-2h-5v-5h-2v5h-5v2h5v5h2Z';\n\n// I guess this could be shared with cartesian... but for now it's separate.\nvar SHOWZOOMOUTTIP = true;\n\nproto.initInteractions = function() {\n var _this = this;\n var dragger = _this.layers.plotbg.select('path').node();\n var gd = _this.graphDiv;\n var zoomLayer = gd._fullLayout._zoomlayer;\n\n // use plotbg for the main interactions\n var dragOptions = {\n element: dragger,\n gd: gd,\n plotinfo: {\n id: _this.id,\n xaxis: _this.xaxis,\n yaxis: _this.yaxis\n },\n subplot: _this.id,\n prepFn: function(e, startX, startY) {\n // these aren't available yet when initInteractions\n // is called\n dragOptions.xaxes = [_this.xaxis];\n dragOptions.yaxes = [_this.yaxis];\n var dragModeNow = gd._fullLayout.dragmode;\n\n if(dragModeNow === 'lasso') dragOptions.minDrag = 1;\n else dragOptions.minDrag = undefined;\n\n if(dragModeNow === 'zoom') {\n dragOptions.moveFn = zoomMove;\n dragOptions.clickFn = clickZoomPan;\n dragOptions.doneFn = zoomDone;\n zoomPrep(e, startX, startY);\n } else if(dragModeNow === 'pan') {\n dragOptions.moveFn = plotDrag;\n dragOptions.clickFn = clickZoomPan;\n dragOptions.doneFn = dragDone;\n panPrep();\n clearSelect(gd);\n } else if(dragModeNow === 'select' || dragModeNow === 'lasso') {\n prepSelect(e, startX, startY, dragOptions, dragModeNow);\n }\n }\n };\n\n var x0, y0, mins0, span0, mins, lum, path0, dimmed, zb, corners;\n\n function makeUpdate(_mins) {\n var attrs = {};\n attrs[_this.id + '.aaxis.min'] = _mins.a;\n attrs[_this.id + '.baxis.min'] = _mins.b;\n attrs[_this.id + '.caxis.min'] = _mins.c;\n return attrs;\n }\n\n function clickZoomPan(numClicks, evt) {\n var clickMode = gd._fullLayout.clickmode;\n\n removeZoombox(gd);\n\n if(numClicks === 2) {\n gd.emit('plotly_doubleclick', null);\n Registry.call('_guiRelayout', gd, makeUpdate({a: 0, b: 0, c: 0}));\n }\n\n if(clickMode.indexOf('select') > -1 && numClicks === 1) {\n selectOnClick(evt, gd, [_this.xaxis], [_this.yaxis], _this.id, dragOptions);\n }\n\n if(clickMode.indexOf('event') > -1) {\n Fx.click(gd, evt, _this.id);\n }\n }\n\n function zoomPrep(e, startX, startY) {\n var dragBBox = dragger.getBoundingClientRect();\n x0 = startX - dragBBox.left;\n y0 = startY - dragBBox.top;\n mins0 = {\n a: _this.aaxis.range[0],\n b: _this.baxis.range[1],\n c: _this.caxis.range[1]\n };\n mins = mins0;\n span0 = _this.aaxis.range[1] - mins0.a;\n lum = tinycolor(_this.graphDiv._fullLayout[_this.id].bgcolor).getLuminance();\n path0 = 'M0,' + _this.h + 'L' + (_this.w / 2) + ', 0L' + _this.w + ',' + _this.h + 'Z';\n dimmed = false;\n\n zb = zoomLayer.append('path')\n .attr('class', 'zoombox')\n .attr('transform', 'translate(' + _this.x0 + ', ' + _this.y0 + ')')\n .style({\n 'fill': lum > 0.2 ? 'rgba(0,0,0,0)' : 'rgba(255,255,255,0)',\n 'stroke-width': 0\n })\n .attr('d', path0);\n\n corners = zoomLayer.append('path')\n .attr('class', 'zoombox-corners')\n .attr('transform', 'translate(' + _this.x0 + ', ' + _this.y0 + ')')\n .style({\n fill: Color.background,\n stroke: Color.defaultLine,\n 'stroke-width': 1,\n opacity: 0\n })\n .attr('d', 'M0,0Z');\n\n clearSelect(gd);\n }\n\n function getAFrac(x, y) { return 1 - (y / _this.h); }\n function getBFrac(x, y) { return 1 - ((x + (_this.h - y) / Math.sqrt(3)) / _this.w); }\n function getCFrac(x, y) { return ((x - (_this.h - y) / Math.sqrt(3)) / _this.w); }\n\n function zoomMove(dx0, dy0) {\n var x1 = x0 + dx0;\n var y1 = y0 + dy0;\n var afrac = Math.max(0, Math.min(1, getAFrac(x0, y0), getAFrac(x1, y1)));\n var bfrac = Math.max(0, Math.min(1, getBFrac(x0, y0), getBFrac(x1, y1)));\n var cfrac = Math.max(0, Math.min(1, getCFrac(x0, y0), getCFrac(x1, y1)));\n var xLeft = ((afrac / 2) + cfrac) * _this.w;\n var xRight = (1 - (afrac / 2) - bfrac) * _this.w;\n var xCenter = (xLeft + xRight) / 2;\n var xSpan = xRight - xLeft;\n var yBottom = (1 - afrac) * _this.h;\n var yTop = yBottom - xSpan / whRatio;\n\n if(xSpan < constants.MINZOOM) {\n mins = mins0;\n zb.attr('d', path0);\n corners.attr('d', 'M0,0Z');\n } else {\n mins = {\n a: mins0.a + afrac * span0,\n b: mins0.b + bfrac * span0,\n c: mins0.c + cfrac * span0\n };\n zb.attr('d', path0 + 'M' + xLeft + ',' + yBottom +\n 'H' + xRight + 'L' + xCenter + ',' + yTop +\n 'L' + xLeft + ',' + yBottom + 'Z');\n corners.attr('d', 'M' + x0 + ',' + y0 + STARTMARKER +\n 'M' + xLeft + ',' + yBottom + BLPATH +\n 'M' + xRight + ',' + yBottom + BRPATH +\n 'M' + xCenter + ',' + yTop + TOPPATH);\n }\n\n if(!dimmed) {\n zb.transition()\n .style('fill', lum > 0.2 ? 'rgba(0,0,0,0.4)' :\n 'rgba(255,255,255,0.3)')\n .duration(200);\n corners.transition()\n .style('opacity', 1)\n .duration(200);\n dimmed = true;\n }\n\n gd.emit('plotly_relayouting', makeUpdate(mins));\n }\n\n function zoomDone() {\n removeZoombox(gd);\n\n if(mins === mins0) return;\n\n Registry.call('_guiRelayout', gd, makeUpdate(mins));\n\n if(SHOWZOOMOUTTIP && gd.data && gd._context.showTips) {\n Lib.notifier(_(gd, 'Double-click to zoom back out'), 'long');\n SHOWZOOMOUTTIP = false;\n }\n }\n\n function panPrep() {\n mins0 = {\n a: _this.aaxis.range[0],\n b: _this.baxis.range[1],\n c: _this.caxis.range[1]\n };\n mins = mins0;\n }\n\n function plotDrag(dx, dy) {\n var dxScaled = dx / _this.xaxis._m;\n var dyScaled = dy / _this.yaxis._m;\n mins = {\n a: mins0.a - dyScaled,\n b: mins0.b + (dxScaled + dyScaled) / 2,\n c: mins0.c - (dxScaled - dyScaled) / 2\n };\n var minsorted = [mins.a, mins.b, mins.c].sort();\n var minindices = {\n a: minsorted.indexOf(mins.a),\n b: minsorted.indexOf(mins.b),\n c: minsorted.indexOf(mins.c)\n };\n if(minsorted[0] < 0) {\n if(minsorted[1] + minsorted[0] / 2 < 0) {\n minsorted[2] += minsorted[0] + minsorted[1];\n minsorted[0] = minsorted[1] = 0;\n } else {\n minsorted[2] += minsorted[0] / 2;\n minsorted[1] += minsorted[0] / 2;\n minsorted[0] = 0;\n }\n mins = {\n a: minsorted[minindices.a],\n b: minsorted[minindices.b],\n c: minsorted[minindices.c]\n };\n dy = (mins0.a - mins.a) * _this.yaxis._m;\n dx = (mins0.c - mins.c - mins0.b + mins.b) * _this.xaxis._m;\n }\n\n // move the data (translate, don't redraw)\n var plotTransform = 'translate(' + (_this.x0 + dx) + ',' + (_this.y0 + dy) + ')';\n _this.plotContainer.selectAll('.scatterlayer,.maplayer')\n .attr('transform', plotTransform);\n\n var plotTransform2 = 'translate(' + -dx + ',' + -dy + ')';\n _this.clipDefRelative.select('path').attr('transform', plotTransform2);\n\n // move the ticks\n _this.aaxis.range = [mins.a, _this.sum - mins.b - mins.c];\n _this.baxis.range = [_this.sum - mins.a - mins.c, mins.b];\n _this.caxis.range = [_this.sum - mins.a - mins.b, mins.c];\n\n _this.drawAxes(false);\n\n if(_this._hasClipOnAxisFalse) {\n _this.plotContainer\n .select('.scatterlayer').selectAll('.trace')\n .call(Drawing.hideOutsideRangePoints, _this);\n }\n\n gd.emit('plotly_relayouting', makeUpdate(mins));\n }\n\n function dragDone() {\n Registry.call('_guiRelayout', gd, makeUpdate(mins));\n }\n\n // finally, set up hover and click\n // these event handlers must already be set before dragElement.init\n // so it can stash them and override them.\n dragger.onmousemove = function(evt) {\n Fx.hover(gd, evt, _this.id);\n gd._fullLayout._lasthover = dragger;\n gd._fullLayout._hoversubplot = _this.id;\n };\n\n dragger.onmouseout = function(evt) {\n if(gd._dragging) return;\n\n dragElement.unhover(gd, evt);\n };\n\n dragElement.init(dragOptions);\n};\n\nfunction removeZoombox(gd) {\n d3.select(gd)\n .selectAll('.zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners')\n .remove();\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n attributes: require('./attributes'),\n supplyDefaults: require('./defaults'),\n calc: require('./calc'),\n plot: require('./plot').plot,\n style: require('./style'),\n colorbar: require('./colorbar'),\n hoverPoints: require('./hover'),\n\n moduleType: 'trace',\n name: 'contour',\n basePlotModule: require('../../plots/cartesian'),\n categories: ['cartesian', 'svg', '2dMap', 'contour', 'showLegend'],\n meta: {\n \n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/contour');\n","var glslify = require('glslify')\nvar createShader = require('gl-shader')\n\nvar vertSrc = glslify([\"precision mediump float;\\n#define GLSLIFY 1\\nattribute vec2 position;\\nvarying vec2 uv;\\nvoid main() {\\n uv = position;\\n gl_Position = vec4(position, 0, 1);\\n}\"])\nvar fragSrc = glslify([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nuniform sampler2D accumBuffer;\\nvarying vec2 uv;\\n\\nvoid main() {\\n vec4 accum = texture2D(accumBuffer, 0.5 * (uv + 1.0));\\n gl_FragColor = min(vec4(1,1,1,1), accum);\\n}\"])\n\nmodule.exports = function(gl) {\n return createShader(gl, vertSrc, fragSrc, null, [ { name: 'position', type: 'vec2'}])\n}\n","'use strict'\n\nfunction mouseButtons(ev) {\n if(typeof ev === 'object') {\n if('buttons' in ev) {\n return ev.buttons\n } else if('which' in ev) {\n var b = ev.which\n if(b === 2) {\n return 4\n } else if(b === 3) {\n return 2\n } else if(b > 0) {\n return 1<<(b-1)\n }\n } else if('button' in ev) {\n var b = ev.button\n if(b === 1) {\n return 4\n } else if(b === 2) {\n return 2\n } else if(b >= 0) {\n return 1<= 0)) {\n continue\n }\n\n var zeroIntercept = screenBox[i] -\n dataBox[i] * (screenBox[i+2] - screenBox[i]) / (dataBox[i+2] - dataBox[i])\n\n if(i === 0) {\n line.drawLine(\n zeroIntercept, screenBox[1], zeroIntercept, screenBox[3],\n zeroLineWidth[i],\n zeroLineColor[i])\n } else {\n line.drawLine(\n screenBox[0], zeroIntercept, screenBox[2], zeroIntercept,\n zeroLineWidth[i],\n zeroLineColor[i])\n }\n }\n }\n\n //Draw traces\n for(var i=0; i=0; --i) {\n this.objects[i].dispose()\n }\n this.objects.length = 0\n for(var i=this.overlays.length-1; i>=0; --i) {\n this.overlays[i].dispose()\n }\n this.overlays.length = 0\n\n this.gl = null\n}\n\nproto.addObject = function(object) {\n if(this.objects.indexOf(object) < 0) {\n this.objects.push(object)\n this.setDirty()\n }\n}\n\nproto.removeObject = function(object) {\n var objects = this.objects\n for(var i=0; i 2) {\n // This object contains more than just the key/value, so unset\n // the value without modifying the entry otherwise:\n changeTypes[idx] = changeTypes[idx] | VALUE;\n return obj.set(name, null);\n }\n\n if(isSimpleValueProp) {\n for(i = idx; i < arr.length; i++) {\n changeTypes[i] = changeTypes[i] | BOTH;\n }\n for(i = idx; i < arr.length; i++) {\n indexLookup[arr[i][keyName]]--;\n }\n arr.splice(idx, 1);\n delete(indexLookup[name]);\n } else {\n // Perform this update *strictly* so we can check whether the result's\n // been pruned. If so, it's a removal. If not, it's a value unset only.\n nestedProperty(object, valueName).set(null);\n\n // Now check if the top level nested property has any keys left. If so,\n // the object still has values so we only want to unset the key. If not,\n // the entire object can be removed since there's no other data.\n // var topLevelKeys = Object.keys(object[valueName.split('.')[0]] || []);\n\n changeTypes[idx] = changeTypes[idx] | VALUE | UNSET;\n }\n\n return obj;\n },\n constructUpdate: function() {\n var astr, idx;\n var update = {};\n var changed = Object.keys(changeTypes);\n for(var i = 0; i < changed.length; i++) {\n idx = changed[i];\n astr = path + '[' + idx + ']';\n if(arr[idx]) {\n if(changeTypes[idx] & NAME) {\n update[astr + '.' + keyName] = arr[idx][keyName];\n }\n if(changeTypes[idx] & VALUE) {\n if(isSimpleValueProp) {\n update[astr + '.' + valueName] = (changeTypes[idx] & UNSET) ? null : arr[idx][valueName];\n } else {\n update[astr + '.' + valueName] = (changeTypes[idx] & UNSET) ? null : nestedProperty(arr[idx], valueName).get();\n }\n }\n } else {\n update[astr] = null;\n }\n }\n\n return update;\n }\n };\n\n return obj;\n};\n","'use strict'\n\nmodule.exports = createBoxes\n\nvar createBuffer = require('gl-buffer')\nvar createShader = require('gl-shader')\n\nvar shaders = require('./shaders')\n\nfunction Boxes(plot, vbo, shader) {\n this.plot = plot\n this.vbo = vbo\n this.shader = shader\n}\n\nvar proto = Boxes.prototype\n\nproto.bind = function() {\n var shader = this.shader\n this.vbo.bind()\n this.shader.bind()\n shader.attributes.coord.pointer()\n shader.uniforms.screenBox = this.plot.screenBox\n}\n\nproto.drawBox = (function() {\n var lo = [0,0]\n var hi = [0,0]\n return function(loX, loY, hiX, hiY, color) {\n var plot = this.plot\n var shader = this.shader\n var gl = plot.gl\n\n lo[0] = loX\n lo[1] = loY\n hi[0] = hiX\n hi[1] = hiY\n\n shader.uniforms.lo = lo\n shader.uniforms.hi = hi\n shader.uniforms.color = color\n\n gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4)\n }\n}())\n\nproto.dispose = function() {\n this.vbo.dispose()\n this.shader.dispose()\n}\n\nfunction createBoxes(plot) {\n var gl = plot.gl\n var vbo = createBuffer(gl, [\n 0,0,\n 0,1,\n 1,0,\n 1,1])\n var shader = createShader(gl, shaders.boxVert, shaders.lineFrag)\n return new Boxes(plot, vbo, shader)\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar scatterPolarFormatLabels = require('../scatterpolar/format_labels');\n\nmodule.exports = function formatLabels(cdi, trace, fullLayout) {\n var i = cdi.i;\n if(!('r' in cdi)) cdi.r = trace._r[i];\n if(!('theta' in cdi)) cdi.theta = trace._theta[i];\n return scatterPolarFormatLabels(cdi, trace, fullLayout);\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar subtypes = require('./subtypes');\n\nmodule.exports = {\n hasLines: subtypes.hasLines,\n hasMarkers: subtypes.hasMarkers,\n hasText: subtypes.hasText,\n isBubble: subtypes.isBubble,\n\n attributes: require('./attributes'),\n supplyDefaults: require('./defaults'),\n crossTraceDefaults: require('./cross_trace_defaults'),\n calc: require('./calc').calc,\n crossTraceCalc: require('./cross_trace_calc'),\n arraysToCalcdata: require('./arrays_to_calcdata'),\n plot: require('./plot'),\n colorbar: require('./marker_colorbar'),\n formatLabels: require('./format_labels'),\n style: require('./style').style,\n styleOnSelect: require('./style').styleOnSelect,\n hoverPoints: require('./hover'),\n selectPoints: require('./select'),\n animatable: true,\n\n moduleType: 'trace',\n name: 'scatter',\n basePlotModule: require('../../plots/cartesian'),\n categories: [\n 'cartesian', 'svg', 'symbols', 'errorBarsOK', 'showLegend', 'scatter-like',\n 'zoomScale'\n ],\n meta: {\n \n }\n};\n","module.exports = [\r\n // Keep this list sorted\r\n 'abs'\r\n , 'acos'\r\n , 'all'\r\n , 'any'\r\n , 'asin'\r\n , 'atan'\r\n , 'ceil'\r\n , 'clamp'\r\n , 'cos'\r\n , 'cross'\r\n , 'dFdx'\r\n , 'dFdy'\r\n , 'degrees'\r\n , 'distance'\r\n , 'dot'\r\n , 'equal'\r\n , 'exp'\r\n , 'exp2'\r\n , 'faceforward'\r\n , 'floor'\r\n , 'fract'\r\n , 'gl_BackColor'\r\n , 'gl_BackLightModelProduct'\r\n , 'gl_BackLightProduct'\r\n , 'gl_BackMaterial'\r\n , 'gl_BackSecondaryColor'\r\n , 'gl_ClipPlane'\r\n , 'gl_ClipVertex'\r\n , 'gl_Color'\r\n , 'gl_DepthRange'\r\n , 'gl_DepthRangeParameters'\r\n , 'gl_EyePlaneQ'\r\n , 'gl_EyePlaneR'\r\n , 'gl_EyePlaneS'\r\n , 'gl_EyePlaneT'\r\n , 'gl_Fog'\r\n , 'gl_FogCoord'\r\n , 'gl_FogFragCoord'\r\n , 'gl_FogParameters'\r\n , 'gl_FragColor'\r\n , 'gl_FragCoord'\r\n , 'gl_FragData'\r\n , 'gl_FragDepth'\r\n , 'gl_FragDepthEXT'\r\n , 'gl_FrontColor'\r\n , 'gl_FrontFacing'\r\n , 'gl_FrontLightModelProduct'\r\n , 'gl_FrontLightProduct'\r\n , 'gl_FrontMaterial'\r\n , 'gl_FrontSecondaryColor'\r\n , 'gl_LightModel'\r\n , 'gl_LightModelParameters'\r\n , 'gl_LightModelProducts'\r\n , 'gl_LightProducts'\r\n , 'gl_LightSource'\r\n , 'gl_LightSourceParameters'\r\n , 'gl_MaterialParameters'\r\n , 'gl_MaxClipPlanes'\r\n , 'gl_MaxCombinedTextureImageUnits'\r\n , 'gl_MaxDrawBuffers'\r\n , 'gl_MaxFragmentUniformComponents'\r\n , 'gl_MaxLights'\r\n , 'gl_MaxTextureCoords'\r\n , 'gl_MaxTextureImageUnits'\r\n , 'gl_MaxTextureUnits'\r\n , 'gl_MaxVaryingFloats'\r\n , 'gl_MaxVertexAttribs'\r\n , 'gl_MaxVertexTextureImageUnits'\r\n , 'gl_MaxVertexUniformComponents'\r\n , 'gl_ModelViewMatrix'\r\n , 'gl_ModelViewMatrixInverse'\r\n , 'gl_ModelViewMatrixInverseTranspose'\r\n , 'gl_ModelViewMatrixTranspose'\r\n , 'gl_ModelViewProjectionMatrix'\r\n , 'gl_ModelViewProjectionMatrixInverse'\r\n , 'gl_ModelViewProjectionMatrixInverseTranspose'\r\n , 'gl_ModelViewProjectionMatrixTranspose'\r\n , 'gl_MultiTexCoord0'\r\n , 'gl_MultiTexCoord1'\r\n , 'gl_MultiTexCoord2'\r\n , 'gl_MultiTexCoord3'\r\n , 'gl_MultiTexCoord4'\r\n , 'gl_MultiTexCoord5'\r\n , 'gl_MultiTexCoord6'\r\n , 'gl_MultiTexCoord7'\r\n , 'gl_Normal'\r\n , 'gl_NormalMatrix'\r\n , 'gl_NormalScale'\r\n , 'gl_ObjectPlaneQ'\r\n , 'gl_ObjectPlaneR'\r\n , 'gl_ObjectPlaneS'\r\n , 'gl_ObjectPlaneT'\r\n , 'gl_Point'\r\n , 'gl_PointCoord'\r\n , 'gl_PointParameters'\r\n , 'gl_PointSize'\r\n , 'gl_Position'\r\n , 'gl_ProjectionMatrix'\r\n , 'gl_ProjectionMatrixInverse'\r\n , 'gl_ProjectionMatrixInverseTranspose'\r\n , 'gl_ProjectionMatrixTranspose'\r\n , 'gl_SecondaryColor'\r\n , 'gl_TexCoord'\r\n , 'gl_TextureEnvColor'\r\n , 'gl_TextureMatrix'\r\n , 'gl_TextureMatrixInverse'\r\n , 'gl_TextureMatrixInverseTranspose'\r\n , 'gl_TextureMatrixTranspose'\r\n , 'gl_Vertex'\r\n , 'greaterThan'\r\n , 'greaterThanEqual'\r\n , 'inversesqrt'\r\n , 'length'\r\n , 'lessThan'\r\n , 'lessThanEqual'\r\n , 'log'\r\n , 'log2'\r\n , 'matrixCompMult'\r\n , 'max'\r\n , 'min'\r\n , 'mix'\r\n , 'mod'\r\n , 'normalize'\r\n , 'not'\r\n , 'notEqual'\r\n , 'pow'\r\n , 'radians'\r\n , 'reflect'\r\n , 'refract'\r\n , 'sign'\r\n , 'sin'\r\n , 'smoothstep'\r\n , 'sqrt'\r\n , 'step'\r\n , 'tan'\r\n , 'texture2D'\r\n , 'texture2DLod'\r\n , 'texture2DProj'\r\n , 'texture2DProjLod'\r\n , 'textureCube'\r\n , 'textureCubeLod'\r\n , 'texture2DLodEXT'\r\n , 'texture2DProjLodEXT'\r\n , 'textureCubeLodEXT'\r\n , 'texture2DGradEXT'\r\n , 'texture2DProjGradEXT'\r\n , 'textureCubeGradEXT'\r\n]\r\n","\"use strict\";\n\nvar isValue = require(\"../value/is\");\n\n// prettier-ignore\nvar possibleTypes = { \"object\": true, \"function\": true, \"undefined\": true /* document.all */ };\n\nmodule.exports = function (value) {\n\tif (!isValue(value)) return false;\n\treturn hasOwnProperty.call(possibleTypes, typeof value);\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar tarjan = require('strongly-connected-components');\nvar Lib = require('../../lib');\nvar wrap = require('../../lib/gup').wrap;\n\nvar isArrayOrTypedArray = Lib.isArrayOrTypedArray;\nvar isIndex = Lib.isIndex;\nvar Colorscale = require('../../components/colorscale');\n\nfunction convertToD3Sankey(trace) {\n var nodeSpec = trace.node;\n var linkSpec = trace.link;\n\n var links = [];\n var hasLinkColorArray = isArrayOrTypedArray(linkSpec.color);\n var linkedNodes = {};\n\n var components = {};\n var componentCount = linkSpec.colorscales.length;\n var i;\n for(i = 0; i < componentCount; i++) {\n var cscale = linkSpec.colorscales[i];\n var specs = Colorscale.extractScale(cscale, {cLetter: 'c'});\n var scale = Colorscale.makeColorScaleFunc(specs);\n components[cscale.label] = scale;\n }\n\n var maxNodeId = 0;\n for(i = 0; i < linkSpec.value.length; i++) {\n if(linkSpec.source[i] > maxNodeId) maxNodeId = linkSpec.source[i];\n if(linkSpec.target[i] > maxNodeId) maxNodeId = linkSpec.target[i];\n }\n var nodeCount = maxNodeId + 1;\n trace.node._count = nodeCount;\n\n // Group nodes\n var j;\n var groups = trace.node.groups;\n var groupLookup = {};\n for(i = 0; i < groups.length; i++) {\n var group = groups[i];\n // Build a lookup table to quickly find in which group a node is\n for(j = 0; j < group.length; j++) {\n var nodeIndex = group[j];\n var groupIndex = nodeCount + i;\n if(groupLookup.hasOwnProperty(nodeIndex)) {\n Lib.warn('Node ' + nodeIndex + ' is already part of a group.');\n } else {\n groupLookup[nodeIndex] = groupIndex;\n }\n }\n }\n\n // Process links\n var groupedLinks = {\n source: [],\n target: []\n };\n for(i = 0; i < linkSpec.value.length; i++) {\n var val = linkSpec.value[i];\n // remove negative values, but keep zeros with special treatment\n var source = linkSpec.source[i];\n var target = linkSpec.target[i];\n if(!(val > 0 && isIndex(source, nodeCount) && isIndex(target, nodeCount))) {\n continue;\n }\n\n // Remove links that are within the same group\n if(groupLookup.hasOwnProperty(source) && groupLookup.hasOwnProperty(target) && groupLookup[source] === groupLookup[target]) {\n continue;\n }\n\n // if link targets a node in the group, relink target to that group\n if(groupLookup.hasOwnProperty(target)) {\n target = groupLookup[target];\n }\n\n // if link originates from a node in a group, relink source to that group\n if(groupLookup.hasOwnProperty(source)) {\n source = groupLookup[source];\n }\n\n source = +source;\n target = +target;\n linkedNodes[source] = linkedNodes[target] = true;\n\n var label = '';\n if(linkSpec.label && linkSpec.label[i]) label = linkSpec.label[i];\n\n var concentrationscale = null;\n if(label && components.hasOwnProperty(label)) concentrationscale = components[label];\n\n links.push({\n pointNumber: i,\n label: label,\n color: hasLinkColorArray ? linkSpec.color[i] : linkSpec.color,\n concentrationscale: concentrationscale,\n source: source,\n target: target,\n value: +val\n });\n\n groupedLinks.source.push(source);\n groupedLinks.target.push(target);\n }\n\n // Process nodes\n var totalCount = nodeCount + groups.length;\n var hasNodeColorArray = isArrayOrTypedArray(nodeSpec.color);\n var nodes = [];\n for(i = 0; i < totalCount; i++) {\n if(!linkedNodes[i]) continue;\n var l = nodeSpec.label[i];\n\n nodes.push({\n group: (i > nodeCount - 1),\n childrenNodes: [],\n pointNumber: i,\n label: l,\n color: hasNodeColorArray ? nodeSpec.color[i] : nodeSpec.color\n });\n }\n\n // Check if we have circularity on the resulting graph\n var circular = false;\n if(circularityPresent(totalCount, groupedLinks.source, groupedLinks.target)) {\n circular = true;\n }\n\n return {\n circular: circular,\n links: links,\n nodes: nodes,\n\n // Data structure for groups\n groups: groups,\n groupLookup: groupLookup\n };\n}\n\nfunction circularityPresent(nodeLen, sources, targets) {\n var nodes = Lib.init2dArray(nodeLen, 0);\n\n for(var i = 0; i < Math.min(sources.length, targets.length); i++) {\n if(Lib.isIndex(sources[i], nodeLen) && Lib.isIndex(targets[i], nodeLen)) {\n if(sources[i] === targets[i]) {\n return true; // self-link which is also a scc of one\n }\n nodes[sources[i]].push(targets[i]);\n }\n }\n\n var scc = tarjan(nodes);\n\n // Tarján's strongly connected components algorithm coded by Mikola Lysenko\n // returns at least one non-singular component if there's circularity in the graph\n return scc.components.some(function(c) {\n return c.length > 1;\n });\n}\n\nmodule.exports = function calc(gd, trace) {\n var result = convertToD3Sankey(trace);\n\n return wrap({\n circular: result.circular,\n _nodes: result.nodes,\n _links: result.links,\n\n // Data structure for grouping\n _groups: result.groups,\n _groupLookup: result.groupLookup,\n });\n};\n","'use strict'\n\nmodule.exports = createSpikes2D\n\nfunction GLSpikes2D(plot) {\n this.plot = plot\n this.enable = [true, true, false, false]\n this.width = [1, 1, 1, 1]\n this.color = [[0,0,0,1],\n [0,0,0,1],\n [0,0,0,1],\n [0,0,0,1]]\n this.center = [Infinity, Infinity]\n}\n\nvar proto = GLSpikes2D.prototype\n\nproto.update = function(options) {\n options = options || {}\n this.enable = (options.enable || [true,true,false,false]).slice()\n this.width = (options.width || [1,1,1,1]).slice()\n this.color = (options.color || [\n [0,0,0,1],\n [0,0,0,1],\n [0,0,0,1],\n [0,0,0,1]]).map(function(x) { return x.slice() })\n this.center = (options.center || [Infinity,Infinity]).slice()\n this.plot.setOverlayDirty()\n}\n\nproto.draw = function() {\n var spikeEnable = this.enable\n var spikeWidth = this.width\n var spikeColor = this.color\n var spikeCenter = this.center\n var plot = this.plot\n var line = plot.line\n\n var dataBox = plot.dataBox\n var viewPixels = plot.viewBox\n\n line.bind()\n\n if(dataBox[0] <= spikeCenter[0] && spikeCenter[0] <= dataBox[2] &&\n dataBox[1] <= spikeCenter[1] && spikeCenter[1] <= dataBox[3]) {\n\n var centerX = viewPixels[0] + (spikeCenter[0] - dataBox[0]) / (dataBox[2] - dataBox[0]) * (viewPixels[2] - viewPixels[0])\n var centerY = viewPixels[1] + (spikeCenter[1] - dataBox[1]) / (dataBox[3] - dataBox[1]) * (viewPixels[3] - viewPixels[1])\n\n if(spikeEnable[0]) {\n line.drawLine(\n centerX, centerY,\n viewPixels[0], centerY,\n spikeWidth[0], spikeColor[0])\n }\n if(spikeEnable[1]) {\n line.drawLine(\n centerX, centerY,\n centerX, viewPixels[1],\n spikeWidth[1], spikeColor[1])\n }\n if(spikeEnable[2]) {\n line.drawLine(\n centerX, centerY,\n viewPixels[2], centerY,\n spikeWidth[2], spikeColor[2])\n }\n if(spikeEnable[3]) {\n line.drawLine(\n centerX, centerY,\n centerX, viewPixels[3],\n spikeWidth[3], spikeColor[3])\n }\n }\n}\n\nproto.dispose = function() {\n this.plot.removeOverlay(this)\n}\n\nfunction createSpikes2D(plot, options) {\n var spikes = new GLSpikes2D(plot)\n spikes.update(options)\n plot.addOverlay(spikes)\n return spikes\n}\n","\"use strict\";\n\nvar setPrototypeOf = require(\"es5-ext/object/set-prototype-of\")\n , contains = require(\"es5-ext/string/#/contains\")\n , d = require(\"d\")\n , Symbol = require(\"es6-symbol\")\n , Iterator = require(\"./\");\n\nvar defineProperty = Object.defineProperty, ArrayIterator;\n\nArrayIterator = module.exports = function (arr, kind) {\n\tif (!(this instanceof ArrayIterator)) throw new TypeError(\"Constructor requires 'new'\");\n\tIterator.call(this, arr);\n\tif (!kind) kind = \"value\";\n\telse if (contains.call(kind, \"key+value\")) kind = \"key+value\";\n\telse if (contains.call(kind, \"key\")) kind = \"key\";\n\telse kind = \"value\";\n\tdefineProperty(this, \"__kind__\", d(\"\", kind));\n};\nif (setPrototypeOf) setPrototypeOf(ArrayIterator, Iterator);\n\n// Internal %ArrayIteratorPrototype% doesn't expose its constructor\ndelete ArrayIterator.prototype.constructor;\n\nArrayIterator.prototype = Object.create(Iterator.prototype, {\n\t_resolve: d(function (i) {\n\t\tif (this.__kind__ === \"value\") return this.__list__[i];\n\t\tif (this.__kind__ === \"key+value\") return [i, this.__list__[i]];\n\t\treturn i;\n\t})\n});\ndefineProperty(ArrayIterator.prototype, Symbol.toStringTag, d(\"c\", \"Array Iterator\"));\n","'use strict'\n\nexports.create = defaultTicks\nexports.equal = ticksEqual\n\nfunction prettyPrint(spacing, i) {\n var stepStr = spacing + \"\"\n var u = stepStr.indexOf(\".\")\n var sigFigs = 0\n if(u >= 0) {\n sigFigs = stepStr.length - u - 1\n }\n var shift = Math.pow(10, sigFigs)\n var x = Math.round(spacing * i * shift)\n var xstr = x + \"\"\n if(xstr.indexOf(\"e\") >= 0) {\n return xstr\n }\n var xi = x / shift, xf = x % shift\n if(x < 0) {\n xi = -Math.ceil(xi)|0\n xf = (-xf)|0\n } else {\n xi = Math.floor(xi)|0\n xf = xf|0\n }\n var xis = \"\" + xi \n if(x < 0) {\n xis = \"-\" + xis\n }\n if(sigFigs) {\n var xs = \"\" + xf\n while(xs.length < sigFigs) {\n xs = \"0\" + xs\n }\n return xis + \".\" + xs\n } else {\n return xis\n }\n}\n\nfunction defaultTicks(bounds, tickSpacing) {\n var array = []\n for(var d=0; d<3; ++d) {\n var ticks = []\n var m = 0.5*(bounds[0][d]+bounds[1][d])\n for(var t=0; t*tickSpacing[d]<=bounds[1][d]; ++t) {\n ticks.push({x: t*tickSpacing[d], text: prettyPrint(tickSpacing[d], t)})\n }\n for(var t=-1; t*tickSpacing[d]>=bounds[0][d]; --t) {\n ticks.push({x: t*tickSpacing[d], text: prettyPrint(tickSpacing[d], t)})\n }\n array.push(ticks)\n }\n return array\n}\n\nfunction ticksEqual(ticksA, ticksB) {\n for(var i=0; i<3; ++i) {\n if(ticksA[i].length !== ticksB[i].length) {\n return false\n }\n for(var j=0; j index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\n\nmodule.exports = {\n boxmode: {\n valType: 'enumerated',\n values: ['group', 'overlay'],\n dflt: 'overlay',\n \n editType: 'calc',\n \n },\n boxgap: {\n valType: 'number',\n min: 0,\n max: 1,\n dflt: 0.3,\n \n editType: 'calc',\n \n },\n boxgroupgap: {\n valType: 'number',\n min: 0,\n max: 1,\n dflt: 0.3,\n \n editType: 'calc',\n \n }\n};\n","'use strict'\n\nmodule.exports = createTextElements\n\nvar createBuffer = require('gl-buffer')\nvar createShader = require('gl-shader')\nvar getText = require('text-cache')\nvar bsearch = require('binary-search-bounds')\nvar shaders = require('./shaders')\n\nfunction TextElements(plot, vbo, shader) {\n this.plot = plot\n this.vbo = vbo\n this.shader = shader\n this.tickOffset = [[],[]]\n this.tickX = [[],[]]\n this.labelOffset = [0,0]\n this.labelCount = [0,0]\n}\n\nvar proto = TextElements.prototype\n\nproto.drawTicks = (function() {\n var DATA_AXIS = [0,0]\n var SCREEN_OFFSET = [0,0]\n var ZERO_2 = [0,0]\n\n return function(axis) {\n var plot = this.plot\n var shader = this.shader\n var tickX = this.tickX[axis]\n var tickOffset = this.tickOffset[axis]\n var gl = plot.gl\n var viewBox = plot.viewBox\n var dataBox = plot.dataBox\n var screenBox = plot.screenBox\n var pixelRatio = plot.pixelRatio\n var tickEnable = plot.tickEnable\n var tickPad = plot.tickPad\n var textColor = plot.tickColor\n var textAngle = plot.tickAngle\n // todo check if this should be used (now unused)\n // var tickLength = plot.tickMarkLength\n\n var labelEnable = plot.labelEnable\n var labelPad = plot.labelPad\n var labelColor = plot.labelColor\n var labelAngle = plot.labelAngle\n var labelOffset = this.labelOffset[axis]\n var labelCount = this.labelCount[axis]\n\n var start = bsearch.lt(tickX, dataBox[axis])\n var end = bsearch.le(tickX, dataBox[axis+2])\n\n DATA_AXIS[0] = DATA_AXIS[1] = 0\n DATA_AXIS[axis] = 1\n\n SCREEN_OFFSET[axis] = (viewBox[2+axis] + viewBox[axis]) / (screenBox[2+axis] - screenBox[axis]) - 1.0\n\n var screenScale = 2.0 / screenBox[2+(axis^1)] - screenBox[axis^1]\n\n SCREEN_OFFSET[axis^1] = screenScale * viewBox[axis^1] - 1.0\n if(tickEnable[axis]) {\n SCREEN_OFFSET[axis^1] -= screenScale * pixelRatio * tickPad[axis]\n if(start < end && tickOffset[end] > tickOffset[start]) {\n shader.uniforms.dataAxis = DATA_AXIS\n shader.uniforms.screenOffset = SCREEN_OFFSET\n shader.uniforms.color = textColor[axis]\n shader.uniforms.angle = textAngle[axis]\n gl.drawArrays(\n gl.TRIANGLES,\n tickOffset[start],\n tickOffset[end] - tickOffset[start])\n }\n }\n if(labelEnable[axis] && labelCount) {\n SCREEN_OFFSET[axis^1] -= screenScale * pixelRatio * labelPad[axis]\n shader.uniforms.dataAxis = ZERO_2\n shader.uniforms.screenOffset = SCREEN_OFFSET\n shader.uniforms.color = labelColor[axis]\n shader.uniforms.angle = labelAngle[axis]\n gl.drawArrays(\n gl.TRIANGLES,\n labelOffset,\n labelCount)\n }\n\n SCREEN_OFFSET[axis^1] = screenScale * viewBox[2+(axis^1)] - 1.0\n if(tickEnable[axis+2]) {\n SCREEN_OFFSET[axis^1] += screenScale * pixelRatio * tickPad[axis+2]\n if(start < end && tickOffset[end] > tickOffset[start]) {\n shader.uniforms.dataAxis = DATA_AXIS\n shader.uniforms.screenOffset = SCREEN_OFFSET\n shader.uniforms.color = textColor[axis+2]\n shader.uniforms.angle = textAngle[axis+2]\n gl.drawArrays(\n gl.TRIANGLES,\n tickOffset[start],\n tickOffset[end] - tickOffset[start])\n }\n }\n if(labelEnable[axis+2] && labelCount) {\n SCREEN_OFFSET[axis^1] += screenScale * pixelRatio * labelPad[axis+2]\n shader.uniforms.dataAxis = ZERO_2\n shader.uniforms.screenOffset = SCREEN_OFFSET\n shader.uniforms.color = labelColor[axis+2]\n shader.uniforms.angle = labelAngle[axis+2]\n gl.drawArrays(\n gl.TRIANGLES,\n labelOffset,\n labelCount)\n }\n\n }\n})()\n\nproto.drawTitle = (function() {\n var DATA_AXIS = [0,0]\n var SCREEN_OFFSET = [0,0]\n\n return function() {\n var plot = this.plot\n var shader = this.shader\n var gl = plot.gl\n var screenBox = plot.screenBox\n var titleCenter = plot.titleCenter\n var titleAngle = plot.titleAngle\n var titleColor = plot.titleColor\n var pixelRatio = plot.pixelRatio\n\n if(!this.titleCount) {\n return\n }\n\n for(var i=0; i<2; ++i) {\n SCREEN_OFFSET[i] = 2.0 * (titleCenter[i]*pixelRatio - screenBox[i]) /\n (screenBox[2+i] - screenBox[i]) - 1\n }\n\n shader.bind()\n shader.uniforms.dataAxis = DATA_AXIS\n shader.uniforms.screenOffset = SCREEN_OFFSET\n shader.uniforms.angle = titleAngle\n shader.uniforms.color = titleColor\n\n gl.drawArrays(gl.TRIANGLES, this.titleOffset, this.titleCount)\n }\n})()\n\nproto.bind = (function() {\n var DATA_SHIFT = [0,0]\n var DATA_SCALE = [0,0]\n var TEXT_SCALE = [0,0]\n\n return function() {\n var plot = this.plot\n var shader = this.shader\n var bounds = plot._tickBounds\n var dataBox = plot.dataBox\n var screenBox = plot.screenBox\n var viewBox = plot.viewBox\n\n shader.bind()\n\n //Set up coordinate scaling uniforms\n for(var i=0; i<2; ++i) {\n\n var lo = bounds[i]\n var hi = bounds[i+2]\n var boundScale = hi - lo\n var dataCenter = 0.5 * (dataBox[i+2] + dataBox[i])\n var dataWidth = (dataBox[i+2] - dataBox[i])\n\n var viewLo = viewBox[i]\n var viewHi = viewBox[i+2]\n var viewScale = viewHi - viewLo\n var screenLo = screenBox[i]\n var screenHi = screenBox[i+2]\n var screenScale = screenHi - screenLo\n\n DATA_SCALE[i] = 2.0 * boundScale / dataWidth * viewScale / screenScale\n DATA_SHIFT[i] = 2.0 * (lo - dataCenter) / dataWidth * viewScale / screenScale\n }\n\n TEXT_SCALE[1] = 2.0 * plot.pixelRatio / (screenBox[3] - screenBox[1])\n TEXT_SCALE[0] = TEXT_SCALE[1] * (screenBox[3] - screenBox[1]) / (screenBox[2] - screenBox[0])\n\n shader.uniforms.dataScale = DATA_SCALE\n shader.uniforms.dataShift = DATA_SHIFT\n shader.uniforms.textScale = TEXT_SCALE\n\n //Set attributes\n this.vbo.bind()\n shader.attributes.textCoordinate.pointer()\n }\n})()\n\nproto.update = function(options) {\n var vertices = []\n var axesTicks = options.ticks\n var bounds = options.bounds\n var i, j, k, data, scale, dimension\n\n for(dimension=0; dimension<2; ++dimension) {\n var offsets = [Math.floor(vertices.length/3)], tickX = [-Infinity]\n\n //Copy vertices over to buffer\n var ticks = axesTicks[dimension]\n for(i=0; i 1e-6) {\n out[0] = ax/al\n out[1] = ay/al\n out[2] = az/al\n out[3] = aw/al\n } else {\n out[0] = out[1] = out[2] = 0.0\n out[3] = 1.0\n }\n}\n\nfunction OrbitCameraController(initQuat, initCenter, initRadius) {\n this.radius = filterVector([initRadius])\n this.center = filterVector(initCenter)\n this.rotation = filterVector(initQuat)\n\n this.computedRadius = this.radius.curve(0)\n this.computedCenter = this.center.curve(0)\n this.computedRotation = this.rotation.curve(0)\n this.computedUp = [0.1,0,0]\n this.computedEye = [0.1,0,0]\n this.computedMatrix = [0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]\n\n this.recalcMatrix(0)\n}\n\nvar proto = OrbitCameraController.prototype\n\nproto.lastT = function() {\n return Math.max(\n this.radius.lastT(),\n this.center.lastT(),\n this.rotation.lastT())\n}\n\nproto.recalcMatrix = function(t) {\n this.radius.curve(t)\n this.center.curve(t)\n this.rotation.curve(t)\n\n var quat = this.computedRotation\n normalize4(quat, quat)\n\n var mat = this.computedMatrix\n mat4FromQuat(mat, quat)\n\n var center = this.computedCenter\n var eye = this.computedEye\n var up = this.computedUp\n var radius = Math.exp(this.computedRadius[0])\n\n eye[0] = center[0] + radius * mat[2]\n eye[1] = center[1] + radius * mat[6]\n eye[2] = center[2] + radius * mat[10]\n up[0] = mat[1]\n up[1] = mat[5]\n up[2] = mat[9]\n\n for(var i=0; i<3; ++i) {\n var rr = 0.0\n for(var j=0; j<3; ++j) {\n rr += mat[i+4*j] * eye[j]\n }\n mat[12+i] = -rr\n }\n}\n\nproto.getMatrix = function(t, result) {\n this.recalcMatrix(t)\n var m = this.computedMatrix\n if(result) {\n for(var i=0; i<16; ++i) {\n result[i] = m[i]\n }\n return result\n }\n return m\n}\n\nproto.idle = function(t) {\n this.center.idle(t)\n this.radius.idle(t)\n this.rotation.idle(t)\n}\n\nproto.flush = function(t) {\n this.center.flush(t)\n this.radius.flush(t)\n this.rotation.flush(t)\n}\n\nproto.pan = function(t, dx, dy, dz) {\n dx = dx || 0.0\n dy = dy || 0.0\n dz = dz || 0.0\n\n this.recalcMatrix(t)\n var mat = this.computedMatrix\n\n var ux = mat[1]\n var uy = mat[5]\n var uz = mat[9]\n var ul = len3(ux, uy, uz)\n ux /= ul\n uy /= ul\n uz /= ul\n\n var rx = mat[0]\n var ry = mat[4]\n var rz = mat[8]\n var ru = rx * ux + ry * uy + rz * uz\n rx -= ux * ru\n ry -= uy * ru\n rz -= uz * ru\n var rl = len3(rx, ry, rz)\n rx /= rl\n ry /= rl\n rz /= rl\n\n var fx = mat[2]\n var fy = mat[6]\n var fz = mat[10]\n var fu = fx * ux + fy * uy + fz * uz\n var fr = fx * rx + fy * ry + fz * rz\n fx -= fu * ux + fr * rx\n fy -= fu * uy + fr * ry\n fz -= fu * uz + fr * rz\n var fl = len3(fx, fy, fz)\n fx /= fl\n fy /= fl\n fz /= fl\n\n var vx = rx * dx + ux * dy\n var vy = ry * dx + uy * dy\n var vz = rz * dx + uz * dy\n\n this.center.move(t, vx, vy, vz)\n\n //Update z-component of radius\n var radius = Math.exp(this.computedRadius[0])\n radius = Math.max(1e-4, radius + dz)\n this.radius.set(t, Math.log(radius))\n}\n\nproto.rotate = function(t, dx, dy, dz) {\n this.recalcMatrix(t)\n\n dx = dx||0.0\n dy = dy||0.0\n\n var mat = this.computedMatrix\n\n var rx = mat[0]\n var ry = mat[4]\n var rz = mat[8]\n\n var ux = mat[1]\n var uy = mat[5]\n var uz = mat[9]\n\n var fx = mat[2]\n var fy = mat[6]\n var fz = mat[10]\n\n var qx = dx * rx + dy * ux\n var qy = dx * ry + dy * uy\n var qz = dx * rz + dy * uz\n\n var bx = -(fy * qz - fz * qy)\n var by = -(fz * qx - fx * qz)\n var bz = -(fx * qy - fy * qx) \n var bw = Math.sqrt(Math.max(0.0, 1.0 - Math.pow(bx,2) - Math.pow(by,2) - Math.pow(bz,2)))\n var bl = len4(bx, by, bz, bw)\n if(bl > 1e-6) {\n bx /= bl\n by /= bl\n bz /= bl\n bw /= bl\n } else {\n bx = by = bz = 0.0\n bw = 1.0\n }\n\n var rotation = this.computedRotation\n var ax = rotation[0]\n var ay = rotation[1]\n var az = rotation[2]\n var aw = rotation[3]\n\n var cx = ax*bw + aw*bx + ay*bz - az*by\n var cy = ay*bw + aw*by + az*bx - ax*bz\n var cz = az*bw + aw*bz + ax*by - ay*bx\n var cw = aw*bw - ax*bx - ay*by - az*bz\n \n //Apply roll\n if(dz) {\n bx = fx\n by = fy\n bz = fz\n var s = Math.sin(dz) / len3(bx, by, bz)\n bx *= s\n by *= s\n bz *= s\n bw = Math.cos(dx)\n cx = cx*bw + cw*bx + cy*bz - cz*by\n cy = cy*bw + cw*by + cz*bx - cx*bz\n cz = cz*bw + cw*bz + cx*by - cy*bx\n cw = cw*bw - cx*bx - cy*by - cz*bz\n }\n\n var cl = len4(cx, cy, cz, cw)\n if(cl > 1e-6) {\n cx /= cl\n cy /= cl\n cz /= cl\n cw /= cl\n } else {\n cx = cy = cz = 0.0\n cw = 1.0\n }\n\n this.rotation.set(t, cx, cy, cz, cw)\n}\n\nproto.lookAt = function(t, eye, center, up) {\n this.recalcMatrix(t)\n\n center = center || this.computedCenter\n eye = eye || this.computedEye\n up = up || this.computedUp\n\n var mat = this.computedMatrix\n lookAt(mat, eye, center, up)\n\n var rotation = this.computedRotation\n quatFromFrame(rotation,\n mat[0], mat[1], mat[2],\n mat[4], mat[5], mat[6],\n mat[8], mat[9], mat[10])\n normalize4(rotation, rotation)\n this.rotation.set(t, rotation[0], rotation[1], rotation[2], rotation[3])\n\n var fl = 0.0\n for(var i=0; i<3; ++i) {\n fl += Math.pow(center[i] - eye[i], 2)\n }\n this.radius.set(t, 0.5 * Math.log(Math.max(fl, 1e-6)))\n\n this.center.set(t, center[0], center[1], center[2])\n}\n\nproto.translate = function(t, dx, dy, dz) {\n this.center.move(t,\n dx||0.0,\n dy||0.0,\n dz||0.0)\n}\n\nproto.setMatrix = function(t, matrix) {\n\n var rotation = this.computedRotation\n quatFromFrame(rotation,\n matrix[0], matrix[1], matrix[2],\n matrix[4], matrix[5], matrix[6],\n matrix[8], matrix[9], matrix[10])\n normalize4(rotation, rotation)\n this.rotation.set(t, rotation[0], rotation[1], rotation[2], rotation[3])\n\n var mat = this.computedMatrix\n invert44(mat, matrix)\n var w = mat[15]\n if(Math.abs(w) > 1e-6) {\n var cx = mat[12]/w\n var cy = mat[13]/w\n var cz = mat[14]/w\n\n this.recalcMatrix(t) \n var r = Math.exp(this.computedRadius[0])\n this.center.set(t, cx-mat[2]*r, cy-mat[6]*r, cz-mat[10]*r)\n this.radius.idle(t)\n } else {\n this.center.idle(t)\n this.radius.idle(t)\n }\n}\n\nproto.setDistance = function(t, d) {\n if(d > 0) {\n this.radius.set(t, Math.log(d))\n }\n}\n\nproto.setDistanceLimits = function(lo, hi) {\n if(lo > 0) {\n lo = Math.log(lo)\n } else {\n lo = -Infinity \n }\n if(hi > 0) {\n hi = Math.log(hi)\n } else {\n hi = Infinity\n }\n hi = Math.max(hi, lo)\n this.radius.bounds[0][0] = lo\n this.radius.bounds[1][0] = hi\n}\n\nproto.getDistanceLimits = function(out) {\n var bounds = this.radius.bounds\n if(out) {\n out[0] = Math.exp(bounds[0][0])\n out[1] = Math.exp(bounds[1][0])\n return out\n }\n return [ Math.exp(bounds[0][0]), Math.exp(bounds[1][0]) ]\n}\n\nproto.toJSON = function() {\n this.recalcMatrix(this.lastT())\n return {\n center: this.computedCenter.slice(),\n rotation: this.computedRotation.slice(),\n distance: Math.log(this.computedRadius[0]),\n zoomMin: this.radius.bounds[0][0],\n zoomMax: this.radius.bounds[1][0]\n }\n}\n\nproto.fromJSON = function(options) {\n var t = this.lastT()\n var c = options.center\n if(c) {\n this.center.set(t, c[0], c[1], c[2])\n }\n var r = options.rotation\n if(r) {\n this.rotation.set(t, r[0], r[1], r[2], r[3])\n }\n var d = options.distance\n if(d && d > 0) {\n this.radius.set(t, Math.log(d))\n }\n this.setDistanceLimits(options.zoomMin, options.zoomMax)\n}\n\nfunction createOrbitController(options) {\n options = options || {}\n var center = options.center || [0,0,0]\n var rotation = options.rotation || [0,0,0,1]\n var radius = options.radius || 1.0\n\n center = [].slice.call(center, 0, 3)\n rotation = [].slice.call(rotation, 0, 4)\n normalize4(rotation, rotation)\n\n var result = new OrbitCameraController(\n rotation,\n center,\n Math.log(radius))\n\n result.setDistanceLimits(options.zoomMin, options.zoomMax)\n\n if('eye' in options || 'up' in options) {\n result.lookAt(0, options.eye, options.center, options.up)\n }\n\n return result\n}","module.exports = transformMat4\n\n/**\n * Transforms the vec4 with a mat4.\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the vector to transform\n * @param {mat4} m matrix to transform with\n * @returns {vec4} out\n */\nfunction transformMat4 (out, a, m) {\n var x = a[0], y = a[1], z = a[2], w = a[3]\n out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w\n out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w\n out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w\n out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w\n return out\n}\n","var createShader = require('gl-shader')\nvar glslify = require('glslify')\n\nvar vertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec4 uv;\\nattribute vec3 f;\\nattribute vec3 normal;\\n\\nuniform vec3 objectOffset;\\nuniform mat4 model, view, projection, inverseModel;\\nuniform vec3 lightPosition, eyePosition;\\nuniform sampler2D colormap;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec2 planeCoordinate;\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\nvarying vec4 vColor;\\n\\nvoid main() {\\n vec3 localCoordinate = vec3(uv.zw, f.x);\\n worldCoordinate = objectOffset + localCoordinate;\\n vec4 worldPosition = model * vec4(worldCoordinate, 1.0);\\n vec4 clipPosition = projection * view * worldPosition;\\n gl_Position = clipPosition;\\n kill = f.y;\\n value = f.z;\\n planeCoordinate = uv.xy;\\n\\n vColor = texture2D(colormap, vec2(value, value));\\n\\n //Lighting geometry parameters\\n vec4 cameraCoordinate = view * worldPosition;\\n cameraCoordinate.xyz /= cameraCoordinate.w;\\n lightDirection = lightPosition - cameraCoordinate.xyz;\\n eyeDirection = eyePosition - cameraCoordinate.xyz;\\n surfaceNormal = normalize((vec4(normal,0) * inverseModel).xyz);\\n}\\n\"])\nvar fragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nfloat beckmannDistribution(float x, float roughness) {\\n float NdotH = max(x, 0.0001);\\n float cos2Alpha = NdotH * NdotH;\\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\n float roughness2 = roughness * roughness;\\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\n return exp(tan2Alpha / roughness2) / denom;\\n}\\n\\nfloat beckmannSpecular(\\n vec3 lightDirection,\\n vec3 viewDirection,\\n vec3 surfaceNormal,\\n float roughness) {\\n return beckmannDistribution(dot(surfaceNormal, normalize(lightDirection + viewDirection)), roughness);\\n}\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 lowerBound, upperBound;\\nuniform float contourTint;\\nuniform vec4 contourColor;\\nuniform sampler2D colormap;\\nuniform vec3 clipBounds[2];\\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\\nuniform float vertexColor;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\nvarying vec4 vColor;\\n\\nvoid main() {\\n if ((kill > 0.0) ||\\n (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard;\\n\\n vec3 N = normalize(surfaceNormal);\\n vec3 V = normalize(eyeDirection);\\n vec3 L = normalize(lightDirection);\\n\\n if(gl_FrontFacing) {\\n N = -N;\\n }\\n\\n float specular = max(beckmannSpecular(L, V, N, roughness), 0.);\\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\n\\n //decide how to interpolate color — in vertex or in fragment\\n vec4 surfaceColor =\\n step(vertexColor, .5) * texture2D(colormap, vec2(value, value)) +\\n step(.5, vertexColor) * vColor;\\n\\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\\n\\n gl_FragColor = mix(litColor, contourColor, contourTint) * opacity;\\n}\\n\"])\nvar contourVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec4 uv;\\nattribute float f;\\n\\nuniform vec3 objectOffset;\\nuniform mat3 permutation;\\nuniform mat4 model, view, projection;\\nuniform float height, zOffset;\\nuniform sampler2D colormap;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec2 planeCoordinate;\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\nvarying vec4 vColor;\\n\\nvoid main() {\\n vec3 dataCoordinate = permutation * vec3(uv.xy, height);\\n worldCoordinate = objectOffset + dataCoordinate;\\n vec4 worldPosition = model * vec4(worldCoordinate, 1.0);\\n\\n vec4 clipPosition = projection * view * worldPosition;\\n clipPosition.z += zOffset;\\n\\n gl_Position = clipPosition;\\n value = f + objectOffset.z;\\n kill = -1.0;\\n planeCoordinate = uv.zw;\\n\\n vColor = texture2D(colormap, vec2(value, value));\\n\\n //Don't do lighting for contours\\n surfaceNormal = vec3(1,0,0);\\n eyeDirection = vec3(0,1,0);\\n lightDirection = vec3(0,0,1);\\n}\\n\"])\nvar pickSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec2 shape;\\nuniform vec3 clipBounds[2];\\nuniform float pickId;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec2 planeCoordinate;\\nvarying vec3 surfaceNormal;\\n\\nvec2 splitFloat(float v) {\\n float vh = 255.0 * v;\\n float upper = floor(vh);\\n float lower = fract(vh);\\n return vec2(upper / 255.0, floor(lower * 16.0) / 16.0);\\n}\\n\\nvoid main() {\\n if ((kill > 0.0) ||\\n (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard;\\n\\n vec2 ux = splitFloat(planeCoordinate.x / shape.x);\\n vec2 uy = splitFloat(planeCoordinate.y / shape.y);\\n gl_FragColor = vec4(pickId, ux.x, uy.x, ux.y + (uy.y/16.0));\\n}\\n\"])\n\nexports.createShader = function (gl) {\n var shader = createShader(gl, vertSrc, fragSrc, null, [\n {name: 'uv', type: 'vec4'},\n {name: 'f', type: 'vec3'},\n {name: 'normal', type: 'vec3'}\n ])\n shader.attributes.uv.location = 0\n shader.attributes.f.location = 1\n shader.attributes.normal.location = 2\n return shader\n}\nexports.createPickShader = function (gl) {\n var shader = createShader(gl, vertSrc, pickSrc, null, [\n {name: 'uv', type: 'vec4'},\n {name: 'f', type: 'vec3'},\n {name: 'normal', type: 'vec3'}\n ])\n shader.attributes.uv.location = 0\n shader.attributes.f.location = 1\n shader.attributes.normal.location = 2\n return shader\n}\nexports.createContourShader = function (gl) {\n var shader = createShader(gl, contourVertSrc, fragSrc, null, [\n {name: 'uv', type: 'vec4'},\n {name: 'f', type: 'float'}\n ])\n shader.attributes.uv.location = 0\n shader.attributes.f.location = 1\n return shader\n}\nexports.createPickContourShader = function (gl) {\n var shader = createShader(gl, contourVertSrc, pickSrc, null, [\n {name: 'uv', type: 'vec4'},\n {name: 'f', type: 'float'}\n ])\n shader.attributes.uv.location = 0\n shader.attributes.f.location = 1\n return shader\n}\n","\"use strict\";\n\nvar _undefined = require(\"../function/noop\")(); // Support ES3 engines\n\nmodule.exports = function (val) { return val !== _undefined && val !== null; };\n","\"use strict\"\n\nvar compile = require(\"cwise-compiler\")\n\nvar EmptyProc = {\n body: \"\",\n args: [],\n thisVars: [],\n localVars: []\n}\n\nfunction fixup(x) {\n if(!x) {\n return EmptyProc\n }\n for(var i=0; i>\",\n rrshift: \">>>\"\n}\n;(function(){\n for(var id in assign_ops) {\n var op = assign_ops[id]\n exports[id] = makeOp({\n args: [\"array\",\"array\",\"array\"],\n body: {args:[\"a\",\"b\",\"c\"],\n body: \"a=b\"+op+\"c\"},\n funcName: id\n })\n exports[id+\"eq\"] = makeOp({\n args: [\"array\",\"array\"],\n body: {args:[\"a\",\"b\"],\n body:\"a\"+op+\"=b\"},\n rvalue: true,\n funcName: id+\"eq\"\n })\n exports[id+\"s\"] = makeOp({\n args: [\"array\", \"array\", \"scalar\"],\n body: {args:[\"a\",\"b\",\"s\"],\n body:\"a=b\"+op+\"s\"},\n funcName: id+\"s\"\n })\n exports[id+\"seq\"] = makeOp({\n args: [\"array\",\"scalar\"],\n body: {args:[\"a\",\"s\"],\n body:\"a\"+op+\"=s\"},\n rvalue: true,\n funcName: id+\"seq\"\n })\n }\n})();\n\nvar unary_ops = {\n not: \"!\",\n bnot: \"~\",\n neg: \"-\",\n recip: \"1.0/\"\n}\n;(function(){\n for(var id in unary_ops) {\n var op = unary_ops[id]\n exports[id] = makeOp({\n args: [\"array\", \"array\"],\n body: {args:[\"a\",\"b\"],\n body:\"a=\"+op+\"b\"},\n funcName: id\n })\n exports[id+\"eq\"] = makeOp({\n args: [\"array\"],\n body: {args:[\"a\"],\n body:\"a=\"+op+\"a\"},\n rvalue: true,\n count: 2,\n funcName: id+\"eq\"\n })\n }\n})();\n\nvar binary_ops = {\n and: \"&&\",\n or: \"||\",\n eq: \"===\",\n neq: \"!==\",\n lt: \"<\",\n gt: \">\",\n leq: \"<=\",\n geq: \">=\"\n}\n;(function() {\n for(var id in binary_ops) {\n var op = binary_ops[id]\n exports[id] = makeOp({\n args: [\"array\",\"array\",\"array\"],\n body: {args:[\"a\", \"b\", \"c\"],\n body:\"a=b\"+op+\"c\"},\n funcName: id\n })\n exports[id+\"s\"] = makeOp({\n args: [\"array\",\"array\",\"scalar\"],\n body: {args:[\"a\", \"b\", \"s\"],\n body:\"a=b\"+op+\"s\"},\n funcName: id+\"s\"\n })\n exports[id+\"eq\"] = makeOp({\n args: [\"array\", \"array\"],\n body: {args:[\"a\", \"b\"],\n body:\"a=a\"+op+\"b\"},\n rvalue:true,\n count:2,\n funcName: id+\"eq\"\n })\n exports[id+\"seq\"] = makeOp({\n args: [\"array\", \"scalar\"],\n body: {args:[\"a\",\"s\"],\n body:\"a=a\"+op+\"s\"},\n rvalue:true,\n count:2,\n funcName: id+\"seq\"\n })\n }\n})();\n\nvar math_unary = [\n \"abs\",\n \"acos\",\n \"asin\",\n \"atan\",\n \"ceil\",\n \"cos\",\n \"exp\",\n \"floor\",\n \"log\",\n \"round\",\n \"sin\",\n \"sqrt\",\n \"tan\"\n]\n;(function() {\n for(var i=0; ithis_s){this_s=-a}else if(a>this_s){this_s=a}\", localVars: [], thisVars: [\"this_s\"]},\n post: {args:[], localVars:[], thisVars:[\"this_s\"], body:\"return this_s\"},\n funcName: \"norminf\"\n})\n\nexports.norm1 = compile({\n args:[\"array\"],\n pre: {args:[], localVars:[], thisVars:[\"this_s\"], body:\"this_s=0\"},\n body: {args:[{name:\"a\", lvalue:false, rvalue:true, count:3}], body: \"this_s+=a<0?-a:a\", localVars: [], thisVars: [\"this_s\"]},\n post: {args:[], localVars:[], thisVars:[\"this_s\"], body:\"return this_s\"},\n funcName: \"norm1\"\n})\n\nexports.sup = compile({\n args: [ \"array\" ],\n pre:\n { body: \"this_h=-Infinity\",\n args: [],\n thisVars: [ \"this_h\" ],\n localVars: [] },\n body:\n { body: \"if(_inline_1_arg0_>this_h)this_h=_inline_1_arg0_\",\n args: [{\"name\":\"_inline_1_arg0_\",\"lvalue\":false,\"rvalue\":true,\"count\":2} ],\n thisVars: [ \"this_h\" ],\n localVars: [] },\n post:\n { body: \"return this_h\",\n args: [],\n thisVars: [ \"this_h\" ],\n localVars: [] }\n })\n\nexports.inf = compile({\n args: [ \"array\" ],\n pre:\n { body: \"this_h=Infinity\",\n args: [],\n thisVars: [ \"this_h\" ],\n localVars: [] },\n body:\n { body: \"if(_inline_1_arg0_this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}\",\n args:[\n {name:\"_inline_1_arg0_\",lvalue:false,rvalue:true,count:2},\n {name:\"_inline_1_arg1_\",lvalue:false,rvalue:true,count:2}],\n thisVars:[\"this_i\",\"this_v\"],\n localVars:[\"_inline_1_k\"]},\n post:{\n body:\"{return this_i}\",\n args:[],\n thisVars:[\"this_i\"],\n localVars:[]}\n}) \n\nexports.random = makeOp({\n args: [\"array\"],\n pre: {args:[], body:\"this_f=Math.random\", thisVars:[\"this_f\"]},\n body: {args: [\"a\"], body:\"a=this_f()\", thisVars:[\"this_f\"]},\n funcName: \"random\"\n})\n\nexports.assign = makeOp({\n args:[\"array\", \"array\"],\n body: {args:[\"a\", \"b\"], body:\"a=b\"},\n funcName: \"assign\" })\n\nexports.assigns = makeOp({\n args:[\"array\", \"scalar\"],\n body: {args:[\"a\", \"b\"], body:\"a=b\"},\n funcName: \"assigns\" })\n\n\nexports.equals = compile({\n args:[\"array\", \"array\"],\n pre: EmptyProc,\n body: {args:[{name:\"x\", lvalue:false, rvalue:true, count:1},\n {name:\"y\", lvalue:false, rvalue:true, count:1}], \n body: \"if(x!==y){return false}\", \n localVars: [], \n thisVars: []},\n post: {args:[], localVars:[], thisVars:[], body:\"return true\"},\n funcName: \"equals\"\n})\n\n\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","\"use strict\";\n\nvar isPrototype = require(\"../prototype/is\");\n\nmodule.exports = function (value) {\n\tif (typeof value !== \"function\") return false;\n\n\tif (!hasOwnProperty.call(value, \"length\")) return false;\n\n\ttry {\n\t\tif (typeof value.length !== \"number\") return false;\n\t\tif (typeof value.call !== \"function\") return false;\n\t\tif (typeof value.apply !== \"function\") return false;\n\t} catch (error) {\n\t\treturn false;\n\t}\n\n\treturn !isPrototype(value);\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n moduleType: 'trace',\n name: 'scatterpolar',\n basePlotModule: require('../../plots/polar'),\n categories: ['polar', 'symbols', 'showLegend', 'scatter-like'],\n\n attributes: require('./attributes'),\n supplyDefaults: require('./defaults').supplyDefaults,\n colorbar: require('../scatter/marker_colorbar'),\n formatLabels: require('./format_labels'),\n calc: require('./calc'),\n plot: require('./plot'),\n style: require('../scatter/style').style,\n styleOnSelect: require('../scatter/style').styleOnSelect,\n hoverPoints: require('./hover').hoverPoints,\n selectPoints: require('../scatter/select'),\n\n meta: {\n \n \n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\n// fraction of some size to get to a named position\nmodule.exports = {\n // from bottom left: this is the origin of our paper-reference\n // positioning system\n FROM_BL: {\n left: 0,\n center: 0.5,\n right: 1,\n bottom: 0,\n middle: 0.5,\n top: 1\n },\n // from top left: this is the screen pixel positioning origin\n FROM_TL: {\n left: 0,\n center: 0.5,\n right: 1,\n bottom: 1,\n middle: 0.5,\n top: 0\n },\n // from bottom right: sometimes you just need the opposite of ^^\n FROM_BR: {\n left: 1,\n center: 0.5,\n right: 0,\n bottom: 0,\n middle: 0.5,\n top: 1\n },\n // multiple of fontSize to get the vertical offset between lines\n LINE_SPACING: 1.3,\n\n // multiple of fontSize to shift from the baseline\n // to the cap (captical letter) line\n // (to use when we don't calculate this shift from Drawing.bBox)\n // This is an approximation since in reality cap height can differ\n // from font to font. However, according to Wikipedia\n // an \"average\" font might have a cap height of 70% of the em\n // https://en.wikipedia.org/wiki/Em_(typography)#History\n CAP_SHIFT: 0.70,\n\n // half the cap height (distance between baseline and cap line)\n // of an \"average\" font (for more info see above).\n MID_SHIFT: 0.35,\n\n OPPOSITE_SIDE: {\n left: 'right',\n right: 'left',\n top: 'bottom',\n bottom: 'top'\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar plots = require('../../plots/plots');\n\nexports.name = 'indicator';\n\nexports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n plots.plotBasePlot(exports.name, gd, traces, transitionOpts, makeOnCompleteCallback);\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout);\n};\n","module.exports = squaredLength\n\n/**\n * Calculates the squared length of a vec4\n *\n * @param {vec4} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\nfunction squaredLength (a) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3]\n return x * x + y * y + z * z + w * w\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar extendFlat = require('../../lib').extendFlat;\nvar OHLCattrs = require('../ohlc/attributes');\nvar boxAttrs = require('../box/attributes');\n\nfunction directionAttrs(lineColorDefault) {\n return {\n line: {\n color: extendFlat({}, boxAttrs.line.color, {dflt: lineColorDefault}),\n width: boxAttrs.line.width,\n editType: 'style'\n },\n\n fillcolor: boxAttrs.fillcolor,\n editType: 'style'\n };\n}\n\nmodule.exports = {\n x: OHLCattrs.x,\n open: OHLCattrs.open,\n high: OHLCattrs.high,\n low: OHLCattrs.low,\n close: OHLCattrs.close,\n\n line: {\n width: extendFlat({}, boxAttrs.line.width, {\n \n }),\n editType: 'style'\n },\n\n increasing: directionAttrs(OHLCattrs.increasing.line.color.dflt),\n\n decreasing: directionAttrs(OHLCattrs.decreasing.line.color.dflt),\n\n text: OHLCattrs.text,\n hovertext: OHLCattrs.hovertext,\n whiskerwidth: extendFlat({}, boxAttrs.whiskerwidth, { dflt: 0 }),\n\n hoverlabel: OHLCattrs.hoverlabel,\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar Lib = require('../../lib');\n\nmodule.exports = function handleLabelDefaults(coerce, layout, lineColor, opts) {\n if(!opts) opts = {};\n var showLabels = coerce('contours.showlabels');\n if(showLabels) {\n var globalFont = layout.font;\n Lib.coerceFont(coerce, 'contours.labelfont', {\n family: globalFont.family,\n size: globalFont.size,\n color: lineColor\n });\n coerce('contours.labelformat');\n }\n\n if(opts.hasHover !== false) coerce('zhoverformat');\n};\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar colorscaleDefaults = require('../../components/colorscale/defaults');\nvar attributes = require('./attributes');\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var lon = coerce('lon') || [];\n var lat = coerce('lat') || [];\n\n var len = Math.min(lon.length, lat.length);\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n traceOut._length = len;\n\n coerce('z');\n coerce('radius');\n coerce('below');\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'});\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/violin');\n","\"use strict\";\n\nvar generated = Object.create(null), random = Math.random;\n\nmodule.exports = function () {\n\tvar str;\n\tdo {\n\t\tstr = random().toString(36).slice(2);\n\t} while (generated[str]);\n\treturn str;\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar d3 = require('d3');\nvar isNumeric = require('fast-isnumeric');\n\nvar Loggers = require('./loggers');\nvar mod = require('./mod').mod;\n\nvar constants = require('../constants/numerical');\nvar BADNUM = constants.BADNUM;\nvar ONEDAY = constants.ONEDAY;\nvar ONEHOUR = constants.ONEHOUR;\nvar ONEMIN = constants.ONEMIN;\nvar ONESEC = constants.ONESEC;\nvar EPOCHJD = constants.EPOCHJD;\n\nvar Registry = require('../registry');\n\nvar utcFormat = d3.time.format.utc;\n\nvar DATETIME_REGEXP = /^\\s*(-?\\d\\d\\d\\d|\\d\\d)(-(\\d?\\d)(-(\\d?\\d)([ Tt]([01]?\\d|2[0-3])(:([0-5]\\d)(:([0-5]\\d(\\.\\d+)?))?(Z|z|[+\\-]\\d\\d:?\\d\\d)?)?)?)?)?\\s*$/m;\n// special regex for chinese calendars to support yyyy-mmi-dd etc for intercalary months\nvar DATETIME_REGEXP_CN = /^\\s*(-?\\d\\d\\d\\d|\\d\\d)(-(\\d?\\di?)(-(\\d?\\d)([ Tt]([01]?\\d|2[0-3])(:([0-5]\\d)(:([0-5]\\d(\\.\\d+)?))?(Z|z|[+\\-]\\d\\d:?\\d\\d)?)?)?)?)?\\s*$/m;\n\n// for 2-digit years, the first year we map them onto\nvar YFIRST = new Date().getFullYear() - 70;\n\nfunction isWorldCalendar(calendar) {\n return (\n calendar &&\n Registry.componentsRegistry.calendars &&\n typeof calendar === 'string' && calendar !== 'gregorian'\n );\n}\n\n/*\n * dateTick0: get the canonical tick for this calendar\n *\n * bool sunday is for week ticks, shift it to a Sunday.\n */\nexports.dateTick0 = function(calendar, sunday) {\n if(isWorldCalendar(calendar)) {\n return sunday ?\n Registry.getComponentMethod('calendars', 'CANONICAL_SUNDAY')[calendar] :\n Registry.getComponentMethod('calendars', 'CANONICAL_TICK')[calendar];\n } else {\n return sunday ? '2000-01-02' : '2000-01-01';\n }\n};\n\n/*\n * dfltRange: for each calendar, give a valid default range\n */\nexports.dfltRange = function(calendar) {\n if(isWorldCalendar(calendar)) {\n return Registry.getComponentMethod('calendars', 'DFLTRANGE')[calendar];\n } else {\n return ['2000-01-01', '2001-01-01'];\n }\n};\n\n// is an object a javascript date?\nexports.isJSDate = function(v) {\n return typeof v === 'object' && v !== null && typeof v.getTime === 'function';\n};\n\n// The absolute limits of our date-time system\n// This is a little weird: we use MIN_MS and MAX_MS in dateTime2ms\n// but we use dateTime2ms to calculate them (after defining it!)\nvar MIN_MS, MAX_MS;\n\n/**\n * dateTime2ms - turn a date object or string s into milliseconds\n * (relative to 1970-01-01, per javascript standard)\n * optional calendar (string) to use a non-gregorian calendar\n *\n * Returns BADNUM if it doesn't find a date\n *\n * strings should have the form:\n *\n * -?YYYY-mm-ddHH:MM:SS.sss?\n *\n * : space (our normal standard) or T or t (ISO-8601)\n * : Z, z, or [+\\-]HH:?MM and we THROW IT AWAY\n * this format comes from https://tools.ietf.org/html/rfc3339#section-5.6\n * but we allow it even with a space as the separator\n *\n * May truncate after any full field, and sss can be any length\n * even >3 digits, though javascript dates truncate to milliseconds,\n * we keep as much as javascript numeric precision can hold, but we only\n * report back up to 100 microsecond precision, because most dates support\n * this precision (close to 1970 support more, very far away support less)\n *\n * Expanded to support negative years to -9999 but you must always\n * give 4 digits, except for 2-digit positive years which we assume are\n * near the present time.\n * Note that we follow ISO 8601:2004: there *is* a year 0, which\n * is 1BC/BCE, and -1===2BC etc.\n *\n * World calendars: not all of these *have* agreed extensions to this full range,\n * if you have another calendar system but want a date range outside its validity,\n * you can use a gregorian date string prefixed with 'G' or 'g'.\n *\n * Where to cut off 2-digit years between 1900s and 2000s?\n * from http://support.microsoft.com/kb/244664:\n * 1930-2029 (the most retro of all...)\n * but in my mac chrome from eg. d=new Date(Date.parse('8/19/50')):\n * 1950-2049\n * by Java, from http://stackoverflow.com/questions/2024273/:\n * now-80 - now+19\n * or FileMaker Pro, from\n * http://www.filemaker.com/12help/html/add_view_data.4.21.html:\n * now-70 - now+29\n * but python strptime etc, via\n * http://docs.python.org/py3k/library/time.html:\n * 1969-2068 (super forward-looking, but static, not sliding!)\n *\n * lets go with now-70 to now+29, and if anyone runs into this problem\n * they can learn the hard way not to use 2-digit years, as no choice we\n * make now will cover all possibilities. mostly this will all be taken\n * care of in initial parsing, should only be an issue for hand-entered data\n * currently (2016) this range is:\n * 1946-2045\n */\nexports.dateTime2ms = function(s, calendar) {\n // first check if s is a date object\n if(exports.isJSDate(s)) {\n // Convert to the UTC milliseconds that give the same\n // hours as this date has in the local timezone\n var tzOffset = s.getTimezoneOffset() * ONEMIN;\n var offsetTweak = (s.getUTCMinutes() - s.getMinutes()) * ONEMIN +\n (s.getUTCSeconds() - s.getSeconds()) * ONESEC +\n (s.getUTCMilliseconds() - s.getMilliseconds());\n\n if(offsetTweak) {\n var comb = 3 * ONEMIN;\n tzOffset = tzOffset - comb / 2 + mod(offsetTweak - tzOffset + comb / 2, comb);\n }\n s = Number(s) - tzOffset;\n if(s >= MIN_MS && s <= MAX_MS) return s;\n return BADNUM;\n }\n // otherwise only accept strings and numbers\n if(typeof s !== 'string' && typeof s !== 'number') return BADNUM;\n\n s = String(s);\n\n var isWorld = isWorldCalendar(calendar);\n\n // to handle out-of-range dates in international calendars, accept\n // 'G' as a prefix to force the built-in gregorian calendar.\n var s0 = s.charAt(0);\n if(isWorld && (s0 === 'G' || s0 === 'g')) {\n s = s.substr(1);\n calendar = '';\n }\n\n var isChinese = isWorld && calendar.substr(0, 7) === 'chinese';\n\n var match = s.match(isChinese ? DATETIME_REGEXP_CN : DATETIME_REGEXP);\n if(!match) return BADNUM;\n var y = match[1];\n var m = match[3] || '1';\n var d = Number(match[5] || 1);\n var H = Number(match[7] || 0);\n var M = Number(match[9] || 0);\n var S = Number(match[11] || 0);\n\n if(isWorld) {\n // disallow 2-digit years for world calendars\n if(y.length === 2) return BADNUM;\n y = Number(y);\n\n var cDate;\n try {\n var calInstance = Registry.getComponentMethod('calendars', 'getCal')(calendar);\n if(isChinese) {\n var isIntercalary = m.charAt(m.length - 1) === 'i';\n m = parseInt(m, 10);\n cDate = calInstance.newDate(y, calInstance.toMonthIndex(y, m, isIntercalary), d);\n } else {\n cDate = calInstance.newDate(y, Number(m), d);\n }\n } catch(e) { return BADNUM; } // Invalid ... date\n\n if(!cDate) return BADNUM;\n\n return ((cDate.toJD() - EPOCHJD) * ONEDAY) +\n (H * ONEHOUR) + (M * ONEMIN) + (S * ONESEC);\n }\n\n if(y.length === 2) {\n y = (Number(y) + 2000 - YFIRST) % 100 + YFIRST;\n } else y = Number(y);\n\n // new Date uses months from 0; subtract 1 here just so we\n // don't have to do it again during the validity test below\n m -= 1;\n\n // javascript takes new Date(0..99,m,d) to mean 1900-1999, so\n // to support years 0-99 we need to use setFullYear explicitly\n // Note that 2000 is a leap year.\n var date = new Date(Date.UTC(2000, m, d, H, M));\n date.setUTCFullYear(y);\n\n if(date.getUTCMonth() !== m) return BADNUM;\n if(date.getUTCDate() !== d) return BADNUM;\n\n return date.getTime() + S * ONESEC;\n};\n\nMIN_MS = exports.MIN_MS = exports.dateTime2ms('-9999');\nMAX_MS = exports.MAX_MS = exports.dateTime2ms('9999-12-31 23:59:59.9999');\n\n// is string s a date? (see above)\nexports.isDateTime = function(s, calendar) {\n return (exports.dateTime2ms(s, calendar) !== BADNUM);\n};\n\n// pad a number with zeroes, to given # of digits before the decimal point\nfunction lpad(val, digits) {\n return String(val + Math.pow(10, digits)).substr(1);\n}\n\n/**\n * Turn ms into string of the form YYYY-mm-dd HH:MM:SS.ssss\n * Crop any trailing zeros in time, except never stop right after hours\n * (we could choose to crop '-01' from date too but for now we always\n * show the whole date)\n * Optional range r is the data range that applies, also in ms.\n * If rng is big, the later parts of time will be omitted\n */\nvar NINETYDAYS = 90 * ONEDAY;\nvar THREEHOURS = 3 * ONEHOUR;\nvar FIVEMIN = 5 * ONEMIN;\nexports.ms2DateTime = function(ms, r, calendar) {\n if(typeof ms !== 'number' || !(ms >= MIN_MS && ms <= MAX_MS)) return BADNUM;\n\n if(!r) r = 0;\n\n var msecTenths = Math.floor(mod(ms + 0.05, 1) * 10);\n var msRounded = Math.round(ms - msecTenths / 10);\n var dateStr, h, m, s, msec10, d;\n\n if(isWorldCalendar(calendar)) {\n var dateJD = Math.floor(msRounded / ONEDAY) + EPOCHJD;\n var timeMs = Math.floor(mod(ms, ONEDAY));\n try {\n dateStr = Registry.getComponentMethod('calendars', 'getCal')(calendar)\n .fromJD(dateJD).formatDate('yyyy-mm-dd');\n } catch(e) {\n // invalid date in this calendar - fall back to Gyyyy-mm-dd\n dateStr = utcFormat('G%Y-%m-%d')(new Date(msRounded));\n }\n\n // yyyy does NOT guarantee 4-digit years. YYYY mostly does, but does\n // other things for a few calendars, so we can't trust it. Just pad\n // it manually (after the '-' if there is one)\n if(dateStr.charAt(0) === '-') {\n while(dateStr.length < 11) dateStr = '-0' + dateStr.substr(1);\n } else {\n while(dateStr.length < 10) dateStr = '0' + dateStr;\n }\n\n // TODO: if this is faster, we could use this block for extracting\n // the time components of regular gregorian too\n h = (r < NINETYDAYS) ? Math.floor(timeMs / ONEHOUR) : 0;\n m = (r < NINETYDAYS) ? Math.floor((timeMs % ONEHOUR) / ONEMIN) : 0;\n s = (r < THREEHOURS) ? Math.floor((timeMs % ONEMIN) / ONESEC) : 0;\n msec10 = (r < FIVEMIN) ? (timeMs % ONESEC) * 10 + msecTenths : 0;\n } else {\n d = new Date(msRounded);\n\n dateStr = utcFormat('%Y-%m-%d')(d);\n\n // <90 days: add hours and minutes - never *only* add hours\n h = (r < NINETYDAYS) ? d.getUTCHours() : 0;\n m = (r < NINETYDAYS) ? d.getUTCMinutes() : 0;\n // <3 hours: add seconds\n s = (r < THREEHOURS) ? d.getUTCSeconds() : 0;\n // <5 minutes: add ms (plus one extra digit, this is msec*10)\n msec10 = (r < FIVEMIN) ? d.getUTCMilliseconds() * 10 + msecTenths : 0;\n }\n\n return includeTime(dateStr, h, m, s, msec10);\n};\n\n// For converting old-style milliseconds to date strings,\n// we use the local timezone rather than UTC like we use\n// everywhere else, both for backward compatibility and\n// because that's how people mostly use javasript date objects.\n// Clip one extra day off our date range though so we can't get\n// thrown beyond the range by the timezone shift.\nexports.ms2DateTimeLocal = function(ms) {\n if(!(ms >= MIN_MS + ONEDAY && ms <= MAX_MS - ONEDAY)) return BADNUM;\n\n var msecTenths = Math.floor(mod(ms + 0.05, 1) * 10);\n var d = new Date(Math.round(ms - msecTenths / 10));\n var dateStr = d3.time.format('%Y-%m-%d')(d);\n var h = d.getHours();\n var m = d.getMinutes();\n var s = d.getSeconds();\n var msec10 = d.getUTCMilliseconds() * 10 + msecTenths;\n\n return includeTime(dateStr, h, m, s, msec10);\n};\n\nfunction includeTime(dateStr, h, m, s, msec10) {\n // include each part that has nonzero data in or after it\n if(h || m || s || msec10) {\n dateStr += ' ' + lpad(h, 2) + ':' + lpad(m, 2);\n if(s || msec10) {\n dateStr += ':' + lpad(s, 2);\n if(msec10) {\n var digits = 4;\n while(msec10 % 10 === 0) {\n digits -= 1;\n msec10 /= 10;\n }\n dateStr += '.' + lpad(msec10, digits);\n }\n }\n }\n return dateStr;\n}\n\n// normalize date format to date string, in case it starts as\n// a Date object or milliseconds\n// optional dflt is the return value if cleaning fails\nexports.cleanDate = function(v, dflt, calendar) {\n // let us use cleanDate to provide a missing default without an error\n if(v === BADNUM) return dflt;\n if(exports.isJSDate(v) || (typeof v === 'number' && isFinite(v))) {\n // do not allow milliseconds (old) or jsdate objects (inherently\n // described as gregorian dates) with world calendars\n if(isWorldCalendar(calendar)) {\n Loggers.error('JS Dates and milliseconds are incompatible with world calendars', v);\n return dflt;\n }\n\n // NOTE: if someone puts in a year as a number rather than a string,\n // this will mistakenly convert it thinking it's milliseconds from 1970\n // that is: '2012' -> Jan. 1, 2012, but 2012 -> 2012 epoch milliseconds\n v = exports.ms2DateTimeLocal(+v);\n if(!v && dflt !== undefined) return dflt;\n } else if(!exports.isDateTime(v, calendar)) {\n Loggers.error('unrecognized date', v);\n return dflt;\n }\n return v;\n};\n\n/*\n * Date formatting for ticks and hovertext\n */\n\n/*\n * modDateFormat: Support world calendars, and add one item to\n * d3's vocabulary:\n * %{n}f where n is the max number of digits of fractional seconds\n */\nvar fracMatch = /%\\d?f/g;\nfunction modDateFormat(fmt, x, formatter, calendar) {\n fmt = fmt.replace(fracMatch, function(match) {\n var digits = Math.min(+(match.charAt(1)) || 6, 6);\n var fracSecs = ((x / 1000 % 1) + 2)\n .toFixed(digits)\n .substr(2).replace(/0+$/, '') || '0';\n return fracSecs;\n });\n\n var d = new Date(Math.floor(x + 0.05));\n\n if(isWorldCalendar(calendar)) {\n try {\n fmt = Registry.getComponentMethod('calendars', 'worldCalFmt')(fmt, x, calendar);\n } catch(e) {\n return 'Invalid';\n }\n }\n return formatter(fmt)(d);\n}\n\n/*\n * formatTime: create a time string from:\n * x: milliseconds\n * tr: tickround ('M', 'S', or # digits)\n * only supports UTC times (where every day is 24 hours and 0 is at midnight)\n */\nvar MAXSECONDS = [59, 59.9, 59.99, 59.999, 59.9999];\nfunction formatTime(x, tr) {\n var timePart = mod(x + 0.05, ONEDAY);\n\n var timeStr = lpad(Math.floor(timePart / ONEHOUR), 2) + ':' +\n lpad(mod(Math.floor(timePart / ONEMIN), 60), 2);\n\n if(tr !== 'M') {\n if(!isNumeric(tr)) tr = 0; // should only be 'S'\n\n /*\n * this is a weird one - and shouldn't come up unless people\n * monkey with tick0 in weird ways, but we need to do something!\n * IN PARTICULAR we had better not display garbage (see below)\n * for numbers we always round to the nearest increment of the\n * precision we're showing, and this seems like the right way to\n * handle seconds and milliseconds, as they have a decimal point\n * and people will interpret that to mean rounding like numbers.\n * but for larger increments we floor the value: it's always\n * 2013 until the ball drops on the new year. We could argue about\n * which field it is where we start rounding (should 12:08:59\n * round to 12:09 if we're stopping at minutes?) but for now I'll\n * say we round seconds but floor everything else. BUT that means\n * we need to never round up to 60 seconds, ie 23:59:60\n */\n var sec = Math.min(mod(x / ONESEC, 60), MAXSECONDS[tr]);\n\n var secStr = (100 + sec).toFixed(tr).substr(1);\n if(tr > 0) {\n secStr = secStr.replace(/0+$/, '').replace(/[\\.]$/, '');\n }\n\n timeStr += ':' + secStr;\n }\n return timeStr;\n}\n\n/*\n * formatDate: turn a date into tick or hover label text.\n *\n * x: milliseconds, the value to convert\n * fmt: optional, an explicit format string (d3 format, even for world calendars)\n * tr: tickround ('y', 'm', 'd', 'M', 'S', or # digits)\n * used if no explicit fmt is provided\n * formatter: locale-aware d3 date formatter for standard gregorian calendars\n * should be the result of exports.getD3DateFormat(gd)\n * calendar: optional string, the world calendar system to use\n *\n * returns the date/time as a string, potentially with the leading portion\n * on a separate line (after '\\n')\n * Note that this means if you provide an explicit format which includes '\\n'\n * the axis may choose to strip things after it when they don't change from\n * one tick to the next (as it does with automatic formatting)\n */\nexports.formatDate = function(x, fmt, tr, formatter, calendar, extraFormat) {\n calendar = isWorldCalendar(calendar) && calendar;\n\n if(!fmt) {\n if(tr === 'y') fmt = extraFormat.year;\n else if(tr === 'm') fmt = extraFormat.month;\n else if(tr === 'd') {\n fmt = extraFormat.dayMonth + '\\n' + extraFormat.year;\n } else {\n return formatTime(x, tr) + '\\n' + modDateFormat(extraFormat.dayMonthYear, x, formatter, calendar);\n }\n }\n\n return modDateFormat(fmt, x, formatter, calendar);\n};\n\n/*\n * incrementMonth: make a new milliseconds value from the given one,\n * having changed the month\n *\n * special case for world calendars: multiples of 12 are treated as years,\n * even for calendar systems that don't have (always or ever) 12 months/year\n * TODO: perhaps we need a different code for year increments to support this?\n *\n * ms (number): the initial millisecond value\n * dMonth (int): the (signed) number of months to shift\n * calendar (string): the calendar system to use\n *\n * changing month does not (and CANNOT) always preserve day, since\n * months have different lengths. The worst example of this is:\n * d = new Date(1970,0,31); d.setMonth(1) -> Feb 31 turns into Mar 3\n *\n * But we want to be able to iterate over the last day of each month,\n * regardless of what its number is.\n * So shift 3 days forward, THEN set the new month, then unshift:\n * 1/31 -> 2/28 (or 29) -> 3/31 -> 4/30 -> ...\n *\n * Note that odd behavior still exists if you start from the 26th-28th:\n * 1/28 -> 2/28 -> 3/31\n * but at least you can't shift any dates into the wrong month,\n * and ticks on these days incrementing by month would be very unusual\n */\nvar THREEDAYS = 3 * ONEDAY;\nexports.incrementMonth = function(ms, dMonth, calendar) {\n calendar = isWorldCalendar(calendar) && calendar;\n\n // pull time out and operate on pure dates, then add time back at the end\n // this gives maximum precision - not that we *normally* care if we're\n // incrementing by month, but better to be safe!\n var timeMs = mod(ms, ONEDAY);\n ms = Math.round(ms - timeMs);\n\n if(calendar) {\n try {\n var dateJD = Math.round(ms / ONEDAY) + EPOCHJD;\n var calInstance = Registry.getComponentMethod('calendars', 'getCal')(calendar);\n var cDate = calInstance.fromJD(dateJD);\n\n if(dMonth % 12) calInstance.add(cDate, dMonth, 'm');\n else calInstance.add(cDate, dMonth / 12, 'y');\n\n return (cDate.toJD() - EPOCHJD) * ONEDAY + timeMs;\n } catch(e) {\n Loggers.error('invalid ms ' + ms + ' in calendar ' + calendar);\n // then keep going in gregorian even though the result will be 'Invalid'\n }\n }\n\n var y = new Date(ms + THREEDAYS);\n return y.setUTCMonth(y.getUTCMonth() + dMonth) + timeMs - THREEDAYS;\n};\n\n/*\n * findExactDates: what fraction of data is exact days, months, or years?\n *\n * data: array of millisecond values\n * calendar (string) the calendar to test against\n */\nexports.findExactDates = function(data, calendar) {\n var exactYears = 0;\n var exactMonths = 0;\n var exactDays = 0;\n var blankCount = 0;\n var d;\n var di;\n\n var calInstance = (\n isWorldCalendar(calendar) &&\n Registry.getComponentMethod('calendars', 'getCal')(calendar)\n );\n\n for(var i = 0; i < data.length; i++) {\n di = data[i];\n\n // not date data at all\n if(!isNumeric(di)) {\n blankCount ++;\n continue;\n }\n\n // not an exact date\n if(di % ONEDAY) continue;\n\n if(calInstance) {\n try {\n d = calInstance.fromJD(di / ONEDAY + EPOCHJD);\n if(d.day() === 1) {\n if(d.month() === 1) exactYears++;\n else exactMonths++;\n } else exactDays++;\n } catch(e) {\n // invalid date in this calendar - ignore it here.\n }\n } else {\n d = new Date(di);\n if(d.getUTCDate() === 1) {\n if(d.getUTCMonth() === 0) exactYears++;\n else exactMonths++;\n } else exactDays++;\n }\n }\n exactMonths += exactYears;\n exactDays += exactMonths;\n\n var dataCount = data.length - blankCount;\n\n return {\n exactYears: exactYears / dataCount,\n exactMonths: exactMonths / dataCount,\n exactDays: exactDays / dataCount\n };\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/volume');\n","var hiddenStore = require('./hidden-store.js');\n\nmodule.exports = createStore;\n\nfunction createStore() {\n var key = {};\n\n return function (obj) {\n if ((typeof obj !== 'object' || obj === null) &&\n typeof obj !== 'function'\n ) {\n throw new Error('Weakmap-shim: Key must be object')\n }\n\n var store = obj.valueOf(key);\n return store && store.identity === key ?\n store : hiddenStore(obj, key);\n };\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/scatterternary');\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar extendFlat = require('../../lib').extendFlat;\nvar scatterAttrs = require('../scatter/attributes');\nvar dash = require('../../components/drawing/attributes').dash;\nvar fxAttrs = require('../../components/fx/attributes');\nvar delta = require('../../constants/delta.js');\n\nvar INCREASING_COLOR = delta.INCREASING.COLOR;\nvar DECREASING_COLOR = delta.DECREASING.COLOR;\n\nvar lineAttrs = scatterAttrs.line;\n\nfunction directionAttrs(lineColorDefault) {\n return {\n line: {\n color: extendFlat({}, lineAttrs.color, {dflt: lineColorDefault}),\n width: lineAttrs.width,\n dash: dash,\n editType: 'style'\n },\n editType: 'style'\n };\n}\n\nmodule.exports = {\n\n x: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n\n open: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n\n high: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n\n low: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n\n close: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n\n line: {\n width: extendFlat({}, lineAttrs.width, {\n \n }),\n dash: extendFlat({}, dash, {\n \n }),\n editType: 'style'\n },\n\n increasing: directionAttrs(INCREASING_COLOR),\n\n decreasing: directionAttrs(DECREASING_COLOR),\n\n text: {\n valType: 'string',\n \n dflt: '',\n arrayOk: true,\n editType: 'calc',\n \n },\n hovertext: {\n valType: 'string',\n \n dflt: '',\n arrayOk: true,\n editType: 'calc',\n \n },\n\n tickwidth: {\n valType: 'number',\n min: 0,\n max: 0.5,\n dflt: 0.3,\n \n editType: 'calc',\n \n },\n\n hoverlabel: extendFlat({}, fxAttrs.hoverlabel, {\n split: {\n valType: 'boolean',\n \n dflt: false,\n editType: 'style',\n \n }\n }),\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar isNumeric = require('fast-isnumeric');\nvar tinycolor = require('tinycolor2');\n\nvar baseTraceAttrs = require('../plots/attributes');\nvar colorscales = require('../components/colorscale/scales');\nvar DESELECTDIM = require('../constants/interactions').DESELECTDIM;\n\nvar nestedProperty = require('./nested_property');\nvar counterRegex = require('./regex').counter;\nvar modHalf = require('./mod').modHalf;\nvar isArrayOrTypedArray = require('./array').isArrayOrTypedArray;\n\nexports.valObjectMeta = {\n data_array: {\n // You can use *dflt=[] to force said array to exist though.\n \n \n \n coerceFunction: function(v, propOut, dflt) {\n // TODO maybe `v: {type: 'float32', vals: [/* ... */]}` also\n if(isArrayOrTypedArray(v)) propOut.set(v);\n else if(dflt !== undefined) propOut.set(dflt);\n }\n },\n enumerated: {\n \n \n \n coerceFunction: function(v, propOut, dflt, opts) {\n if(opts.coerceNumber) v = +v;\n if(opts.values.indexOf(v) === -1) propOut.set(dflt);\n else propOut.set(v);\n },\n validateFunction: function(v, opts) {\n if(opts.coerceNumber) v = +v;\n\n var values = opts.values;\n for(var i = 0; i < values.length; i++) {\n var k = String(values[i]);\n\n if((k.charAt(0) === '/' && k.charAt(k.length - 1) === '/')) {\n var regex = new RegExp(k.substr(1, k.length - 2));\n if(regex.test(v)) return true;\n } else if(v === values[i]) return true;\n }\n return false;\n }\n },\n 'boolean': {\n \n \n \n coerceFunction: function(v, propOut, dflt) {\n if(v === true || v === false) propOut.set(v);\n else propOut.set(dflt);\n }\n },\n number: {\n \n \n \n coerceFunction: function(v, propOut, dflt, opts) {\n if(!isNumeric(v) ||\n (opts.min !== undefined && v < opts.min) ||\n (opts.max !== undefined && v > opts.max)) {\n propOut.set(dflt);\n } else propOut.set(+v);\n }\n },\n integer: {\n \n \n \n coerceFunction: function(v, propOut, dflt, opts) {\n if(v % 1 || !isNumeric(v) ||\n (opts.min !== undefined && v < opts.min) ||\n (opts.max !== undefined && v > opts.max)) {\n propOut.set(dflt);\n } else propOut.set(+v);\n }\n },\n string: {\n \n \n // TODO 'values shouldn't be in there (edge case: 'dash' in Scatter)\n \n coerceFunction: function(v, propOut, dflt, opts) {\n if(typeof v !== 'string') {\n var okToCoerce = (typeof v === 'number');\n\n if(opts.strict === true || !okToCoerce) propOut.set(dflt);\n else propOut.set(String(v));\n } else if(opts.noBlank && !v) propOut.set(dflt);\n else propOut.set(v);\n }\n },\n color: {\n \n \n \n coerceFunction: function(v, propOut, dflt) {\n if(tinycolor(v).isValid()) propOut.set(v);\n else propOut.set(dflt);\n }\n },\n colorlist: {\n \n \n \n coerceFunction: function(v, propOut, dflt) {\n function isColor(color) {\n return tinycolor(color).isValid();\n }\n if(!Array.isArray(v) || !v.length) propOut.set(dflt);\n else if(v.every(isColor)) propOut.set(v);\n else propOut.set(dflt);\n }\n },\n colorscale: {\n \n \n \n coerceFunction: function(v, propOut, dflt) {\n propOut.set(colorscales.get(v, dflt));\n }\n },\n angle: {\n \n \n \n coerceFunction: function(v, propOut, dflt) {\n if(v === 'auto') propOut.set('auto');\n else if(!isNumeric(v)) propOut.set(dflt);\n else propOut.set(modHalf(+v, 360));\n }\n },\n subplotid: {\n \n \n \n coerceFunction: function(v, propOut, dflt, opts) {\n var regex = opts.regex || counterRegex(dflt);\n if(typeof v === 'string' && regex.test(v)) {\n propOut.set(v);\n return;\n }\n propOut.set(dflt);\n },\n validateFunction: function(v, opts) {\n var dflt = opts.dflt;\n\n if(v === dflt) return true;\n if(typeof v !== 'string') return false;\n if(counterRegex(dflt).test(v)) return true;\n\n return false;\n }\n },\n flaglist: {\n \n \n \n coerceFunction: function(v, propOut, dflt, opts) {\n if(typeof v !== 'string') {\n propOut.set(dflt);\n return;\n }\n if((opts.extras || []).indexOf(v) !== -1) {\n propOut.set(v);\n return;\n }\n var vParts = v.split('+');\n var i = 0;\n while(i < vParts.length) {\n var vi = vParts[i];\n if(opts.flags.indexOf(vi) === -1 || vParts.indexOf(vi) < i) {\n vParts.splice(i, 1);\n } else i++;\n }\n if(!vParts.length) propOut.set(dflt);\n else propOut.set(vParts.join('+'));\n }\n },\n any: {\n \n \n \n coerceFunction: function(v, propOut, dflt) {\n if(v === undefined) propOut.set(dflt);\n else propOut.set(v);\n }\n },\n info_array: {\n \n \n // set `dimensions=2` for a 2D array or '1-2' for either\n // `items` may be a single object instead of an array, in which case\n // `freeLength` must be true.\n // if `dimensions='1-2'` and items is a 1D array, then the value can\n // either be a matching 1D array or an array of such matching 1D arrays\n \n coerceFunction: function(v, propOut, dflt, opts) {\n // simplified coerce function just for array items\n function coercePart(v, opts, dflt) {\n var out;\n var propPart = {set: function(v) { out = v; }};\n\n if(dflt === undefined) dflt = opts.dflt;\n\n exports.valObjectMeta[opts.valType].coerceFunction(v, propPart, dflt, opts);\n\n return out;\n }\n\n var twoD = opts.dimensions === 2 || (opts.dimensions === '1-2' && Array.isArray(v) && Array.isArray(v[0]));\n\n if(!Array.isArray(v)) {\n propOut.set(dflt);\n return;\n }\n\n var items = opts.items;\n var vOut = [];\n var arrayItems = Array.isArray(items);\n var arrayItems2D = arrayItems && twoD && Array.isArray(items[0]);\n var innerItemsOnly = twoD && arrayItems && !arrayItems2D;\n var len = (arrayItems && !innerItemsOnly) ? items.length : v.length;\n\n var i, j, row, item, len2, vNew;\n\n dflt = Array.isArray(dflt) ? dflt : [];\n\n if(twoD) {\n for(i = 0; i < len; i++) {\n vOut[i] = [];\n row = Array.isArray(v[i]) ? v[i] : [];\n if(innerItemsOnly) len2 = items.length;\n else if(arrayItems) len2 = items[i].length;\n else len2 = row.length;\n\n for(j = 0; j < len2; j++) {\n if(innerItemsOnly) item = items[j];\n else if(arrayItems) item = items[i][j];\n else item = items;\n\n vNew = coercePart(row[j], item, (dflt[i] || [])[j]);\n if(vNew !== undefined) vOut[i][j] = vNew;\n }\n }\n } else {\n for(i = 0; i < len; i++) {\n vNew = coercePart(v[i], arrayItems ? items[i] : items, dflt[i]);\n if(vNew !== undefined) vOut[i] = vNew;\n }\n }\n\n propOut.set(vOut);\n },\n validateFunction: function(v, opts) {\n if(!Array.isArray(v)) return false;\n\n var items = opts.items;\n var arrayItems = Array.isArray(items);\n var twoD = opts.dimensions === 2;\n\n // when free length is off, input and declared lengths must match\n if(!opts.freeLength && v.length !== items.length) return false;\n\n // valid when all input items are valid\n for(var i = 0; i < v.length; i++) {\n if(twoD) {\n if(!Array.isArray(v[i]) || (!opts.freeLength && v[i].length !== items[i].length)) {\n return false;\n }\n for(var j = 0; j < v[i].length; j++) {\n if(!validate(v[i][j], arrayItems ? items[i][j] : items)) {\n return false;\n }\n }\n } else if(!validate(v[i], arrayItems ? items[i] : items)) return false;\n }\n\n return true;\n }\n }\n};\n\n/**\n * Ensures that container[attribute] has a valid value.\n *\n * attributes[attribute] is an object with possible keys:\n * - valType: data_array, enumerated, boolean, ... as in valObjectMeta\n * - values: (enumerated only) array of allowed vals\n * - min, max: (number, integer only) inclusive bounds on allowed vals\n * either or both may be omitted\n * - dflt: if attribute is invalid or missing, use this default\n * if dflt is provided as an argument to lib.coerce it takes precedence\n * as a convenience, returns the value it finally set\n */\nexports.coerce = function(containerIn, containerOut, attributes, attribute, dflt) {\n var opts = nestedProperty(attributes, attribute).get();\n var propIn = nestedProperty(containerIn, attribute);\n var propOut = nestedProperty(containerOut, attribute);\n var v = propIn.get();\n\n var template = containerOut._template;\n if(v === undefined && template) {\n v = nestedProperty(template, attribute).get();\n // already used the template value, so short-circuit the second check\n template = 0;\n }\n\n if(dflt === undefined) dflt = opts.dflt;\n\n /**\n * arrayOk: value MAY be an array, then we do no value checking\n * at this point, because it can be more complicated than the\n * individual form (eg. some array vals can be numbers, even if the\n * single values must be color strings)\n */\n if(opts.arrayOk && isArrayOrTypedArray(v)) {\n propOut.set(v);\n return v;\n }\n\n var coerceFunction = exports.valObjectMeta[opts.valType].coerceFunction;\n coerceFunction(v, propOut, dflt, opts);\n\n var out = propOut.get();\n // in case v was provided but invalid, try the template again so it still\n // overrides the regular default\n if(template && out === dflt && !validate(v, opts)) {\n v = nestedProperty(template, attribute).get();\n coerceFunction(v, propOut, dflt, opts);\n out = propOut.get();\n }\n return out;\n};\n\n/**\n * Variation on coerce\n *\n * Uses coerce to get attribute value if user input is valid,\n * returns attribute default if user input it not valid or\n * returns false if there is no user input.\n */\nexports.coerce2 = function(containerIn, containerOut, attributes, attribute, dflt) {\n var propIn = nestedProperty(containerIn, attribute);\n var propOut = exports.coerce(containerIn, containerOut, attributes, attribute, dflt);\n var valIn = propIn.get();\n\n return (valIn !== undefined && valIn !== null) ? propOut : false;\n};\n\n/*\n * Shortcut to coerce the three font attributes\n *\n * 'coerce' is a lib.coerce wrapper with implied first three arguments\n */\nexports.coerceFont = function(coerce, attr, dfltObj) {\n var out = {};\n\n dfltObj = dfltObj || {};\n\n out.family = coerce(attr + '.family', dfltObj.family);\n out.size = coerce(attr + '.size', dfltObj.size);\n out.color = coerce(attr + '.color', dfltObj.color);\n\n return out;\n};\n\n/** Coerce shortcut for 'hoverinfo'\n * handling 1-vs-multi-trace dflt logic\n *\n * @param {object} traceIn : user trace object\n * @param {object} traceOut : full trace object (requires _module ref)\n * @param {object} layoutOut : full layout object (require _dataLength ref)\n * @return {any} : the coerced value\n */\nexports.coerceHoverinfo = function(traceIn, traceOut, layoutOut) {\n var moduleAttrs = traceOut._module.attributes;\n var attrs = moduleAttrs.hoverinfo ? moduleAttrs : baseTraceAttrs;\n\n var valObj = attrs.hoverinfo;\n var dflt;\n\n if(layoutOut._dataLength === 1) {\n var flags = valObj.dflt === 'all' ?\n valObj.flags.slice() :\n valObj.dflt.split('+');\n\n flags.splice(flags.indexOf('name'), 1);\n dflt = flags.join('+');\n }\n\n return exports.coerce(traceIn, traceOut, attrs, 'hoverinfo', dflt);\n};\n\n/** Coerce shortcut for [un]selected.marker.opacity,\n * which has special default logic, to ensure that it corresponds to the\n * default selection behavior while allowing to be overtaken by any other\n * [un]selected attribute.\n *\n * N.B. This must be called *after* coercing all the other [un]selected attrs,\n * to give the intended result.\n *\n * @param {object} traceOut : fullData item\n * @param {function} coerce : lib.coerce wrapper with implied first three arguments\n */\nexports.coerceSelectionMarkerOpacity = function(traceOut, coerce) {\n if(!traceOut.marker) return;\n\n var mo = traceOut.marker.opacity;\n // you can still have a `marker` container with no markers if there's text\n if(mo === undefined) return;\n\n var smoDflt;\n var usmoDflt;\n\n // Don't give [un]selected.marker.opacity a default value if\n // marker.opacity is an array: handle this during style step.\n //\n // Only give [un]selected.marker.opacity a default value if you don't\n // set any other [un]selected attributes.\n if(!isArrayOrTypedArray(mo) && !traceOut.selected && !traceOut.unselected) {\n smoDflt = mo;\n usmoDflt = DESELECTDIM * mo;\n }\n\n coerce('selected.marker.opacity', smoDflt);\n coerce('unselected.marker.opacity', usmoDflt);\n};\n\nfunction validate(value, opts) {\n var valObjectDef = exports.valObjectMeta[opts.valType];\n\n if(opts.arrayOk && isArrayOrTypedArray(value)) return true;\n\n if(valObjectDef.validateFunction) {\n return valObjectDef.validateFunction(value, opts);\n }\n\n var failed = {};\n var out = failed;\n var propMock = { set: function(v) { out = v; } };\n\n // 'failed' just something mutable that won't be === anything else\n\n valObjectDef.coerceFunction(value, propMock, failed, opts);\n return out !== failed;\n}\nexports.validate = validate;\n","'use strict'\n\nvar bnsub = require('big-rat/sub')\n\nmodule.exports = sub\n\nfunction sub(a, b) {\n var n = a.length\n var r = new Array(n)\n for(var i=0; i= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\n\nvar subTypes = require('../scatter/subtypes');\nvar handleMarkerDefaults = require('../scatter/marker_defaults');\nvar handleLineDefaults = require('../scatter/line_defaults');\nvar handleLineShapeDefaults = require('../scatter/line_shape_defaults');\nvar handleTextDefaults = require('../scatter/text_defaults');\nvar handleFillColorDefaults = require('../scatter/fillcolor_defaults');\nvar PTS_LINESONLY = require('../scatter/constants').PTS_LINESONLY;\n\nvar attributes = require('./attributes');\n\nfunction supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var len = handleRThetaDefaults(traceIn, traceOut, layout, coerce);\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n coerce('thetaunit');\n coerce('mode', len < PTS_LINESONLY ? 'lines+markers' : 'lines');\n coerce('text');\n coerce('hovertext');\n if(traceOut.hoveron !== 'fills') coerce('hovertemplate');\n\n if(subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n handleLineShapeDefaults(traceIn, traceOut, coerce);\n coerce('connectgaps');\n }\n\n if(subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, {gradient: true});\n }\n\n if(subTypes.hasText(traceOut)) {\n coerce('texttemplate');\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n\n var dfltHoverOn = [];\n\n if(subTypes.hasMarkers(traceOut) || subTypes.hasText(traceOut)) {\n coerce('cliponaxis');\n coerce('marker.maxdisplayed');\n dfltHoverOn.push('points');\n }\n\n coerce('fill');\n\n if(traceOut.fill !== 'none') {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n if(!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);\n }\n\n if(traceOut.fill === 'tonext' || traceOut.fill === 'toself') {\n dfltHoverOn.push('fills');\n }\n coerce('hoveron', dfltHoverOn.join('+') || 'points');\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n}\n\nfunction handleRThetaDefaults(traceIn, traceOut, layout, coerce) {\n var r = coerce('r');\n var theta = coerce('theta');\n var len;\n\n if(r) {\n if(theta) {\n len = Math.min(r.length, theta.length);\n } else {\n len = r.length;\n coerce('theta0');\n coerce('dtheta');\n }\n } else {\n if(!theta) return 0;\n len = traceOut.theta.length;\n coerce('r0');\n coerce('dr');\n }\n\n traceOut._length = len;\n return len;\n}\n\nmodule.exports = {\n handleRThetaDefaults: handleRThetaDefaults,\n supplyDefaults: supplyDefaults\n};\n","'use strict'\n\n/**\n * @module parenthesis\n */\n\nfunction parse (str, opts) {\n\t// pretend non-string parsed per-se\n\tif (typeof str !== 'string') return [str]\n\n\tvar res = [str]\n\n\tif (typeof opts === 'string' || Array.isArray(opts)) {\n\t\topts = {brackets: opts}\n\t}\n\telse if (!opts) opts = {}\n\n\tvar brackets = opts.brackets ? (Array.isArray(opts.brackets) ? opts.brackets : [opts.brackets]) : ['{}', '[]', '()']\n\n\tvar escape = opts.escape || '___'\n\n\tvar flat = !!opts.flat\n\n\tbrackets.forEach(function (bracket) {\n\t\t// create parenthesis regex\n\t\tvar pRE = new RegExp(['\\\\', bracket[0], '[^\\\\', bracket[0], '\\\\', bracket[1], ']*\\\\', bracket[1]].join(''))\n\n\t\tvar ids = []\n\n\t\tfunction replaceToken(token, idx, str){\n\t\t\t// save token to res\n\t\t\tvar refId = res.push(token.slice(bracket[0].length, -bracket[1].length)) - 1\n\n\t\t\tids.push(refId)\n\n\t\t\treturn escape + refId + escape\n\t\t}\n\n\t\tres.forEach(function (str, i) {\n\t\t\tvar prevStr\n\n\t\t\t// replace paren tokens till there’s none\n\t\t\tvar a = 0\n\t\t\twhile (str != prevStr) {\n\t\t\t\tprevStr = str\n\t\t\t\tstr = str.replace(pRE, replaceToken)\n\t\t\t\tif (a++ > 10e3) throw Error('References have circular dependency. Please, check them.')\n\t\t\t}\n\n\t\t\tres[i] = str\n\t\t})\n\n\t\t// wrap found refs to brackets\n\t\tids = ids.reverse()\n\t\tres = res.map(function (str) {\n\t\t\tids.forEach(function (id) {\n\t\t\t\tstr = str.replace(new RegExp('(\\\\' + escape + id + '\\\\' + escape + ')', 'g'), bracket[0] + '$1' + bracket[1])\n\t\t\t})\n\t\t\treturn str\n\t\t})\n\t})\n\n\tvar re = new RegExp('\\\\' + escape + '([0-9]+)' + '\\\\' + escape)\n\n\t// transform references to tree\n\tfunction nest (str, refs, escape) {\n\t\tvar res = [], match\n\n\t\tvar a = 0\n\t\twhile (match = re.exec(str)) {\n\t\t\tif (a++ > 10e3) throw Error('Circular references in parenthesis')\n\n\t\t\tres.push(str.slice(0, match.index))\n\n\t\t\tres.push(nest(refs[match[1]], refs))\n\n\t\t\tstr = str.slice(match.index + match[0].length)\n\t\t}\n\n\t\tres.push(str)\n\n\t\treturn res\n\t}\n\n\treturn flat ? res : nest(res[0], res)\n}\n\nfunction stringify (arg, opts) {\n\tif (opts && opts.flat) {\n\t\tvar escape = opts && opts.escape || '___'\n\n\t\tvar str = arg[0], prevStr\n\n\t\t// pretend bad string stringified with no parentheses\n\t\tif (!str) return ''\n\n\n\t\tvar re = new RegExp('\\\\' + escape + '([0-9]+)' + '\\\\' + escape)\n\n\t\tvar a = 0\n\t\twhile (str != prevStr) {\n\t\t\tif (a++ > 10e3) throw Error('Circular references in ' + arg)\n\t\t\tprevStr = str\n\t\t\tstr = str.replace(re, replaceRef)\n\t\t}\n\n\t\treturn str\n\t}\n\n\treturn arg.reduce(function f (prev, curr) {\n\t\tif (Array.isArray(curr)) {\n\t\t\tcurr = curr.reduce(f, '')\n\t\t}\n\t\treturn prev + curr\n\t}, '')\n\n\tfunction replaceRef(match, idx){\n\t\tif (arg[idx] == null) throw Error('Reference ' + idx + 'is undefined')\n\t\treturn arg[idx]\n\t}\n}\n\nfunction parenthesis (arg, opts) {\n\tif (Array.isArray(arg)) {\n\t\treturn stringify(arg, opts)\n\t}\n\telse {\n\t\treturn parse(arg, opts)\n\t}\n}\n\nparenthesis.parse = parse\nparenthesis.stringify = stringify\n\nmodule.exports = parenthesis\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar axesAttrs = require('../../plots/cartesian/layout_attributes');\nvar fontAttrs = require('../../plots/font_attributes');\nvar extendFlat = require('../../lib/extend').extendFlat;\nvar overrideAll = require('../../plot_api/edit_types').overrideAll;\n\n\nmodule.exports = overrideAll({\n// TODO: only right is supported currently\n// orient: {\n// valType: 'enumerated',\n// \n// values: ['left', 'right', 'top', 'bottom'],\n// dflt: 'right',\n// \n// },\n thicknessmode: {\n valType: 'enumerated',\n values: ['fraction', 'pixels'],\n \n dflt: 'pixels',\n \n },\n thickness: {\n valType: 'number',\n \n min: 0,\n dflt: 30,\n \n },\n lenmode: {\n valType: 'enumerated',\n values: ['fraction', 'pixels'],\n \n dflt: 'fraction',\n \n },\n len: {\n valType: 'number',\n min: 0,\n dflt: 1,\n \n \n },\n x: {\n valType: 'number',\n dflt: 1.02,\n min: -2,\n max: 3,\n \n \n },\n xanchor: {\n valType: 'enumerated',\n values: ['left', 'center', 'right'],\n dflt: 'left',\n \n \n },\n xpad: {\n valType: 'number',\n \n min: 0,\n dflt: 10,\n \n },\n y: {\n valType: 'number',\n \n dflt: 0.5,\n min: -2,\n max: 3,\n \n },\n yanchor: {\n valType: 'enumerated',\n values: ['top', 'middle', 'bottom'],\n \n dflt: 'middle',\n \n },\n ypad: {\n valType: 'number',\n \n min: 0,\n dflt: 10,\n \n },\n // a possible line around the bar itself\n outlinecolor: axesAttrs.linecolor,\n outlinewidth: axesAttrs.linewidth,\n // Should outlinewidth have {dflt: 0} ?\n // another possible line outside the padding and tick labels\n bordercolor: axesAttrs.linecolor,\n borderwidth: {\n valType: 'number',\n \n min: 0,\n dflt: 0,\n \n },\n bgcolor: {\n valType: 'color',\n \n dflt: 'rgba(0,0,0,0)',\n \n },\n // tick and title properties named and function exactly as in axes\n tickmode: axesAttrs.tickmode,\n nticks: axesAttrs.nticks,\n tick0: axesAttrs.tick0,\n dtick: axesAttrs.dtick,\n tickvals: axesAttrs.tickvals,\n ticktext: axesAttrs.ticktext,\n ticks: extendFlat({}, axesAttrs.ticks, {dflt: ''}),\n ticklen: axesAttrs.ticklen,\n tickwidth: axesAttrs.tickwidth,\n tickcolor: axesAttrs.tickcolor,\n showticklabels: axesAttrs.showticklabels,\n tickfont: fontAttrs({\n \n }),\n tickangle: axesAttrs.tickangle,\n tickformat: axesAttrs.tickformat,\n tickformatstops: axesAttrs.tickformatstops,\n tickprefix: axesAttrs.tickprefix,\n showtickprefix: axesAttrs.showtickprefix,\n ticksuffix: axesAttrs.ticksuffix,\n showticksuffix: axesAttrs.showticksuffix,\n separatethousands: axesAttrs.separatethousands,\n exponentformat: axesAttrs.exponentformat,\n showexponent: axesAttrs.showexponent,\n title: {\n text: {\n valType: 'string',\n \n \n },\n font: fontAttrs({\n \n }),\n side: {\n valType: 'enumerated',\n values: ['right', 'top', 'bottom'],\n \n dflt: 'top',\n \n }\n },\n\n _deprecated: {\n title: {\n valType: 'string',\n \n \n },\n titlefont: fontAttrs({\n \n }),\n titleside: {\n valType: 'enumerated',\n values: ['right', 'top', 'bottom'],\n \n dflt: 'top',\n \n }\n }\n}, 'colorbars', 'from-root');\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\n\nvar subTypes = require('../scatter/subtypes');\nvar handleMarkerDefaults = require('../scatter/marker_defaults');\nvar handleLineDefaults = require('../scatter/line_defaults');\nvar handleTextDefaults = require('../scatter/text_defaults');\nvar handleFillColorDefaults = require('../scatter/fillcolor_defaults');\nvar attributes = require('./attributes');\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var len = handleLonLatDefaults(traceIn, traceOut, coerce);\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n coerce('text');\n coerce('texttemplate');\n coerce('hovertext');\n coerce('hovertemplate');\n coerce('mode');\n coerce('below');\n\n if(subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce, {noDash: true});\n coerce('connectgaps');\n }\n\n if(subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, {noLine: true});\n\n // array marker.size and marker.color are only supported with circles\n var marker = traceOut.marker;\n if(marker.symbol !== 'circle') {\n if(Lib.isArrayOrTypedArray(marker.size)) marker.size = marker.size[0];\n if(Lib.isArrayOrTypedArray(marker.color)) marker.color = marker.color[0];\n }\n }\n\n if(subTypes.hasText(traceOut)) {\n handleTextDefaults(traceIn, traceOut, layout, coerce, {noSelect: true});\n }\n\n coerce('fill');\n if(traceOut.fill !== 'none') {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n }\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n};\n\nfunction handleLonLatDefaults(traceIn, traceOut, coerce) {\n var lon = coerce('lon') || [];\n var lat = coerce('lat') || [];\n var len = Math.min(lon.length, lat.length);\n traceOut._length = len;\n\n return len;\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar isNumeric = require('fast-isnumeric');\nvar tinycolor = require('tinycolor2');\nvar isArrayOrTypedArray = require('../../lib').isArrayOrTypedArray;\n\nexports.coerceString = function(attributeDefinition, value, defaultValue) {\n if(typeof value === 'string') {\n if(value || !attributeDefinition.noBlank) return value;\n } else if(typeof value === 'number' || value === true) {\n if(!attributeDefinition.strict) return String(value);\n }\n\n return (defaultValue !== undefined) ?\n defaultValue :\n attributeDefinition.dflt;\n};\n\nexports.coerceNumber = function(attributeDefinition, value, defaultValue) {\n if(isNumeric(value)) {\n value = +value;\n\n var min = attributeDefinition.min;\n var max = attributeDefinition.max;\n var isOutOfBounds = (min !== undefined && value < min) ||\n (max !== undefined && value > max);\n\n if(!isOutOfBounds) return value;\n }\n\n return (defaultValue !== undefined) ?\n defaultValue :\n attributeDefinition.dflt;\n};\n\nexports.coerceColor = function(attributeDefinition, value, defaultValue) {\n if(tinycolor(value).isValid()) return value;\n\n return (defaultValue !== undefined) ?\n defaultValue :\n attributeDefinition.dflt;\n};\n\nexports.coerceEnumerated = function(attributeDefinition, value, defaultValue) {\n if(attributeDefinition.coerceNumber) value = +value;\n\n if(attributeDefinition.values.indexOf(value) !== -1) return value;\n\n return (defaultValue !== undefined) ?\n defaultValue :\n attributeDefinition.dflt;\n};\n\nexports.getValue = function(arrayOrScalar, index) {\n var value;\n if(!Array.isArray(arrayOrScalar)) value = arrayOrScalar;\n else if(index < arrayOrScalar.length) value = arrayOrScalar[index];\n return value;\n};\n\nexports.getLineWidth = function(trace, di) {\n var w =\n (0 < di.mlw) ? di.mlw :\n !isArrayOrTypedArray(trace.marker.line.width) ? trace.marker.line.width :\n 0;\n\n return w;\n};\n","\"use strict\";\n\nmodule.exports = require(\"./_iterate\")(\"forEach\");\n","\"use strict\";\n\nvar isObject = require(\"./is-object\");\n\nmodule.exports = function (value) {\n\tif (!isObject(value)) throw new TypeError(value + \" is not an Object\");\n\treturn value;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Registry = require('../registry');\nvar Lib = require('../lib');\n\nvar baseAttributes = require('../plots/attributes');\nvar baseLayoutAttributes = require('../plots/layout_attributes');\nvar frameAttributes = require('../plots/frame_attributes');\nvar animationAttributes = require('../plots/animation_attributes');\nvar configAttributes = require('./plot_config').configAttributes;\n\n// polar attributes are not part of the Registry yet\nvar polarAreaAttrs = require('../plots/polar/legacy/area_attributes');\nvar polarAxisAttrs = require('../plots/polar/legacy/axis_attributes');\n\nvar editTypes = require('./edit_types');\n\nvar extendFlat = Lib.extendFlat;\nvar extendDeepAll = Lib.extendDeepAll;\nvar isPlainObject = Lib.isPlainObject;\nvar isArrayOrTypedArray = Lib.isArrayOrTypedArray;\nvar nestedProperty = Lib.nestedProperty;\nvar valObjectMeta = Lib.valObjectMeta;\n\nvar IS_SUBPLOT_OBJ = '_isSubplotObj';\nvar IS_LINKED_TO_ARRAY = '_isLinkedToArray';\nvar ARRAY_ATTR_REGEXPS = '_arrayAttrRegexps';\nvar DEPRECATED = '_deprecated';\nvar UNDERSCORE_ATTRS = [IS_SUBPLOT_OBJ, IS_LINKED_TO_ARRAY, ARRAY_ATTR_REGEXPS, DEPRECATED];\n\nexports.IS_SUBPLOT_OBJ = IS_SUBPLOT_OBJ;\nexports.IS_LINKED_TO_ARRAY = IS_LINKED_TO_ARRAY;\nexports.DEPRECATED = DEPRECATED;\nexports.UNDERSCORE_ATTRS = UNDERSCORE_ATTRS;\n\n/** Outputs the full plotly.js plot schema\n *\n * @return {object}\n * - defs\n * - traces\n * - layout\n * - transforms\n * - frames\n * - animations\n * - config\n */\nexports.get = function() {\n var traces = {};\n\n Registry.allTypes.concat('area').forEach(function(type) {\n traces[type] = getTraceAttributes(type);\n });\n\n var transforms = {};\n\n Object.keys(Registry.transformsRegistry).forEach(function(type) {\n transforms[type] = getTransformAttributes(type);\n });\n\n return {\n defs: {\n valObjects: valObjectMeta,\n metaKeys: UNDERSCORE_ATTRS.concat(['description', 'role', 'editType', 'impliedEdits']),\n editType: {\n traces: editTypes.traces,\n layout: editTypes.layout\n },\n impliedEdits: {\n \n }\n },\n\n traces: traces,\n layout: getLayoutAttributes(),\n\n transforms: transforms,\n\n frames: getFramesAttributes(),\n animation: formatAttributes(animationAttributes),\n\n config: formatAttributes(configAttributes)\n };\n};\n\n/**\n * Crawl the attribute tree, recursively calling a callback function\n *\n * @param {object} attrs\n * The node of the attribute tree (e.g. the root) from which recursion originates\n * @param {Function} callback\n * A callback function with the signature:\n * @callback callback\n * @param {object} attr an attribute\n * @param {String} attrName name string\n * @param {object[]} attrs all the attributes\n * @param {Number} level the recursion level, 0 at the root\n * @param {String} fullAttrString full attribute name (ie 'marker.line')\n * @param {Number} [specifiedLevel]\n * The level in the tree, in order to let the callback function detect descend or backtrack,\n * typically unsupplied (implied 0), just used by the self-recursive call.\n * The necessity arises because the tree traversal is not controlled by callback return values.\n * The decision to not use callback return values for controlling tree pruning arose from\n * the goal of keeping the crawler backwards compatible. Observe that one of the pruning conditions\n * precedes the callback call.\n * @param {string} [attrString]\n * the path to the current attribute, as an attribute string (ie 'marker.line')\n * typically unsupplied, but you may supply it if you want to disambiguate which attrs tree you\n * are starting from\n *\n * @return {object} transformOut\n * copy of transformIn that contains attribute defaults\n */\nexports.crawl = function(attrs, callback, specifiedLevel, attrString) {\n var level = specifiedLevel || 0;\n attrString = attrString || '';\n\n Object.keys(attrs).forEach(function(attrName) {\n var attr = attrs[attrName];\n\n if(UNDERSCORE_ATTRS.indexOf(attrName) !== -1) return;\n\n var fullAttrString = (attrString ? attrString + '.' : '') + attrName;\n callback(attr, attrName, attrs, level, fullAttrString);\n\n if(exports.isValObject(attr)) return;\n\n if(isPlainObject(attr) && attrName !== 'impliedEdits') {\n exports.crawl(attr, callback, level + 1, fullAttrString);\n }\n });\n};\n\n/** Is object a value object (or a container object)?\n *\n * @param {object} obj\n * @return {boolean}\n * returns true for a valid value object and\n * false for tree nodes in the attribute hierarchy\n */\nexports.isValObject = function(obj) {\n return obj && obj.valType !== undefined;\n};\n\n/**\n * Find all data array attributes in a given trace object - including\n * `arrayOk` attributes.\n *\n * @param {object} trace\n * full trace object that contains a reference to `_module.attributes`\n *\n * @return {array} arrayAttributes\n * list of array attributes for the given trace\n */\nexports.findArrayAttributes = function(trace) {\n var arrayAttributes = [];\n var stack = [];\n var isArrayStack = [];\n var baseContainer, baseAttrName;\n\n function callback(attr, attrName, attrs, level) {\n stack = stack.slice(0, level).concat([attrName]);\n isArrayStack = isArrayStack.slice(0, level).concat([attr && attr._isLinkedToArray]);\n\n var splittableAttr = (\n attr &&\n (attr.valType === 'data_array' || attr.arrayOk === true) &&\n !(stack[level - 1] === 'colorbar' && (attrName === 'ticktext' || attrName === 'tickvals'))\n );\n\n // Manually exclude 'colorbar.tickvals' and 'colorbar.ticktext' for now\n // which are declared as `valType: 'data_array'` but scale independently of\n // the coordinate arrays.\n //\n // Down the road, we might want to add a schema field (e.g `uncorrelatedArray: true`)\n // to distinguish attributes of the likes.\n\n if(!splittableAttr) return;\n\n crawlIntoTrace(baseContainer, 0, '');\n }\n\n function crawlIntoTrace(container, i, astrPartial) {\n var item = container[stack[i]];\n var newAstrPartial = astrPartial + stack[i];\n if(i === stack.length - 1) {\n if(isArrayOrTypedArray(item)) {\n arrayAttributes.push(baseAttrName + newAstrPartial);\n }\n } else {\n if(isArrayStack[i]) {\n if(Array.isArray(item)) {\n for(var j = 0; j < item.length; j++) {\n if(isPlainObject(item[j])) {\n crawlIntoTrace(item[j], i + 1, newAstrPartial + '[' + j + '].');\n }\n }\n }\n } else if(isPlainObject(item)) {\n crawlIntoTrace(item, i + 1, newAstrPartial + '.');\n }\n }\n }\n\n baseContainer = trace;\n baseAttrName = '';\n exports.crawl(baseAttributes, callback);\n if(trace._module && trace._module.attributes) {\n exports.crawl(trace._module.attributes, callback);\n }\n\n var transforms = trace.transforms;\n if(transforms) {\n for(var i = 0; i < transforms.length; i++) {\n var transform = transforms[i];\n var module = transform._module;\n\n if(module) {\n baseAttrName = 'transforms[' + i + '].';\n baseContainer = transform;\n\n exports.crawl(module.attributes, callback);\n }\n }\n }\n\n return arrayAttributes;\n};\n\n/*\n * Find the valObject for one attribute in an existing trace\n *\n * @param {object} trace\n * full trace object that contains a reference to `_module.attributes`\n * @param {object} parts\n * an array of parts, like ['transforms', 1, 'value']\n * typically from nestedProperty(...).parts\n *\n * @return {object|false}\n * the valObject for this attribute, or the last found parent\n * in some cases the innermost valObject will not exist, for example\n * `valType: 'any'` attributes where we might set a part of the attribute.\n * In that case, stop at the deepest valObject we *do* find.\n */\nexports.getTraceValObject = function(trace, parts) {\n var head = parts[0];\n var i = 1; // index to start recursing from\n var moduleAttrs, valObject;\n\n if(head === 'transforms') {\n if(parts.length === 1) {\n return baseAttributes.transforms;\n }\n var transforms = trace.transforms;\n if(!Array.isArray(transforms) || !transforms.length) return false;\n var tNum = parts[1];\n if(!isIndex(tNum) || tNum >= transforms.length) {\n return false;\n }\n moduleAttrs = (Registry.transformsRegistry[transforms[tNum].type] || {}).attributes;\n valObject = moduleAttrs && moduleAttrs[parts[2]];\n i = 3; // start recursing only inside the transform\n } else if(trace.type === 'area') {\n valObject = polarAreaAttrs[head];\n } else {\n // first look in the module for this trace\n // components have already merged their trace attributes in here\n var _module = trace._module;\n if(!_module) _module = (Registry.modules[trace.type || baseAttributes.type.dflt] || {})._module;\n if(!_module) return false;\n\n moduleAttrs = _module.attributes;\n valObject = moduleAttrs && moduleAttrs[head];\n\n // then look in the subplot attributes\n if(!valObject) {\n var subplotModule = _module.basePlotModule;\n if(subplotModule && subplotModule.attributes) {\n valObject = subplotModule.attributes[head];\n }\n }\n\n // finally look in the global attributes\n if(!valObject) valObject = baseAttributes[head];\n }\n\n return recurseIntoValObject(valObject, parts, i);\n};\n\n/*\n * Find the valObject for one layout attribute\n *\n * @param {array} parts\n * an array of parts, like ['annotations', 1, 'x']\n * typically from nestedProperty(...).parts\n *\n * @return {object|false}\n * the valObject for this attribute, or the last found parent\n * in some cases the innermost valObject will not exist, for example\n * `valType: 'any'` attributes where we might set a part of the attribute.\n * In that case, stop at the deepest valObject we *do* find.\n */\nexports.getLayoutValObject = function(fullLayout, parts) {\n var valObject = layoutHeadAttr(fullLayout, parts[0]);\n\n return recurseIntoValObject(valObject, parts, 1);\n};\n\nfunction layoutHeadAttr(fullLayout, head) {\n var i, key, _module, attributes;\n\n // look for attributes of the subplot types used on the plot\n var basePlotModules = fullLayout._basePlotModules;\n if(basePlotModules) {\n var out;\n for(i = 0; i < basePlotModules.length; i++) {\n _module = basePlotModules[i];\n if(_module.attrRegex && _module.attrRegex.test(head)) {\n // if a module defines overrides, these take precedence\n // initially this is to allow gl2d different editTypes from svg cartesian\n if(_module.layoutAttrOverrides) return _module.layoutAttrOverrides;\n\n // otherwise take the first attributes we find\n if(!out && _module.layoutAttributes) out = _module.layoutAttributes;\n }\n\n // a module can also override the behavior of base (and component) module layout attrs\n // again see gl2d for initial use case\n var baseOverrides = _module.baseLayoutAttrOverrides;\n if(baseOverrides && head in baseOverrides) return baseOverrides[head];\n }\n if(out) return out;\n }\n\n // look for layout attributes contributed by traces on the plot\n var modules = fullLayout._modules;\n if(modules) {\n for(i = 0; i < modules.length; i++) {\n attributes = modules[i].layoutAttributes;\n if(attributes && head in attributes) {\n return attributes[head];\n }\n }\n }\n\n /*\n * Next look in components.\n * Components that define a schema have already merged this into\n * base and subplot attribute defs, so ignore these.\n * Others (older style) all put all their attributes\n * inside a container matching the module `name`\n * eg `attributes` (array) or `legend` (object)\n */\n for(key in Registry.componentsRegistry) {\n _module = Registry.componentsRegistry[key];\n if(_module.name === 'colorscale' && head.indexOf('coloraxis') === 0) {\n return _module.layoutAttributes[head];\n } else if(!_module.schema && (head === _module.name)) {\n return _module.layoutAttributes;\n }\n }\n\n if(head in baseLayoutAttributes) return baseLayoutAttributes[head];\n\n // Polar doesn't populate _modules or _basePlotModules\n // just fall back on these when the others fail\n if(head === 'radialaxis' || head === 'angularaxis') {\n return polarAxisAttrs[head];\n }\n return polarAxisAttrs.layout[head] || false;\n}\n\nfunction recurseIntoValObject(valObject, parts, i) {\n if(!valObject) return false;\n\n if(valObject._isLinkedToArray) {\n // skip array index, abort if we try to dive into an array without an index\n if(isIndex(parts[i])) i++;\n else if(i < parts.length) return false;\n }\n\n // now recurse as far as we can. Occasionally we have an attribute\n // setting an internal part below what's in the schema; just return\n // the innermost schema item we find.\n for(; i < parts.length; i++) {\n var newValObject = valObject[parts[i]];\n if(isPlainObject(newValObject)) valObject = newValObject;\n else break;\n\n if(i === parts.length - 1) break;\n\n if(valObject._isLinkedToArray) {\n i++;\n if(!isIndex(parts[i])) return false;\n } else if(valObject.valType === 'info_array') {\n i++;\n var index = parts[i];\n if(!isIndex(index)) return false;\n\n var items = valObject.items;\n if(Array.isArray(items)) {\n if(index >= items.length) return false;\n if(valObject.dimensions === 2) {\n i++;\n if(parts.length === i) return valObject;\n var index2 = parts[i];\n if(!isIndex(index2)) return false;\n valObject = items[index][index2];\n } else valObject = items[index];\n } else {\n valObject = items;\n }\n }\n }\n\n return valObject;\n}\n\n// note: this is different from Lib.isIndex, this one doesn't accept numeric\n// strings, only actual numbers.\nfunction isIndex(val) {\n return val === Math.round(val) && val >= 0;\n}\n\nfunction getTraceAttributes(type) {\n var _module, basePlotModule;\n\n if(type === 'area') {\n _module = { attributes: polarAreaAttrs };\n basePlotModule = {};\n } else {\n _module = Registry.modules[type]._module,\n basePlotModule = _module.basePlotModule;\n }\n\n var attributes = {};\n\n // make 'type' the first attribute in the object\n attributes.type = null;\n\n var copyBaseAttributes = extendDeepAll({}, baseAttributes);\n var copyModuleAttributes = extendDeepAll({}, _module.attributes);\n\n // prune global-level trace attributes that are already defined in a trace\n exports.crawl(copyModuleAttributes, function(attr, attrName, attrs, level, fullAttrString) {\n nestedProperty(copyBaseAttributes, fullAttrString).set(undefined);\n // Prune undefined attributes\n if(attr === undefined) nestedProperty(copyModuleAttributes, fullAttrString).set(undefined);\n });\n\n // base attributes (same for all trace types)\n extendDeepAll(attributes, copyBaseAttributes);\n\n // prune-out base attributes based on trace module categories\n if(Registry.traceIs(type, 'noOpacity')) {\n delete attributes.opacity;\n }\n if(!Registry.traceIs(type, 'showLegend')) {\n delete attributes.showlegend;\n delete attributes.legendgroup;\n }\n if(Registry.traceIs(type, 'noHover')) {\n delete attributes.hoverinfo;\n delete attributes.hoverlabel;\n }\n if(!_module.selectPoints) {\n delete attributes.selectedpoints;\n }\n\n // module attributes\n extendDeepAll(attributes, copyModuleAttributes);\n\n // subplot attributes\n if(basePlotModule.attributes) {\n extendDeepAll(attributes, basePlotModule.attributes);\n }\n\n // 'type' gets overwritten by baseAttributes; reset it here\n attributes.type = type;\n\n var out = {\n meta: _module.meta || {},\n categories: _module.categories || {},\n animatable: Boolean(_module.animatable),\n type: type,\n attributes: formatAttributes(attributes),\n };\n\n // trace-specific layout attributes\n if(_module.layoutAttributes) {\n var layoutAttributes = {};\n\n extendDeepAll(layoutAttributes, _module.layoutAttributes);\n out.layoutAttributes = formatAttributes(layoutAttributes);\n }\n\n // drop anim:true in non-animatable modules\n if(!_module.animatable) {\n exports.crawl(out, function(attr) {\n if(exports.isValObject(attr) && 'anim' in attr) {\n delete attr.anim;\n }\n });\n }\n\n return out;\n}\n\nfunction getLayoutAttributes() {\n var layoutAttributes = {};\n var key, _module;\n\n // global layout attributes\n extendDeepAll(layoutAttributes, baseLayoutAttributes);\n\n // add base plot module layout attributes\n for(key in Registry.subplotsRegistry) {\n _module = Registry.subplotsRegistry[key];\n\n if(!_module.layoutAttributes) continue;\n\n if(Array.isArray(_module.attr)) {\n for(var i = 0; i < _module.attr.length; i++) {\n handleBasePlotModule(layoutAttributes, _module, _module.attr[i]);\n }\n } else {\n var astr = _module.attr === 'subplot' ? _module.name : _module.attr;\n handleBasePlotModule(layoutAttributes, _module, astr);\n }\n }\n\n // polar layout attributes\n layoutAttributes = assignPolarLayoutAttrs(layoutAttributes);\n\n // add registered components layout attributes\n for(key in Registry.componentsRegistry) {\n _module = Registry.componentsRegistry[key];\n var schema = _module.schema;\n\n if(schema && (schema.subplots || schema.layout)) {\n /*\n * Components with defined schema have already been merged in at register time\n * but a few components define attributes that apply only to xaxis\n * not yaxis (rangeselector, rangeslider) - delete from y schema.\n * Note that the input attributes for xaxis/yaxis are the same object\n * so it's not possible to only add them to xaxis from the start.\n * If we ever have such asymmetry the other way, or anywhere else,\n * we will need to extend both this code and mergeComponentAttrsToSubplot\n * (which will not find yaxis only for example)\n */\n var subplots = schema.subplots;\n if(subplots && subplots.xaxis && !subplots.yaxis) {\n for(var xkey in subplots.xaxis) {\n delete layoutAttributes.yaxis[xkey];\n }\n }\n } else if(_module.name === 'colorscale') {\n extendDeepAll(layoutAttributes, _module.layoutAttributes);\n } else if(_module.layoutAttributes) {\n // older style without schema need to be explicitly merged in now\n insertAttrs(layoutAttributes, _module.layoutAttributes, _module.name);\n }\n }\n\n return {\n layoutAttributes: formatAttributes(layoutAttributes)\n };\n}\n\nfunction getTransformAttributes(type) {\n var _module = Registry.transformsRegistry[type];\n var attributes = extendDeepAll({}, _module.attributes);\n\n // add registered components transform attributes\n Object.keys(Registry.componentsRegistry).forEach(function(k) {\n var _module = Registry.componentsRegistry[k];\n\n if(_module.schema && _module.schema.transforms && _module.schema.transforms[type]) {\n Object.keys(_module.schema.transforms[type]).forEach(function(v) {\n insertAttrs(attributes, _module.schema.transforms[type][v], v);\n });\n }\n });\n\n return {\n attributes: formatAttributes(attributes)\n };\n}\n\nfunction getFramesAttributes() {\n var attrs = {\n frames: extendDeepAll({}, frameAttributes)\n };\n\n formatAttributes(attrs);\n\n return attrs.frames;\n}\n\nfunction formatAttributes(attrs) {\n mergeValTypeAndRole(attrs);\n formatArrayContainers(attrs);\n stringify(attrs);\n\n return attrs;\n}\n\nfunction mergeValTypeAndRole(attrs) {\n function makeSrcAttr(attrName) {\n return {\n valType: 'string',\n \n \n editType: 'none'\n };\n }\n\n function callback(attr, attrName, attrs) {\n if(exports.isValObject(attr)) {\n if(attr.valType === 'data_array') {\n // all 'data_array' attrs have role 'data'\n attr.role = 'data';\n // all 'data_array' attrs have a corresponding 'src' attr\n attrs[attrName + 'src'] = makeSrcAttr(attrName);\n } else if(attr.arrayOk === true) {\n // all 'arrayOk' attrs have a corresponding 'src' attr\n attrs[attrName + 'src'] = makeSrcAttr(attrName);\n }\n } else if(isPlainObject(attr)) {\n // all attrs container objects get role 'object'\n attr.role = 'object';\n }\n }\n\n exports.crawl(attrs, callback);\n}\n\nfunction formatArrayContainers(attrs) {\n function callback(attr, attrName, attrs) {\n if(!attr) return;\n\n var itemName = attr[IS_LINKED_TO_ARRAY];\n\n if(!itemName) return;\n\n delete attr[IS_LINKED_TO_ARRAY];\n\n attrs[attrName] = { items: {} };\n attrs[attrName].items[itemName] = attr;\n attrs[attrName].role = 'object';\n }\n\n exports.crawl(attrs, callback);\n}\n\n// this can take around 10ms and should only be run from PlotSchema.get(),\n// to ensure JSON.stringify(PlotSchema.get()) gives the intended result.\nfunction stringify(attrs) {\n function walk(attr) {\n for(var k in attr) {\n if(isPlainObject(attr[k])) {\n walk(attr[k]);\n } else if(Array.isArray(attr[k])) {\n for(var i = 0; i < attr[k].length; i++) {\n walk(attr[k][i]);\n }\n } else {\n // as JSON.stringify(/test/) // => {}\n if(attr[k] instanceof RegExp) {\n attr[k] = attr[k].toString();\n }\n }\n }\n }\n\n walk(attrs);\n}\n\nfunction assignPolarLayoutAttrs(layoutAttributes) {\n extendFlat(layoutAttributes, {\n radialaxis: polarAxisAttrs.radialaxis,\n angularaxis: polarAxisAttrs.angularaxis\n });\n\n extendFlat(layoutAttributes, polarAxisAttrs.layout);\n\n return layoutAttributes;\n}\n\nfunction handleBasePlotModule(layoutAttributes, _module, astr) {\n var np = nestedProperty(layoutAttributes, astr);\n var attrs = extendDeepAll({}, _module.layoutAttributes);\n\n attrs[IS_SUBPLOT_OBJ] = true;\n np.set(attrs);\n}\n\nfunction insertAttrs(baseAttrs, newAttrs, astr) {\n var np = nestedProperty(baseAttrs, astr);\n\n np.set(extendDeepAll(np.get() || {}, newAttrs));\n}\n","\"use strict\";\n\nvar objToString = Object.prototype.toString, id = objToString.call(\"\");\n\nmodule.exports = function (value) {\n\treturn (\n\t\ttypeof value === \"string\" ||\n\t\t(value &&\n\t\t\ttypeof value === \"object\" &&\n\t\t\t(value instanceof String || objToString.call(value) === id)) ||\n\t\tfalse\n\t);\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar d3 = require('d3');\n\nvar Lib = require('../../lib');\nvar Drawing = require('../../components/drawing');\nvar Colorscale = require('../../components/colorscale');\nvar svgTextUtils = require('../../lib/svg_text_utils');\nvar Axes = require('../../plots/cartesian/axes');\nvar setConvert = require('../../plots/cartesian/set_convert');\n\nvar heatmapPlot = require('../heatmap/plot');\nvar makeCrossings = require('./make_crossings');\nvar findAllPaths = require('./find_all_paths');\nvar emptyPathinfo = require('./empty_pathinfo');\nvar convertToConstraints = require('./convert_to_constraints');\nvar closeBoundaries = require('./close_boundaries');\nvar constants = require('./constants');\nvar costConstants = constants.LABELOPTIMIZER;\n\nexports.plot = function plot(gd, plotinfo, cdcontours, contourLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n Lib.makeTraceGroups(contourLayer, cdcontours, 'contour').each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n var x = cd0.x;\n var y = cd0.y;\n var contours = trace.contours;\n var pathinfo = emptyPathinfo(contours, plotinfo, cd0);\n\n // use a heatmap to fill - draw it behind the lines\n var heatmapColoringLayer = Lib.ensureSingle(plotGroup, 'g', 'heatmapcoloring');\n var cdheatmaps = [];\n if(contours.coloring === 'heatmap') {\n cdheatmaps = [cd];\n }\n heatmapPlot(gd, plotinfo, cdheatmaps, heatmapColoringLayer);\n\n makeCrossings(pathinfo);\n findAllPaths(pathinfo);\n\n var leftedge = xa.c2p(x[0], true);\n var rightedge = xa.c2p(x[x.length - 1], true);\n var bottomedge = ya.c2p(y[0], true);\n var topedge = ya.c2p(y[y.length - 1], true);\n var perimeter = [\n [leftedge, topedge],\n [rightedge, topedge],\n [rightedge, bottomedge],\n [leftedge, bottomedge]\n ];\n\n var fillPathinfo = pathinfo;\n if(contours.type === 'constraint') {\n // N.B. this also mutates pathinfo\n fillPathinfo = convertToConstraints(pathinfo, contours._operation);\n }\n\n // draw everything\n makeBackground(plotGroup, perimeter, contours);\n makeFills(plotGroup, fillPathinfo, perimeter, contours);\n makeLinesAndLabels(plotGroup, pathinfo, gd, cd0, contours);\n clipGaps(plotGroup, plotinfo, gd, cd0, perimeter);\n });\n};\n\nfunction makeBackground(plotgroup, perimeter, contours) {\n var bggroup = Lib.ensureSingle(plotgroup, 'g', 'contourbg');\n\n var bgfill = bggroup.selectAll('path')\n .data(contours.coloring === 'fill' ? [0] : []);\n bgfill.enter().append('path');\n bgfill.exit().remove();\n bgfill\n .attr('d', 'M' + perimeter.join('L') + 'Z')\n .style('stroke', 'none');\n}\n\nfunction makeFills(plotgroup, pathinfo, perimeter, contours) {\n var hasFills = contours.coloring === 'fill' || (contours.type === 'constraint' && contours._operation !== '=');\n var boundaryPath = 'M' + perimeter.join('L') + 'Z';\n\n // fills prefixBoundary in pathinfo items\n if(hasFills) {\n closeBoundaries(pathinfo, contours);\n }\n\n var fillgroup = Lib.ensureSingle(plotgroup, 'g', 'contourfill');\n\n var fillitems = fillgroup.selectAll('path').data(hasFills ? pathinfo : []);\n fillitems.enter().append('path');\n fillitems.exit().remove();\n fillitems.each(function(pi) {\n // join all paths for this level together into a single path\n // first follow clockwise around the perimeter to close any open paths\n // if the whole perimeter is above this level, start with a path\n // enclosing the whole thing. With all that, the parity should mean\n // that we always fill everything above the contour, nothing below\n var fullpath = (pi.prefixBoundary ? boundaryPath : '') +\n joinAllPaths(pi, perimeter);\n\n if(!fullpath) {\n d3.select(this).remove();\n } else {\n d3.select(this)\n .attr('d', fullpath)\n .style('stroke', 'none');\n }\n });\n}\n\nfunction joinAllPaths(pi, perimeter) {\n var fullpath = '';\n var i = 0;\n var startsleft = pi.edgepaths.map(function(v, i) { return i; });\n var newloop = true;\n var endpt;\n var newendpt;\n var cnt;\n var nexti;\n var possiblei;\n var addpath;\n\n function istop(pt) { return Math.abs(pt[1] - perimeter[0][1]) < 0.01; }\n function isbottom(pt) { return Math.abs(pt[1] - perimeter[2][1]) < 0.01; }\n function isleft(pt) { return Math.abs(pt[0] - perimeter[0][0]) < 0.01; }\n function isright(pt) { return Math.abs(pt[0] - perimeter[2][0]) < 0.01; }\n\n while(startsleft.length) {\n addpath = Drawing.smoothopen(pi.edgepaths[i], pi.smoothing);\n fullpath += newloop ? addpath : addpath.replace(/^M/, 'L');\n startsleft.splice(startsleft.indexOf(i), 1);\n endpt = pi.edgepaths[i][pi.edgepaths[i].length - 1];\n nexti = -1;\n\n // now loop through sides, moving our endpoint until we find a new start\n for(cnt = 0; cnt < 4; cnt++) { // just to prevent infinite loops\n if(!endpt) {\n Lib.log('Missing end?', i, pi);\n break;\n }\n\n if(istop(endpt) && !isright(endpt)) newendpt = perimeter[1]; // right top\n else if(isleft(endpt)) newendpt = perimeter[0]; // left top\n else if(isbottom(endpt)) newendpt = perimeter[3]; // right bottom\n else if(isright(endpt)) newendpt = perimeter[2]; // left bottom\n\n for(possiblei = 0; possiblei < pi.edgepaths.length; possiblei++) {\n var ptNew = pi.edgepaths[possiblei][0];\n // is ptNew on the (horz. or vert.) segment from endpt to newendpt?\n if(Math.abs(endpt[0] - newendpt[0]) < 0.01) {\n if(Math.abs(endpt[0] - ptNew[0]) < 0.01 &&\n (ptNew[1] - endpt[1]) * (newendpt[1] - ptNew[1]) >= 0) {\n newendpt = ptNew;\n nexti = possiblei;\n }\n } else if(Math.abs(endpt[1] - newendpt[1]) < 0.01) {\n if(Math.abs(endpt[1] - ptNew[1]) < 0.01 &&\n (ptNew[0] - endpt[0]) * (newendpt[0] - ptNew[0]) >= 0) {\n newendpt = ptNew;\n nexti = possiblei;\n }\n } else {\n Lib.log('endpt to newendpt is not vert. or horz.',\n endpt, newendpt, ptNew);\n }\n }\n\n endpt = newendpt;\n\n if(nexti >= 0) break;\n fullpath += 'L' + newendpt;\n }\n\n if(nexti === pi.edgepaths.length) {\n Lib.log('unclosed perimeter path');\n break;\n }\n\n i = nexti;\n\n // if we closed back on a loop we already included,\n // close it and start a new loop\n newloop = (startsleft.indexOf(i) === -1);\n if(newloop) {\n i = startsleft[0];\n fullpath += 'Z';\n }\n }\n\n // finally add the interior paths\n for(i = 0; i < pi.paths.length; i++) {\n fullpath += Drawing.smoothclosed(pi.paths[i], pi.smoothing);\n }\n\n return fullpath;\n}\n\nfunction makeLinesAndLabels(plotgroup, pathinfo, gd, cd0, contours) {\n var lineContainer = Lib.ensureSingle(plotgroup, 'g', 'contourlines');\n var showLines = contours.showlines !== false;\n var showLabels = contours.showlabels;\n var clipLinesForLabels = showLines && showLabels;\n\n // Even if we're not going to show lines, we need to create them\n // if we're showing labels, because the fill paths include the perimeter\n // so can't be used to position the labels correctly.\n // In this case we'll remove the lines after making the labels.\n var linegroup = exports.createLines(lineContainer, showLines || showLabels, pathinfo);\n\n var lineClip = exports.createLineClip(lineContainer, clipLinesForLabels, gd, cd0.trace.uid);\n\n var labelGroup = plotgroup.selectAll('g.contourlabels')\n .data(showLabels ? [0] : []);\n\n labelGroup.exit().remove();\n\n labelGroup.enter().append('g')\n .classed('contourlabels', true);\n\n if(showLabels) {\n var labelClipPathData = [];\n var labelData = [];\n\n // invalidate the getTextLocation cache in case paths changed\n Lib.clearLocationCache();\n\n var contourFormat = exports.labelFormatter(gd, cd0);\n\n var dummyText = Drawing.tester.append('text')\n .attr('data-notex', 1)\n .call(Drawing.font, contours.labelfont);\n\n var xa = pathinfo[0].xaxis;\n var ya = pathinfo[0].yaxis;\n var xLen = xa._length;\n var yLen = ya._length;\n var xRng = xa.range;\n var yRng = ya.range;\n var xMin = Lib.aggNums(Math.min, null, cd0.x);\n var xMax = Lib.aggNums(Math.max, null, cd0.x);\n var yMin = Lib.aggNums(Math.min, null, cd0.y);\n var yMax = Lib.aggNums(Math.max, null, cd0.y);\n var x0 = Math.max(xa.c2p(xMin, true), 0);\n var x1 = Math.min(xa.c2p(xMax, true), xLen);\n var y0 = Math.max(ya.c2p(yMax, true), 0);\n var y1 = Math.min(ya.c2p(yMin, true), yLen);\n\n // visible bounds of the contour trace (and the midpoints, to\n // help with cost calculations)\n var bounds = {};\n\n if(xRng[0] < xRng[1]) {\n bounds.left = x0;\n bounds.right = x1;\n } else {\n bounds.left = x1;\n bounds.right = x0;\n }\n\n if(yRng[0] < yRng[1]) {\n bounds.top = y0;\n bounds.bottom = y1;\n } else {\n bounds.top = y1;\n bounds.bottom = y0;\n }\n\n bounds.middle = (bounds.top + bounds.bottom) / 2;\n bounds.center = (bounds.left + bounds.right) / 2;\n\n labelClipPathData.push([\n [bounds.left, bounds.top],\n [bounds.right, bounds.top],\n [bounds.right, bounds.bottom],\n [bounds.left, bounds.bottom]\n ]);\n\n var plotDiagonal = Math.sqrt(xLen * xLen + yLen * yLen);\n\n // the path length to use to scale the number of labels to draw:\n var normLength = constants.LABELDISTANCE * plotDiagonal /\n Math.max(1, pathinfo.length / constants.LABELINCREASE);\n\n linegroup.each(function(d) {\n var textOpts = exports.calcTextOpts(d.level, contourFormat, dummyText, gd);\n\n d3.select(this).selectAll('path').each(function() {\n var path = this;\n var pathBounds = Lib.getVisibleSegment(path, bounds, textOpts.height / 2);\n if(!pathBounds) return;\n\n if(pathBounds.len < (textOpts.width + textOpts.height) * constants.LABELMIN) return;\n\n var maxLabels = Math.min(Math.ceil(pathBounds.len / normLength),\n constants.LABELMAX);\n\n for(var i = 0; i < maxLabels; i++) {\n var loc = exports.findBestTextLocation(path, pathBounds, textOpts,\n labelData, bounds);\n\n if(!loc) break;\n\n exports.addLabelData(loc, textOpts, labelData, labelClipPathData);\n }\n });\n });\n\n dummyText.remove();\n\n exports.drawLabels(labelGroup, labelData, gd, lineClip,\n clipLinesForLabels ? labelClipPathData : null);\n }\n\n if(showLabels && !showLines) linegroup.remove();\n}\n\nexports.createLines = function(lineContainer, makeLines, pathinfo) {\n var smoothing = pathinfo[0].smoothing;\n\n var linegroup = lineContainer.selectAll('g.contourlevel')\n .data(makeLines ? pathinfo : []);\n\n linegroup.exit().remove();\n linegroup.enter().append('g')\n .classed('contourlevel', true);\n\n if(makeLines) {\n // pedgepaths / ppaths are used by contourcarpet, for the paths transformed from a/b to x/y\n // edgepaths / paths are used by contour since it's in x/y from the start\n var opencontourlines = linegroup.selectAll('path.openline')\n .data(function(d) { return d.pedgepaths || d.edgepaths; });\n\n opencontourlines.exit().remove();\n opencontourlines.enter().append('path')\n .classed('openline', true);\n\n opencontourlines\n .attr('d', function(d) {\n return Drawing.smoothopen(d, smoothing);\n })\n .style('stroke-miterlimit', 1)\n .style('vector-effect', 'non-scaling-stroke');\n\n var closedcontourlines = linegroup.selectAll('path.closedline')\n .data(function(d) { return d.ppaths || d.paths; });\n\n closedcontourlines.exit().remove();\n closedcontourlines.enter().append('path')\n .classed('closedline', true);\n\n closedcontourlines\n .attr('d', function(d) {\n return Drawing.smoothclosed(d, smoothing);\n })\n .style('stroke-miterlimit', 1)\n .style('vector-effect', 'non-scaling-stroke');\n }\n\n return linegroup;\n};\n\nexports.createLineClip = function(lineContainer, clipLinesForLabels, gd, uid) {\n var clips = gd._fullLayout._clips;\n var clipId = clipLinesForLabels ? ('clipline' + uid) : null;\n\n var lineClip = clips.selectAll('#' + clipId)\n .data(clipLinesForLabels ? [0] : []);\n lineClip.exit().remove();\n\n lineClip.enter().append('clipPath')\n .classed('contourlineclip', true)\n .attr('id', clipId);\n\n Drawing.setClipUrl(lineContainer, clipId, gd);\n\n return lineClip;\n};\n\nexports.labelFormatter = function(gd, cd0) {\n var fullLayout = gd._fullLayout;\n var trace = cd0.trace;\n var contours = trace.contours;\n\n if(contours.labelformat) {\n return fullLayout._d3locale.numberFormat(contours.labelformat);\n } else {\n var formatAxis;\n var cOpts = Colorscale.extractOpts(trace);\n if(cOpts && cOpts.colorbar && cOpts.colorbar._axis) {\n formatAxis = cOpts.colorbar._axis;\n } else {\n formatAxis = {\n type: 'linear',\n _id: 'ycontour',\n showexponent: 'all',\n exponentformat: 'B'\n };\n\n if(contours.type === 'constraint') {\n var value = contours.value;\n if(Array.isArray(value)) {\n formatAxis.range = [value[0], value[value.length - 1]];\n } else formatAxis.range = [value, value];\n } else {\n formatAxis.range = [contours.start, contours.end];\n formatAxis.nticks = (contours.end - contours.start) / contours.size;\n }\n\n if(formatAxis.range[0] === formatAxis.range[1]) {\n formatAxis.range[1] += formatAxis.range[0] || 1;\n }\n if(!formatAxis.nticks) formatAxis.nticks = 1000;\n\n setConvert(formatAxis, fullLayout);\n Axes.prepTicks(formatAxis);\n formatAxis._tmin = null;\n formatAxis._tmax = null;\n }\n return function(v) {\n return Axes.tickText(formatAxis, v).text;\n };\n }\n};\n\nexports.calcTextOpts = function(level, contourFormat, dummyText, gd) {\n var text = contourFormat(level);\n dummyText.text(text)\n .call(svgTextUtils.convertToTspans, gd);\n var bBox = Drawing.bBox(dummyText.node(), true);\n\n return {\n text: text,\n width: bBox.width,\n height: bBox.height,\n level: level,\n dy: (bBox.top + bBox.bottom) / 2\n };\n};\n\nexports.findBestTextLocation = function(path, pathBounds, textOpts, labelData, plotBounds) {\n var textWidth = textOpts.width;\n\n var p0, dp, pMax, pMin, loc;\n if(pathBounds.isClosed) {\n dp = pathBounds.len / costConstants.INITIALSEARCHPOINTS;\n p0 = pathBounds.min + dp / 2;\n pMax = pathBounds.max;\n } else {\n dp = (pathBounds.len - textWidth) / (costConstants.INITIALSEARCHPOINTS + 1);\n p0 = pathBounds.min + dp + textWidth / 2;\n pMax = pathBounds.max - (dp + textWidth) / 2;\n }\n\n var cost = Infinity;\n for(var j = 0; j < costConstants.ITERATIONS; j++) {\n for(var p = p0; p < pMax; p += dp) {\n var newLocation = Lib.getTextLocation(path, pathBounds.total, p, textWidth);\n var newCost = locationCost(newLocation, textOpts, labelData, plotBounds);\n if(newCost < cost) {\n cost = newCost;\n loc = newLocation;\n pMin = p;\n }\n }\n if(cost > costConstants.MAXCOST * 2) break;\n\n // subsequent iterations just look half steps away from the\n // best we found in the previous iteration\n if(j) dp /= 2;\n p0 = pMin - dp / 2;\n pMax = p0 + dp * 1.5;\n }\n if(cost <= costConstants.MAXCOST) return loc;\n};\n\n/*\n * locationCost: a cost function for label locations\n * composed of three kinds of penalty:\n * - for open paths, being close to the end of the path\n * - the angle away from horizontal\n * - being too close to already placed neighbors\n */\nfunction locationCost(loc, textOpts, labelData, bounds) {\n var halfWidth = textOpts.width / 2;\n var halfHeight = textOpts.height / 2;\n var x = loc.x;\n var y = loc.y;\n var theta = loc.theta;\n var dx = Math.cos(theta) * halfWidth;\n var dy = Math.sin(theta) * halfWidth;\n\n // cost for being near an edge\n var normX = ((x > bounds.center) ? (bounds.right - x) : (x - bounds.left)) /\n (dx + Math.abs(Math.sin(theta) * halfHeight));\n var normY = ((y > bounds.middle) ? (bounds.bottom - y) : (y - bounds.top)) /\n (Math.abs(dy) + Math.cos(theta) * halfHeight);\n if(normX < 1 || normY < 1) return Infinity;\n var cost = costConstants.EDGECOST * (1 / (normX - 1) + 1 / (normY - 1));\n\n // cost for not being horizontal\n cost += costConstants.ANGLECOST * theta * theta;\n\n // cost for being close to other labels\n var x1 = x - dx;\n var y1 = y - dy;\n var x2 = x + dx;\n var y2 = y + dy;\n for(var i = 0; i < labelData.length; i++) {\n var labeli = labelData[i];\n var dxd = Math.cos(labeli.theta) * labeli.width / 2;\n var dyd = Math.sin(labeli.theta) * labeli.width / 2;\n var dist = Lib.segmentDistance(\n x1, y1,\n x2, y2,\n labeli.x - dxd, labeli.y - dyd,\n labeli.x + dxd, labeli.y + dyd\n ) * 2 / (textOpts.height + labeli.height);\n\n var sameLevel = labeli.level === textOpts.level;\n var distOffset = sameLevel ? costConstants.SAMELEVELDISTANCE : 1;\n\n if(dist <= distOffset) return Infinity;\n\n var distFactor = costConstants.NEIGHBORCOST *\n (sameLevel ? costConstants.SAMELEVELFACTOR : 1);\n\n cost += distFactor / (dist - distOffset);\n }\n\n return cost;\n}\n\nexports.addLabelData = function(loc, textOpts, labelData, labelClipPathData) {\n var halfWidth = textOpts.width / 2;\n var halfHeight = textOpts.height / 2;\n\n var x = loc.x;\n var y = loc.y;\n var theta = loc.theta;\n\n var sin = Math.sin(theta);\n var cos = Math.cos(theta);\n var dxw = halfWidth * cos;\n var dxh = halfHeight * sin;\n var dyw = halfWidth * sin;\n var dyh = -halfHeight * cos;\n var bBoxPts = [\n [x - dxw - dxh, y - dyw - dyh],\n [x + dxw - dxh, y + dyw - dyh],\n [x + dxw + dxh, y + dyw + dyh],\n [x - dxw + dxh, y - dyw + dyh],\n ];\n\n labelData.push({\n text: textOpts.text,\n x: x,\n y: y,\n dy: textOpts.dy,\n theta: theta,\n level: textOpts.level,\n width: textOpts.width,\n height: textOpts.height\n });\n\n labelClipPathData.push(bBoxPts);\n};\n\nexports.drawLabels = function(labelGroup, labelData, gd, lineClip, labelClipPathData) {\n var labels = labelGroup.selectAll('text')\n .data(labelData, function(d) {\n return d.text + ',' + d.x + ',' + d.y + ',' + d.theta;\n });\n\n labels.exit().remove();\n\n labels.enter().append('text')\n .attr({\n 'data-notex': 1,\n 'text-anchor': 'middle'\n })\n .each(function(d) {\n var x = d.x + Math.sin(d.theta) * d.dy;\n var y = d.y - Math.cos(d.theta) * d.dy;\n d3.select(this)\n .text(d.text)\n .attr({\n x: x,\n y: y,\n transform: 'rotate(' + (180 * d.theta / Math.PI) + ' ' + x + ' ' + y + ')'\n })\n .call(svgTextUtils.convertToTspans, gd);\n });\n\n if(labelClipPathData) {\n var clipPath = '';\n for(var i = 0; i < labelClipPathData.length; i++) {\n clipPath += 'M' + labelClipPathData[i].join('L') + 'Z';\n }\n\n var lineClipPath = Lib.ensureSingle(lineClip, 'path', '');\n lineClipPath.attr('d', clipPath);\n }\n};\n\nfunction clipGaps(plotGroup, plotinfo, gd, cd0, perimeter) {\n var trace = cd0.trace;\n var clips = gd._fullLayout._clips;\n var clipId = 'clip' + trace.uid;\n\n var clipPath = clips.selectAll('#' + clipId)\n .data(trace.connectgaps ? [] : [0]);\n clipPath.enter().append('clipPath')\n .classed('contourclip', true)\n .attr('id', clipId);\n clipPath.exit().remove();\n\n if(trace.connectgaps === false) {\n var clipPathInfo = {\n // fraction of the way from missing to present point\n // to draw the boundary.\n // if you make this 1 (or 1-epsilon) then a point in\n // a sea of missing data will disappear entirely.\n level: 0.9,\n crossings: {},\n starts: [],\n edgepaths: [],\n paths: [],\n xaxis: plotinfo.xaxis,\n yaxis: plotinfo.yaxis,\n x: cd0.x,\n y: cd0.y,\n // 0 = no data, 1 = data\n z: makeClipMask(cd0),\n smoothing: 0\n };\n\n makeCrossings([clipPathInfo]);\n findAllPaths([clipPathInfo]);\n closeBoundaries([clipPathInfo], {type: 'levels'});\n\n var path = Lib.ensureSingle(clipPath, 'path', '');\n path.attr('d',\n (clipPathInfo.prefixBoundary ? 'M' + perimeter.join('L') + 'Z' : '') +\n joinAllPaths(clipPathInfo, perimeter)\n );\n } else clipId = null;\n\n Drawing.setClipUrl(plotGroup, clipId, gd);\n}\n\nfunction makeClipMask(cd0) {\n var empties = cd0.trace._emptypoints;\n var z = [];\n var m = cd0.z.length;\n var n = cd0.z[0].length;\n var i;\n var row = [];\n var emptyPoint;\n\n for(i = 0; i < n; i++) row.push(1);\n for(i = 0; i < m; i++) z.push(row.slice());\n for(i = 0; i < empties.length; i++) {\n emptyPoint = empties[i];\n z[emptyPoint[0]][emptyPoint[1]] = 0;\n }\n // save this mask to determine whether to show this data in hover\n cd0.zmask = z;\n return z;\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar d3 = require('d3');\nvar Registry = require('../../registry');\nvar appendArrayPointValue = require('../../components/fx/helpers').appendArrayPointValue;\nvar Fx = require('../../components/fx');\nvar Lib = require('../../lib');\nvar Events = require('../../lib/events');\n\nvar helpers = require('./helpers');\nvar pieHelpers = require('../pie/helpers');\n\nvar formatValue = pieHelpers.formatPieValue;\n\nmodule.exports = function attachFxHandlers(sliceTop, entry, gd, cd, opts) {\n var cd0 = cd[0];\n var trace = cd0.trace;\n var hierarchy = cd0.hierarchy;\n\n var isSunburst = trace.type === 'sunburst';\n var isTreemap = trace.type === 'treemap';\n\n // hover state vars\n // have we drawn a hover label, so it should be cleared later\n if(!('_hasHoverLabel' in trace)) trace._hasHoverLabel = false;\n // have we emitted a hover event, so later an unhover event should be emitted\n // note that click events do not depend on this - you can still get them\n // with hovermode: false or if you were earlier dragging, then clicked\n // in the same slice that you moused up in\n if(!('_hasHoverEvent' in trace)) trace._hasHoverEvent = false;\n\n var onMouseOver = function(pt) {\n var fullLayoutNow = gd._fullLayout;\n\n if(gd._dragging || fullLayoutNow.hovermode === false) return;\n\n var traceNow = gd._fullData[trace.index];\n var cdi = pt.data.data;\n var ptNumber = cdi.i;\n var isRoot = helpers.isHierarchyRoot(pt);\n var parent = helpers.getParent(hierarchy, pt);\n\n var val = helpers.getValue(pt);\n\n var _cast = function(astr) {\n return Lib.castOption(traceNow, ptNumber, astr);\n };\n\n var hovertemplate = _cast('hovertemplate');\n var hoverinfo = Fx.castHoverinfo(traceNow, fullLayoutNow, ptNumber);\n var separators = fullLayoutNow.separators;\n\n if(hovertemplate || (hoverinfo && hoverinfo !== 'none' && hoverinfo !== 'skip')) {\n var hoverCenterX;\n var hoverCenterY;\n if(isSunburst) {\n hoverCenterX = cd0.cx + pt.pxmid[0] * (1 - pt.rInscribed);\n hoverCenterY = cd0.cy + pt.pxmid[1] * (1 - pt.rInscribed);\n }\n if(isTreemap) {\n hoverCenterX = pt._hoverX;\n hoverCenterY = pt._hoverY;\n }\n\n var hoverPt = {};\n var parts = [];\n var thisText = [];\n var hasFlag = function(flag) { return parts.indexOf(flag) !== -1; };\n\n if(hoverinfo) {\n parts = hoverinfo === 'all' ?\n traceNow._module.attributes.hoverinfo.flags :\n hoverinfo.split('+');\n }\n\n hoverPt.label = cdi.label;\n if(hasFlag('label') && hoverPt.label) thisText.push(hoverPt.label);\n\n if(cdi.hasOwnProperty('v')) {\n hoverPt.value = cdi.v;\n hoverPt.valueLabel = formatValue(hoverPt.value, separators);\n if(hasFlag('value')) thisText.push(hoverPt.valueLabel);\n }\n\n hoverPt.currentPath = pt.currentPath = helpers.getPath(pt.data);\n if(hasFlag('current path') && !isRoot) {\n thisText.push(hoverPt.currentPath);\n }\n\n var tx;\n var allPercents = [];\n var insertPercent = function() {\n if(allPercents.indexOf(tx) === -1) { // no need to add redundant info\n thisText.push(tx);\n allPercents.push(tx);\n }\n };\n\n hoverPt.percentParent = pt.percentParent = val / helpers.getValue(parent);\n hoverPt.parent = pt.parentString = helpers.getPtLabel(parent);\n if(hasFlag('percent parent')) {\n tx = helpers.formatPercent(hoverPt.percentParent, separators) + ' of ' + hoverPt.parent;\n insertPercent();\n }\n\n hoverPt.percentEntry = pt.percentEntry = val / helpers.getValue(entry);\n hoverPt.entry = pt.entry = helpers.getPtLabel(entry);\n if(hasFlag('percent entry') && !isRoot && !pt.onPathbar) {\n tx = helpers.formatPercent(hoverPt.percentEntry, separators) + ' of ' + hoverPt.entry;\n insertPercent();\n }\n\n hoverPt.percentRoot = pt.percentRoot = val / helpers.getValue(hierarchy);\n hoverPt.root = pt.root = helpers.getPtLabel(hierarchy);\n if(hasFlag('percent root') && !isRoot) {\n tx = helpers.formatPercent(hoverPt.percentRoot, separators) + ' of ' + hoverPt.root;\n insertPercent();\n }\n\n hoverPt.text = _cast('hovertext') || _cast('text');\n if(hasFlag('text')) {\n tx = hoverPt.text;\n if(Lib.isValidTextValue(tx)) thisText.push(tx);\n }\n\n var hoverItems = {\n trace: traceNow,\n y: hoverCenterY,\n text: thisText.join('
'),\n name: (hovertemplate || hasFlag('name')) ? traceNow.name : undefined,\n color: _cast('hoverlabel.bgcolor') || cdi.color,\n borderColor: _cast('hoverlabel.bordercolor'),\n fontFamily: _cast('hoverlabel.font.family'),\n fontSize: _cast('hoverlabel.font.size'),\n fontColor: _cast('hoverlabel.font.color'),\n nameLength: _cast('hoverlabel.namelength'),\n textAlign: _cast('hoverlabel.align'),\n hovertemplate: hovertemplate,\n hovertemplateLabels: hoverPt,\n eventData: [makeEventData(pt, traceNow, opts.eventDataKeys)]\n };\n\n if(isSunburst) {\n hoverItems.x0 = hoverCenterX - pt.rInscribed * pt.rpx1;\n hoverItems.x1 = hoverCenterX + pt.rInscribed * pt.rpx1;\n hoverItems.idealAlign = pt.pxmid[0] < 0 ? 'left' : 'right';\n }\n if(isTreemap) {\n hoverItems.x = hoverCenterX;\n hoverItems.idealAlign = hoverCenterX < 0 ? 'left' : 'right';\n }\n\n Fx.loneHover(hoverItems, {\n container: fullLayoutNow._hoverlayer.node(),\n outerContainer: fullLayoutNow._paper.node(),\n gd: gd\n });\n\n trace._hasHoverLabel = true;\n }\n\n if(isTreemap) {\n var slice = sliceTop.select('path.surface');\n opts.styleOne(slice, pt, traceNow, {\n hovered: true\n });\n }\n\n trace._hasHoverEvent = true;\n gd.emit('plotly_hover', {\n points: [makeEventData(pt, traceNow, opts.eventDataKeys)],\n event: d3.event\n });\n };\n\n var onMouseOut = function(evt) {\n var fullLayoutNow = gd._fullLayout;\n var traceNow = gd._fullData[trace.index];\n var pt = d3.select(this).datum();\n\n if(trace._hasHoverEvent) {\n evt.originalEvent = d3.event;\n gd.emit('plotly_unhover', {\n points: [makeEventData(pt, traceNow, opts.eventDataKeys)],\n event: d3.event\n });\n trace._hasHoverEvent = false;\n }\n\n if(trace._hasHoverLabel) {\n Fx.loneUnhover(fullLayoutNow._hoverlayer.node());\n trace._hasHoverLabel = false;\n }\n\n if(isTreemap) {\n var slice = sliceTop.select('path.surface');\n opts.styleOne(slice, pt, traceNow, {\n hovered: false\n });\n }\n };\n\n var onClick = function(pt) {\n // TODO: this does not support right-click. If we want to support it, we\n // would likely need to change pie to use dragElement instead of straight\n // mapbox event binding. Or perhaps better, make a simple wrapper with the\n // right mousedown, mousemove, and mouseup handlers just for a left/right click\n // mapbox would use this too.\n var fullLayoutNow = gd._fullLayout;\n var traceNow = gd._fullData[trace.index];\n\n var noTransition = isSunburst && (helpers.isHierarchyRoot(pt) || helpers.isLeaf(pt));\n\n var id = helpers.getPtId(pt);\n var nextEntry = helpers.isEntry(pt) ?\n helpers.findEntryWithChild(hierarchy, id) :\n helpers.findEntryWithLevel(hierarchy, id);\n var nextLevel = helpers.getPtId(nextEntry);\n\n var typeClickEvtData = {\n points: [makeEventData(pt, traceNow, opts.eventDataKeys)],\n event: d3.event\n };\n if(!noTransition) typeClickEvtData.nextLevel = nextLevel;\n\n var clickVal = Events.triggerHandler(gd, 'plotly_' + trace.type + 'click', typeClickEvtData);\n\n if(clickVal !== false && fullLayoutNow.hovermode) {\n gd._hoverdata = [makeEventData(pt, traceNow, opts.eventDataKeys)];\n Fx.click(gd, d3.event);\n }\n\n // if click does not trigger a transition, we're done!\n if(noTransition) return;\n\n // if custom handler returns false, we're done!\n if(clickVal === false) return;\n\n // skip if triggered from dragging a nearby cartesian subplot\n if(gd._dragging) return;\n\n // skip during transitions, to avoid potential bugs\n // we could remove this check later\n if(gd._transitioning) return;\n\n // store 'old' level in guiEdit stash, so that subsequent Plotly.react\n // calls with the same uirevision can start from the same entry\n Registry.call('_storeDirectGUIEdit', traceNow, fullLayoutNow._tracePreGUI[traceNow.uid], {\n level: traceNow.level\n });\n\n var frame = {\n data: [{level: nextLevel}],\n traces: [trace.index]\n };\n\n var animOpts = {\n frame: {\n redraw: false,\n duration: opts.transitionTime\n },\n transition: {\n duration: opts.transitionTime,\n easing: opts.transitionEasing\n },\n mode: 'immediate',\n fromcurrent: true\n };\n\n Fx.loneUnhover(fullLayoutNow._hoverlayer.node());\n Registry.call('animate', gd, frame, animOpts);\n };\n\n sliceTop.on('mouseover', onMouseOver);\n sliceTop.on('mouseout', onMouseOut);\n sliceTop.on('click', onClick);\n};\n\nfunction makeEventData(pt, trace, keys) {\n var cdi = pt.data.data;\n\n var out = {\n curveNumber: trace.index,\n pointNumber: cdi.i,\n data: trace._input,\n fullData: trace,\n\n // TODO more things like 'children', 'siblings', 'hierarchy?\n };\n\n for(var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if(key in pt) out[key] = pt[key];\n }\n // handle special case of parent\n if('parentString' in pt && !helpers.isHierarchyRoot(pt)) out.parent = pt.parentString;\n\n appendArrayPointValue(out, trace, cdi.i);\n\n return out;\n}\n","// transliterated from the python snippet here:\n// http://en.wikipedia.org/wiki/Lanczos_approximation\n\nvar g = 7;\nvar p = [\n 0.99999999999980993,\n 676.5203681218851,\n -1259.1392167224028,\n 771.32342877765313,\n -176.61502916214059,\n 12.507343278686905,\n -0.13857109526572012,\n 9.9843695780195716e-6,\n 1.5056327351493116e-7\n];\n\nvar g_ln = 607/128;\nvar p_ln = [\n 0.99999999999999709182,\n 57.156235665862923517,\n -59.597960355475491248,\n 14.136097974741747174,\n -0.49191381609762019978,\n 0.33994649984811888699e-4,\n 0.46523628927048575665e-4,\n -0.98374475304879564677e-4,\n 0.15808870322491248884e-3,\n -0.21026444172410488319e-3,\n 0.21743961811521264320e-3,\n -0.16431810653676389022e-3,\n 0.84418223983852743293e-4,\n -0.26190838401581408670e-4,\n 0.36899182659531622704e-5\n];\n\n// Spouge approximation (suitable for large arguments)\nfunction lngamma(z) {\n\n if(z < 0) return Number('0/0');\n var x = p_ln[0];\n for(var i = p_ln.length - 1; i > 0; --i) x += p_ln[i] / (z + i);\n var t = z + g_ln + 0.5;\n return .5*Math.log(2*Math.PI)+(z+.5)*Math.log(t)-t+Math.log(x)-Math.log(z);\n}\n\nmodule.exports = function gamma (z) {\n if (z < 0.5) {\n return Math.PI / (Math.sin(Math.PI * z) * gamma(1 - z));\n }\n else if(z > 100) return Math.exp(lngamma(z));\n else {\n z -= 1;\n var x = p[0];\n for (var i = 1; i < g + 2; i++) {\n x += p[i] / (z + i);\n }\n var t = z + g + 0.5;\n\n return Math.sqrt(2 * Math.PI)\n * Math.pow(t, z + 0.5)\n * Math.exp(-t)\n * x\n ;\n }\n};\n\nmodule.exports.log = lngamma;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\n// Requirements\n// ============\nvar wrap = require('../../lib/gup').wrap;\nvar hasColorscale = require('../../components/colorscale/helpers').hasColorscale;\nvar colorscaleCalc = require('../../components/colorscale/calc');\nvar filterUnique = require('../../lib/filter_unique.js');\nvar Drawing = require('../../components/drawing');\nvar Lib = require('../../lib');\n\n/**\n * Create a wrapped ParcatsModel object from trace\n *\n * Note: trace defaults have already been applied\n * @param {Object} gd\n * @param {Object} trace\n * @return {Array.}\n */\nmodule.exports = function calc(gd, trace) {\n var visibleDims = Lib.filterVisible(trace.dimensions);\n\n if(visibleDims.length === 0) return [];\n\n var uniqueInfoDims = visibleDims.map(function(dim) {\n var categoryValues;\n if(dim.categoryorder === 'trace') {\n // Use order of first occurrence in trace\n categoryValues = null;\n } else if(dim.categoryorder === 'array') {\n // Use categories specified in `categoryarray` first,\n // then add extra to the end in trace order\n categoryValues = dim.categoryarray;\n } else {\n // Get all categories up front so we can order them\n // Should we check for numbers as sort numerically?\n categoryValues = filterUnique(dim.values).sort();\n if(dim.categoryorder === 'category descending') {\n categoryValues = categoryValues.reverse();\n }\n }\n return getUniqueInfo(dim.values, categoryValues);\n });\n\n var counts,\n count,\n totalCount;\n if(Lib.isArrayOrTypedArray(trace.counts)) {\n counts = trace.counts;\n } else {\n counts = [trace.counts];\n }\n\n validateDimensionDisplayInds(visibleDims);\n\n visibleDims.forEach(function(dim, dimInd) {\n validateCategoryProperties(dim, uniqueInfoDims[dimInd]);\n });\n\n // Handle path colors\n // ------------------\n var line = trace.line;\n var markerColorscale;\n\n // Process colorscale\n if(line) {\n if(hasColorscale(trace, 'line')) {\n colorscaleCalc(gd, trace, {\n vals: trace.line.color,\n containerStr: 'line',\n cLetter: 'c'\n });\n }\n markerColorscale = Drawing.tryColorscale(line);\n } else {\n markerColorscale = Lib.identity;\n }\n\n // Build color generation function\n function getMarkerColorInfo(index) {\n var value, rawColor;\n if(Lib.isArrayOrTypedArray(line.color)) {\n value = line.color[index % line.color.length];\n rawColor = value;\n } else {\n value = line.color;\n }\n\n return {color: markerColorscale(value), rawColor: rawColor};\n }\n\n // Number of values and counts\n // ---------------------------\n var numValues = visibleDims[0].values.length;\n\n // Build path info\n // ---------------\n // Mapping from category inds to PathModel objects\n var pathModels = {};\n\n // Category inds array for each dimension\n var categoryIndsDims = uniqueInfoDims.map(function(di) {return di.inds;});\n\n // Initialize total count\n totalCount = 0;\n var valueInd;\n var d;\n\n for(valueInd = 0; valueInd < numValues; valueInd++) {\n // Category inds for this input value across dimensions\n var categoryIndsPath = [];\n for(d = 0; d < categoryIndsDims.length; d++) {\n categoryIndsPath.push(categoryIndsDims[d][valueInd]);\n }\n\n // Count\n count = counts[valueInd % counts.length];\n\n // Update total count\n totalCount += count;\n\n // Path color\n var pathColorInfo = getMarkerColorInfo(valueInd);\n\n // path key\n var pathKey = categoryIndsPath + '-' + pathColorInfo.rawColor;\n\n // Create / Update PathModel\n if(pathModels[pathKey] === undefined) {\n pathModels[pathKey] = createPathModel(categoryIndsPath,\n pathColorInfo.color,\n pathColorInfo.rawColor);\n }\n updatePathModel(pathModels[pathKey], valueInd, count);\n }\n\n var dimensionModels = visibleDims.map(function(di, i) {\n return createDimensionModel(i, di._index, di._displayindex, di.label, totalCount);\n });\n\n\n for(valueInd = 0; valueInd < numValues; valueInd++) {\n count = counts[valueInd % counts.length];\n\n for(d = 0; d < dimensionModels.length; d++) {\n var containerInd = dimensionModels[d].containerInd;\n var catInd = uniqueInfoDims[d].inds[valueInd];\n var cats = dimensionModels[d].categories;\n\n if(cats[catInd] === undefined) {\n var catValue = trace.dimensions[containerInd]._categoryarray[catInd];\n var catLabel = trace.dimensions[containerInd]._ticktext[catInd];\n cats[catInd] = createCategoryModel(d, catInd, catValue, catLabel);\n }\n\n updateCategoryModel(cats[catInd], valueInd, count);\n }\n }\n\n // Compute unique\n return wrap(createParcatsModel(dimensionModels, pathModels, totalCount));\n};\n\n// Models\n// ======\n\n// Parcats Model\n// -------------\n/**\n * @typedef {Object} ParcatsModel\n * Object containing calculated information about a parcats trace\n *\n * @property {Array.} dimensions\n * Array of dimension models\n * @property {Object.} paths\n * Dictionary from category inds string (e.g. \"1,2,1,1\") to path model\n * @property {Number} maxCats\n * The maximum number of categories of any dimension in the diagram\n * @property {Number} count\n * Total number of input values\n * @property {Object} trace\n */\n\n/**\n * Create and new ParcatsModel object\n * @param {Array.} dimensions\n * @param {Object.} paths\n * @param {Number} count\n * @return {ParcatsModel}\n */\nfunction createParcatsModel(dimensions, paths, count) {\n var maxCats = dimensions\n .map(function(d) {return d.categories.length;})\n .reduce(function(v1, v2) {return Math.max(v1, v2);});\n return {dimensions: dimensions, paths: paths, trace: undefined, maxCats: maxCats, count: count};\n}\n\n// Dimension Model\n// ---------------\n/**\n * @typedef {Object} DimensionModel\n * Object containing calculated information about a single dimension\n *\n * @property {Number} dimensionInd\n * The index of this dimension among the *visible* dimensions\n * @property {Number} containerInd\n * The index of this dimension in the original dimensions container,\n * irrespective of dimension visibility\n * @property {Number} displayInd\n * The display index of this dimension (where 0 is the left most dimension)\n * @property {String} dimensionLabel\n * The label of this dimension\n * @property {Number} count\n * Total number of input values\n * @property {Array.} categories\n * @property {Number|null} dragX\n * The x position of dimension that is currently being dragged. null if not being dragged\n */\n\n/**\n * Create and new DimensionModel object with an empty categories array\n * @param {Number} dimensionInd\n * @param {Number} containerInd\n * @param {Number} displayInd\n * @param {String} dimensionLabel\n * @param {Number} count\n * Total number of input values\n * @return {DimensionModel}\n */\nfunction createDimensionModel(dimensionInd, containerInd, displayInd, dimensionLabel, count) {\n return {\n dimensionInd: dimensionInd,\n containerInd: containerInd,\n displayInd: displayInd,\n dimensionLabel: dimensionLabel,\n count: count,\n categories: [],\n dragX: null\n };\n}\n\n// Category Model\n// --------------\n/**\n * @typedef {Object} CategoryModel\n * Object containing calculated information about a single category.\n *\n * @property {Number} dimensionInd\n * The index of this categories dimension\n * @property {Number} categoryInd\n * The index of this category\n * @property {Number} displayInd\n * The display index of this category (where 0 is the topmost category)\n * @property {String} categoryLabel\n * The name of this category\n * @property categoryValue: Raw value of the category\n * @property {Array} valueInds\n * Array of indices (into the original value array) of all samples in this category\n * @property {Number} count\n * The number of elements from the original array in this path\n * @property {Number|null} dragY\n * The y position of category that is currently being dragged. null if not being dragged\n */\n\n/**\n * Create and return a new CategoryModel object\n * @param {Number} dimensionInd\n * @param {Number} categoryInd\n * The display index of this category (where 0 is the topmost category)\n * @param {String} categoryValue\n * @param {String} categoryLabel\n * @return {CategoryModel}\n */\nfunction createCategoryModel(dimensionInd, categoryInd, categoryValue, categoryLabel) {\n return {\n dimensionInd: dimensionInd,\n categoryInd: categoryInd,\n categoryValue: categoryValue,\n displayInd: categoryInd,\n categoryLabel: categoryLabel,\n valueInds: [],\n count: 0,\n dragY: null\n };\n}\n\n/**\n * Update a CategoryModel object with a new value index\n * Note: The calling parameter is modified in place.\n *\n * @param {CategoryModel} categoryModel\n * @param {Number} valueInd\n * @param {Number} count\n */\nfunction updateCategoryModel(categoryModel, valueInd, count) {\n categoryModel.valueInds.push(valueInd);\n categoryModel.count += count;\n}\n\n\n// Path Model\n// ----------\n/**\n * @typedef {Object} PathModel\n * Object containing calculated information about the samples in a path.\n *\n * @property {Array} categoryInds\n * Array of category indices for each dimension (length `numDimensions`)\n * @param {String} pathColor\n * Color of this path. (Note: Any colorscaling has already taken place)\n * @property {Array} valueInds\n * Array of indices (into the original value array) of all samples in this path\n * @property {Number} count\n * The number of elements from the original array in this path\n * @property {String} color\n * The path's color (ass CSS color string)\n * @property rawColor\n * The raw color value specified by the user. May be a CSS color string or a Number\n */\n\n/**\n * Create and return a new PathModel object\n * @param {Array} categoryInds\n * @param color\n * @param rawColor\n * @return {PathModel}\n */\nfunction createPathModel(categoryInds, color, rawColor) {\n return {\n categoryInds: categoryInds,\n color: color,\n rawColor: rawColor,\n valueInds: [],\n count: 0\n };\n}\n\n/**\n * Update a PathModel object with a new value index\n * Note: The calling parameter is modified in place.\n *\n * @param {PathModel} pathModel\n * @param {Number} valueInd\n * @param {Number} count\n */\nfunction updatePathModel(pathModel, valueInd, count) {\n pathModel.valueInds.push(valueInd);\n pathModel.count += count;\n}\n\n// Unique calculations\n// ===================\n/**\n * @typedef {Object} UniqueInfo\n * Object containing information about the unique values of an input array\n *\n * @property {Array} uniqueValues\n * The unique values in the input array\n * @property {Array} uniqueCounts\n * The number of times each entry in uniqueValues occurs in input array.\n * This has the same length as `uniqueValues`\n * @property {Array} inds\n * Indices into uniqueValues that would reproduce original input array\n */\n\n/**\n * Compute unique value information for an array\n *\n * IMPORTANT: Note that values are considered unique\n * if their string representations are unique.\n *\n * @param {Array} values\n * @param {Array|undefined} uniqueValues\n * Array of expected unique values. The uniqueValues property of the resulting UniqueInfo object will begin with\n * these entries. Entries are included even if there are zero occurrences in the values array. Entries found in\n * the values array that are not present in uniqueValues will be included at the end of the array in the\n * UniqueInfo object.\n * @return {UniqueInfo}\n */\nfunction getUniqueInfo(values, uniqueValues) {\n // Initialize uniqueValues if not specified\n if(uniqueValues === undefined || uniqueValues === null) {\n uniqueValues = [];\n } else {\n // Shallow copy so append below doesn't alter input array\n uniqueValues = uniqueValues.map(function(e) {return e;});\n }\n\n // Initialize Variables\n var uniqueValueCounts = {};\n var uniqueValueInds = {};\n var inds = [];\n\n // Initialize uniqueValueCounts and\n uniqueValues.forEach(function(uniqueVal, valInd) {\n uniqueValueCounts[uniqueVal] = 0;\n uniqueValueInds[uniqueVal] = valInd;\n });\n\n // Compute the necessary unique info in a single pass\n for(var i = 0; i < values.length; i++) {\n var item = values[i];\n var itemInd;\n\n if(uniqueValueCounts[item] === undefined) {\n // This item has a previously unseen value\n uniqueValueCounts[item] = 1;\n itemInd = uniqueValues.push(item) - 1;\n uniqueValueInds[item] = itemInd;\n } else {\n // Increment count for this item\n uniqueValueCounts[item]++;\n itemInd = uniqueValueInds[item];\n }\n inds.push(itemInd);\n }\n\n // Build UniqueInfo\n var uniqueCounts = uniqueValues.map(function(v) { return uniqueValueCounts[v]; });\n\n return {\n uniqueValues: uniqueValues,\n uniqueCounts: uniqueCounts,\n inds: inds\n };\n}\n\n\n/**\n * Validate the requested display order for the dimensions.\n * If the display order is a permutation of 0 through dimensions.length - 1, link to _displayindex\n * Otherwise, replace the display order with the dimension order\n * @param {Object} trace\n */\nfunction validateDimensionDisplayInds(visibleDims) {\n var displayInds = visibleDims.map(function(d) { return d.displayindex; });\n var i;\n\n if(isRangePermutation(displayInds)) {\n for(i = 0; i < visibleDims.length; i++) {\n visibleDims[i]._displayindex = visibleDims[i].displayindex;\n }\n } else {\n for(i = 0; i < visibleDims.length; i++) {\n visibleDims[i]._displayindex = i;\n }\n }\n}\n\n\n/**\n * Update category properties based on the unique values found for this dimension\n * @param {Object} dim\n * @param {UniqueInfo} uniqueInfoDim\n */\nfunction validateCategoryProperties(dim, uniqueInfoDim) {\n // Update categoryarray\n dim._categoryarray = uniqueInfoDim.uniqueValues;\n\n // Handle ticktext\n if(dim.ticktext === null || dim.ticktext === undefined) {\n dim._ticktext = [];\n } else {\n // Shallow copy to avoid modifying input array\n dim._ticktext = dim.ticktext.slice();\n }\n\n // Extend ticktext with elements from uniqueInfoDim.uniqueValues\n for(var i = dim._ticktext.length; i < uniqueInfoDim.uniqueValues.length; i++) {\n dim._ticktext.push(uniqueInfoDim.uniqueValues[i]);\n }\n}\n\n/**\n * Determine whether an array contains a permutation of the integers from 0 to the array's length - 1\n * @param {Array} inds\n * @return {boolean}\n */\nfunction isRangePermutation(inds) {\n var indsSpecified = new Array(inds.length);\n\n for(var i = 0; i < inds.length; i++) {\n // Check for out of bounds\n if(inds[i] < 0 || inds[i] >= inds.length) {\n return false;\n }\n\n // Check for collisions with already specified index\n if(indsSpecified[inds[i]] !== undefined) {\n return false;\n }\n\n indsSpecified[inds[i]] = true;\n }\n\n // Nothing out of bounds and no collisions. We have a permutation\n return true;\n}\n","module.exports = [\r\n '<<='\r\n , '>>='\r\n , '++'\r\n , '--'\r\n , '<<'\r\n , '>>'\r\n , '<='\r\n , '>='\r\n , '=='\r\n , '!='\r\n , '&&'\r\n , '||'\r\n , '+='\r\n , '-='\r\n , '*='\r\n , '/='\r\n , '%='\r\n , '&='\r\n , '^^'\r\n , '^='\r\n , '|='\r\n , '('\r\n , ')'\r\n , '['\r\n , ']'\r\n , '.'\r\n , '!'\r\n , '~'\r\n , '*'\r\n , '/'\r\n , '%'\r\n , '+'\r\n , '-'\r\n , '<'\r\n , '>'\r\n , '&'\r\n , '^'\r\n , '|'\r\n , '?'\r\n , ':'\r\n , '='\r\n , ','\r\n , ';'\r\n , '{'\r\n , '}'\r\n]\r\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar isNumeric = require('fast-isnumeric');\n\nvar Axes = require('../../plots/cartesian/axes');\nvar Lib = require('../../lib');\n\nvar BADNUM = require('../../constants/numerical').BADNUM;\nvar _ = Lib._;\n\nmodule.exports = function calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var xa = Axes.getFromId(gd, trace.xaxis || 'x');\n var ya = Axes.getFromId(gd, trace.yaxis || 'y');\n var cd = [];\n\n // N.B. violin reuses same Box.calc\n var numKey = trace.type === 'violin' ? '_numViolins' : '_numBoxes';\n\n var i, j;\n var valAxis, valLetter;\n var posAxis, posLetter;\n\n if(trace.orientation === 'h') {\n valAxis = xa;\n valLetter = 'x';\n posAxis = ya;\n posLetter = 'y';\n } else {\n valAxis = ya;\n valLetter = 'y';\n posAxis = xa;\n posLetter = 'x';\n }\n\n var posArray = getPos(trace, posLetter, posAxis, fullLayout[numKey]);\n var dv = Lib.distinctVals(posArray);\n var posDistinct = dv.vals;\n var dPos = dv.minDiff / 2;\n\n // item in trace calcdata\n var cdi;\n // array of {v: v, i, i} sample pts\n var pts;\n // values of the `pts` array of objects\n var boxVals;\n // length of sample\n var N;\n // single sample point\n var pt;\n // single sample value\n var v;\n\n // filter function for outlier pts\n // outlier definition based on http://www.physics.csbsju.edu/stats/box2.html\n var ptFilterFn = (trace.boxpoints || trace.points) === 'all' ?\n Lib.identity :\n function(pt) { return (pt.v < cdi.lf || pt.v > cdi.uf); };\n\n if(trace._hasPreCompStats) {\n var valArrayRaw = trace[valLetter];\n var d2c = function(k) { return valAxis.d2c((trace[k] || [])[i]); };\n var minVal = Infinity;\n var maxVal = -Infinity;\n\n for(i = 0; i < trace._length; i++) {\n var posi = posArray[i];\n if(!isNumeric(posi)) continue;\n\n cdi = {};\n cdi.pos = cdi[posLetter] = posi;\n\n cdi.q1 = d2c('q1');\n cdi.med = d2c('median');\n cdi.q3 = d2c('q3');\n\n pts = [];\n if(valArrayRaw && Lib.isArrayOrTypedArray(valArrayRaw[i])) {\n for(j = 0; j < valArrayRaw[i].length; j++) {\n v = valAxis.d2c(valArrayRaw[i][j]);\n if(v !== BADNUM) {\n pt = {v: v, i: [i, j]};\n arraysToCalcdata(pt, trace, [i, j]);\n pts.push(pt);\n }\n }\n }\n cdi.pts = pts.sort(sortByVal);\n boxVals = cdi[valLetter] = pts.map(extractVal);\n N = boxVals.length;\n\n if(cdi.med !== BADNUM && cdi.q1 !== BADNUM && cdi.q3 !== BADNUM &&\n cdi.med >= cdi.q1 && cdi.q3 >= cdi.med\n ) {\n var lf = d2c('lowerfence');\n cdi.lf = (lf !== BADNUM && lf <= cdi.q1) ?\n lf :\n computeLowerFence(cdi, boxVals, N);\n\n var uf = d2c('upperfence');\n cdi.uf = (uf !== BADNUM && uf >= cdi.q3) ?\n uf :\n computeUpperFence(cdi, boxVals, N);\n\n var mean = d2c('mean');\n cdi.mean = (mean !== BADNUM) ?\n mean :\n (N ? Lib.mean(boxVals, N) : (cdi.q1 + cdi.q3) / 2);\n\n var sd = d2c('sd');\n cdi.sd = (mean !== BADNUM && sd >= 0) ?\n sd :\n (N ? Lib.stdev(boxVals, N, cdi.mean) : (cdi.q3 - cdi.q1));\n\n cdi.lo = computeLowerOutlierBound(cdi);\n cdi.uo = computeUpperOutlierBound(cdi);\n\n var ns = d2c('notchspan');\n ns = (ns !== BADNUM && ns > 0) ? ns : computeNotchSpan(cdi, N);\n cdi.ln = cdi.med - ns;\n cdi.un = cdi.med + ns;\n\n var imin = cdi.lf;\n var imax = cdi.uf;\n if(trace.boxpoints && boxVals.length) {\n imin = Math.min(imin, boxVals[0]);\n imax = Math.max(imax, boxVals[N - 1]);\n }\n if(trace.notched) {\n imin = Math.min(imin, cdi.ln);\n imax = Math.max(imax, cdi.un);\n }\n cdi.min = imin;\n cdi.max = imax;\n } else {\n Lib.warn([\n 'Invalid input - make sure that q1 <= median <= q3',\n 'q1 = ' + cdi.q1,\n 'median = ' + cdi.med,\n 'q3 = ' + cdi.q3\n ].join('\\n'));\n\n var v0;\n if(cdi.med !== BADNUM) {\n v0 = cdi.med;\n } else if(cdi.q1 !== BADNUM) {\n if(cdi.q3 !== BADNUM) v0 = (cdi.q1 + cdi.q3) / 2;\n else v0 = cdi.q1;\n } else if(cdi.q3 !== BADNUM) {\n v0 = cdi.q3;\n } else {\n v0 = 0;\n }\n\n // draw box as line segment\n cdi.med = v0;\n cdi.q1 = cdi.q3 = v0;\n cdi.lf = cdi.uf = v0;\n cdi.mean = cdi.sd = v0;\n cdi.ln = cdi.un = v0;\n cdi.min = cdi.max = v0;\n }\n\n minVal = Math.min(minVal, cdi.min);\n maxVal = Math.max(maxVal, cdi.max);\n\n cdi.pts2 = pts.filter(ptFilterFn);\n\n cd.push(cdi);\n }\n\n trace._extremes[valAxis._id] = Axes.findExtremes(valAxis,\n [minVal, maxVal],\n {padded: true}\n );\n } else {\n var valArray = valAxis.makeCalcdata(trace, valLetter);\n var posBins = makeBins(posDistinct, dPos);\n var pLen = posDistinct.length;\n var ptsPerBin = initNestedArray(pLen);\n\n // bin pts info per position bins\n for(i = 0; i < trace._length; i++) {\n v = valArray[i];\n if(!isNumeric(v)) continue;\n\n var n = Lib.findBin(posArray[i], posBins);\n if(n >= 0 && n < pLen) {\n pt = {v: v, i: i};\n arraysToCalcdata(pt, trace, i);\n ptsPerBin[n].push(pt);\n }\n }\n\n var minLowerNotch = Infinity;\n var maxUpperNotch = -Infinity;\n\n var quartilemethod = trace.quartilemethod;\n var usesExclusive = quartilemethod === 'exclusive';\n var usesInclusive = quartilemethod === 'inclusive';\n\n // build calcdata trace items, one item per distinct position\n for(i = 0; i < pLen; i++) {\n if(ptsPerBin[i].length > 0) {\n cdi = {};\n cdi.pos = cdi[posLetter] = posDistinct[i];\n\n pts = cdi.pts = ptsPerBin[i].sort(sortByVal);\n boxVals = cdi[valLetter] = pts.map(extractVal);\n N = boxVals.length;\n\n cdi.min = boxVals[0];\n cdi.max = boxVals[N - 1];\n cdi.mean = Lib.mean(boxVals, N);\n cdi.sd = Lib.stdev(boxVals, N, cdi.mean);\n cdi.med = Lib.interp(boxVals, 0.5);\n\n if((N % 2) && (usesExclusive || usesInclusive)) {\n var lower;\n var upper;\n\n if(usesExclusive) {\n // do NOT include the median in either half\n lower = boxVals.slice(0, N / 2);\n upper = boxVals.slice(N / 2 + 1);\n } else if(usesInclusive) {\n // include the median in either half\n lower = boxVals.slice(0, N / 2 + 1);\n upper = boxVals.slice(N / 2);\n }\n\n cdi.q1 = Lib.interp(lower, 0.5);\n cdi.q3 = Lib.interp(upper, 0.5);\n } else {\n cdi.q1 = Lib.interp(boxVals, 0.25);\n cdi.q3 = Lib.interp(boxVals, 0.75);\n }\n\n // lower and upper fences\n cdi.lf = computeLowerFence(cdi, boxVals, N);\n cdi.uf = computeUpperFence(cdi, boxVals, N);\n\n // lower and upper outliers bounds\n cdi.lo = computeLowerOutlierBound(cdi);\n cdi.uo = computeUpperOutlierBound(cdi);\n\n // lower and upper notches\n var mci = computeNotchSpan(cdi, N);\n cdi.ln = cdi.med - mci;\n cdi.un = cdi.med + mci;\n minLowerNotch = Math.min(minLowerNotch, cdi.ln);\n maxUpperNotch = Math.max(maxUpperNotch, cdi.un);\n\n cdi.pts2 = pts.filter(ptFilterFn);\n\n cd.push(cdi);\n }\n }\n\n trace._extremes[valAxis._id] = Axes.findExtremes(valAxis,\n trace.notched ? valArray.concat([minLowerNotch, maxUpperNotch]) : valArray,\n {padded: true}\n );\n }\n\n calcSelection(cd, trace);\n\n if(cd.length > 0) {\n cd[0].t = {\n num: fullLayout[numKey],\n dPos: dPos,\n posLetter: posLetter,\n valLetter: valLetter,\n labels: {\n med: _(gd, 'median:'),\n min: _(gd, 'min:'),\n q1: _(gd, 'q1:'),\n q3: _(gd, 'q3:'),\n max: _(gd, 'max:'),\n mean: trace.boxmean === 'sd' ? _(gd, 'mean ± σ:') : _(gd, 'mean:'),\n lf: _(gd, 'lower fence:'),\n uf: _(gd, 'upper fence:')\n }\n };\n\n fullLayout[numKey]++;\n return cd;\n } else {\n return [{t: {empty: true}}];\n }\n};\n\n// In vertical (horizontal) box plots:\n// if no x (y) data, use x0 (y0), or name\n// so if you want one box\n// per trace, set x0 (y0) to the x (y) value or category for this trace\n// (or set x (y) to a constant array matching y (x))\nfunction getPos(trace, posLetter, posAxis, num) {\n var hasPosArray = posLetter in trace;\n var hasPos0 = posLetter + '0' in trace;\n var hasPosStep = 'd' + posLetter in trace;\n\n if(hasPosArray || (hasPos0 && hasPosStep)) {\n return posAxis.makeCalcdata(trace, posLetter);\n }\n\n var pos0;\n if(hasPos0) {\n pos0 = trace[posLetter + '0'];\n } else if('name' in trace && (\n posAxis.type === 'category' || (\n isNumeric(trace.name) &&\n ['linear', 'log'].indexOf(posAxis.type) !== -1\n ) || (\n Lib.isDateTime(trace.name) &&\n posAxis.type === 'date'\n )\n )) {\n pos0 = trace.name;\n } else {\n pos0 = num;\n }\n\n var pos0c = posAxis.type === 'multicategory' ?\n posAxis.r2c_just_indices(pos0) :\n posAxis.d2c(pos0, 0, trace[posLetter + 'calendar']);\n\n var len = trace._length;\n var out = new Array(len);\n for(var i = 0; i < len; i++) out[i] = pos0c;\n\n return out;\n}\n\nfunction makeBins(x, dx) {\n var len = x.length;\n var bins = new Array(len + 1);\n\n for(var i = 0; i < len; i++) {\n bins[i] = x[i] - dx;\n }\n bins[len] = x[len - 1] + dx;\n\n return bins;\n}\n\nfunction initNestedArray(len) {\n var arr = new Array(len);\n for(var i = 0; i < len; i++) {\n arr[i] = [];\n }\n return arr;\n}\n\nvar TRACE_TO_CALC = {\n text: 'tx',\n hovertext: 'htx'\n};\n\nfunction arraysToCalcdata(pt, trace, ptNumber) {\n for(var k in TRACE_TO_CALC) {\n if(Lib.isArrayOrTypedArray(trace[k])) {\n if(Array.isArray(ptNumber)) {\n if(Lib.isArrayOrTypedArray(trace[k][ptNumber[0]])) {\n pt[TRACE_TO_CALC[k]] = trace[k][ptNumber[0]][ptNumber[1]];\n }\n } else {\n pt[TRACE_TO_CALC[k]] = trace[k][ptNumber];\n }\n }\n }\n}\n\nfunction calcSelection(cd, trace) {\n if(Lib.isArrayOrTypedArray(trace.selectedpoints)) {\n for(var i = 0; i < cd.length; i++) {\n var pts = cd[i].pts || [];\n var ptNumber2cdIndex = {};\n\n for(var j = 0; j < pts.length; j++) {\n ptNumber2cdIndex[pts[j].i] = j;\n }\n\n Lib.tagSelected(pts, trace, ptNumber2cdIndex);\n }\n }\n}\n\nfunction sortByVal(a, b) { return a.v - b.v; }\n\nfunction extractVal(o) { return o.v; }\n\n// last point below 1.5 * IQR\nfunction computeLowerFence(cdi, boxVals, N) {\n if(N === 0) return cdi.q1;\n return Math.min(\n cdi.q1,\n boxVals[Math.min(\n Lib.findBin(2.5 * cdi.q1 - 1.5 * cdi.q3, boxVals, true) + 1,\n N - 1\n )]\n );\n}\n\n// last point above 1.5 * IQR\nfunction computeUpperFence(cdi, boxVals, N) {\n if(N === 0) return cdi.q3;\n return Math.max(\n cdi.q3,\n boxVals[Math.max(\n Lib.findBin(2.5 * cdi.q3 - 1.5 * cdi.q1, boxVals),\n 0\n )]\n );\n}\n\n// 3 IQR below (don't clip to max/min,\n// this is only for discriminating suspected & far outliers)\nfunction computeLowerOutlierBound(cdi) {\n return 4 * cdi.q1 - 3 * cdi.q3;\n}\n\n// 3 IQR above (don't clip to max/min,\n// this is only for discriminating suspected & far outliers)\nfunction computeUpperOutlierBound(cdi) {\n return 4 * cdi.q3 - 3 * cdi.q1;\n}\n\n// 95% confidence intervals for median\nfunction computeNotchSpan(cdi, N) {\n if(N === 0) return 0;\n return 1.57 * (cdi.q3 - cdi.q1) / Math.sqrt(N);\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar wrap = require('../../lib/gup').wrap;\n\nmodule.exports = function calc() {\n // we don't actually need to include the trace here, since that will be added\n // by Plots.doCalcdata, and that's all we actually need later.\n return wrap({});\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar id2name = require('./axis_ids').id2name;\nvar scaleZoom = require('./scale_zoom');\nvar makePadFn = require('./autorange').makePadFn;\nvar concatExtremes = require('./autorange').concatExtremes;\n\nvar ALMOST_EQUAL = require('../../constants/numerical').ALMOST_EQUAL;\nvar FROM_BL = require('../../constants/alignment').FROM_BL;\n\nexports.handleConstraintDefaults = function(containerIn, containerOut, coerce, opts) {\n var allAxisIds = opts.allAxisIds;\n var layoutOut = opts.layoutOut;\n var scaleanchorDflt = opts.scaleanchorDflt;\n var constrainDflt = opts.constrainDflt;\n var constraintGroups = layoutOut._axisConstraintGroups;\n var matchGroups = layoutOut._axisMatchGroups;\n var axId = containerOut._id;\n var axLetter = axId.charAt(0);\n var splomStash = ((layoutOut._splomAxes || {})[axLetter] || {})[axId] || {};\n var thisID = containerOut._id;\n var letter = thisID.charAt(0);\n\n // coerce the constraint mechanics even if this axis has no scaleanchor\n // because it may be the anchor of another axis.\n var constrain = coerce('constrain', constrainDflt);\n Lib.coerce(containerIn, containerOut, {\n constraintoward: {\n valType: 'enumerated',\n values: letter === 'x' ? ['left', 'center', 'right'] : ['bottom', 'middle', 'top'],\n dflt: letter === 'x' ? 'center' : 'middle'\n }\n }, 'constraintoward');\n\n var matches, matchOpts;\n\n if((containerIn.matches || splomStash.matches) && !containerOut.fixedrange) {\n matchOpts = getConstraintOpts(matchGroups, thisID, allAxisIds, layoutOut);\n matches = Lib.coerce(containerIn, containerOut, {\n matches: {\n valType: 'enumerated',\n values: matchOpts.linkableAxes || [],\n dflt: splomStash.matches\n }\n }, 'matches');\n }\n\n // 'matches' wins over 'scaleanchor' (for now)\n var scaleanchor, scaleOpts;\n\n if(!matches &&\n !(containerOut.fixedrange && constrain !== 'domain') &&\n (containerIn.scaleanchor || scaleanchorDflt)\n ) {\n scaleOpts = getConstraintOpts(constraintGroups, thisID, allAxisIds, layoutOut, constrain);\n scaleanchor = Lib.coerce(containerIn, containerOut, {\n scaleanchor: {\n valType: 'enumerated',\n values: scaleOpts.linkableAxes || []\n }\n }, 'scaleanchor', scaleanchorDflt);\n }\n\n if(matches) {\n delete containerOut.constrain;\n updateConstraintGroups(matchGroups, matchOpts.thisGroup, thisID, matches, 1);\n } else if(allAxisIds.indexOf(containerIn.matches) !== -1) {\n Lib.warn('ignored ' + containerOut._name + '.matches: \"' +\n containerIn.matches + '\" to avoid either an infinite loop ' +\n 'or because the target axis has fixed range.');\n }\n\n if(scaleanchor) {\n var scaleratio = coerce('scaleratio');\n\n // TODO: I suppose I could do attribute.min: Number.MIN_VALUE to avoid zero,\n // but that seems hacky. Better way to say \"must be a positive number\"?\n // Of course if you use several super-tiny values you could eventually\n // force a product of these to zero and all hell would break loose...\n // Likewise with super-huge values.\n if(!scaleratio) scaleratio = containerOut.scaleratio = 1;\n\n updateConstraintGroups(constraintGroups, scaleOpts.thisGroup, thisID, scaleanchor, scaleratio);\n } else if(allAxisIds.indexOf(containerIn.scaleanchor) !== -1) {\n Lib.warn('ignored ' + containerOut._name + '.scaleanchor: \"' +\n containerIn.scaleanchor + '\" to avoid either an infinite loop ' +\n 'and possibly inconsistent scaleratios, or because the target ' +\n 'axis has fixed range or this axis declares a *matches* constraint.');\n }\n};\n\n// If this axis is already part of a constraint group, we can't\n// scaleanchor any other axis in that group, or we'd make a loop.\n// Filter allAxisIds to enforce this, also matching axis types.\nfunction getConstraintOpts(groups, thisID, allAxisIds, layoutOut, constrain) {\n var doesNotConstrainRange = constrain !== 'range';\n var thisType = layoutOut[id2name(thisID)].type;\n var i, j, idj, axj;\n\n var linkableAxes = [];\n for(j = 0; j < allAxisIds.length; j++) {\n idj = allAxisIds[j];\n if(idj === thisID) continue;\n\n axj = layoutOut[id2name(idj)];\n if(axj.type === thisType) {\n if(!axj.fixedrange) {\n linkableAxes.push(idj);\n } else if(doesNotConstrainRange && axj.anchor) {\n // allow domain constraints on subplots where\n // BOTH axes have fixedrange:true and constrain:domain\n var counterAxj = layoutOut[id2name(axj.anchor)];\n if(counterAxj.fixedrange) {\n linkableAxes.push(idj);\n }\n }\n }\n }\n\n for(i = 0; i < groups.length; i++) {\n if(groups[i][thisID]) {\n var thisGroup = groups[i];\n\n var linkableAxesNoLoops = [];\n for(j = 0; j < linkableAxes.length; j++) {\n idj = linkableAxes[j];\n if(!thisGroup[idj]) linkableAxesNoLoops.push(idj);\n }\n return {linkableAxes: linkableAxesNoLoops, thisGroup: thisGroup};\n }\n }\n\n return {linkableAxes: linkableAxes, thisGroup: null};\n}\n\n/*\n * Add this axis to the axis constraint groups, which is the collection\n * of axes that are all constrained together on scale.\n *\n * constraintGroups: a list of objects. each object is\n * {axis_id: scale_within_group}, where scale_within_group is\n * only important relative to the rest of the group, and defines\n * the relative scales between all axes in the group\n *\n * thisGroup: the group the current axis is already in\n * thisID: the id if the current axis\n * scaleanchor: the id of the axis to scale it with\n * scaleratio: the ratio of this axis to the scaleanchor axis\n */\nfunction updateConstraintGroups(constraintGroups, thisGroup, thisID, scaleanchor, scaleratio) {\n var i, j, groupi, keyj, thisGroupIndex;\n\n if(thisGroup === null) {\n thisGroup = {};\n thisGroup[thisID] = 1;\n thisGroupIndex = constraintGroups.length;\n constraintGroups.push(thisGroup);\n } else {\n thisGroupIndex = constraintGroups.indexOf(thisGroup);\n }\n\n var thisGroupKeys = Object.keys(thisGroup);\n\n // we know that this axis isn't in any other groups, but we don't know\n // about the scaleanchor axis. If it is, we need to merge the groups.\n for(i = 0; i < constraintGroups.length; i++) {\n groupi = constraintGroups[i];\n if(i !== thisGroupIndex && groupi[scaleanchor]) {\n var baseScale = groupi[scaleanchor];\n for(j = 0; j < thisGroupKeys.length; j++) {\n keyj = thisGroupKeys[j];\n groupi[keyj] = baseScale * scaleratio * thisGroup[keyj];\n }\n constraintGroups.splice(thisGroupIndex, 1);\n return;\n }\n }\n\n // otherwise, we insert the new scaleanchor axis as the base scale (1)\n // in its group, and scale the rest of the group to it\n if(scaleratio !== 1) {\n for(j = 0; j < thisGroupKeys.length; j++) {\n thisGroup[thisGroupKeys[j]] *= scaleratio;\n }\n }\n thisGroup[scaleanchor] = 1;\n}\n\nexports.enforce = function enforce(gd) {\n var fullLayout = gd._fullLayout;\n var constraintGroups = fullLayout._axisConstraintGroups || [];\n\n var i, j, axisID, ax, normScale, mode, factor;\n\n for(i = 0; i < constraintGroups.length; i++) {\n var group = constraintGroups[i];\n var axisIDs = Object.keys(group);\n\n var minScale = Infinity;\n var maxScale = 0;\n // mostly matchScale will be the same as minScale\n // ie we expand axis ranges to encompass *everything*\n // that's currently in any of their ranges, but during\n // autorange of a subset of axes we will ignore other\n // axes for this purpose.\n var matchScale = Infinity;\n var normScales = {};\n var axes = {};\n var hasAnyDomainConstraint = false;\n\n // find the (normalized) scale of each axis in the group\n for(j = 0; j < axisIDs.length; j++) {\n axisID = axisIDs[j];\n axes[axisID] = ax = fullLayout[id2name(axisID)];\n\n if(ax._inputDomain) ax.domain = ax._inputDomain.slice();\n else ax._inputDomain = ax.domain.slice();\n\n if(!ax._inputRange) ax._inputRange = ax.range.slice();\n\n // set axis scale here so we can use _m rather than\n // having to calculate it from length and range\n ax.setScale();\n\n // abs: inverted scales still satisfy the constraint\n normScales[axisID] = normScale = Math.abs(ax._m) / group[axisID];\n minScale = Math.min(minScale, normScale);\n if(ax.constrain === 'domain' || !ax._constraintShrinkable) {\n matchScale = Math.min(matchScale, normScale);\n }\n\n // this has served its purpose, so remove it\n delete ax._constraintShrinkable;\n maxScale = Math.max(maxScale, normScale);\n\n if(ax.constrain === 'domain') hasAnyDomainConstraint = true;\n }\n\n // Do we have a constraint mismatch? Give a small buffer for rounding errors\n if(minScale > ALMOST_EQUAL * maxScale && !hasAnyDomainConstraint) continue;\n\n // now increase any ranges we need to until all normalized scales are equal\n for(j = 0; j < axisIDs.length; j++) {\n axisID = axisIDs[j];\n normScale = normScales[axisID];\n ax = axes[axisID];\n mode = ax.constrain;\n\n // even if the scale didn't change, if we're shrinking domain\n // we need to recalculate in case `constraintoward` changed\n if(normScale !== matchScale || mode === 'domain') {\n factor = normScale / matchScale;\n\n if(mode === 'range') {\n scaleZoom(ax, factor);\n } else {\n // mode === 'domain'\n\n var inputDomain = ax._inputDomain;\n var domainShrunk = (ax.domain[1] - ax.domain[0]) /\n (inputDomain[1] - inputDomain[0]);\n var rangeShrunk = (ax.r2l(ax.range[1]) - ax.r2l(ax.range[0])) /\n (ax.r2l(ax._inputRange[1]) - ax.r2l(ax._inputRange[0]));\n\n factor /= domainShrunk;\n\n if(factor * rangeShrunk < 1) {\n // we've asked to magnify the axis more than we can just by\n // enlarging the domain - so we need to constrict range\n ax.domain = ax._input.domain = inputDomain.slice();\n scaleZoom(ax, factor);\n continue;\n }\n\n if(rangeShrunk < 1) {\n // the range has previously been constricted by ^^, but we've\n // switched to the domain-constricted regime, so reset range\n ax.range = ax._input.range = ax._inputRange.slice();\n factor *= rangeShrunk;\n }\n\n if(ax.autorange) {\n /*\n * range & factor may need to change because range was\n * calculated for the larger scaling, so some pixel\n * paddings may get cut off when we reduce the domain.\n *\n * This is easier than the regular autorange calculation\n * because we already know the scaling `m`, but we still\n * need to cut out impossible constraints (like\n * annotations with super-long arrows). That's what\n * outerMin/Max are for - if the expansion was going to\n * go beyond the original domain, it must be impossible\n */\n var rl0 = ax.r2l(ax.range[0]);\n var rl1 = ax.r2l(ax.range[1]);\n var rangeCenter = (rl0 + rl1) / 2;\n var rangeMin = rangeCenter;\n var rangeMax = rangeCenter;\n var halfRange = Math.abs(rl1 - rangeCenter);\n // extra tiny bit for rounding errors, in case we actually\n // *are* expanding to the full domain\n var outerMin = rangeCenter - halfRange * factor * 1.0001;\n var outerMax = rangeCenter + halfRange * factor * 1.0001;\n var getPad = makePadFn(ax);\n\n updateDomain(ax, factor);\n var m = Math.abs(ax._m);\n var extremes = concatExtremes(gd, ax);\n var minArray = extremes.min;\n var maxArray = extremes.max;\n var newVal;\n var k;\n\n for(k = 0; k < minArray.length; k++) {\n newVal = minArray[k].val - getPad(minArray[k]) / m;\n if(newVal > outerMin && newVal < rangeMin) {\n rangeMin = newVal;\n }\n }\n\n for(k = 0; k < maxArray.length; k++) {\n newVal = maxArray[k].val + getPad(maxArray[k]) / m;\n if(newVal < outerMax && newVal > rangeMax) {\n rangeMax = newVal;\n }\n }\n\n var domainExpand = (rangeMax - rangeMin) / (2 * halfRange);\n factor /= domainExpand;\n\n rangeMin = ax.l2r(rangeMin);\n rangeMax = ax.l2r(rangeMax);\n ax.range = ax._input.range = (rl0 < rl1) ?\n [rangeMin, rangeMax] : [rangeMax, rangeMin];\n }\n\n updateDomain(ax, factor);\n }\n }\n }\n }\n};\n\n// For use before autoranging, check if this axis was previously constrained\n// by domain but no longer is\nexports.clean = function clean(gd, ax) {\n if(ax._inputDomain) {\n var isConstrained = false;\n var axId = ax._id;\n var constraintGroups = gd._fullLayout._axisConstraintGroups;\n for(var j = 0; j < constraintGroups.length; j++) {\n if(constraintGroups[j][axId]) {\n isConstrained = true;\n break;\n }\n }\n if(!isConstrained || ax.constrain !== 'domain') {\n ax._input.domain = ax.domain = ax._inputDomain;\n delete ax._inputDomain;\n }\n }\n};\n\nfunction updateDomain(ax, factor) {\n var inputDomain = ax._inputDomain;\n var centerFraction = FROM_BL[ax.constraintoward];\n var center = inputDomain[0] + (inputDomain[1] - inputDomain[0]) * centerFraction;\n\n ax.domain = ax._input.domain = [\n center + (inputDomain[0] - center) / factor,\n center + (inputDomain[1] - center) / factor\n ];\n ax.setScale();\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar isArray = Array.isArray;\n\n// IE9 fallbacks\n\nvar ab = (typeof ArrayBuffer === 'undefined' || !ArrayBuffer.isView) ?\n {isView: function() { return false; }} :\n ArrayBuffer;\n\nvar dv = (typeof DataView === 'undefined') ?\n function() {} :\n DataView;\n\nfunction isTypedArray(a) {\n return ab.isView(a) && !(a instanceof dv);\n}\nexports.isTypedArray = isTypedArray;\n\nfunction isArrayOrTypedArray(a) {\n return isArray(a) || isTypedArray(a);\n}\nexports.isArrayOrTypedArray = isArrayOrTypedArray;\n\n/*\n * Test whether an input object is 1D.\n *\n * Assumes we already know the object is an array.\n *\n * Looks only at the first element, if the dimensionality is\n * not consistent we won't figure that out here.\n */\nfunction isArray1D(a) {\n return !isArrayOrTypedArray(a[0]);\n}\nexports.isArray1D = isArray1D;\n\n/*\n * Ensures an array has the right amount of storage space. If it doesn't\n * exist, it creates an array. If it does exist, it returns it if too\n * short or truncates it in-place.\n *\n * The goal is to just reuse memory to avoid a bit of excessive garbage\n * collection.\n */\nexports.ensureArray = function(out, n) {\n // TODO: typed array support here? This is only used in\n // traces/carpet/compute_control_points\n if(!isArray(out)) out = [];\n\n // If too long, truncate. (If too short, it will grow\n // automatically so we don't care about that case)\n out.length = n;\n\n return out;\n};\n\n/*\n * TypedArray-compatible concatenation of n arrays\n * if all arrays are the same type it will preserve that type,\n * otherwise it falls back on Array.\n * Also tries to avoid copying, in case one array has zero length\n * But never mutates an existing array\n */\nexports.concat = function() {\n var args = [];\n var allArray = true;\n var totalLen = 0;\n\n var _constructor, arg0, i, argi, posi, leni, out, j;\n\n for(i = 0; i < arguments.length; i++) {\n argi = arguments[i];\n leni = argi.length;\n if(leni) {\n if(arg0) args.push(argi);\n else {\n arg0 = argi;\n posi = leni;\n }\n\n if(isArray(argi)) {\n _constructor = false;\n } else {\n allArray = false;\n if(!totalLen) {\n _constructor = argi.constructor;\n } else if(_constructor !== argi.constructor) {\n // TODO: in principle we could upgrade here,\n // ie keep typed array but convert all to Float64Array?\n _constructor = false;\n }\n }\n\n totalLen += leni;\n }\n }\n\n if(!totalLen) return [];\n if(!args.length) return arg0;\n\n if(allArray) return arg0.concat.apply(arg0, args);\n if(_constructor) {\n // matching typed arrays\n out = new _constructor(totalLen);\n out.set(arg0);\n for(i = 0; i < args.length; i++) {\n argi = args[i];\n out.set(argi, posi);\n posi += argi.length;\n }\n return out;\n }\n\n // mismatched types or Array + typed\n out = new Array(totalLen);\n for(j = 0; j < arg0.length; j++) out[j] = arg0[j];\n for(i = 0; i < args.length; i++) {\n argi = args[i];\n for(j = 0; j < argi.length; j++) out[posi + j] = argi[j];\n posi += j;\n }\n return out;\n};\n\nexports.maxRowLength = function(z) {\n return _rowLength(z, Math.max, 0);\n};\n\nexports.minRowLength = function(z) {\n return _rowLength(z, Math.min, Infinity);\n};\n\nfunction _rowLength(z, fn, len0) {\n if(isArrayOrTypedArray(z)) {\n if(isArrayOrTypedArray(z[0])) {\n var len = len0;\n for(var i = 0; i < z.length; i++) {\n len = fn(len, z[i].length);\n }\n return len;\n } else {\n return z.length;\n }\n }\n return 0;\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar Template = require('../../plot_api/plot_template');\nvar axisIds = require('../../plots/cartesian/axis_ids');\n\nvar attributes = require('./attributes');\nvar oppAxisAttrs = require('./oppaxis_attributes');\n\nmodule.exports = function handleDefaults(layoutIn, layoutOut, axName) {\n var axIn = layoutIn[axName];\n var axOut = layoutOut[axName];\n\n if(!(axIn.rangeslider || layoutOut._requestRangeslider[axOut._id])) return;\n\n // not super proud of this (maybe store _ in axis object instead\n if(!Lib.isPlainObject(axIn.rangeslider)) {\n axIn.rangeslider = {};\n }\n\n var containerIn = axIn.rangeslider;\n var containerOut = Template.newContainer(axOut, 'rangeslider');\n\n function coerce(attr, dflt) {\n return Lib.coerce(containerIn, containerOut, attributes, attr, dflt);\n }\n\n var rangeContainerIn, rangeContainerOut;\n function coerceRange(attr, dflt) {\n return Lib.coerce(rangeContainerIn, rangeContainerOut, oppAxisAttrs, attr, dflt);\n }\n\n var visible = coerce('visible');\n if(!visible) return;\n\n coerce('bgcolor', layoutOut.plot_bgcolor);\n coerce('bordercolor');\n coerce('borderwidth');\n coerce('thickness');\n\n coerce('autorange', !axOut.isValidRange(containerIn.range));\n coerce('range');\n\n var subplots = layoutOut._subplots;\n if(subplots) {\n var yIds = subplots.cartesian\n .filter(function(subplotId) {\n return subplotId.substr(0, subplotId.indexOf('y')) === axisIds.name2id(axName);\n })\n .map(function(subplotId) {\n return subplotId.substr(subplotId.indexOf('y'), subplotId.length);\n });\n var yNames = Lib.simpleMap(yIds, axisIds.id2name);\n for(var i = 0; i < yNames.length; i++) {\n var yName = yNames[i];\n\n rangeContainerIn = containerIn[yName] || {};\n rangeContainerOut = Template.newContainer(containerOut, yName, 'yaxis');\n\n var yAxOut = layoutOut[yName];\n\n var rangemodeDflt;\n if(rangeContainerIn.range && yAxOut.isValidRange(rangeContainerIn.range)) {\n rangemodeDflt = 'fixed';\n }\n\n var rangeMode = coerceRange('rangemode', rangemodeDflt);\n if(rangeMode !== 'match') {\n coerceRange('range', yAxOut.range.slice());\n }\n }\n }\n\n // to map back range slider (auto) range\n containerOut._input = containerIn;\n};\n","/** @module gl-util/context */\r\n'use strict'\r\n\r\nvar pick = require('pick-by-alias')\r\n\r\nmodule.exports = function setContext (o) {\r\n\tif (!o) o = {}\r\n\telse if (typeof o === 'string') o = {container: o}\r\n\r\n\t// HTMLCanvasElement\r\n\tif (isCanvas(o)) {\r\n\t\to = {container: o}\r\n\t}\r\n\t// HTMLElement\r\n\telse if (isElement(o)) {\r\n\t\to = {container: o}\r\n\t}\r\n\t// WebGLContext\r\n\telse if (isContext(o)) {\r\n\t\to = {gl: o}\r\n\t}\r\n\t// options object\r\n\telse {\r\n\t\to = pick(o, {\r\n\t\t\tcontainer: 'container target element el canvas holder parent parentNode wrapper use ref root node',\r\n\t\t\tgl: 'gl context webgl glContext',\r\n\t\t\tattrs: 'attributes attrs contextAttributes',\r\n\t\t\tpixelRatio: 'pixelRatio pxRatio px ratio pxratio pixelratio',\r\n\t\t\twidth: 'w width',\r\n\t\t\theight: 'h height'\r\n\t\t}, true)\r\n\t}\r\n\r\n\tif (!o.pixelRatio) o.pixelRatio = global.pixelRatio || 1\r\n\r\n\t// make sure there is container and canvas\r\n\tif (o.gl) {\r\n\t\treturn o.gl\r\n\t}\r\n\tif (o.canvas) {\r\n\t\to.container = o.canvas.parentNode\r\n\t}\r\n\tif (o.container) {\r\n\t\tif (typeof o.container === 'string') {\r\n\t\t\tvar c = document.querySelector(o.container)\r\n\t\t\tif (!c) throw Error('Element ' + o.container + ' is not found')\r\n\t\t\to.container = c\r\n\t\t}\r\n\t\tif (isCanvas(o.container)) {\r\n\t\t\to.canvas = o.container\r\n\t\t\to.container = o.canvas.parentNode\r\n\t\t}\r\n\t\telse if (!o.canvas) {\r\n\t\t\to.canvas = createCanvas()\r\n\t\t\to.container.appendChild(o.canvas)\r\n\t\t\tresize(o)\r\n\t\t}\r\n\t}\r\n\t// blank new canvas\r\n\telse if (!o.canvas) {\r\n\t\tif (typeof document !== 'undefined') {\r\n\t\t\to.container = document.body || document.documentElement\r\n\t\t\to.canvas = createCanvas()\r\n\t\t\to.container.appendChild(o.canvas)\r\n\t\t\tresize(o)\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthrow Error('Not DOM environment. Use headless-gl.')\r\n\t\t}\r\n\t}\r\n\r\n\t// make sure there is context\r\n\tif (!o.gl) {\r\n\t\ttry {\r\n\t\t\to.gl = o.canvas.getContext('webgl', o.attrs)\r\n\t\t} catch (e) {\r\n\t\t\ttry {\r\n\t\t\t\to.gl = o.canvas.getContext('experimental-webgl', o.attrs)\r\n\t\t\t}\r\n\t\t\tcatch (e) {\r\n\t\t\t\to.gl = o.canvas.getContext('webgl-experimental', o.attrs)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn o.gl\r\n}\r\n\r\n\r\nfunction resize (o) {\r\n\tif (o.container) {\r\n\t\tif (o.container == document.body) {\r\n\t\t\tif (!document.body.style.width) o.canvas.width = o.width || (o.pixelRatio * global.innerWidth)\r\n\t\t\tif (!document.body.style.height) o.canvas.height = o.height || (o.pixelRatio * global.innerHeight)\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvar bounds = o.container.getBoundingClientRect()\r\n\t\t\to.canvas.width = o.width || (bounds.right - bounds.left)\r\n\t\t\to.canvas.height = o.height || (bounds.bottom - bounds.top)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction isCanvas (e) {\r\n\treturn typeof e.getContext === 'function'\r\n\t\t&& 'width' in e\r\n\t\t&& 'height' in e\r\n}\r\n\r\nfunction isElement (e) {\r\n\treturn typeof e.nodeName === 'string' &&\r\n\t\ttypeof e.appendChild === 'function' &&\r\n\t\ttypeof e.getBoundingClientRect === 'function'\r\n}\r\n\r\nfunction isContext (e) {\r\n\treturn typeof e.drawArrays === 'function' ||\r\n\t\ttypeof e.drawElements === 'function'\r\n}\r\n\r\nfunction createCanvas () {\r\n\tvar canvas = document.createElement('canvas')\r\n\tcanvas.style.position = 'absolute'\r\n\tcanvas.style.top = 0\r\n\tcanvas.style.left = 0\r\n\r\n\treturn canvas\r\n}\r\n","'use strict'\n\nvar createShader = require('gl-shader')\nvar createBuffer = require('gl-buffer')\nvar createVAO = require('gl-vao')\nvar createTexture = require('gl-texture2d')\nvar multiply = require('gl-mat4/multiply')\nvar invert = require('gl-mat4/invert')\nvar ndarray = require('ndarray')\nvar colormap = require('colormap')\n\nvar IDENTITY = [\n 1,0,0,0,\n 0,1,0,0,\n 0,0,1,0,\n 0,0,0,1]\n\nfunction VectorMesh(gl\n , texture\n , triShader\n , pickShader\n , trianglePositions\n , triangleVectors\n , triangleIds\n , triangleColors\n , triangleUVs\n , triangleVAO\n , traceType) {\n\n this.gl = gl\n this.pixelRatio = 1\n this.cells = []\n this.positions = []\n this.intensity = []\n this.texture = texture\n this.dirty = true\n\n this.triShader = triShader\n this.pickShader = pickShader\n\n this.trianglePositions = trianglePositions\n this.triangleVectors = triangleVectors\n this.triangleColors = triangleColors\n this.triangleUVs = triangleUVs\n this.triangleIds = triangleIds\n this.triangleVAO = triangleVAO\n this.triangleCount = 0\n\n this.pickId = 1\n this.bounds = [\n [ Infinity, Infinity, Infinity],\n [-Infinity,-Infinity,-Infinity] ]\n this.clipBounds = [\n [-Infinity,-Infinity,-Infinity],\n [ Infinity, Infinity, Infinity] ]\n\n this.lightPosition = [1e5, 1e5, 0]\n this.ambientLight = 0.8\n this.diffuseLight = 0.8\n this.specularLight = 2.0\n this.roughness = 0.5\n this.fresnel = 1.5\n\n this.opacity = 1\n\n this.traceType = traceType\n this.tubeScale = 1 // used in streamtube\n this.coneScale = 2 // used in cone\n this.vectorScale = 1 // used in cone\n this.coneOffset = 0.25 // used in cone\n\n this._model = IDENTITY\n this._view = IDENTITY\n this._projection = IDENTITY\n this._resolution = [1,1]\n}\n\nvar proto = VectorMesh.prototype\n\nproto.isOpaque = function() {\n return this.opacity >= 1\n}\n\nproto.isTransparent = function() {\n return this.opacity < 1\n}\n\nproto.pickSlots = 1\n\nproto.setPickBase = function(id) {\n this.pickId = id\n}\n\nfunction genColormap(param) {\n var colors = colormap({\n colormap: param\n , nshades: 256\n , format: 'rgba'\n })\n\n var result = new Uint8Array(256*4)\n for(var i=0; i<256; ++i) {\n var c = colors[i]\n for(var j=0; j<3; ++j) {\n result[4*i+j] = c[j]\n }\n result[4*i+3] = c[3]*255\n }\n\n return ndarray(result, [256,256,4], [4,0,1])\n}\n\nfunction takeZComponent(array) {\n var n = array.length\n var result = new Array(n)\n for(var i=0; i 0) {\n var shader = this.triShader\n shader.bind()\n shader.uniforms = uniforms\n\n this.triangleVAO.bind()\n gl.drawArrays(gl.TRIANGLES, 0, this.triangleCount*3)\n this.triangleVAO.unbind()\n }\n}\n\nproto.drawPick = function(params) {\n params = params || {}\n\n var gl = this.gl\n\n var model = params.model || IDENTITY\n var view = params.view || IDENTITY\n var projection = params.projection || IDENTITY\n\n var clipBounds = [[-1e6,-1e6,-1e6],[1e6,1e6,1e6]]\n for(var i=0; i<3; ++i) {\n clipBounds[0][i] = Math.max(clipBounds[0][i], this.clipBounds[0][i])\n clipBounds[1][i] = Math.min(clipBounds[1][i], this.clipBounds[1][i])\n }\n\n //Save camera parameters\n this._model = [].slice.call(model)\n this._view = [].slice.call(view)\n this._projection = [].slice.call(projection)\n this._resolution = [gl.drawingBufferWidth, gl.drawingBufferHeight]\n\n var uniforms = {\n model: model,\n view: view,\n projection: projection,\n clipBounds: clipBounds,\n\n tubeScale: this.tubeScale,\n vectorScale: this.vectorScale,\n coneScale: this.coneScale,\n coneOffset: this.coneOffset,\n\n pickId: this.pickId / 255.0,\n }\n\n var shader = this.pickShader\n shader.bind()\n shader.uniforms = uniforms\n\n if(this.triangleCount > 0) {\n this.triangleVAO.bind()\n gl.drawArrays(gl.TRIANGLES, 0, this.triangleCount*3)\n this.triangleVAO.unbind()\n }\n}\n\n\nproto.pick = function(pickData) {\n if(!pickData) {\n return null\n }\n if(pickData.id !== this.pickId) {\n return null\n }\n\n var cellId = pickData.value[0] + 256*pickData.value[1] + 65536*pickData.value[2]\n var cell = this.cells[cellId]\n var pos = this.positions[cell[1]].slice(0, 3)\n\n var result = {\n position: pos,\n dataCoordinate: pos,\n index: Math.floor(cell[1] / 48)\n }\n\n\n if(this.traceType === 'cone') {\n result.index = Math.floor(cell[1] / 48)\n } else if(this.traceType === 'streamtube') {\n result.intensity = this.intensity[cell[1]]\n result.velocity = this.vectors[cell[1]].slice(0, 3)\n result.divergence = this.vectors[cell[1]][3]\n result.index = cellId\n }\n\n return result\n}\n\n\nproto.dispose = function() {\n this.texture.dispose()\n\n this.triShader.dispose()\n this.pickShader.dispose()\n\n this.triangleVAO.dispose()\n this.trianglePositions.dispose()\n this.triangleVectors.dispose()\n this.triangleColors.dispose()\n this.triangleUVs.dispose()\n this.triangleIds.dispose()\n}\n\nfunction createMeshShader(gl, shaders) {\n var shader = createShader(gl,\n shaders.meshShader.vertex,\n shaders.meshShader.fragment,\n null,\n shaders.meshShader.attributes\n )\n\n shader.attributes.position.location = 0\n shader.attributes.color.location = 2\n shader.attributes.uv.location = 3\n shader.attributes.vector.location = 4\n return shader\n}\n\n\nfunction createPickShader(gl, shaders) {\n var shader = createShader(gl,\n shaders.pickShader.vertex,\n shaders.pickShader.fragment,\n null,\n shaders.pickShader.attributes\n )\n\n shader.attributes.position.location = 0\n shader.attributes.id.location = 1\n shader.attributes.vector.location = 4\n return shader\n}\n\n\nfunction createVectorMesh(gl, params, opts) {\n var shaders = opts.shaders\n\n if (arguments.length === 1) {\n params = gl\n gl = params.gl\n }\n\n\n var triShader = createMeshShader(gl, shaders)\n var pickShader = createPickShader(gl, shaders)\n var meshTexture = createTexture(gl,\n ndarray(new Uint8Array([255,255,255,255]), [1,1,4]))\n meshTexture.generateMipmap()\n meshTexture.minFilter = gl.LINEAR_MIPMAP_LINEAR\n meshTexture.magFilter = gl.LINEAR\n\n var trianglePositions = createBuffer(gl)\n var triangleVectors = createBuffer(gl)\n var triangleColors = createBuffer(gl)\n var triangleUVs = createBuffer(gl)\n var triangleIds = createBuffer(gl)\n var triangleVAO = createVAO(gl, [\n { buffer: trianglePositions,\n type: gl.FLOAT,\n size: 4\n },\n { buffer: triangleIds,\n type: gl.UNSIGNED_BYTE,\n size: 4,\n normalized: true\n },\n { buffer: triangleColors,\n type: gl.FLOAT,\n size: 4\n },\n { buffer: triangleUVs,\n type: gl.FLOAT,\n size: 2\n },\n { buffer: triangleVectors,\n type: gl.FLOAT,\n size: 4\n }\n ])\n\n var mesh = new VectorMesh(gl\n , meshTexture\n , triShader\n , pickShader\n , trianglePositions\n , triangleVectors\n , triangleIds\n , triangleColors\n , triangleUVs\n , triangleVAO\n , opts.traceType || 'cone'\n )\n\n mesh.update(params)\n\n return mesh\n}\n\nmodule.exports = createVectorMesh\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar colorScaleAttrs = require('../../components/colorscale/attributes');\nvar hovertemplateAttrs = require('../../plots/template_attributes').hovertemplateAttrs;\nvar surfaceAttrs = require('../surface/attributes');\nvar baseAttrs = require('../../plots/attributes');\n\nvar extendFlat = require('../../lib/extend').extendFlat;\n\nmodule.exports = extendFlat({\n x: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n y: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n z: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n\n i: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n j: {\n valType: 'data_array',\n editType: 'calc',\n \n\n },\n k: {\n valType: 'data_array',\n editType: 'calc',\n \n\n },\n\n text: {\n valType: 'string',\n \n dflt: '',\n arrayOk: true,\n editType: 'calc',\n \n },\n hovertext: {\n valType: 'string',\n \n dflt: '',\n arrayOk: true,\n editType: 'calc',\n \n },\n hovertemplate: hovertemplateAttrs({editType: 'calc'}),\n\n delaunayaxis: {\n valType: 'enumerated',\n \n values: [ 'x', 'y', 'z' ],\n dflt: 'z',\n editType: 'calc',\n \n },\n\n alphahull: {\n valType: 'number',\n \n dflt: -1,\n editType: 'calc',\n \n },\n\n intensity: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n intensitymode: {\n valType: 'enumerated',\n values: ['vertex', 'cell'],\n dflt: 'vertex',\n editType: 'calc',\n \n \n },\n\n // Color field\n color: {\n valType: 'color',\n \n editType: 'calc',\n \n },\n vertexcolor: {\n valType: 'data_array',\n \n editType: 'calc',\n \n },\n facecolor: {\n valType: 'data_array',\n \n editType: 'calc',\n \n },\n transforms: undefined\n},\n\ncolorScaleAttrs('', {\n colorAttr: '`intensity`',\n showScaleDflt: true,\n editTypeOverride: 'calc'\n}), {\n opacity: surfaceAttrs.opacity,\n\n // Flat shaded mode\n flatshading: {\n valType: 'boolean',\n \n dflt: false,\n editType: 'calc',\n \n },\n\n contour: {\n show: extendFlat({}, surfaceAttrs.contours.x.show, {\n \n }),\n color: surfaceAttrs.contours.x.color,\n width: surfaceAttrs.contours.x.width,\n editType: 'calc'\n },\n\n lightposition: {\n x: extendFlat({}, surfaceAttrs.lightposition.x, {dflt: 1e5}),\n y: extendFlat({}, surfaceAttrs.lightposition.y, {dflt: 1e5}),\n z: extendFlat({}, surfaceAttrs.lightposition.z, {dflt: 0}),\n editType: 'calc'\n },\n lighting: extendFlat({\n vertexnormalsepsilon: {\n valType: 'number',\n \n min: 0.00,\n max: 1,\n dflt: 1e-12, // otherwise finely tessellated things eg. the brain will have no specular light reflection\n editType: 'calc',\n \n },\n facenormalsepsilon: {\n valType: 'number',\n \n min: 0.00,\n max: 1,\n dflt: 1e-6, // even the brain model doesn't appear to need finer than this\n editType: 'calc',\n \n },\n editType: 'calc'\n }, surfaceAttrs.lighting),\n\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {editType: 'calc'}),\n showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false})\n});\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar plots = require('../../plots/plots');\n\nexports.name = 'pie';\n\nexports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n plots.plotBasePlot(exports.name, gd, traces, transitionOpts, makeOnCompleteCallback);\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout);\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar perStackAttrs = ['orientation', 'groupnorm', 'stackgaps'];\n\nmodule.exports = function handleStackDefaults(traceIn, traceOut, layout, coerce) {\n var stackOpts = layout._scatterStackOpts;\n\n var stackGroup = coerce('stackgroup');\n if(stackGroup) {\n // use independent stacking options per subplot\n var subplot = traceOut.xaxis + traceOut.yaxis;\n var subplotStackOpts = stackOpts[subplot];\n if(!subplotStackOpts) subplotStackOpts = stackOpts[subplot] = {};\n\n var groupOpts = subplotStackOpts[stackGroup];\n var firstTrace = false;\n if(groupOpts) {\n groupOpts.traces.push(traceOut);\n } else {\n groupOpts = subplotStackOpts[stackGroup] = {\n // keep track of trace indices for use during stacking calculations\n // this will be filled in during `calc` and used during `crossTraceCalc`\n // so it's OK if we don't recreate it during a non-calc edit\n traceIndices: [],\n // Hold on to the whole set of prior traces\n // First one is most important, so we can clear defaults\n // there if we find explicit values only in later traces.\n // We're only going to *use* the values stored in groupOpts,\n // but for the editor and validate we want things self-consistent\n // The full set of traces is used only to fix `fill` default if\n // we find `orientation: 'h'` beyond the first trace\n traces: [traceOut]\n };\n firstTrace = true;\n }\n // TODO: how is this going to work with groupby transforms?\n // in principle it should be OK I guess, as long as explicit group styles\n // don't override explicit base-trace styles?\n\n var dflts = {\n orientation: (traceOut.x && !traceOut.y) ? 'h' : 'v'\n };\n\n for(var i = 0; i < perStackAttrs.length; i++) {\n var attr = perStackAttrs[i];\n var attrFound = attr + 'Found';\n if(!groupOpts[attrFound]) {\n var traceHasAttr = traceIn[attr] !== undefined;\n var isOrientation = attr === 'orientation';\n if(traceHasAttr || firstTrace) {\n groupOpts[attr] = coerce(attr, dflts[attr]);\n\n if(isOrientation) {\n groupOpts.fillDflt = groupOpts[attr] === 'h' ?\n 'tonextx' : 'tonexty';\n }\n\n if(traceHasAttr) {\n // Note: this will show a value here even if it's invalid\n // in which case it will revert to default.\n groupOpts[attrFound] = true;\n\n // Note: only one trace in the stack will get a _fullData\n // entry for a given stack-wide attribute. If no traces\n // (or the first trace) specify that attribute, the\n // first trace will get it. If the first trace does NOT\n // specify it but some later trace does, then it gets\n // removed from the first trace and only included in the\n // one that specified it. This is mostly important for\n // editors (that want to see the full values to know\n // what settings are available) and Plotly.react diffing.\n // Editors may want to use fullLayout._scatterStackOpts\n // directly and make these settings available from all\n // traces in the stack... then set the new value into\n // the first trace, and clear all later traces.\n if(!firstTrace) {\n delete groupOpts.traces[0][attr];\n\n // orientation can affect default fill of previous traces\n if(isOrientation) {\n for(var j = 0; j < groupOpts.traces.length - 1; j++) {\n var trace2 = groupOpts.traces[j];\n if(trace2._input.fill !== trace2.fill) {\n trace2.fill = groupOpts.fillDflt;\n }\n }\n }\n }\n }\n }\n }\n }\n return groupOpts;\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Colorscale = require('../../components/colorscale');\n\nvar heatmapCalc = require('../heatmap/calc');\nvar setContours = require('./set_contours');\nvar endPlus = require('./end_plus');\n\n// most is the same as heatmap calc, then adjust it\n// though a few things inside heatmap calc still look for\n// contour maps, because the makeBoundArray calls are too entangled\nmodule.exports = function calc(gd, trace) {\n var cd = heatmapCalc(gd, trace);\n\n var zOut = cd[0].z;\n setContours(trace, zOut);\n\n var contours = trace.contours;\n var cOpts = Colorscale.extractOpts(trace);\n var cVals;\n\n if(contours.coloring === 'heatmap' && cOpts.auto && trace.autocontour === false) {\n var start = contours.start;\n var end = endPlus(contours);\n var cs = contours.size || 1;\n var nc = Math.floor((end - start) / cs) + 1;\n\n if(!isFinite(cs)) {\n cs = 1;\n nc = 1;\n }\n\n var min0 = start - cs / 2;\n var max0 = min0 + nc * cs;\n cVals = [min0, max0];\n } else {\n cVals = zOut;\n }\n\n Colorscale.calc(gd, trace, {vals: cVals, cLetter: 'z'});\n\n return cd;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\n\n/**\n * Determine the position anchor property of x/y xanchor/yanchor components.\n *\n * - values < 1/3 align the low side at that fraction,\n * - values [1/3, 2/3] align the center at that fraction,\n * - values > 2/3 align the right at that fraction.\n */\n\n\nexports.isLeftAnchor = function isLeftAnchor(opts) {\n return (\n opts.xanchor === 'left' ||\n (opts.xanchor === 'auto' && opts.x <= 1 / 3)\n );\n};\n\nexports.isCenterAnchor = function isCenterAnchor(opts) {\n return (\n opts.xanchor === 'center' ||\n (opts.xanchor === 'auto' && opts.x > 1 / 3 && opts.x < 2 / 3)\n );\n};\n\nexports.isRightAnchor = function isRightAnchor(opts) {\n return (\n opts.xanchor === 'right' ||\n (opts.xanchor === 'auto' && opts.x >= 2 / 3)\n );\n};\n\nexports.isTopAnchor = function isTopAnchor(opts) {\n return (\n opts.yanchor === 'top' ||\n (opts.yanchor === 'auto' && opts.y >= 2 / 3)\n );\n};\n\nexports.isMiddleAnchor = function isMiddleAnchor(opts) {\n return (\n opts.yanchor === 'middle' ||\n (opts.yanchor === 'auto' && opts.y > 1 / 3 && opts.y < 2 / 3)\n );\n};\n\nexports.isBottomAnchor = function isBottomAnchor(opts) {\n return (\n opts.yanchor === 'bottom' ||\n (opts.yanchor === 'auto' && opts.y <= 1 / 3)\n );\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n COMPARISON_OPS: ['=', '!=', '<', '>=', '>', '<='],\n COMPARISON_OPS2: ['=', '<', '>=', '>', '<='],\n INTERVAL_OPS: ['[]', '()', '[)', '(]', '][', ')(', '](', ')['],\n SET_OPS: ['{}', '}{'],\n CONSTRAINT_REDUCTION: {\n // for contour constraints, open/closed endpoints are equivalent\n '=': '=',\n\n '<': '<',\n '<=': '<',\n\n '>': '>',\n '>=': '>',\n\n '[]': '[]',\n '()': '[]',\n '[)': '[]',\n '(]': '[]',\n\n '][': '][',\n ')(': '][',\n '](': '][',\n ')[': ']['\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/waterfall');\n","var getContext = require('get-canvas-context')\n\nmodule.exports = function getWebGLContext (opt) {\n return getContext('webgl', opt)\n}\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/treemap');\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar isNumeric = require('fast-isnumeric');\n\n\nmodule.exports = {\n count: function(n, i, size) {\n size[n]++;\n return 1;\n },\n\n sum: function(n, i, size, counterData) {\n var v = counterData[i];\n if(isNumeric(v)) {\n v = Number(v);\n size[n] += v;\n return v;\n }\n return 0;\n },\n\n avg: function(n, i, size, counterData, counts) {\n var v = counterData[i];\n if(isNumeric(v)) {\n v = Number(v);\n size[n] += v;\n counts[n]++;\n }\n return 0;\n },\n\n min: function(n, i, size, counterData) {\n var v = counterData[i];\n if(isNumeric(v)) {\n v = Number(v);\n if(!isNumeric(size[n])) {\n size[n] = v;\n return v;\n } else if(size[n] > v) {\n var delta = v - size[n];\n size[n] = v;\n return delta;\n }\n }\n return 0;\n },\n\n max: function(n, i, size, counterData) {\n var v = counterData[i];\n if(isNumeric(v)) {\n v = Number(v);\n if(!isNumeric(size[n])) {\n size[n] = v;\n return v;\n } else if(size[n] < v) {\n var delta = v - size[n];\n size[n] = v;\n return delta;\n }\n }\n return 0;\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar colorscaleCalc = require('../../components/colorscale/calc');\n\nmodule.exports = function calc(gd, trace) {\n if(trace.intensity) {\n colorscaleCalc(gd, trace, {\n vals: trace.intensity,\n containerStr: '',\n cLetter: 'c'\n });\n }\n};\n","\"use strict\"\n\nmodule.exports = segmentsIntersect\n\nvar orient = require(\"robust-orientation\")[3]\n\nfunction checkCollinear(a0, a1, b0, b1) {\n\n for(var d=0; d<2; ++d) {\n var x0 = a0[d]\n var y0 = a1[d]\n var l0 = Math.min(x0, y0)\n var h0 = Math.max(x0, y0) \n\n var x1 = b0[d]\n var y1 = b1[d]\n var l1 = Math.min(x1, y1)\n var h1 = Math.max(x1, y1) \n\n if(h1 < l0 || h0 < l1) {\n return false\n }\n }\n\n return true\n}\n\nfunction segmentsIntersect(a0, a1, b0, b1) {\n var x0 = orient(a0, b0, b1)\n var y0 = orient(a1, b0, b1)\n if((x0 > 0 && y0 > 0) || (x0 < 0 && y0 < 0)) {\n return false\n }\n\n var x1 = orient(b0, a0, a1)\n var y1 = orient(b1, a0, a1)\n if((x1 > 0 && y1 > 0) || (x1 < 0 && y1 < 0)) {\n return false\n }\n\n //Check for degenerate collinear case\n if(x0 === 0 && y0 === 0 && x1 === 0 && y1 === 0) {\n return checkCollinear(a0, a1, b0, b1)\n }\n\n return true\n}","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar modModule = require('./mod');\nvar mod = modModule.mod;\nvar modHalf = modModule.modHalf;\n\nvar PI = Math.PI;\nvar twoPI = 2 * PI;\n\nfunction deg2rad(deg) { return deg / 180 * PI; }\n\nfunction rad2deg(rad) { return rad / PI * 180; }\n\n/**\n * is sector a full circle?\n * ... this comes up a lot in SVG path-drawing routines\n *\n * N.B. we consider all sectors that span more that 2pi 'full' circles\n *\n * @param {2-item array} aBnds : angular bounds in *radians*\n * @return {boolean}\n */\nfunction isFullCircle(aBnds) {\n return Math.abs(aBnds[1] - aBnds[0]) > twoPI - 1e-14;\n}\n\n/**\n * angular delta between angle 'a' and 'b'\n * solution taken from: https://stackoverflow.com/a/2007279\n *\n * @param {number} a : first angle in *radians*\n * @param {number} b : second angle in *radians*\n * @return {number} angular delta in *radians*\n */\nfunction angleDelta(a, b) {\n return modHalf(b - a, twoPI);\n}\n\n/**\n * angular distance between angle 'a' and 'b'\n *\n * @param {number} a : first angle in *radians*\n * @param {number} b : second angle in *radians*\n * @return {number} angular distance in *radians*\n */\nfunction angleDist(a, b) {\n return Math.abs(angleDelta(a, b));\n}\n\n/**\n * is angle inside sector?\n *\n * @param {number} a : angle to test in *radians*\n * @param {2-item array} aBnds : sector's angular bounds in *radians*\n * @param {boolean}\n */\nfunction isAngleInsideSector(a, aBnds) {\n if(isFullCircle(aBnds)) return true;\n\n var s0, s1;\n\n if(aBnds[0] < aBnds[1]) {\n s0 = aBnds[0];\n s1 = aBnds[1];\n } else {\n s0 = aBnds[1];\n s1 = aBnds[0];\n }\n\n s0 = mod(s0, twoPI);\n s1 = mod(s1, twoPI);\n if(s0 > s1) s1 += twoPI;\n\n var a0 = mod(a, twoPI);\n var a1 = a0 + twoPI;\n\n return (a0 >= s0 && a0 <= s1) || (a1 >= s0 && a1 <= s1);\n}\n\n/**\n * is pt (r,a) inside sector?\n *\n * @param {number} r : pt's radial coordinate\n * @param {number} a : pt's angular coordinate in *radians*\n * @param {2-item array} rBnds : sector's radial bounds\n * @param {2-item array} aBnds : sector's angular bounds in *radians*\n * @return {boolean}\n */\nfunction isPtInsideSector(r, a, rBnds, aBnds) {\n if(!isAngleInsideSector(a, aBnds)) return false;\n\n var r0, r1;\n\n if(rBnds[0] < rBnds[1]) {\n r0 = rBnds[0];\n r1 = rBnds[1];\n } else {\n r0 = rBnds[1];\n r1 = rBnds[0];\n }\n\n return r >= r0 && r <= r1;\n}\n\n// common to pathArc, pathSector and pathAnnulus\nfunction _path(r0, r1, a0, a1, cx, cy, isClosed) {\n cx = cx || 0;\n cy = cy || 0;\n\n var isCircle = isFullCircle([a0, a1]);\n var aStart, aMid, aEnd;\n var rStart, rEnd;\n\n if(isCircle) {\n aStart = 0;\n aMid = PI;\n aEnd = twoPI;\n } else {\n if(a0 < a1) {\n aStart = a0;\n aEnd = a1;\n } else {\n aStart = a1;\n aEnd = a0;\n }\n }\n\n if(r0 < r1) {\n rStart = r0;\n rEnd = r1;\n } else {\n rStart = r1;\n rEnd = r0;\n }\n\n // N.B. svg coordinates here, where y increases downward\n function pt(r, a) {\n return [r * Math.cos(a) + cx, cy - r * Math.sin(a)];\n }\n\n var largeArc = Math.abs(aEnd - aStart) <= PI ? 0 : 1;\n function arc(r, a, cw) {\n return 'A' + [r, r] + ' ' + [0, largeArc, cw] + ' ' + pt(r, a);\n }\n\n var p;\n\n if(isCircle) {\n if(rStart === null) {\n p = 'M' + pt(rEnd, aStart) +\n arc(rEnd, aMid, 0) +\n arc(rEnd, aEnd, 0) + 'Z';\n } else {\n p = 'M' + pt(rStart, aStart) +\n arc(rStart, aMid, 0) +\n arc(rStart, aEnd, 0) + 'Z' +\n 'M' + pt(rEnd, aStart) +\n arc(rEnd, aMid, 1) +\n arc(rEnd, aEnd, 1) + 'Z';\n }\n } else {\n if(rStart === null) {\n p = 'M' + pt(rEnd, aStart) + arc(rEnd, aEnd, 0);\n if(isClosed) p += 'L0,0Z';\n } else {\n p = 'M' + pt(rStart, aStart) +\n 'L' + pt(rEnd, aStart) +\n arc(rEnd, aEnd, 0) +\n 'L' + pt(rStart, aEnd) +\n arc(rStart, aStart, 1) + 'Z';\n }\n }\n\n return p;\n}\n\n/**\n * path an arc\n *\n * @param {number} r : radius\n * @param {number} a0 : first angular coordinate in *radians*\n * @param {number} a1 : second angular coordinate in *radians*\n * @param {number (optional)} cx : x coordinate of center\n * @param {number (optional)} cy : y coordinate of center\n * @return {string} svg path\n */\nfunction pathArc(r, a0, a1, cx, cy) {\n return _path(null, r, a0, a1, cx, cy, 0);\n}\n\n/**\n * path a sector\n *\n * @param {number} r : radius\n * @param {number} a0 : first angular coordinate in *radians*\n * @param {number} a1 : second angular coordinate in *radians*\n * @param {number (optional)} cx : x coordinate of center\n * @param {number (optional)} cy : y coordinate of center\n * @return {string} svg path\n */\nfunction pathSector(r, a0, a1, cx, cy) {\n return _path(null, r, a0, a1, cx, cy, 1);\n}\n\n/**\n * path an annulus\n *\n * @param {number} r0 : first radial coordinate\n * @param {number} r1 : second radial coordinate\n * @param {number} a0 : first angular coordinate in *radians*\n * @param {number} a1 : second angular coordinate in *radians*\n * @param {number (optional)} cx : x coordinate of center\n * @param {number (optional)} cy : y coordinate of center\n * @return {string} svg path\n */\nfunction pathAnnulus(r0, r1, a0, a1, cx, cy) {\n return _path(r0, r1, a0, a1, cx, cy, 1);\n}\n\nmodule.exports = {\n deg2rad: deg2rad,\n rad2deg: rad2deg,\n angleDelta: angleDelta,\n angleDist: angleDist,\n isFullCircle: isFullCircle,\n isAngleInsideSector: isAngleInsideSector,\n isPtInsideSector: isPtInsideSector,\n pathArc: pathArc,\n pathSector: pathSector,\n pathAnnulus: pathAnnulus\n};\n","!function() {\n var d3 = {\n version: \"3.5.17\"\n };\n var d3_arraySlice = [].slice, d3_array = function(list) {\n return d3_arraySlice.call(list);\n };\n var d3_document = this.document;\n function d3_documentElement(node) {\n return node && (node.ownerDocument || node.document || node).documentElement;\n }\n function d3_window(node) {\n return node && (node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView);\n }\n if (d3_document) {\n try {\n d3_array(d3_document.documentElement.childNodes)[0].nodeType;\n } catch (e) {\n d3_array = function(list) {\n var i = list.length, array = new Array(i);\n while (i--) array[i] = list[i];\n return array;\n };\n }\n }\n if (!Date.now) Date.now = function() {\n return +new Date();\n };\n if (d3_document) {\n try {\n d3_document.createElement(\"DIV\").style.setProperty(\"opacity\", 0, \"\");\n } catch (error) {\n var d3_element_prototype = this.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = this.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;\n d3_element_prototype.setAttribute = function(name, value) {\n d3_element_setAttribute.call(this, name, value + \"\");\n };\n d3_element_prototype.setAttributeNS = function(space, local, value) {\n d3_element_setAttributeNS.call(this, space, local, value + \"\");\n };\n d3_style_prototype.setProperty = function(name, value, priority) {\n d3_style_setProperty.call(this, name, value + \"\", priority);\n };\n }\n }\n d3.ascending = d3_ascending;\n function d3_ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n }\n d3.descending = function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n };\n d3.min = function(array, f) {\n var i = -1, n = array.length, a, b;\n if (arguments.length === 1) {\n while (++i < n) if ((b = array[i]) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = array[i]) != null && a > b) a = b;\n } else {\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;\n }\n return a;\n };\n d3.max = function(array, f) {\n var i = -1, n = array.length, a, b;\n if (arguments.length === 1) {\n while (++i < n) if ((b = array[i]) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = array[i]) != null && b > a) a = b;\n } else {\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;\n }\n return a;\n };\n d3.extent = function(array, f) {\n var i = -1, n = array.length, a, b, c;\n if (arguments.length === 1) {\n while (++i < n) if ((b = array[i]) != null && b >= b) {\n a = c = b;\n break;\n }\n while (++i < n) if ((b = array[i]) != null) {\n if (a > b) a = b;\n if (c < b) c = b;\n }\n } else {\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {\n a = c = b;\n break;\n }\n while (++i < n) if ((b = f.call(array, array[i], i)) != null) {\n if (a > b) a = b;\n if (c < b) c = b;\n }\n }\n return [ a, c ];\n };\n function d3_number(x) {\n return x === null ? NaN : +x;\n }\n function d3_numeric(x) {\n return !isNaN(x);\n }\n d3.sum = function(array, f) {\n var s = 0, n = array.length, a, i = -1;\n if (arguments.length === 1) {\n while (++i < n) if (d3_numeric(a = +array[i])) s += a;\n } else {\n while (++i < n) if (d3_numeric(a = +f.call(array, array[i], i))) s += a;\n }\n return s;\n };\n d3.mean = function(array, f) {\n var s = 0, n = array.length, a, i = -1, j = n;\n if (arguments.length === 1) {\n while (++i < n) if (d3_numeric(a = d3_number(array[i]))) s += a; else --j;\n } else {\n while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) s += a; else --j;\n }\n if (j) return s / j;\n };\n d3.quantile = function(values, p) {\n var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h;\n return e ? v + e * (values[h] - v) : v;\n };\n d3.median = function(array, f) {\n var numbers = [], n = array.length, a, i = -1;\n if (arguments.length === 1) {\n while (++i < n) if (d3_numeric(a = d3_number(array[i]))) numbers.push(a);\n } else {\n while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) numbers.push(a);\n }\n if (numbers.length) return d3.quantile(numbers.sort(d3_ascending), .5);\n };\n d3.variance = function(array, f) {\n var n = array.length, m = 0, a, d, s = 0, i = -1, j = 0;\n if (arguments.length === 1) {\n while (++i < n) {\n if (d3_numeric(a = d3_number(array[i]))) {\n d = a - m;\n m += d / ++j;\n s += d * (a - m);\n }\n }\n } else {\n while (++i < n) {\n if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) {\n d = a - m;\n m += d / ++j;\n s += d * (a - m);\n }\n }\n }\n if (j > 1) return s / (j - 1);\n };\n d3.deviation = function() {\n var v = d3.variance.apply(this, arguments);\n return v ? Math.sqrt(v) : v;\n };\n function d3_bisector(compare) {\n return {\n left: function(a, x, lo, hi) {\n if (arguments.length < 3) lo = 0;\n if (arguments.length < 4) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1; else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (arguments.length < 3) lo = 0;\n if (arguments.length < 4) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid; else lo = mid + 1;\n }\n return lo;\n }\n };\n }\n var d3_bisect = d3_bisector(d3_ascending);\n d3.bisectLeft = d3_bisect.left;\n d3.bisect = d3.bisectRight = d3_bisect.right;\n d3.bisector = function(f) {\n return d3_bisector(f.length === 1 ? function(d, x) {\n return d3_ascending(f(d), x);\n } : f);\n };\n d3.shuffle = function(array, i0, i1) {\n if ((m = arguments.length) < 3) {\n i1 = array.length;\n if (m < 2) i0 = 0;\n }\n var m = i1 - i0, t, i;\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0], array[m + i0] = array[i + i0], array[i + i0] = t;\n }\n return array;\n };\n d3.permute = function(array, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array[indexes[i]];\n return permutes;\n };\n d3.pairs = function(array) {\n var i = 0, n = array.length - 1, p0, p1 = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = [ p0 = p1, p1 = array[++i] ];\n return pairs;\n };\n d3.transpose = function(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = d3.min(matrix, d3_transposeLength), transpose = new Array(m); ++i < m; ) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n; ) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n };\n function d3_transposeLength(d) {\n return d.length;\n }\n d3.zip = function() {\n return d3.transpose(arguments);\n };\n d3.keys = function(map) {\n var keys = [];\n for (var key in map) keys.push(key);\n return keys;\n };\n d3.values = function(map) {\n var values = [];\n for (var key in map) values.push(map[key]);\n return values;\n };\n d3.entries = function(map) {\n var entries = [];\n for (var key in map) entries.push({\n key: key,\n value: map[key]\n });\n return entries;\n };\n d3.merge = function(arrays) {\n var n = arrays.length, m, i = -1, j = 0, merged, array;\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n return merged;\n };\n var abs = Math.abs;\n d3.range = function(start, stop, step) {\n if (arguments.length < 3) {\n step = 1;\n if (arguments.length < 2) {\n stop = start;\n start = 0;\n }\n }\n if ((stop - start) / step === Infinity) throw new Error(\"infinite range\");\n var range = [], k = d3_range_integerScale(abs(step)), i = -1, j;\n start *= k, stop *= k, step *= k;\n if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k);\n return range;\n };\n function d3_range_integerScale(x) {\n var k = 1;\n while (x * k % 1) k *= 10;\n return k;\n }\n function d3_class(ctor, properties) {\n for (var key in properties) {\n Object.defineProperty(ctor.prototype, key, {\n value: properties[key],\n enumerable: false\n });\n }\n }\n d3.map = function(object, f) {\n var map = new d3_Map();\n if (object instanceof d3_Map) {\n object.forEach(function(key, value) {\n map.set(key, value);\n });\n } else if (Array.isArray(object)) {\n var i = -1, n = object.length, o;\n if (arguments.length === 1) while (++i < n) map.set(i, object[i]); else while (++i < n) map.set(f.call(object, o = object[i], i), o);\n } else {\n for (var key in object) map.set(key, object[key]);\n }\n return map;\n };\n function d3_Map() {\n this._ = Object.create(null);\n }\n var d3_map_proto = \"__proto__\", d3_map_zero = \"\\x00\";\n d3_class(d3_Map, {\n has: d3_map_has,\n get: function(key) {\n return this._[d3_map_escape(key)];\n },\n set: function(key, value) {\n return this._[d3_map_escape(key)] = value;\n },\n remove: d3_map_remove,\n keys: d3_map_keys,\n values: function() {\n var values = [];\n for (var key in this._) values.push(this._[key]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var key in this._) entries.push({\n key: d3_map_unescape(key),\n value: this._[key]\n });\n return entries;\n },\n size: d3_map_size,\n empty: d3_map_empty,\n forEach: function(f) {\n for (var key in this._) f.call(this, d3_map_unescape(key), this._[key]);\n }\n });\n function d3_map_escape(key) {\n return (key += \"\") === d3_map_proto || key[0] === d3_map_zero ? d3_map_zero + key : key;\n }\n function d3_map_unescape(key) {\n return (key += \"\")[0] === d3_map_zero ? key.slice(1) : key;\n }\n function d3_map_has(key) {\n return d3_map_escape(key) in this._;\n }\n function d3_map_remove(key) {\n return (key = d3_map_escape(key)) in this._ && delete this._[key];\n }\n function d3_map_keys() {\n var keys = [];\n for (var key in this._) keys.push(d3_map_unescape(key));\n return keys;\n }\n function d3_map_size() {\n var size = 0;\n for (var key in this._) ++size;\n return size;\n }\n function d3_map_empty() {\n for (var key in this._) return false;\n return true;\n }\n d3.nest = function() {\n var nest = {}, keys = [], sortKeys = [], sortValues, rollup;\n function map(mapType, array, depth) {\n if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array;\n var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values;\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(object = array[i]))) {\n values.push(object);\n } else {\n valuesByKey.set(keyValue, [ object ]);\n }\n }\n if (mapType) {\n object = mapType();\n setter = function(keyValue, values) {\n object.set(keyValue, map(mapType, values, depth));\n };\n } else {\n object = {};\n setter = function(keyValue, values) {\n object[keyValue] = map(mapType, values, depth);\n };\n }\n valuesByKey.forEach(setter);\n return object;\n }\n function entries(map, depth) {\n if (depth >= keys.length) return map;\n var array = [], sortKey = sortKeys[depth++];\n map.forEach(function(key, keyMap) {\n array.push({\n key: key,\n values: entries(keyMap, depth)\n });\n });\n return sortKey ? array.sort(function(a, b) {\n return sortKey(a.key, b.key);\n }) : array;\n }\n nest.map = function(array, mapType) {\n return map(mapType, array, 0);\n };\n nest.entries = function(array) {\n return entries(map(d3.map, array, 0), 0);\n };\n nest.key = function(d) {\n keys.push(d);\n return nest;\n };\n nest.sortKeys = function(order) {\n sortKeys[keys.length - 1] = order;\n return nest;\n };\n nest.sortValues = function(order) {\n sortValues = order;\n return nest;\n };\n nest.rollup = function(f) {\n rollup = f;\n return nest;\n };\n return nest;\n };\n d3.set = function(array) {\n var set = new d3_Set();\n if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]);\n return set;\n };\n function d3_Set() {\n this._ = Object.create(null);\n }\n d3_class(d3_Set, {\n has: d3_map_has,\n add: function(key) {\n this._[d3_map_escape(key += \"\")] = true;\n return key;\n },\n remove: d3_map_remove,\n values: d3_map_keys,\n size: d3_map_size,\n empty: d3_map_empty,\n forEach: function(f) {\n for (var key in this._) f.call(this, d3_map_unescape(key));\n }\n });\n d3.behavior = {};\n function d3_identity(d) {\n return d;\n }\n d3.rebind = function(target, source) {\n var i = 1, n = arguments.length, method;\n while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);\n return target;\n };\n function d3_rebind(target, source, method) {\n return function() {\n var value = method.apply(source, arguments);\n return value === source ? target : value;\n };\n }\n function d3_vendorSymbol(object, name) {\n if (name in object) return name;\n name = name.charAt(0).toUpperCase() + name.slice(1);\n for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) {\n var prefixName = d3_vendorPrefixes[i] + name;\n if (prefixName in object) return prefixName;\n }\n }\n var d3_vendorPrefixes = [ \"webkit\", \"ms\", \"moz\", \"Moz\", \"o\", \"O\" ];\n function d3_noop() {}\n d3.dispatch = function() {\n var dispatch = new d3_dispatch(), i = -1, n = arguments.length;\n while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);\n return dispatch;\n };\n function d3_dispatch() {}\n d3_dispatch.prototype.on = function(type, listener) {\n var i = type.indexOf(\".\"), name = \"\";\n if (i >= 0) {\n name = type.slice(i + 1);\n type = type.slice(0, i);\n }\n if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener);\n if (arguments.length === 2) {\n if (listener == null) for (type in this) {\n if (this.hasOwnProperty(type)) this[type].on(name, null);\n }\n return this;\n }\n };\n function d3_dispatch_event(dispatch) {\n var listeners = [], listenerByName = new d3_Map();\n function event() {\n var z = listeners, i = -1, n = z.length, l;\n while (++i < n) if (l = z[i].on) l.apply(this, arguments);\n return dispatch;\n }\n event.on = function(name, listener) {\n var l = listenerByName.get(name), i;\n if (arguments.length < 2) return l && l.on;\n if (l) {\n l.on = null;\n listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));\n listenerByName.remove(name);\n }\n if (listener) listeners.push(listenerByName.set(name, {\n on: listener\n }));\n return dispatch;\n };\n return event;\n }\n d3.event = null;\n function d3_eventPreventDefault() {\n d3.event.preventDefault();\n }\n function d3_eventSource() {\n var e = d3.event, s;\n while (s = e.sourceEvent) e = s;\n return e;\n }\n function d3_eventDispatch(target) {\n var dispatch = new d3_dispatch(), i = 0, n = arguments.length;\n while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);\n dispatch.of = function(thiz, argumentz) {\n return function(e1) {\n try {\n var e0 = e1.sourceEvent = d3.event;\n e1.target = target;\n d3.event = e1;\n dispatch[e1.type].apply(thiz, argumentz);\n } finally {\n d3.event = e0;\n }\n };\n };\n return dispatch;\n }\n d3.requote = function(s) {\n return s.replace(d3_requote_re, \"\\\\$&\");\n };\n var d3_requote_re = /[\\\\\\^\\$\\*\\+\\?\\|\\[\\]\\(\\)\\.\\{\\}]/g;\n var d3_subclass = {}.__proto__ ? function(object, prototype) {\n object.__proto__ = prototype;\n } : function(object, prototype) {\n for (var property in prototype) object[property] = prototype[property];\n };\n function d3_selection(groups) {\n d3_subclass(groups, d3_selectionPrototype);\n return groups;\n }\n var d3_select = function(s, n) {\n return n.querySelector(s);\n }, d3_selectAll = function(s, n) {\n return n.querySelectorAll(s);\n }, d3_selectMatches = function(n, s) {\n var d3_selectMatcher = n.matches || n[d3_vendorSymbol(n, \"matchesSelector\")];\n d3_selectMatches = function(n, s) {\n return d3_selectMatcher.call(n, s);\n };\n return d3_selectMatches(n, s);\n };\n if (typeof Sizzle === \"function\") {\n d3_select = function(s, n) {\n return Sizzle(s, n)[0] || null;\n };\n d3_selectAll = Sizzle;\n d3_selectMatches = Sizzle.matchesSelector;\n }\n d3.selection = function() {\n return d3.select(d3_document.documentElement);\n };\n var d3_selectionPrototype = d3.selection.prototype = [];\n d3_selectionPrototype.select = function(selector) {\n var subgroups = [], subgroup, subnode, group, node;\n selector = d3_selection_selector(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n subgroups.push(subgroup = []);\n subgroup.parentNode = (group = this[j]).parentNode;\n for (var i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n subgroup.push(subnode = selector.call(node, node.__data__, i, j));\n if (subnode && \"__data__\" in node) subnode.__data__ = node.__data__;\n } else {\n subgroup.push(null);\n }\n }\n }\n return d3_selection(subgroups);\n };\n function d3_selection_selector(selector) {\n return typeof selector === \"function\" ? selector : function() {\n return d3_select(selector, this);\n };\n }\n d3_selectionPrototype.selectAll = function(selector) {\n var subgroups = [], subgroup, node;\n selector = d3_selection_selectorAll(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i, j)));\n subgroup.parentNode = node;\n }\n }\n }\n return d3_selection(subgroups);\n };\n function d3_selection_selectorAll(selector) {\n return typeof selector === \"function\" ? selector : function() {\n return d3_selectAll(selector, this);\n };\n }\n var d3_nsXhtml = \"http://www.w3.org/1999/xhtml\";\n var d3_nsPrefix = {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: d3_nsXhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n };\n d3.ns = {\n prefix: d3_nsPrefix,\n qualify: function(name) {\n var i = name.indexOf(\":\"), prefix = name;\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return d3_nsPrefix.hasOwnProperty(prefix) ? {\n space: d3_nsPrefix[prefix],\n local: name\n } : name;\n }\n };\n d3_selectionPrototype.attr = function(name, value) {\n if (arguments.length < 2) {\n if (typeof name === \"string\") {\n var node = this.node();\n name = d3.ns.qualify(name);\n return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name);\n }\n for (value in name) this.each(d3_selection_attr(value, name[value]));\n return this;\n }\n return this.each(d3_selection_attr(name, value));\n };\n function d3_selection_attr(name, value) {\n name = d3.ns.qualify(name);\n function attrNull() {\n this.removeAttribute(name);\n }\n function attrNullNS() {\n this.removeAttributeNS(name.space, name.local);\n }\n function attrConstant() {\n this.setAttribute(name, value);\n }\n function attrConstantNS() {\n this.setAttributeNS(name.space, name.local, value);\n }\n function attrFunction() {\n var x = value.apply(this, arguments);\n if (x == null) this.removeAttribute(name); else this.setAttribute(name, x);\n }\n function attrFunctionNS() {\n var x = value.apply(this, arguments);\n if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x);\n }\n return value == null ? name.local ? attrNullNS : attrNull : typeof value === \"function\" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant;\n }\n function d3_collapse(s) {\n return s.trim().replace(/\\s+/g, \" \");\n }\n d3_selectionPrototype.classed = function(name, value) {\n if (arguments.length < 2) {\n if (typeof name === \"string\") {\n var node = this.node(), n = (name = d3_selection_classes(name)).length, i = -1;\n if (value = node.classList) {\n while (++i < n) if (!value.contains(name[i])) return false;\n } else {\n value = node.getAttribute(\"class\");\n while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false;\n }\n return true;\n }\n for (value in name) this.each(d3_selection_classed(value, name[value]));\n return this;\n }\n return this.each(d3_selection_classed(name, value));\n };\n function d3_selection_classedRe(name) {\n return new RegExp(\"(?:^|\\\\s+)\" + d3.requote(name) + \"(?:\\\\s+|$)\", \"g\");\n }\n function d3_selection_classes(name) {\n return (name + \"\").trim().split(/^|\\s+/);\n }\n function d3_selection_classed(name, value) {\n name = d3_selection_classes(name).map(d3_selection_classedName);\n var n = name.length;\n function classedConstant() {\n var i = -1;\n while (++i < n) name[i](this, value);\n }\n function classedFunction() {\n var i = -1, x = value.apply(this, arguments);\n while (++i < n) name[i](this, x);\n }\n return typeof value === \"function\" ? classedFunction : classedConstant;\n }\n function d3_selection_classedName(name) {\n var re = d3_selection_classedRe(name);\n return function(node, value) {\n if (c = node.classList) return value ? c.add(name) : c.remove(name);\n var c = node.getAttribute(\"class\") || \"\";\n if (value) {\n re.lastIndex = 0;\n if (!re.test(c)) node.setAttribute(\"class\", d3_collapse(c + \" \" + name));\n } else {\n node.setAttribute(\"class\", d3_collapse(c.replace(re, \" \")));\n }\n };\n }\n d3_selectionPrototype.style = function(name, value, priority) {\n var n = arguments.length;\n if (n < 3) {\n if (typeof name !== \"string\") {\n if (n < 2) value = \"\";\n for (priority in name) this.each(d3_selection_style(priority, name[priority], value));\n return this;\n }\n if (n < 2) {\n var node = this.node();\n return d3_window(node).getComputedStyle(node, null).getPropertyValue(name);\n }\n priority = \"\";\n }\n return this.each(d3_selection_style(name, value, priority));\n };\n function d3_selection_style(name, value, priority) {\n function styleNull() {\n this.style.removeProperty(name);\n }\n function styleConstant() {\n this.style.setProperty(name, value, priority);\n }\n function styleFunction() {\n var x = value.apply(this, arguments);\n if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority);\n }\n return value == null ? styleNull : typeof value === \"function\" ? styleFunction : styleConstant;\n }\n d3_selectionPrototype.property = function(name, value) {\n if (arguments.length < 2) {\n if (typeof name === \"string\") return this.node()[name];\n for (value in name) this.each(d3_selection_property(value, name[value]));\n return this;\n }\n return this.each(d3_selection_property(name, value));\n };\n function d3_selection_property(name, value) {\n function propertyNull() {\n delete this[name];\n }\n function propertyConstant() {\n this[name] = value;\n }\n function propertyFunction() {\n var x = value.apply(this, arguments);\n if (x == null) delete this[name]; else this[name] = x;\n }\n return value == null ? propertyNull : typeof value === \"function\" ? propertyFunction : propertyConstant;\n }\n d3_selectionPrototype.text = function(value) {\n return arguments.length ? this.each(typeof value === \"function\" ? function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n } : value == null ? function() {\n this.textContent = \"\";\n } : function() {\n this.textContent = value;\n }) : this.node().textContent;\n };\n d3_selectionPrototype.html = function(value) {\n return arguments.length ? this.each(typeof value === \"function\" ? function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n } : value == null ? function() {\n this.innerHTML = \"\";\n } : function() {\n this.innerHTML = value;\n }) : this.node().innerHTML;\n };\n d3_selectionPrototype.append = function(name) {\n name = d3_selection_creator(name);\n return this.select(function() {\n return this.appendChild(name.apply(this, arguments));\n });\n };\n function d3_selection_creator(name) {\n function create() {\n var document = this.ownerDocument, namespace = this.namespaceURI;\n return namespace === d3_nsXhtml && document.documentElement.namespaceURI === d3_nsXhtml ? document.createElement(name) : document.createElementNS(namespace, name);\n }\n function createNS() {\n return this.ownerDocument.createElementNS(name.space, name.local);\n }\n return typeof name === \"function\" ? name : (name = d3.ns.qualify(name)).local ? createNS : create;\n }\n d3_selectionPrototype.insert = function(name, before) {\n name = d3_selection_creator(name);\n before = d3_selection_selector(before);\n return this.select(function() {\n return this.insertBefore(name.apply(this, arguments), before.apply(this, arguments) || null);\n });\n };\n d3_selectionPrototype.remove = function() {\n return this.each(d3_selectionRemove);\n };\n function d3_selectionRemove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n }\n d3_selectionPrototype.data = function(value, key) {\n var i = -1, n = this.length, group, node;\n if (!arguments.length) {\n value = new Array(n = (group = this[0]).length);\n while (++i < n) {\n if (node = group[i]) {\n value[i] = node.__data__;\n }\n }\n return value;\n }\n function bind(group, groupData) {\n var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData;\n if (key) {\n var nodeByKeyValue = new d3_Map(), keyValues = new Array(n), keyValue;\n for (i = -1; ++i < n; ) {\n if (node = group[i]) {\n if (nodeByKeyValue.has(keyValue = key.call(node, node.__data__, i))) {\n exitNodes[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n keyValues[i] = keyValue;\n }\n }\n for (i = -1; ++i < m; ) {\n if (!(node = nodeByKeyValue.get(keyValue = key.call(groupData, nodeData = groupData[i], i)))) {\n enterNodes[i] = d3_selection_dataNode(nodeData);\n } else if (node !== true) {\n updateNodes[i] = node;\n node.__data__ = nodeData;\n }\n nodeByKeyValue.set(keyValue, true);\n }\n for (i = -1; ++i < n; ) {\n if (i in keyValues && nodeByKeyValue.get(keyValues[i]) !== true) {\n exitNodes[i] = group[i];\n }\n }\n } else {\n for (i = -1; ++i < n0; ) {\n node = group[i];\n nodeData = groupData[i];\n if (node) {\n node.__data__ = nodeData;\n updateNodes[i] = node;\n } else {\n enterNodes[i] = d3_selection_dataNode(nodeData);\n }\n }\n for (;i < m; ++i) {\n enterNodes[i] = d3_selection_dataNode(groupData[i]);\n }\n for (;i < n; ++i) {\n exitNodes[i] = group[i];\n }\n }\n enterNodes.update = updateNodes;\n enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode;\n enter.push(enterNodes);\n update.push(updateNodes);\n exit.push(exitNodes);\n }\n var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]);\n if (typeof value === \"function\") {\n while (++i < n) {\n bind(group = this[i], value.call(group, group.parentNode.__data__, i));\n }\n } else {\n while (++i < n) {\n bind(group = this[i], value);\n }\n }\n update.enter = function() {\n return enter;\n };\n update.exit = function() {\n return exit;\n };\n return update;\n };\n function d3_selection_dataNode(data) {\n return {\n __data__: data\n };\n }\n d3_selectionPrototype.datum = function(value) {\n return arguments.length ? this.property(\"__data__\", value) : this.property(\"__data__\");\n };\n d3_selectionPrototype.filter = function(filter) {\n var subgroups = [], subgroup, group, node;\n if (typeof filter !== \"function\") filter = d3_selection_filter(filter);\n for (var j = 0, m = this.length; j < m; j++) {\n subgroups.push(subgroup = []);\n subgroup.parentNode = (group = this[j]).parentNode;\n for (var i = 0, n = group.length; i < n; i++) {\n if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {\n subgroup.push(node);\n }\n }\n }\n return d3_selection(subgroups);\n };\n function d3_selection_filter(selector) {\n return function() {\n return d3_selectMatches(this, selector);\n };\n }\n d3_selectionPrototype.order = function() {\n for (var j = -1, m = this.length; ++j < m; ) {\n for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {\n if (node = group[i]) {\n if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n return this;\n };\n d3_selectionPrototype.sort = function(comparator) {\n comparator = d3_selection_sortComparator.apply(this, arguments);\n for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator);\n return this.order();\n };\n function d3_selection_sortComparator(comparator) {\n if (!arguments.length) comparator = d3_ascending;\n return function(a, b) {\n return a && b ? comparator(a.__data__, b.__data__) : !a - !b;\n };\n }\n d3_selectionPrototype.each = function(callback) {\n return d3_selection_each(this, function(node, i, j) {\n callback.call(node, node.__data__, i, j);\n });\n };\n function d3_selection_each(groups, callback) {\n for (var j = 0, m = groups.length; j < m; j++) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) {\n if (node = group[i]) callback(node, i, j);\n }\n }\n return groups;\n }\n d3_selectionPrototype.call = function(callback) {\n var args = d3_array(arguments);\n callback.apply(args[0] = this, args);\n return this;\n };\n d3_selectionPrototype.empty = function() {\n return !this.node();\n };\n d3_selectionPrototype.node = function() {\n for (var j = 0, m = this.length; j < m; j++) {\n for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n var node = group[i];\n if (node) return node;\n }\n }\n return null;\n };\n d3_selectionPrototype.size = function() {\n var n = 0;\n d3_selection_each(this, function() {\n ++n;\n });\n return n;\n };\n function d3_selection_enter(selection) {\n d3_subclass(selection, d3_selection_enterPrototype);\n return selection;\n }\n var d3_selection_enterPrototype = [];\n d3.selection.enter = d3_selection_enter;\n d3.selection.enter.prototype = d3_selection_enterPrototype;\n d3_selection_enterPrototype.append = d3_selectionPrototype.append;\n d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;\n d3_selection_enterPrototype.node = d3_selectionPrototype.node;\n d3_selection_enterPrototype.call = d3_selectionPrototype.call;\n d3_selection_enterPrototype.size = d3_selectionPrototype.size;\n d3_selection_enterPrototype.select = function(selector) {\n var subgroups = [], subgroup, subnode, upgroup, group, node;\n for (var j = -1, m = this.length; ++j < m; ) {\n upgroup = (group = this[j]).update;\n subgroups.push(subgroup = []);\n subgroup.parentNode = group.parentNode;\n for (var i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i, j));\n subnode.__data__ = node.__data__;\n } else {\n subgroup.push(null);\n }\n }\n }\n return d3_selection(subgroups);\n };\n d3_selection_enterPrototype.insert = function(name, before) {\n if (arguments.length < 2) before = d3_selection_enterInsertBefore(this);\n return d3_selectionPrototype.insert.call(this, name, before);\n };\n function d3_selection_enterInsertBefore(enter) {\n var i0, j0;\n return function(d, i, j) {\n var group = enter[j].update, n = group.length, node;\n if (j != j0) j0 = j, i0 = 0;\n if (i >= i0) i0 = i + 1;\n while (!(node = group[i0]) && ++i0 < n) ;\n return node;\n };\n }\n d3.select = function(node) {\n var group;\n if (typeof node === \"string\") {\n group = [ d3_select(node, d3_document) ];\n group.parentNode = d3_document.documentElement;\n } else {\n group = [ node ];\n group.parentNode = d3_documentElement(node);\n }\n return d3_selection([ group ]);\n };\n d3.selectAll = function(nodes) {\n var group;\n if (typeof nodes === \"string\") {\n group = d3_array(d3_selectAll(nodes, d3_document));\n group.parentNode = d3_document.documentElement;\n } else {\n group = d3_array(nodes);\n group.parentNode = null;\n }\n return d3_selection([ group ]);\n };\n d3_selectionPrototype.on = function(type, listener, capture) {\n var n = arguments.length;\n if (n < 3) {\n if (typeof type !== \"string\") {\n if (n < 2) listener = false;\n for (capture in type) this.each(d3_selection_on(capture, type[capture], listener));\n return this;\n }\n if (n < 2) return (n = this.node()[\"__on\" + type]) && n._;\n capture = false;\n }\n return this.each(d3_selection_on(type, listener, capture));\n };\n function d3_selection_on(type, listener, capture) {\n var name = \"__on\" + type, i = type.indexOf(\".\"), wrap = d3_selection_onListener;\n if (i > 0) type = type.slice(0, i);\n var filter = d3_selection_onFilters.get(type);\n if (filter) type = filter, wrap = d3_selection_onFilter;\n function onRemove() {\n var l = this[name];\n if (l) {\n this.removeEventListener(type, l, l.$);\n delete this[name];\n }\n }\n function onAdd() {\n var l = wrap(listener, d3_array(arguments));\n onRemove.call(this);\n this.addEventListener(type, this[name] = l, l.$ = capture);\n l._ = listener;\n }\n function removeAll() {\n var re = new RegExp(\"^__on([^.]+)\" + d3.requote(type) + \"$\"), match;\n for (var name in this) {\n if (match = name.match(re)) {\n var l = this[name];\n this.removeEventListener(match[1], l, l.$);\n delete this[name];\n }\n }\n }\n return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll;\n }\n var d3_selection_onFilters = d3.map({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\"\n });\n if (d3_document) {\n d3_selection_onFilters.forEach(function(k) {\n if (\"on\" + k in d3_document) d3_selection_onFilters.remove(k);\n });\n }\n function d3_selection_onListener(listener, argumentz) {\n return function(e) {\n var o = d3.event;\n d3.event = e;\n argumentz[0] = this.__data__;\n try {\n listener.apply(this, argumentz);\n } finally {\n d3.event = o;\n }\n };\n }\n function d3_selection_onFilter(listener, argumentz) {\n var l = d3_selection_onListener(listener, argumentz);\n return function(e) {\n var target = this, related = e.relatedTarget;\n if (!related || related !== target && !(related.compareDocumentPosition(target) & 8)) {\n l.call(target, e);\n }\n };\n }\n var d3_event_dragSelect, d3_event_dragId = 0;\n function d3_event_dragSuppress(node) {\n var name = \".dragsuppress-\" + ++d3_event_dragId, click = \"click\" + name, w = d3.select(d3_window(node)).on(\"touchmove\" + name, d3_eventPreventDefault).on(\"dragstart\" + name, d3_eventPreventDefault).on(\"selectstart\" + name, d3_eventPreventDefault);\n if (d3_event_dragSelect == null) {\n d3_event_dragSelect = \"onselectstart\" in node ? false : d3_vendorSymbol(node.style, \"userSelect\");\n }\n if (d3_event_dragSelect) {\n var style = d3_documentElement(node).style, select = style[d3_event_dragSelect];\n style[d3_event_dragSelect] = \"none\";\n }\n return function(suppressClick) {\n w.on(name, null);\n if (d3_event_dragSelect) style[d3_event_dragSelect] = select;\n if (suppressClick) {\n var off = function() {\n w.on(click, null);\n };\n w.on(click, function() {\n d3_eventPreventDefault();\n off();\n }, true);\n setTimeout(off, 0);\n }\n };\n }\n d3.mouse = function(container) {\n return d3_mousePoint(container, d3_eventSource());\n };\n var d3_mouse_bug44083 = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0;\n function d3_mousePoint(container, e) {\n if (e.changedTouches) e = e.changedTouches[0];\n var svg = container.ownerSVGElement || container;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n if (d3_mouse_bug44083 < 0) {\n var window = d3_window(container);\n if (window.scrollX || window.scrollY) {\n svg = d3.select(\"body\").append(\"svg\").style({\n position: \"absolute\",\n top: 0,\n left: 0,\n margin: 0,\n padding: 0,\n border: \"none\"\n }, \"important\");\n var ctm = svg[0][0].getScreenCTM();\n d3_mouse_bug44083 = !(ctm.f || ctm.e);\n svg.remove();\n }\n }\n if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; else point.x = e.clientX, \n point.y = e.clientY;\n point = point.matrixTransform(container.getScreenCTM().inverse());\n return [ point.x, point.y ];\n }\n var rect = container.getBoundingClientRect();\n return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ];\n }\n d3.touch = function(container, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches;\n if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return d3_mousePoint(container, touch);\n }\n }\n };\n d3.behavior.drag = function() {\n var event = d3_eventDispatch(drag, \"drag\", \"dragstart\", \"dragend\"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_window, \"mousemove\", \"mouseup\"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_identity, \"touchmove\", \"touchend\");\n function drag() {\n this.on(\"mousedown.drag\", mousedown).on(\"touchstart.drag\", touchstart);\n }\n function dragstart(id, position, subject, move, end) {\n return function() {\n var that = this, target = d3.event.target.correspondingElement || d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = \".drag\" + (dragId == null ? \"\" : \"-\" + dragId), dragOffset, dragSubject = d3.select(subject(target)).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(target), position0 = position(parent, dragId);\n if (origin) {\n dragOffset = origin.apply(that, arguments);\n dragOffset = [ dragOffset.x - position0[0], dragOffset.y - position0[1] ];\n } else {\n dragOffset = [ 0, 0 ];\n }\n dispatch({\n type: \"dragstart\"\n });\n function moved() {\n var position1 = position(parent, dragId), dx, dy;\n if (!position1) return;\n dx = position1[0] - position0[0];\n dy = position1[1] - position0[1];\n dragged |= dx | dy;\n position0 = position1;\n dispatch({\n type: \"drag\",\n x: position1[0] + dragOffset[0],\n y: position1[1] + dragOffset[1],\n dx: dx,\n dy: dy\n });\n }\n function ended() {\n if (!position(parent, dragId)) return;\n dragSubject.on(move + dragName, null).on(end + dragName, null);\n dragRestore(dragged);\n dispatch({\n type: \"dragend\"\n });\n }\n };\n }\n drag.origin = function(x) {\n if (!arguments.length) return origin;\n origin = x;\n return drag;\n };\n return d3.rebind(drag, event, \"on\");\n };\n function d3_behavior_dragTouchId() {\n return d3.event.changedTouches[0].identifier;\n }\n d3.touches = function(container, touches) {\n if (arguments.length < 2) touches = d3_eventSource().touches;\n return touches ? d3_array(touches).map(function(touch) {\n var point = d3_mousePoint(container, touch);\n point.identifier = touch.identifier;\n return point;\n }) : [];\n };\n var ε = 1e-6, ε2 = ε * ε, π = Math.PI, τ = 2 * π, τε = τ - ε, halfπ = π / 2, d3_radians = π / 180, d3_degrees = 180 / π;\n function d3_sgn(x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n }\n function d3_cross2d(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);\n }\n function d3_acos(x) {\n return x > 1 ? 0 : x < -1 ? π : Math.acos(x);\n }\n function d3_asin(x) {\n return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x);\n }\n function d3_sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n }\n function d3_cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n }\n function d3_tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n }\n function d3_haversin(x) {\n return (x = Math.sin(x / 2)) * x;\n }\n var ρ = Math.SQRT2, ρ2 = 2, ρ4 = 4;\n d3.interpolateZoom = function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S;\n if (d2 < ε2) {\n S = Math.log(w1 / w0) / ρ;\n i = function(t) {\n return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * t * S) ];\n };\n } else {\n var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / ρ;\n i = function(t) {\n var s = t * S, coshr0 = d3_cosh(r0), u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0));\n return [ ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / d3_cosh(ρ * s + r0) ];\n };\n }\n i.duration = S * 1e3;\n return i;\n };\n d3.behavior.zoom = function() {\n var view = {\n x: 0,\n y: 0,\n k: 1\n }, translate0, center0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, duration = 250, zooming = 0, mousedown = \"mousedown.zoom\", mousemove = \"mousemove.zoom\", mouseup = \"mouseup.zoom\", mousewheelTimer, touchstart = \"touchstart.zoom\", touchtime, event = d3_eventDispatch(zoom, \"zoomstart\", \"zoom\", \"zoomend\"), x0, x1, y0, y1;\n if (!d3_behavior_zoomWheel) {\n d3_behavior_zoomWheel = \"onwheel\" in d3_document ? (d3_behavior_zoomDelta = function() {\n return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1);\n }, \"wheel\") : \"onmousewheel\" in d3_document ? (d3_behavior_zoomDelta = function() {\n return d3.event.wheelDelta;\n }, \"mousewheel\") : (d3_behavior_zoomDelta = function() {\n return -d3.event.detail;\n }, \"MozMousePixelScroll\");\n }\n function zoom(g) {\n g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + \".zoom\", mousewheeled).on(\"dblclick.zoom\", dblclicked).on(touchstart, touchstarted);\n }\n zoom.event = function(g) {\n g.each(function() {\n var dispatch = event.of(this, arguments), view1 = view;\n if (d3_transitionInheritId) {\n d3.select(this).transition().each(\"start.zoom\", function() {\n view = this.__chart__ || {\n x: 0,\n y: 0,\n k: 1\n };\n zoomstarted(dispatch);\n }).tween(\"zoom:zoom\", function() {\n var dx = size[0], dy = size[1], cx = center0 ? center0[0] : dx / 2, cy = center0 ? center0[1] : dy / 2, i = d3.interpolateZoom([ (cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k ], [ (cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k ]);\n return function(t) {\n var l = i(t), k = dx / l[2];\n this.__chart__ = view = {\n x: cx - l[0] * k,\n y: cy - l[1] * k,\n k: k\n };\n zoomed(dispatch);\n };\n }).each(\"interrupt.zoom\", function() {\n zoomended(dispatch);\n }).each(\"end.zoom\", function() {\n zoomended(dispatch);\n });\n } else {\n this.__chart__ = view;\n zoomstarted(dispatch);\n zoomed(dispatch);\n zoomended(dispatch);\n }\n });\n };\n zoom.translate = function(_) {\n if (!arguments.length) return [ view.x, view.y ];\n view = {\n x: +_[0],\n y: +_[1],\n k: view.k\n };\n rescale();\n return zoom;\n };\n zoom.scale = function(_) {\n if (!arguments.length) return view.k;\n view = {\n x: view.x,\n y: view.y,\n k: null\n };\n scaleTo(+_);\n rescale();\n return zoom;\n };\n zoom.scaleExtent = function(_) {\n if (!arguments.length) return scaleExtent;\n scaleExtent = _ == null ? d3_behavior_zoomInfinity : [ +_[0], +_[1] ];\n return zoom;\n };\n zoom.center = function(_) {\n if (!arguments.length) return center;\n center = _ && [ +_[0], +_[1] ];\n return zoom;\n };\n zoom.size = function(_) {\n if (!arguments.length) return size;\n size = _ && [ +_[0], +_[1] ];\n return zoom;\n };\n zoom.duration = function(_) {\n if (!arguments.length) return duration;\n duration = +_;\n return zoom;\n };\n zoom.x = function(z) {\n if (!arguments.length) return x1;\n x1 = z;\n x0 = z.copy();\n view = {\n x: 0,\n y: 0,\n k: 1\n };\n return zoom;\n };\n zoom.y = function(z) {\n if (!arguments.length) return y1;\n y1 = z;\n y0 = z.copy();\n view = {\n x: 0,\n y: 0,\n k: 1\n };\n return zoom;\n };\n function location(p) {\n return [ (p[0] - view.x) / view.k, (p[1] - view.y) / view.k ];\n }\n function point(l) {\n return [ l[0] * view.k + view.x, l[1] * view.k + view.y ];\n }\n function scaleTo(s) {\n view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));\n }\n function translateTo(p, l) {\n l = point(l);\n view.x += p[0] - l[0];\n view.y += p[1] - l[1];\n }\n function zoomTo(that, p, l, k) {\n that.__chart__ = {\n x: view.x,\n y: view.y,\n k: view.k\n };\n scaleTo(Math.pow(2, k));\n translateTo(center0 = p, l);\n that = d3.select(that);\n if (duration > 0) that = that.transition().duration(duration);\n that.call(zoom.event);\n }\n function rescale() {\n if (x1) x1.domain(x0.range().map(function(x) {\n return (x - view.x) / view.k;\n }).map(x0.invert));\n if (y1) y1.domain(y0.range().map(function(y) {\n return (y - view.y) / view.k;\n }).map(y0.invert));\n }\n function zoomstarted(dispatch) {\n if (!zooming++) dispatch({\n type: \"zoomstart\"\n });\n }\n function zoomed(dispatch) {\n rescale();\n dispatch({\n type: \"zoom\",\n scale: view.k,\n translate: [ view.x, view.y ]\n });\n }\n function zoomended(dispatch) {\n if (!--zooming) dispatch({\n type: \"zoomend\"\n }), center0 = null;\n }\n function mousedowned() {\n var that = this, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window(that)).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(that);\n d3_selection_interrupt.call(that);\n zoomstarted(dispatch);\n function moved() {\n dragged = 1;\n translateTo(d3.mouse(that), location0);\n zoomed(dispatch);\n }\n function ended() {\n subject.on(mousemove, null).on(mouseup, null);\n dragRestore(dragged);\n zoomended(dispatch);\n }\n }\n function touchstarted() {\n var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = \".zoom-\" + d3.event.changedTouches[0].identifier, touchmove = \"touchmove\" + zoomName, touchend = \"touchend\" + zoomName, targets = [], subject = d3.select(that), dragRestore = d3_event_dragSuppress(that);\n started();\n zoomstarted(dispatch);\n subject.on(mousedown, null).on(touchstart, started);\n function relocate() {\n var touches = d3.touches(that);\n scale0 = view.k;\n touches.forEach(function(t) {\n if (t.identifier in locations0) locations0[t.identifier] = location(t);\n });\n return touches;\n }\n function started() {\n var target = d3.event.target;\n d3.select(target).on(touchmove, moved).on(touchend, ended);\n targets.push(target);\n var changed = d3.event.changedTouches;\n for (var i = 0, n = changed.length; i < n; ++i) {\n locations0[changed[i].identifier] = null;\n }\n var touches = relocate(), now = Date.now();\n if (touches.length === 1) {\n if (now - touchtime < 500) {\n var p = touches[0];\n zoomTo(that, p, locations0[p.identifier], Math.floor(Math.log(view.k) / Math.LN2) + 1);\n d3_eventPreventDefault();\n }\n touchtime = now;\n } else if (touches.length > 1) {\n var p = touches[0], q = touches[1], dx = p[0] - q[0], dy = p[1] - q[1];\n distance0 = dx * dx + dy * dy;\n }\n }\n function moved() {\n var touches = d3.touches(that), p0, l0, p1, l1;\n d3_selection_interrupt.call(that);\n for (var i = 0, n = touches.length; i < n; ++i, l1 = null) {\n p1 = touches[i];\n if (l1 = locations0[p1.identifier]) {\n if (l0) break;\n p0 = p1, l0 = l1;\n }\n }\n if (l1) {\n var distance1 = (distance1 = p1[0] - p0[0]) * distance1 + (distance1 = p1[1] - p0[1]) * distance1, scale1 = distance0 && Math.sqrt(distance1 / distance0);\n p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ];\n l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ];\n scaleTo(scale1 * scale0);\n }\n touchtime = null;\n translateTo(p0, l0);\n zoomed(dispatch);\n }\n function ended() {\n if (d3.event.touches.length) {\n var changed = d3.event.changedTouches;\n for (var i = 0, n = changed.length; i < n; ++i) {\n delete locations0[changed[i].identifier];\n }\n for (var identifier in locations0) {\n return void relocate();\n }\n }\n d3.selectAll(targets).on(zoomName, null);\n subject.on(mousedown, mousedowned).on(touchstart, touchstarted);\n dragRestore();\n zoomended(dispatch);\n }\n }\n function mousewheeled() {\n var dispatch = event.of(this, arguments);\n if (mousewheelTimer) clearTimeout(mousewheelTimer); else d3_selection_interrupt.call(this), \n translate0 = location(center0 = center || d3.mouse(this)), zoomstarted(dispatch);\n mousewheelTimer = setTimeout(function() {\n mousewheelTimer = null;\n zoomended(dispatch);\n }, 50);\n d3_eventPreventDefault();\n scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k);\n translateTo(center0, translate0);\n zoomed(dispatch);\n }\n function dblclicked() {\n var p = d3.mouse(this), k = Math.log(view.k) / Math.LN2;\n zoomTo(this, p, location(p), d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1);\n }\n return d3.rebind(zoom, event, \"on\");\n };\n var d3_behavior_zoomInfinity = [ 0, Infinity ], d3_behavior_zoomDelta, d3_behavior_zoomWheel;\n d3.color = d3_color;\n function d3_color() {}\n d3_color.prototype.toString = function() {\n return this.rgb() + \"\";\n };\n d3.hsl = d3_hsl;\n function d3_hsl(h, s, l) {\n return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l) : arguments.length < 2 ? h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l) : d3_rgb_parse(\"\" + h, d3_rgb_hsl, d3_hsl) : new d3_hsl(h, s, l);\n }\n var d3_hslPrototype = d3_hsl.prototype = new d3_color();\n d3_hslPrototype.brighter = function(k) {\n k = Math.pow(.7, arguments.length ? k : 1);\n return new d3_hsl(this.h, this.s, this.l / k);\n };\n d3_hslPrototype.darker = function(k) {\n k = Math.pow(.7, arguments.length ? k : 1);\n return new d3_hsl(this.h, this.s, k * this.l);\n };\n d3_hslPrototype.rgb = function() {\n return d3_hsl_rgb(this.h, this.s, this.l);\n };\n function d3_hsl_rgb(h, s, l) {\n var m1, m2;\n h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h;\n s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s;\n l = l < 0 ? 0 : l > 1 ? 1 : l;\n m2 = l <= .5 ? l * (1 + s) : l + s - l * s;\n m1 = 2 * l - m2;\n function v(h) {\n if (h > 360) h -= 360; else if (h < 0) h += 360;\n if (h < 60) return m1 + (m2 - m1) * h / 60;\n if (h < 180) return m2;\n if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;\n return m1;\n }\n function vv(h) {\n return Math.round(v(h) * 255);\n }\n return new d3_rgb(vv(h + 120), vv(h), vv(h - 120));\n }\n d3.hcl = d3_hcl;\n function d3_hcl(h, c, l) {\n return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l) : arguments.length < 2 ? h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l) : h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : new d3_hcl(h, c, l);\n }\n var d3_hclPrototype = d3_hcl.prototype = new d3_color();\n d3_hclPrototype.brighter = function(k) {\n return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));\n };\n d3_hclPrototype.darker = function(k) {\n return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));\n };\n d3_hclPrototype.rgb = function() {\n return d3_hcl_lab(this.h, this.c, this.l).rgb();\n };\n function d3_hcl_lab(h, c, l) {\n if (isNaN(h)) h = 0;\n if (isNaN(c)) c = 0;\n return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);\n }\n d3.lab = d3_lab;\n function d3_lab(l, a, b) {\n return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b) : arguments.length < 2 ? l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b) : l instanceof d3_hcl ? d3_hcl_lab(l.h, l.c, l.l) : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) : new d3_lab(l, a, b);\n }\n var d3_lab_K = 18;\n var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;\n var d3_labPrototype = d3_lab.prototype = new d3_color();\n d3_labPrototype.brighter = function(k) {\n return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);\n };\n d3_labPrototype.darker = function(k) {\n return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);\n };\n d3_labPrototype.rgb = function() {\n return d3_lab_rgb(this.l, this.a, this.b);\n };\n function d3_lab_rgb(l, a, b) {\n var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;\n x = d3_lab_xyz(x) * d3_lab_X;\n y = d3_lab_xyz(y) * d3_lab_Y;\n z = d3_lab_xyz(z) * d3_lab_Z;\n return new d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));\n }\n function d3_lab_hcl(l, a, b) {\n return l > 0 ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : new d3_hcl(NaN, NaN, l);\n }\n function d3_lab_xyz(x) {\n return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037;\n }\n function d3_xyz_lab(x) {\n return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;\n }\n function d3_xyz_rgb(r) {\n return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055));\n }\n d3.rgb = d3_rgb;\n function d3_rgb(r, g, b) {\n return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b) : arguments.length < 2 ? r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b) : d3_rgb_parse(\"\" + r, d3_rgb, d3_hsl_rgb) : new d3_rgb(r, g, b);\n }\n function d3_rgbNumber(value) {\n return new d3_rgb(value >> 16, value >> 8 & 255, value & 255);\n }\n function d3_rgbString(value) {\n return d3_rgbNumber(value) + \"\";\n }\n var d3_rgbPrototype = d3_rgb.prototype = new d3_color();\n d3_rgbPrototype.brighter = function(k) {\n k = Math.pow(.7, arguments.length ? k : 1);\n var r = this.r, g = this.g, b = this.b, i = 30;\n if (!r && !g && !b) return new d3_rgb(i, i, i);\n if (r && r < i) r = i;\n if (g && g < i) g = i;\n if (b && b < i) b = i;\n return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k));\n };\n d3_rgbPrototype.darker = function(k) {\n k = Math.pow(.7, arguments.length ? k : 1);\n return new d3_rgb(k * this.r, k * this.g, k * this.b);\n };\n d3_rgbPrototype.hsl = function() {\n return d3_rgb_hsl(this.r, this.g, this.b);\n };\n d3_rgbPrototype.toString = function() {\n return \"#\" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);\n };\n function d3_rgb_hex(v) {\n return v < 16 ? \"0\" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);\n }\n function d3_rgb_parse(format, rgb, hsl) {\n var r = 0, g = 0, b = 0, m1, m2, color;\n m1 = /([a-z]+)\\((.*)\\)/.exec(format = format.toLowerCase());\n if (m1) {\n m2 = m1[2].split(\",\");\n switch (m1[1]) {\n case \"hsl\":\n {\n return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100);\n }\n\n case \"rgb\":\n {\n return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2]));\n }\n }\n }\n if (color = d3_rgb_names.get(format)) {\n return rgb(color.r, color.g, color.b);\n }\n if (format != null && format.charAt(0) === \"#\" && !isNaN(color = parseInt(format.slice(1), 16))) {\n if (format.length === 4) {\n r = (color & 3840) >> 4;\n r = r >> 4 | r;\n g = color & 240;\n g = g >> 4 | g;\n b = color & 15;\n b = b << 4 | b;\n } else if (format.length === 7) {\n r = (color & 16711680) >> 16;\n g = (color & 65280) >> 8;\n b = color & 255;\n }\n }\n return rgb(r, g, b);\n }\n function d3_rgb_hsl(r, g, b) {\n var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2;\n if (d) {\n s = l < .5 ? d / (max + min) : d / (2 - max - min);\n if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4;\n h *= 60;\n } else {\n h = NaN;\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new d3_hsl(h, s, l);\n }\n function d3_rgb_lab(r, g, b) {\n r = d3_rgb_xyz(r);\n g = d3_rgb_xyz(g);\n b = d3_rgb_xyz(b);\n var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z);\n return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));\n }\n function d3_rgb_xyz(r) {\n return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4);\n }\n function d3_rgb_parseNumber(c) {\n var f = parseFloat(c);\n return c.charAt(c.length - 1) === \"%\" ? Math.round(f * 2.55) : f;\n }\n var d3_rgb_names = d3.map({\n aliceblue: 15792383,\n antiquewhite: 16444375,\n aqua: 65535,\n aquamarine: 8388564,\n azure: 15794175,\n beige: 16119260,\n bisque: 16770244,\n black: 0,\n blanchedalmond: 16772045,\n blue: 255,\n blueviolet: 9055202,\n brown: 10824234,\n burlywood: 14596231,\n cadetblue: 6266528,\n chartreuse: 8388352,\n chocolate: 13789470,\n coral: 16744272,\n cornflowerblue: 6591981,\n cornsilk: 16775388,\n crimson: 14423100,\n cyan: 65535,\n darkblue: 139,\n darkcyan: 35723,\n darkgoldenrod: 12092939,\n darkgray: 11119017,\n darkgreen: 25600,\n darkgrey: 11119017,\n darkkhaki: 12433259,\n darkmagenta: 9109643,\n darkolivegreen: 5597999,\n darkorange: 16747520,\n darkorchid: 10040012,\n darkred: 9109504,\n darksalmon: 15308410,\n darkseagreen: 9419919,\n darkslateblue: 4734347,\n darkslategray: 3100495,\n darkslategrey: 3100495,\n darkturquoise: 52945,\n darkviolet: 9699539,\n deeppink: 16716947,\n deepskyblue: 49151,\n dimgray: 6908265,\n dimgrey: 6908265,\n dodgerblue: 2003199,\n firebrick: 11674146,\n floralwhite: 16775920,\n forestgreen: 2263842,\n fuchsia: 16711935,\n gainsboro: 14474460,\n ghostwhite: 16316671,\n gold: 16766720,\n goldenrod: 14329120,\n gray: 8421504,\n green: 32768,\n greenyellow: 11403055,\n grey: 8421504,\n honeydew: 15794160,\n hotpink: 16738740,\n indianred: 13458524,\n indigo: 4915330,\n ivory: 16777200,\n khaki: 15787660,\n lavender: 15132410,\n lavenderblush: 16773365,\n lawngreen: 8190976,\n lemonchiffon: 16775885,\n lightblue: 11393254,\n lightcoral: 15761536,\n lightcyan: 14745599,\n lightgoldenrodyellow: 16448210,\n lightgray: 13882323,\n lightgreen: 9498256,\n lightgrey: 13882323,\n lightpink: 16758465,\n lightsalmon: 16752762,\n lightseagreen: 2142890,\n lightskyblue: 8900346,\n lightslategray: 7833753,\n lightslategrey: 7833753,\n lightsteelblue: 11584734,\n lightyellow: 16777184,\n lime: 65280,\n limegreen: 3329330,\n linen: 16445670,\n magenta: 16711935,\n maroon: 8388608,\n mediumaquamarine: 6737322,\n mediumblue: 205,\n mediumorchid: 12211667,\n mediumpurple: 9662683,\n mediumseagreen: 3978097,\n mediumslateblue: 8087790,\n mediumspringgreen: 64154,\n mediumturquoise: 4772300,\n mediumvioletred: 13047173,\n midnightblue: 1644912,\n mintcream: 16121850,\n mistyrose: 16770273,\n moccasin: 16770229,\n navajowhite: 16768685,\n navy: 128,\n oldlace: 16643558,\n olive: 8421376,\n olivedrab: 7048739,\n orange: 16753920,\n orangered: 16729344,\n orchid: 14315734,\n palegoldenrod: 15657130,\n palegreen: 10025880,\n paleturquoise: 11529966,\n palevioletred: 14381203,\n papayawhip: 16773077,\n peachpuff: 16767673,\n peru: 13468991,\n pink: 16761035,\n plum: 14524637,\n powderblue: 11591910,\n purple: 8388736,\n rebeccapurple: 6697881,\n red: 16711680,\n rosybrown: 12357519,\n royalblue: 4286945,\n saddlebrown: 9127187,\n salmon: 16416882,\n sandybrown: 16032864,\n seagreen: 3050327,\n seashell: 16774638,\n sienna: 10506797,\n silver: 12632256,\n skyblue: 8900331,\n slateblue: 6970061,\n slategray: 7372944,\n slategrey: 7372944,\n snow: 16775930,\n springgreen: 65407,\n steelblue: 4620980,\n tan: 13808780,\n teal: 32896,\n thistle: 14204888,\n tomato: 16737095,\n turquoise: 4251856,\n violet: 15631086,\n wheat: 16113331,\n white: 16777215,\n whitesmoke: 16119285,\n yellow: 16776960,\n yellowgreen: 10145074\n });\n d3_rgb_names.forEach(function(key, value) {\n d3_rgb_names.set(key, d3_rgbNumber(value));\n });\n function d3_functor(v) {\n return typeof v === \"function\" ? v : function() {\n return v;\n };\n }\n d3.functor = d3_functor;\n d3.xhr = d3_xhrType(d3_identity);\n function d3_xhrType(response) {\n return function(url, mimeType, callback) {\n if (arguments.length === 2 && typeof mimeType === \"function\") callback = mimeType, \n mimeType = null;\n return d3_xhr(url, mimeType, response, callback);\n };\n }\n function d3_xhr(url, mimeType, response, callback) {\n var xhr = {}, dispatch = d3.dispatch(\"beforesend\", \"progress\", \"load\", \"error\"), headers = {}, request = new XMLHttpRequest(), responseType = null;\n if (this.XDomainRequest && !(\"withCredentials\" in request) && /^(http(s)?:)?\\/\\//.test(url)) request = new XDomainRequest();\n \"onload\" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() {\n request.readyState > 3 && respond();\n };\n function respond() {\n var status = request.status, result;\n if (!status && d3_xhrHasResponse(request) || status >= 200 && status < 300 || status === 304) {\n try {\n result = response.call(xhr, request);\n } catch (e) {\n dispatch.error.call(xhr, e);\n return;\n }\n dispatch.load.call(xhr, result);\n } else {\n dispatch.error.call(xhr, request);\n }\n }\n request.onprogress = function(event) {\n var o = d3.event;\n d3.event = event;\n try {\n dispatch.progress.call(xhr, request);\n } finally {\n d3.event = o;\n }\n };\n xhr.header = function(name, value) {\n name = (name + \"\").toLowerCase();\n if (arguments.length < 2) return headers[name];\n if (value == null) delete headers[name]; else headers[name] = value + \"\";\n return xhr;\n };\n xhr.mimeType = function(value) {\n if (!arguments.length) return mimeType;\n mimeType = value == null ? null : value + \"\";\n return xhr;\n };\n xhr.responseType = function(value) {\n if (!arguments.length) return responseType;\n responseType = value;\n return xhr;\n };\n xhr.response = function(value) {\n response = value;\n return xhr;\n };\n [ \"get\", \"post\" ].forEach(function(method) {\n xhr[method] = function() {\n return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments)));\n };\n });\n xhr.send = function(method, data, callback) {\n if (arguments.length === 2 && typeof data === \"function\") callback = data, data = null;\n request.open(method, url, true);\n if (mimeType != null && !(\"accept\" in headers)) headers[\"accept\"] = mimeType + \",*/*\";\n if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]);\n if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);\n if (responseType != null) request.responseType = responseType;\n if (callback != null) xhr.on(\"error\", callback).on(\"load\", function(request) {\n callback(null, request);\n });\n dispatch.beforesend.call(xhr, request);\n request.send(data == null ? null : data);\n return xhr;\n };\n xhr.abort = function() {\n request.abort();\n return xhr;\n };\n d3.rebind(xhr, dispatch, \"on\");\n return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback));\n }\n function d3_xhr_fixCallback(callback) {\n return callback.length === 1 ? function(error, request) {\n callback(error == null ? request : null);\n } : callback;\n }\n function d3_xhrHasResponse(request) {\n var type = request.responseType;\n return type && type !== \"text\" ? request.response : request.responseText;\n }\n d3.dsv = function(delimiter, mimeType) {\n var reFormat = new RegExp('[\"' + delimiter + \"\\n]\"), delimiterCode = delimiter.charCodeAt(0);\n function dsv(url, row, callback) {\n if (arguments.length < 3) callback = row, row = null;\n var xhr = d3_xhr(url, mimeType, row == null ? response : typedResponse(row), callback);\n xhr.row = function(_) {\n return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row;\n };\n return xhr;\n }\n function response(request) {\n return dsv.parse(request.responseText);\n }\n function typedResponse(f) {\n return function(request) {\n return dsv.parse(request.responseText, f);\n };\n }\n dsv.parse = function(text, f) {\n var o;\n return dsv.parseRows(text, function(row, i) {\n if (o) return o(row, i - 1);\n var a = new Function(\"d\", \"return {\" + row.map(function(name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"]\";\n }).join(\",\") + \"}\");\n o = f ? function(row, i) {\n return f(a(row), i);\n } : a;\n });\n };\n dsv.parseRows = function(text, f) {\n var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol;\n function token() {\n if (I >= N) return EOF;\n if (eol) return eol = false, EOL;\n var j = I;\n if (text.charCodeAt(j) === 34) {\n var i = j;\n while (i++ < N) {\n if (text.charCodeAt(i) === 34) {\n if (text.charCodeAt(i + 1) !== 34) break;\n ++i;\n }\n }\n I = i + 2;\n var c = text.charCodeAt(i + 1);\n if (c === 13) {\n eol = true;\n if (text.charCodeAt(i + 2) === 10) ++I;\n } else if (c === 10) {\n eol = true;\n }\n return text.slice(j + 1, i).replace(/\"\"/g, '\"');\n }\n while (I < N) {\n var c = text.charCodeAt(I++), k = 1;\n if (c === 10) eol = true; else if (c === 13) {\n eol = true;\n if (text.charCodeAt(I) === 10) ++I, ++k;\n } else if (c !== delimiterCode) continue;\n return text.slice(j, I - k);\n }\n return text.slice(j);\n }\n while ((t = token()) !== EOF) {\n var a = [];\n while (t !== EOL && t !== EOF) {\n a.push(t);\n t = token();\n }\n if (f && (a = f(a, n++)) == null) continue;\n rows.push(a);\n }\n return rows;\n };\n dsv.format = function(rows) {\n if (Array.isArray(rows[0])) return dsv.formatRows(rows);\n var fieldSet = new d3_Set(), fields = [];\n rows.forEach(function(row) {\n for (var field in row) {\n if (!fieldSet.has(field)) {\n fields.push(fieldSet.add(field));\n }\n }\n });\n return [ fields.map(formatValue).join(delimiter) ].concat(rows.map(function(row) {\n return fields.map(function(field) {\n return formatValue(row[field]);\n }).join(delimiter);\n })).join(\"\\n\");\n };\n dsv.formatRows = function(rows) {\n return rows.map(formatRow).join(\"\\n\");\n };\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n function formatValue(text) {\n return reFormat.test(text) ? '\"' + text.replace(/\\\"/g, '\"\"') + '\"' : text;\n }\n return dsv;\n };\n d3.csv = d3.dsv(\",\", \"text/csv\");\n d3.tsv = d3.dsv(\"\t\", \"text/tab-separated-values\");\n var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_frame = this[d3_vendorSymbol(this, \"requestAnimationFrame\")] || function(callback) {\n setTimeout(callback, 17);\n };\n d3.timer = function() {\n d3_timer.apply(this, arguments);\n };\n function d3_timer(callback, delay, then) {\n var n = arguments.length;\n if (n < 2) delay = 0;\n if (n < 3) then = Date.now();\n var time = then + delay, timer = {\n c: callback,\n t: time,\n n: null\n };\n if (d3_timer_queueTail) d3_timer_queueTail.n = timer; else d3_timer_queueHead = timer;\n d3_timer_queueTail = timer;\n if (!d3_timer_interval) {\n d3_timer_timeout = clearTimeout(d3_timer_timeout);\n d3_timer_interval = 1;\n d3_timer_frame(d3_timer_step);\n }\n return timer;\n }\n function d3_timer_step() {\n var now = d3_timer_mark(), delay = d3_timer_sweep() - now;\n if (delay > 24) {\n if (isFinite(delay)) {\n clearTimeout(d3_timer_timeout);\n d3_timer_timeout = setTimeout(d3_timer_step, delay);\n }\n d3_timer_interval = 0;\n } else {\n d3_timer_interval = 1;\n d3_timer_frame(d3_timer_step);\n }\n }\n d3.timer.flush = function() {\n d3_timer_mark();\n d3_timer_sweep();\n };\n function d3_timer_mark() {\n var now = Date.now(), timer = d3_timer_queueHead;\n while (timer) {\n if (now >= timer.t && timer.c(now - timer.t)) timer.c = null;\n timer = timer.n;\n }\n return now;\n }\n function d3_timer_sweep() {\n var t0, t1 = d3_timer_queueHead, time = Infinity;\n while (t1) {\n if (t1.c) {\n if (t1.t < time) time = t1.t;\n t1 = (t0 = t1).n;\n } else {\n t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n;\n }\n }\n d3_timer_queueTail = t0;\n return time;\n }\n function d3_format_precision(x, p) {\n return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1);\n }\n d3.round = function(x, n) {\n return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);\n };\n var d3_formatPrefixes = [ \"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"µ\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\" ].map(d3_formatPrefix);\n d3.formatPrefix = function(value, precision) {\n var i = 0;\n if (value = +value) {\n if (value < 0) value *= -1;\n if (precision) value = d3.round(value, d3_format_precision(value, precision));\n i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);\n i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3));\n }\n return d3_formatPrefixes[8 + i / 3];\n };\n function d3_formatPrefix(d, i) {\n var k = Math.pow(10, abs(8 - i) * 3);\n return {\n scale: i > 8 ? function(d) {\n return d / k;\n } : function(d) {\n return d * k;\n },\n symbol: d\n };\n }\n function d3_locale_numberFormat(locale) {\n var locale_decimal = locale.decimal, locale_thousands = locale.thousands, locale_grouping = locale.grouping, locale_currency = locale.currency, formatGroup = locale_grouping && locale_thousands ? function(value, width) {\n var i = value.length, t = [], j = 0, g = locale_grouping[0], length = 0;\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = locale_grouping[j = (j + 1) % locale_grouping.length];\n }\n return t.reverse().join(locale_thousands);\n } : d3_identity;\n return function(specifier) {\n var match = d3_format_re.exec(specifier), fill = match[1] || \" \", align = match[2] || \">\", sign = match[3] || \"-\", symbol = match[4] || \"\", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, prefix = \"\", suffix = \"\", integer = false, exponent = true;\n if (precision) precision = +precision.substring(1);\n if (zfill || fill === \"0\" && align === \"=\") {\n zfill = fill = \"0\";\n align = \"=\";\n }\n switch (type) {\n case \"n\":\n comma = true;\n type = \"g\";\n break;\n\n case \"%\":\n scale = 100;\n suffix = \"%\";\n type = \"f\";\n break;\n\n case \"p\":\n scale = 100;\n suffix = \"%\";\n type = \"r\";\n break;\n\n case \"b\":\n case \"o\":\n case \"x\":\n case \"X\":\n if (symbol === \"#\") prefix = \"0\" + type.toLowerCase();\n\n case \"c\":\n exponent = false;\n\n case \"d\":\n integer = true;\n precision = 0;\n break;\n\n case \"s\":\n scale = -1;\n type = \"r\";\n break;\n }\n if (symbol === \"$\") prefix = locale_currency[0], suffix = locale_currency[1];\n if (type == \"r\" && !precision) type = \"g\";\n if (precision != null) {\n if (type == \"g\") precision = Math.max(1, Math.min(21, precision)); else if (type == \"e\" || type == \"f\") precision = Math.max(0, Math.min(20, precision));\n }\n type = d3_format_types.get(type) || d3_format_typeDefault;\n var zcomma = zfill && comma;\n return function(value) {\n var fullSuffix = suffix;\n if (integer && value % 1) return \"\";\n var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, \"-\") : sign === \"-\" ? \"\" : sign;\n if (scale < 0) {\n var unit = d3.formatPrefix(value, precision);\n value = unit.scale(value);\n fullSuffix = unit.symbol + suffix;\n } else {\n value *= scale;\n }\n value = type(value, precision);\n var i = value.lastIndexOf(\".\"), before, after;\n if (i < 0) {\n var j = exponent ? value.lastIndexOf(\"e\") : -1;\n if (j < 0) before = value, after = \"\"; else before = value.substring(0, j), after = value.substring(j);\n } else {\n before = value.substring(0, i);\n after = locale_decimal + value.substring(i + 1);\n }\n if (!zfill && comma) before = formatGroup(before, Infinity);\n var length = prefix.length + before.length + after.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : \"\";\n if (zcomma) before = formatGroup(padding + before, padding.length ? width - after.length : Infinity);\n negative += prefix;\n value = before + after;\n return (align === \"<\" ? negative + value + padding : align === \">\" ? padding + negative + value : align === \"^\" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + fullSuffix;\n };\n };\n }\n var d3_format_re = /(?:([^{])?([<>=^]))?([+\\- ])?([$#])?(0)?(\\d+)?(,)?(\\.-?\\d+)?([a-z%])?/i;\n var d3_format_types = d3.map({\n b: function(x) {\n return x.toString(2);\n },\n c: function(x) {\n return String.fromCharCode(x);\n },\n o: function(x) {\n return x.toString(8);\n },\n x: function(x) {\n return x.toString(16);\n },\n X: function(x) {\n return x.toString(16).toUpperCase();\n },\n g: function(x, p) {\n return x.toPrecision(p);\n },\n e: function(x, p) {\n return x.toExponential(p);\n },\n f: function(x, p) {\n return x.toFixed(p);\n },\n r: function(x, p) {\n return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p))));\n }\n });\n function d3_format_typeDefault(x) {\n return x + \"\";\n }\n var d3_time = d3.time = {}, d3_date = Date;\n function d3_date_utc() {\n this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]);\n }\n d3_date_utc.prototype = {\n getDate: function() {\n return this._.getUTCDate();\n },\n getDay: function() {\n return this._.getUTCDay();\n },\n getFullYear: function() {\n return this._.getUTCFullYear();\n },\n getHours: function() {\n return this._.getUTCHours();\n },\n getMilliseconds: function() {\n return this._.getUTCMilliseconds();\n },\n getMinutes: function() {\n return this._.getUTCMinutes();\n },\n getMonth: function() {\n return this._.getUTCMonth();\n },\n getSeconds: function() {\n return this._.getUTCSeconds();\n },\n getTime: function() {\n return this._.getTime();\n },\n getTimezoneOffset: function() {\n return 0;\n },\n valueOf: function() {\n return this._.valueOf();\n },\n setDate: function() {\n d3_time_prototype.setUTCDate.apply(this._, arguments);\n },\n setDay: function() {\n d3_time_prototype.setUTCDay.apply(this._, arguments);\n },\n setFullYear: function() {\n d3_time_prototype.setUTCFullYear.apply(this._, arguments);\n },\n setHours: function() {\n d3_time_prototype.setUTCHours.apply(this._, arguments);\n },\n setMilliseconds: function() {\n d3_time_prototype.setUTCMilliseconds.apply(this._, arguments);\n },\n setMinutes: function() {\n d3_time_prototype.setUTCMinutes.apply(this._, arguments);\n },\n setMonth: function() {\n d3_time_prototype.setUTCMonth.apply(this._, arguments);\n },\n setSeconds: function() {\n d3_time_prototype.setUTCSeconds.apply(this._, arguments);\n },\n setTime: function() {\n d3_time_prototype.setTime.apply(this._, arguments);\n }\n };\n var d3_time_prototype = Date.prototype;\n function d3_time_interval(local, step, number) {\n function round(date) {\n var d0 = local(date), d1 = offset(d0, 1);\n return date - d0 < d1 - date ? d0 : d1;\n }\n function ceil(date) {\n step(date = local(new d3_date(date - 1)), 1);\n return date;\n }\n function offset(date, k) {\n step(date = new d3_date(+date), k);\n return date;\n }\n function range(t0, t1, dt) {\n var time = ceil(t0), times = [];\n if (dt > 1) {\n while (time < t1) {\n if (!(number(time) % dt)) times.push(new Date(+time));\n step(time, 1);\n }\n } else {\n while (time < t1) times.push(new Date(+time)), step(time, 1);\n }\n return times;\n }\n function range_utc(t0, t1, dt) {\n try {\n d3_date = d3_date_utc;\n var utc = new d3_date_utc();\n utc._ = t0;\n return range(utc, t1, dt);\n } finally {\n d3_date = Date;\n }\n }\n local.floor = local;\n local.round = round;\n local.ceil = ceil;\n local.offset = offset;\n local.range = range;\n var utc = local.utc = d3_time_interval_utc(local);\n utc.floor = utc;\n utc.round = d3_time_interval_utc(round);\n utc.ceil = d3_time_interval_utc(ceil);\n utc.offset = d3_time_interval_utc(offset);\n utc.range = range_utc;\n return local;\n }\n function d3_time_interval_utc(method) {\n return function(date, k) {\n try {\n d3_date = d3_date_utc;\n var utc = new d3_date_utc();\n utc._ = date;\n return method(utc, k)._;\n } finally {\n d3_date = Date;\n }\n };\n }\n d3_time.year = d3_time_interval(function(date) {\n date = d3_time.day(date);\n date.setMonth(0, 1);\n return date;\n }, function(date, offset) {\n date.setFullYear(date.getFullYear() + offset);\n }, function(date) {\n return date.getFullYear();\n });\n d3_time.years = d3_time.year.range;\n d3_time.years.utc = d3_time.year.utc.range;\n d3_time.day = d3_time_interval(function(date) {\n var day = new d3_date(2e3, 0);\n day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n return day;\n }, function(date, offset) {\n date.setDate(date.getDate() + offset);\n }, function(date) {\n return date.getDate() - 1;\n });\n d3_time.days = d3_time.day.range;\n d3_time.days.utc = d3_time.day.utc.range;\n d3_time.dayOfYear = function(date) {\n var year = d3_time.year(date);\n return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5);\n };\n [ \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\" ].forEach(function(day, i) {\n i = 7 - i;\n var interval = d3_time[day] = d3_time_interval(function(date) {\n (date = d3_time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7);\n return date;\n }, function(date, offset) {\n date.setDate(date.getDate() + Math.floor(offset) * 7);\n }, function(date) {\n var day = d3_time.year(date).getDay();\n return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i);\n });\n d3_time[day + \"s\"] = interval.range;\n d3_time[day + \"s\"].utc = interval.utc.range;\n d3_time[day + \"OfYear\"] = function(date) {\n var day = d3_time.year(date).getDay();\n return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7);\n };\n });\n d3_time.week = d3_time.sunday;\n d3_time.weeks = d3_time.sunday.range;\n d3_time.weeks.utc = d3_time.sunday.utc.range;\n d3_time.weekOfYear = d3_time.sundayOfYear;\n function d3_locale_timeFormat(locale) {\n var locale_dateTime = locale.dateTime, locale_date = locale.date, locale_time = locale.time, locale_periods = locale.periods, locale_days = locale.days, locale_shortDays = locale.shortDays, locale_months = locale.months, locale_shortMonths = locale.shortMonths;\n function d3_time_format(template) {\n var n = template.length;\n function format(date) {\n var string = [], i = -1, j = 0, c, p, f;\n while (++i < n) {\n if (template.charCodeAt(i) === 37) {\n string.push(template.slice(j, i));\n if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i);\n if (f = d3_time_formats[c]) c = f(date, p == null ? c === \"e\" ? \" \" : \"0\" : p);\n string.push(c);\n j = i + 1;\n }\n }\n string.push(template.slice(j, i));\n return string.join(\"\");\n }\n format.parse = function(string) {\n var d = {\n y: 1900,\n m: 0,\n d: 1,\n H: 0,\n M: 0,\n S: 0,\n L: 0,\n Z: null\n }, i = d3_time_parse(d, template, string, 0);\n if (i != string.length) return null;\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n var localZ = d.Z != null && d3_date !== d3_date_utc, date = new (localZ ? d3_date_utc : d3_date)();\n if (\"j\" in d) date.setFullYear(d.y, 0, d.j); else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"W\" in d ? 1 : 0;\n date.setFullYear(d.y, 0, 1);\n date.setFullYear(d.y, 0, \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (date.getDay() + 5) % 7 : d.w + d.U * 7 - (date.getDay() + 6) % 7);\n } else date.setFullYear(d.y, d.m, d.d);\n date.setHours(d.H + (d.Z / 100 | 0), d.M + d.Z % 100, d.S, d.L);\n return localZ ? date._ : date;\n };\n format.toString = function() {\n return template;\n };\n return format;\n }\n function d3_time_parse(date, template, string, j) {\n var c, p, t, i = 0, n = template.length, m = string.length;\n while (i < n) {\n if (j >= m) return -1;\n c = template.charCodeAt(i++);\n if (c === 37) {\n t = template.charAt(i++);\n p = d3_time_parsers[t in d3_time_formatPads ? template.charAt(i++) : t];\n if (!p || (j = p(date, string, j)) < 0) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n return j;\n }\n d3_time_format.utc = function(template) {\n var local = d3_time_format(template);\n function format(date) {\n try {\n d3_date = d3_date_utc;\n var utc = new d3_date();\n utc._ = date;\n return local(utc);\n } finally {\n d3_date = Date;\n }\n }\n format.parse = function(string) {\n try {\n d3_date = d3_date_utc;\n var date = local.parse(string);\n return date && date._;\n } finally {\n d3_date = Date;\n }\n };\n format.toString = local.toString;\n return format;\n };\n d3_time_format.multi = d3_time_format.utc.multi = d3_time_formatMulti;\n var d3_time_periodLookup = d3.map(), d3_time_dayRe = d3_time_formatRe(locale_days), d3_time_dayLookup = d3_time_formatLookup(locale_days), d3_time_dayAbbrevRe = d3_time_formatRe(locale_shortDays), d3_time_dayAbbrevLookup = d3_time_formatLookup(locale_shortDays), d3_time_monthRe = d3_time_formatRe(locale_months), d3_time_monthLookup = d3_time_formatLookup(locale_months), d3_time_monthAbbrevRe = d3_time_formatRe(locale_shortMonths), d3_time_monthAbbrevLookup = d3_time_formatLookup(locale_shortMonths);\n locale_periods.forEach(function(p, i) {\n d3_time_periodLookup.set(p.toLowerCase(), i);\n });\n var d3_time_formats = {\n a: function(d) {\n return locale_shortDays[d.getDay()];\n },\n A: function(d) {\n return locale_days[d.getDay()];\n },\n b: function(d) {\n return locale_shortMonths[d.getMonth()];\n },\n B: function(d) {\n return locale_months[d.getMonth()];\n },\n c: d3_time_format(locale_dateTime),\n d: function(d, p) {\n return d3_time_formatPad(d.getDate(), p, 2);\n },\n e: function(d, p) {\n return d3_time_formatPad(d.getDate(), p, 2);\n },\n H: function(d, p) {\n return d3_time_formatPad(d.getHours(), p, 2);\n },\n I: function(d, p) {\n return d3_time_formatPad(d.getHours() % 12 || 12, p, 2);\n },\n j: function(d, p) {\n return d3_time_formatPad(1 + d3_time.dayOfYear(d), p, 3);\n },\n L: function(d, p) {\n return d3_time_formatPad(d.getMilliseconds(), p, 3);\n },\n m: function(d, p) {\n return d3_time_formatPad(d.getMonth() + 1, p, 2);\n },\n M: function(d, p) {\n return d3_time_formatPad(d.getMinutes(), p, 2);\n },\n p: function(d) {\n return locale_periods[+(d.getHours() >= 12)];\n },\n S: function(d, p) {\n return d3_time_formatPad(d.getSeconds(), p, 2);\n },\n U: function(d, p) {\n return d3_time_formatPad(d3_time.sundayOfYear(d), p, 2);\n },\n w: function(d) {\n return d.getDay();\n },\n W: function(d, p) {\n return d3_time_formatPad(d3_time.mondayOfYear(d), p, 2);\n },\n x: d3_time_format(locale_date),\n X: d3_time_format(locale_time),\n y: function(d, p) {\n return d3_time_formatPad(d.getFullYear() % 100, p, 2);\n },\n Y: function(d, p) {\n return d3_time_formatPad(d.getFullYear() % 1e4, p, 4);\n },\n Z: d3_time_zone,\n \"%\": function() {\n return \"%\";\n }\n };\n var d3_time_parsers = {\n a: d3_time_parseWeekdayAbbrev,\n A: d3_time_parseWeekday,\n b: d3_time_parseMonthAbbrev,\n B: d3_time_parseMonth,\n c: d3_time_parseLocaleFull,\n d: d3_time_parseDay,\n e: d3_time_parseDay,\n H: d3_time_parseHour24,\n I: d3_time_parseHour24,\n j: d3_time_parseDayOfYear,\n L: d3_time_parseMilliseconds,\n m: d3_time_parseMonthNumber,\n M: d3_time_parseMinutes,\n p: d3_time_parseAmPm,\n S: d3_time_parseSeconds,\n U: d3_time_parseWeekNumberSunday,\n w: d3_time_parseWeekdayNumber,\n W: d3_time_parseWeekNumberMonday,\n x: d3_time_parseLocaleDate,\n X: d3_time_parseLocaleTime,\n y: d3_time_parseYear,\n Y: d3_time_parseFullYear,\n Z: d3_time_parseZone,\n \"%\": d3_time_parseLiteralPercent\n };\n function d3_time_parseWeekdayAbbrev(date, string, i) {\n d3_time_dayAbbrevRe.lastIndex = 0;\n var n = d3_time_dayAbbrevRe.exec(string.slice(i));\n return n ? (date.w = d3_time_dayAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function d3_time_parseWeekday(date, string, i) {\n d3_time_dayRe.lastIndex = 0;\n var n = d3_time_dayRe.exec(string.slice(i));\n return n ? (date.w = d3_time_dayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function d3_time_parseMonthAbbrev(date, string, i) {\n d3_time_monthAbbrevRe.lastIndex = 0;\n var n = d3_time_monthAbbrevRe.exec(string.slice(i));\n return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function d3_time_parseMonth(date, string, i) {\n d3_time_monthRe.lastIndex = 0;\n var n = d3_time_monthRe.exec(string.slice(i));\n return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function d3_time_parseLocaleFull(date, string, i) {\n return d3_time_parse(date, d3_time_formats.c.toString(), string, i);\n }\n function d3_time_parseLocaleDate(date, string, i) {\n return d3_time_parse(date, d3_time_formats.x.toString(), string, i);\n }\n function d3_time_parseLocaleTime(date, string, i) {\n return d3_time_parse(date, d3_time_formats.X.toString(), string, i);\n }\n function d3_time_parseAmPm(date, string, i) {\n var n = d3_time_periodLookup.get(string.slice(i, i += 2).toLowerCase());\n return n == null ? -1 : (date.p = n, i);\n }\n return d3_time_format;\n }\n var d3_time_formatPads = {\n \"-\": \"\",\n _: \" \",\n \"0\": \"0\"\n }, d3_time_numberRe = /^\\s*\\d+/, d3_time_percentRe = /^%/;\n function d3_time_formatPad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\", string = (sign ? -value : value) + \"\", length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n }\n function d3_time_formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(d3.requote).join(\"|\") + \")\", \"i\");\n }\n function d3_time_formatLookup(names) {\n var map = new d3_Map(), i = -1, n = names.length;\n while (++i < n) map.set(names[i].toLowerCase(), i);\n return map;\n }\n function d3_time_parseWeekdayNumber(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 1));\n return n ? (date.w = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseWeekNumberSunday(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i));\n return n ? (date.U = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseWeekNumberMonday(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i));\n return n ? (date.W = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseFullYear(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 4));\n return n ? (date.y = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseYear(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.y = d3_time_expandYear(+n[0]), i + n[0].length) : -1;\n }\n function d3_time_parseZone(date, string, i) {\n return /^[+-]\\d{4}$/.test(string = string.slice(i, i + 5)) ? (date.Z = -string, \n i + 5) : -1;\n }\n function d3_time_expandYear(d) {\n return d + (d > 68 ? 1900 : 2e3);\n }\n function d3_time_parseMonthNumber(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.m = n[0] - 1, i + n[0].length) : -1;\n }\n function d3_time_parseDay(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.d = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseDayOfYear(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 3));\n return n ? (date.j = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseHour24(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.H = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseMinutes(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.M = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseSeconds(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.S = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseMilliseconds(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 3));\n return n ? (date.L = +n[0], i + n[0].length) : -1;\n }\n function d3_time_zone(d) {\n var z = d.getTimezoneOffset(), zs = z > 0 ? \"-\" : \"+\", zh = abs(z) / 60 | 0, zm = abs(z) % 60;\n return zs + d3_time_formatPad(zh, \"0\", 2) + d3_time_formatPad(zm, \"0\", 2);\n }\n function d3_time_parseLiteralPercent(date, string, i) {\n d3_time_percentRe.lastIndex = 0;\n var n = d3_time_percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n }\n function d3_time_formatMulti(formats) {\n var n = formats.length, i = -1;\n while (++i < n) formats[i][0] = this(formats[i][0]);\n return function(date) {\n var i = 0, f = formats[i];\n while (!f[1](date)) f = formats[++i];\n return f[0](date);\n };\n }\n d3.locale = function(locale) {\n return {\n numberFormat: d3_locale_numberFormat(locale),\n timeFormat: d3_locale_timeFormat(locale)\n };\n };\n var d3_locale_enUS = d3.locale({\n decimal: \".\",\n thousands: \",\",\n grouping: [ 3 ],\n currency: [ \"$\", \"\" ],\n dateTime: \"%a %b %e %X %Y\",\n date: \"%m/%d/%Y\",\n time: \"%H:%M:%S\",\n periods: [ \"AM\", \"PM\" ],\n days: [ \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\" ],\n shortDays: [ \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\" ],\n months: [ \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\" ],\n shortMonths: [ \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\" ]\n });\n d3.format = d3_locale_enUS.numberFormat;\n d3.geo = {};\n function d3_adder() {}\n d3_adder.prototype = {\n s: 0,\n t: 0,\n add: function(y) {\n d3_adderSum(y, this.t, d3_adderTemp);\n d3_adderSum(d3_adderTemp.s, this.s, this);\n if (this.s) this.t += d3_adderTemp.t; else this.s = d3_adderTemp.t;\n },\n reset: function() {\n this.s = this.t = 0;\n },\n valueOf: function() {\n return this.s;\n }\n };\n var d3_adderTemp = new d3_adder();\n function d3_adderSum(a, b, o) {\n var x = o.s = a + b, bv = x - a, av = x - bv;\n o.t = a - av + (b - bv);\n }\n d3.geo.stream = function(object, listener) {\n if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) {\n d3_geo_streamObjectType[object.type](object, listener);\n } else {\n d3_geo_streamGeometry(object, listener);\n }\n };\n function d3_geo_streamGeometry(geometry, listener) {\n if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) {\n d3_geo_streamGeometryType[geometry.type](geometry, listener);\n }\n }\n var d3_geo_streamObjectType = {\n Feature: function(feature, listener) {\n d3_geo_streamGeometry(feature.geometry, listener);\n },\n FeatureCollection: function(object, listener) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener);\n }\n };\n var d3_geo_streamGeometryType = {\n Sphere: function(object, listener) {\n listener.sphere();\n },\n Point: function(object, listener) {\n object = object.coordinates;\n listener.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, listener) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], listener.point(object[0], object[1], object[2]);\n },\n LineString: function(object, listener) {\n d3_geo_streamLine(object.coordinates, listener, 0);\n },\n MultiLineString: function(object, listener) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0);\n },\n Polygon: function(object, listener) {\n d3_geo_streamPolygon(object.coordinates, listener);\n },\n MultiPolygon: function(object, listener) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) d3_geo_streamPolygon(coordinates[i], listener);\n },\n GeometryCollection: function(object, listener) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) d3_geo_streamGeometry(geometries[i], listener);\n }\n };\n function d3_geo_streamLine(coordinates, listener, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n listener.lineStart();\n while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1], coordinate[2]);\n listener.lineEnd();\n }\n function d3_geo_streamPolygon(coordinates, listener) {\n var i = -1, n = coordinates.length;\n listener.polygonStart();\n while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1);\n listener.polygonEnd();\n }\n d3.geo.area = function(object) {\n d3_geo_areaSum = 0;\n d3.geo.stream(object, d3_geo_area);\n return d3_geo_areaSum;\n };\n var d3_geo_areaSum, d3_geo_areaRingSum = new d3_adder();\n var d3_geo_area = {\n sphere: function() {\n d3_geo_areaSum += 4 * π;\n },\n point: d3_noop,\n lineStart: d3_noop,\n lineEnd: d3_noop,\n polygonStart: function() {\n d3_geo_areaRingSum.reset();\n d3_geo_area.lineStart = d3_geo_areaRingStart;\n },\n polygonEnd: function() {\n var area = 2 * d3_geo_areaRingSum;\n d3_geo_areaSum += area < 0 ? 4 * π + area : area;\n d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop;\n }\n };\n function d3_geo_areaRingStart() {\n var λ00, φ00, λ0, cosφ0, sinφ0;\n d3_geo_area.point = function(λ, φ) {\n d3_geo_area.point = nextPoint;\n λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4), \n sinφ0 = Math.sin(φ);\n };\n function nextPoint(λ, φ) {\n λ *= d3_radians;\n φ = φ * d3_radians / 2 + π / 4;\n var dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u = cosφ0 * cosφ + k * Math.cos(adλ), v = k * sdλ * Math.sin(adλ);\n d3_geo_areaRingSum.add(Math.atan2(v, u));\n λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ;\n }\n d3_geo_area.lineEnd = function() {\n nextPoint(λ00, φ00);\n };\n }\n function d3_geo_cartesian(spherical) {\n var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ);\n return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ];\n }\n function d3_geo_cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n }\n function d3_geo_cartesianCross(a, b) {\n return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ];\n }\n function d3_geo_cartesianAdd(a, b) {\n a[0] += b[0];\n a[1] += b[1];\n a[2] += b[2];\n }\n function d3_geo_cartesianScale(vector, k) {\n return [ vector[0] * k, vector[1] * k, vector[2] * k ];\n }\n function d3_geo_cartesianNormalize(d) {\n var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l;\n d[1] /= l;\n d[2] /= l;\n }\n function d3_geo_spherical(cartesian) {\n return [ Math.atan2(cartesian[1], cartesian[0]), d3_asin(cartesian[2]) ];\n }\n function d3_geo_sphericalEqual(a, b) {\n return abs(a[0] - b[0]) < ε && abs(a[1] - b[1]) < ε;\n }\n d3.geo.bounds = function() {\n var λ0, φ0, λ1, φ1, λ_, λ__, φ__, p0, dλSum, ranges, range;\n var bound = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n bound.point = ringPoint;\n bound.lineStart = ringStart;\n bound.lineEnd = ringEnd;\n dλSum = 0;\n d3_geo_area.polygonStart();\n },\n polygonEnd: function() {\n d3_geo_area.polygonEnd();\n bound.point = point;\n bound.lineStart = lineStart;\n bound.lineEnd = lineEnd;\n if (d3_geo_areaRingSum < 0) λ0 = -(λ1 = 180), φ0 = -(φ1 = 90); else if (dλSum > ε) φ1 = 90; else if (dλSum < -ε) φ0 = -90;\n range[0] = λ0, range[1] = λ1;\n }\n };\n function point(λ, φ) {\n ranges.push(range = [ λ0 = λ, λ1 = λ ]);\n if (φ < φ0) φ0 = φ;\n if (φ > φ1) φ1 = φ;\n }\n function linePoint(λ, φ) {\n var p = d3_geo_cartesian([ λ * d3_radians, φ * d3_radians ]);\n if (p0) {\n var normal = d3_geo_cartesianCross(p0, p), equatorial = [ normal[1], -normal[0], 0 ], inflection = d3_geo_cartesianCross(equatorial, normal);\n d3_geo_cartesianNormalize(inflection);\n inflection = d3_geo_spherical(inflection);\n var dλ = λ - λ_, s = dλ > 0 ? 1 : -1, λi = inflection[0] * d3_degrees * s, antimeridian = abs(dλ) > 180;\n if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) {\n var φi = inflection[1] * d3_degrees;\n if (φi > φ1) φ1 = φi;\n } else if (λi = (λi + 360) % 360 - 180, antimeridian ^ (s * λ_ < λi && λi < s * λ)) {\n var φi = -inflection[1] * d3_degrees;\n if (φi < φ0) φ0 = φi;\n } else {\n if (φ < φ0) φ0 = φ;\n if (φ > φ1) φ1 = φ;\n }\n if (antimeridian) {\n if (λ < λ_) {\n if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;\n } else {\n if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;\n }\n } else {\n if (λ1 >= λ0) {\n if (λ < λ0) λ0 = λ;\n if (λ > λ1) λ1 = λ;\n } else {\n if (λ > λ_) {\n if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;\n } else {\n if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;\n }\n }\n }\n } else {\n point(λ, φ);\n }\n p0 = p, λ_ = λ;\n }\n function lineStart() {\n bound.point = linePoint;\n }\n function lineEnd() {\n range[0] = λ0, range[1] = λ1;\n bound.point = point;\n p0 = null;\n }\n function ringPoint(λ, φ) {\n if (p0) {\n var dλ = λ - λ_;\n dλSum += abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ;\n } else λ__ = λ, φ__ = φ;\n d3_geo_area.point(λ, φ);\n linePoint(λ, φ);\n }\n function ringStart() {\n d3_geo_area.lineStart();\n }\n function ringEnd() {\n ringPoint(λ__, φ__);\n d3_geo_area.lineEnd();\n if (abs(dλSum) > ε) λ0 = -(λ1 = 180);\n range[0] = λ0, range[1] = λ1;\n p0 = null;\n }\n function angle(λ0, λ1) {\n return (λ1 -= λ0) < 0 ? λ1 + 360 : λ1;\n }\n function compareRanges(a, b) {\n return a[0] - b[0];\n }\n function withinRange(x, range) {\n return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;\n }\n return function(feature) {\n φ1 = λ1 = -(λ0 = φ0 = Infinity);\n ranges = [];\n d3.geo.stream(feature, bound);\n var n = ranges.length;\n if (n) {\n ranges.sort(compareRanges);\n for (var i = 1, a = ranges[0], b, merged = [ a ]; i < n; ++i) {\n b = ranges[i];\n if (withinRange(b[0], a) || withinRange(b[1], a)) {\n if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n } else {\n merged.push(a = b);\n }\n }\n var best = -Infinity, dλ;\n for (var n = merged.length - 1, i = 0, a = merged[n], b; i <= n; a = b, ++i) {\n b = merged[i];\n if ((dλ = angle(a[1], b[0])) > best) best = dλ, λ0 = b[0], λ1 = a[1];\n }\n }\n ranges = range = null;\n return λ0 === Infinity || φ0 === Infinity ? [ [ NaN, NaN ], [ NaN, NaN ] ] : [ [ λ0, φ0 ], [ λ1, φ1 ] ];\n };\n }();\n d3.geo.centroid = function(object) {\n d3_geo_centroidW0 = d3_geo_centroidW1 = d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;\n d3.geo.stream(object, d3_geo_centroid);\n var x = d3_geo_centroidX2, y = d3_geo_centroidY2, z = d3_geo_centroidZ2, m = x * x + y * y + z * z;\n if (m < ε2) {\n x = d3_geo_centroidX1, y = d3_geo_centroidY1, z = d3_geo_centroidZ1;\n if (d3_geo_centroidW1 < ε) x = d3_geo_centroidX0, y = d3_geo_centroidY0, z = d3_geo_centroidZ0;\n m = x * x + y * y + z * z;\n if (m < ε2) return [ NaN, NaN ];\n }\n return [ Math.atan2(y, x) * d3_degrees, d3_asin(z / Math.sqrt(m)) * d3_degrees ];\n };\n var d3_geo_centroidW0, d3_geo_centroidW1, d3_geo_centroidX0, d3_geo_centroidY0, d3_geo_centroidZ0, d3_geo_centroidX1, d3_geo_centroidY1, d3_geo_centroidZ1, d3_geo_centroidX2, d3_geo_centroidY2, d3_geo_centroidZ2;\n var d3_geo_centroid = {\n sphere: d3_noop,\n point: d3_geo_centroidPoint,\n lineStart: d3_geo_centroidLineStart,\n lineEnd: d3_geo_centroidLineEnd,\n polygonStart: function() {\n d3_geo_centroid.lineStart = d3_geo_centroidRingStart;\n },\n polygonEnd: function() {\n d3_geo_centroid.lineStart = d3_geo_centroidLineStart;\n }\n };\n function d3_geo_centroidPoint(λ, φ) {\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians);\n d3_geo_centroidPointXYZ(cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ));\n }\n function d3_geo_centroidPointXYZ(x, y, z) {\n ++d3_geo_centroidW0;\n d3_geo_centroidX0 += (x - d3_geo_centroidX0) / d3_geo_centroidW0;\n d3_geo_centroidY0 += (y - d3_geo_centroidY0) / d3_geo_centroidW0;\n d3_geo_centroidZ0 += (z - d3_geo_centroidZ0) / d3_geo_centroidW0;\n }\n function d3_geo_centroidLineStart() {\n var x0, y0, z0;\n d3_geo_centroid.point = function(λ, φ) {\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians);\n x0 = cosφ * Math.cos(λ);\n y0 = cosφ * Math.sin(λ);\n z0 = Math.sin(φ);\n d3_geo_centroid.point = nextPoint;\n d3_geo_centroidPointXYZ(x0, y0, z0);\n };\n function nextPoint(λ, φ) {\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);\n d3_geo_centroidW1 += w;\n d3_geo_centroidX1 += w * (x0 + (x0 = x));\n d3_geo_centroidY1 += w * (y0 + (y0 = y));\n d3_geo_centroidZ1 += w * (z0 + (z0 = z));\n d3_geo_centroidPointXYZ(x0, y0, z0);\n }\n }\n function d3_geo_centroidLineEnd() {\n d3_geo_centroid.point = d3_geo_centroidPoint;\n }\n function d3_geo_centroidRingStart() {\n var λ00, φ00, x0, y0, z0;\n d3_geo_centroid.point = function(λ, φ) {\n λ00 = λ, φ00 = φ;\n d3_geo_centroid.point = nextPoint;\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians);\n x0 = cosφ * Math.cos(λ);\n y0 = cosφ * Math.sin(λ);\n z0 = Math.sin(φ);\n d3_geo_centroidPointXYZ(x0, y0, z0);\n };\n d3_geo_centroid.lineEnd = function() {\n nextPoint(λ00, φ00);\n d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd;\n d3_geo_centroid.point = d3_geo_centroidPoint;\n };\n function nextPoint(λ, φ) {\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), cx = y0 * z - z0 * y, cy = z0 * x - x0 * z, cz = x0 * y - y0 * x, m = Math.sqrt(cx * cx + cy * cy + cz * cz), u = x0 * x + y0 * y + z0 * z, v = m && -d3_acos(u) / m, w = Math.atan2(m, u);\n d3_geo_centroidX2 += v * cx;\n d3_geo_centroidY2 += v * cy;\n d3_geo_centroidZ2 += v * cz;\n d3_geo_centroidW1 += w;\n d3_geo_centroidX1 += w * (x0 + (x0 = x));\n d3_geo_centroidY1 += w * (y0 + (y0 = y));\n d3_geo_centroidZ1 += w * (z0 + (z0 = z));\n d3_geo_centroidPointXYZ(x0, y0, z0);\n }\n }\n function d3_geo_compose(a, b) {\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n return compose;\n }\n function d3_true() {\n return true;\n }\n function d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener) {\n var subject = [], clip = [];\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n];\n if (d3_geo_sphericalEqual(p0, p1)) {\n listener.lineStart();\n for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]);\n listener.lineEnd();\n return;\n }\n var a = new d3_geo_clipPolygonIntersection(p0, segment, null, true), b = new d3_geo_clipPolygonIntersection(p0, null, a, false);\n a.o = b;\n subject.push(a);\n clip.push(b);\n a = new d3_geo_clipPolygonIntersection(p1, segment, null, false);\n b = new d3_geo_clipPolygonIntersection(p1, null, a, true);\n a.o = b;\n subject.push(a);\n clip.push(b);\n });\n clip.sort(compare);\n d3_geo_clipPolygonLinkCircular(subject);\n d3_geo_clipPolygonLinkCircular(clip);\n if (!subject.length) return;\n for (var i = 0, entry = clipStartInside, n = clip.length; i < n; ++i) {\n clip[i].e = entry = !entry;\n }\n var start = subject[0], points, point;\n while (1) {\n var current = start, isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n listener.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (var i = 0, n = points.length; i < n; ++i) listener.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, listener);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (var i = points.length - 1; i >= 0; --i) listener.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, listener);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n listener.lineEnd();\n }\n }\n function d3_geo_clipPolygonLinkCircular(array) {\n if (!(n = array.length)) return;\n var n, i = 0, a = array[0], b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n }\n function d3_geo_clipPolygonIntersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other;\n this.e = entry;\n this.v = false;\n this.n = this.p = null;\n }\n function d3_geo_clip(pointVisible, clipLine, interpolate, clipStart) {\n return function(rotate, listener) {\n var line = clipLine(listener), rotatedClipStart = rotate.invert(clipStart[0], clipStart[1]);\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = d3.merge(segments);\n var clipStartInside = d3_geo_pointInPolygon(rotatedClipStart, polygon);\n if (segments.length) {\n if (!polygonStarted) listener.polygonStart(), polygonStarted = true;\n d3_geo_clipPolygon(segments, d3_geo_clipSort, clipStartInside, interpolate, listener);\n } else if (clipStartInside) {\n if (!polygonStarted) listener.polygonStart(), polygonStarted = true;\n listener.lineStart();\n interpolate(null, null, 1, listener);\n listener.lineEnd();\n }\n if (polygonStarted) listener.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n listener.polygonStart();\n listener.lineStart();\n interpolate(null, null, 1, listener);\n listener.lineEnd();\n listener.polygonEnd();\n }\n };\n function point(λ, φ) {\n var point = rotate(λ, φ);\n if (pointVisible(λ = point[0], φ = point[1])) listener.point(λ, φ);\n }\n function pointLine(λ, φ) {\n var point = rotate(λ, φ);\n line.point(point[0], point[1]);\n }\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n var segments;\n var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), polygonStarted = false, polygon, ring;\n function pointRing(λ, φ) {\n ring.push([ λ, φ ]);\n var point = rotate(λ, φ);\n ringListener.point(point[0], point[1]);\n }\n function ringStart() {\n ringListener.lineStart();\n ring = [];\n }\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringListener.lineEnd();\n var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length;\n ring.pop();\n polygon.push(ring);\n ring = null;\n if (!n) return;\n if (clean & 1) {\n segment = ringSegments[0];\n var n = segment.length - 1, i = -1, point;\n if (n > 0) {\n if (!polygonStarted) listener.polygonStart(), polygonStarted = true;\n listener.lineStart();\n while (++i < n) listener.point((point = segment[i])[0], point[1]);\n listener.lineEnd();\n }\n return;\n }\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n segments.push(ringSegments.filter(d3_geo_clipSegmentLength1));\n }\n return clip;\n };\n }\n function d3_geo_clipSegmentLength1(segment) {\n return segment.length > 1;\n }\n function d3_geo_clipBufferListener() {\n var lines = [], line;\n return {\n lineStart: function() {\n lines.push(line = []);\n },\n point: function(λ, φ) {\n line.push([ λ, φ ]);\n },\n lineEnd: d3_noop,\n buffer: function() {\n var buffer = lines;\n lines = [];\n line = null;\n return buffer;\n },\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n }\n };\n }\n function d3_geo_clipSort(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]);\n }\n var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate, [ -π, -π / 2 ]);\n function d3_geo_clipAntimeridianLine(listener) {\n var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean;\n return {\n lineStart: function() {\n listener.lineStart();\n clean = 1;\n },\n point: function(λ1, φ1) {\n var sλ1 = λ1 > 0 ? π : -π, dλ = abs(λ1 - λ0);\n if (abs(dλ - π) < ε) {\n listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? halfπ : -halfπ);\n listener.point(sλ0, φ0);\n listener.lineEnd();\n listener.lineStart();\n listener.point(sλ1, φ0);\n listener.point(λ1, φ0);\n clean = 0;\n } else if (sλ0 !== sλ1 && dλ >= π) {\n if (abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε;\n if (abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε;\n φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1);\n listener.point(sλ0, φ0);\n listener.lineEnd();\n listener.lineStart();\n listener.point(sλ1, φ0);\n clean = 0;\n }\n listener.point(λ0 = λ1, φ0 = φ1);\n sλ0 = sλ1;\n },\n lineEnd: function() {\n listener.lineEnd();\n λ0 = φ0 = NaN;\n },\n clean: function() {\n return 2 - clean;\n }\n };\n }\n function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) {\n var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1);\n return abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2;\n }\n function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) {\n var φ;\n if (from == null) {\n φ = direction * halfπ;\n listener.point(-π, φ);\n listener.point(0, φ);\n listener.point(π, φ);\n listener.point(π, 0);\n listener.point(π, -φ);\n listener.point(0, -φ);\n listener.point(-π, -φ);\n listener.point(-π, 0);\n listener.point(-π, φ);\n } else if (abs(from[0] - to[0]) > ε) {\n var s = from[0] < to[0] ? π : -π;\n φ = direction * s / 2;\n listener.point(-s, φ);\n listener.point(0, φ);\n listener.point(s, φ);\n } else {\n listener.point(to[0], to[1]);\n }\n }\n function d3_geo_pointInPolygon(point, polygon) {\n var meridian = point[0], parallel = point[1], meridianNormal = [ Math.sin(meridian), -Math.cos(meridian), 0 ], polarAngle = 0, winding = 0;\n d3_geo_areaRingSum.reset();\n for (var i = 0, n = polygon.length; i < n; ++i) {\n var ring = polygon[i], m = ring.length;\n if (!m) continue;\n var point0 = ring[0], λ0 = point0[0], φ0 = point0[1] / 2 + π / 4, sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), j = 1;\n while (true) {\n if (j === m) j = 0;\n point = ring[j];\n var λ = point[0], φ = point[1] / 2 + π / 4, sinφ = Math.sin(φ), cosφ = Math.cos(φ), dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, antimeridian = adλ > π, k = sinφ0 * sinφ;\n d3_geo_areaRingSum.add(Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ)));\n polarAngle += antimeridian ? dλ + sdλ * τ : dλ;\n if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) {\n var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point));\n d3_geo_cartesianNormalize(arc);\n var intersection = d3_geo_cartesianCross(meridianNormal, arc);\n d3_geo_cartesianNormalize(intersection);\n var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]);\n if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) {\n winding += antimeridian ^ dλ >= 0 ? 1 : -1;\n }\n }\n if (!j++) break;\n λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point;\n }\n }\n return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < -ε) ^ winding & 1;\n }\n function d3_geo_clipCircle(radius) {\n var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians);\n return d3_geo_clip(visible, clipLine, interpolate, smallRadius ? [ 0, -radius ] : [ -π, radius - π ]);\n function visible(λ, φ) {\n return Math.cos(λ) * Math.cos(φ) > cr;\n }\n function clipLine(listener) {\n var point0, c0, v0, v00, clean;\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(λ, φ) {\n var point1 = [ λ, φ ], point2, v = visible(λ, φ), c = smallRadius ? v ? 0 : code(λ, φ) : v ? code(λ + (λ < 0 ? π : -π), φ) : 0;\n if (!point0 && (v00 = v0 = v)) listener.lineStart();\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) {\n point1[0] += ε;\n point1[1] += ε;\n v = visible(point1[0], point1[1]);\n }\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n listener.lineStart();\n point2 = intersect(point1, point0);\n listener.point(point2[0], point2[1]);\n } else {\n point2 = intersect(point0, point1);\n listener.point(point2[0], point2[1]);\n listener.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n listener.lineStart();\n listener.point(t[0][0], t[0][1]);\n listener.point(t[1][0], t[1][1]);\n listener.lineEnd();\n } else {\n listener.point(t[1][0], t[1][1]);\n listener.lineEnd();\n listener.lineStart();\n listener.point(t[0][0], t[0][1]);\n }\n }\n }\n if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) {\n listener.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) listener.lineEnd();\n point0 = null;\n },\n clean: function() {\n return clean | (v00 && v0) << 1;\n }\n };\n }\n function intersect(a, b, two) {\n var pa = d3_geo_cartesian(a), pb = d3_geo_cartesian(b);\n var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2;\n if (!determinant) return !two && a;\n var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2);\n d3_geo_cartesianAdd(A, B);\n var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1);\n if (t2 < 0) return;\n var t = Math.sqrt(t2), q = d3_geo_cartesianScale(u, (-w - t) / uu);\n d3_geo_cartesianAdd(q, A);\n q = d3_geo_spherical(q);\n if (!two) return q;\n var λ0 = a[0], λ1 = b[0], φ0 = a[1], φ1 = b[1], z;\n if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z;\n var δλ = λ1 - λ0, polar = abs(δλ - π) < ε, meridian = polar || δλ < ε;\n if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z;\n if (meridian ? polar ? φ0 + φ1 > 0 ^ q[1] < (abs(q[0] - λ0) < ε ? φ0 : φ1) : φ0 <= q[1] && q[1] <= φ1 : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) {\n var q1 = d3_geo_cartesianScale(u, (-w + t) / uu);\n d3_geo_cartesianAdd(q1, A);\n return [ q, d3_geo_spherical(q1) ];\n }\n }\n function code(λ, φ) {\n var r = smallRadius ? radius : π - radius, code = 0;\n if (λ < -r) code |= 1; else if (λ > r) code |= 2;\n if (φ < -r) code |= 4; else if (φ > r) code |= 8;\n return code;\n }\n }\n function d3_geom_clipLine(x0, y0, x1, y1) {\n return function(line) {\n var a = line.a, b = line.b, ax = a.x, ay = a.y, bx = b.x, by = b.y, t0 = 0, t1 = 1, dx = bx - ax, dy = by - ay, r;\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n if (t0 > 0) line.a = {\n x: ax + t0 * dx,\n y: ay + t0 * dy\n };\n if (t1 < 1) line.b = {\n x: ax + t1 * dx,\n y: ay + t1 * dy\n };\n return line;\n };\n }\n var d3_geo_clipExtentMAX = 1e9;\n d3.geo.clipExtent = function() {\n var x0, y0, x1, y1, stream, clip, clipExtent = {\n stream: function(output) {\n if (stream) stream.valid = false;\n stream = clip(output);\n stream.valid = true;\n return stream;\n },\n extent: function(_) {\n if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];\n clip = d3_geo_clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]);\n if (stream) stream.valid = false, stream = null;\n return clipExtent;\n }\n };\n return clipExtent.extent([ [ 0, 0 ], [ 960, 500 ] ]);\n };\n function d3_geo_clipExtent(x0, y0, x1, y1) {\n return function(listener) {\n var listener_ = listener, bufferListener = d3_geo_clipBufferListener(), clipLine = d3_geom_clipLine(x0, y0, x1, y1), segments, polygon, ring;\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n listener = bufferListener;\n segments = [];\n polygon = [];\n clean = true;\n },\n polygonEnd: function() {\n listener = listener_;\n segments = d3.merge(segments);\n var clipStartInside = insidePolygon([ x0, y1 ]), inside = clean && clipStartInside, visible = segments.length;\n if (inside || visible) {\n listener.polygonStart();\n if (inside) {\n listener.lineStart();\n interpolate(null, null, 1, listener);\n listener.lineEnd();\n }\n if (visible) {\n d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener);\n }\n listener.polygonEnd();\n }\n segments = polygon = ring = null;\n }\n };\n function insidePolygon(p) {\n var wn = 0, n = polygon.length, y = p[1];\n for (var i = 0; i < n; ++i) {\n for (var j = 1, v = polygon[i], m = v.length, a = v[0], b; j < m; ++j) {\n b = v[j];\n if (a[1] <= y) {\n if (b[1] > y && d3_cross2d(a, b, p) > 0) ++wn;\n } else {\n if (b[1] <= y && d3_cross2d(a, b, p) < 0) --wn;\n }\n a = b;\n }\n }\n return wn !== 0;\n }\n function interpolate(from, to, direction, listener) {\n var a = 0, a1 = 0;\n if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoints(from, to) < 0 ^ direction > 0) {\n do {\n listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n } while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n listener.point(to[0], to[1]);\n }\n }\n function pointVisible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n function point(x, y) {\n if (pointVisible(x, y)) listener.point(x, y);\n }\n var x__, y__, v__, x_, y_, v_, first, clean;\n function lineStart() {\n clip.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferListener.rejoin();\n segments.push(bufferListener.buffer());\n }\n clip.point = point;\n if (v_) listener.lineEnd();\n }\n function linePoint(x, y) {\n x = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, x));\n y = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, y));\n var v = pointVisible(x, y);\n if (polygon) ring.push([ x, y ]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n listener.lineStart();\n listener.point(x, y);\n }\n } else {\n if (v && v_) listener.point(x, y); else {\n var l = {\n a: {\n x: x_,\n y: y_\n },\n b: {\n x: x,\n y: y\n }\n };\n if (clipLine(l)) {\n if (!v_) {\n listener.lineStart();\n listener.point(l.a.x, l.a.y);\n }\n listener.point(l.b.x, l.b.y);\n if (!v) listener.lineEnd();\n clean = false;\n } else if (v) {\n listener.lineStart();\n listener.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n return clip;\n };\n function corner(p, direction) {\n return abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3 : abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1 : abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2;\n }\n function compare(a, b) {\n return comparePoints(a.x, b.x);\n }\n function comparePoints(a, b) {\n var ca = corner(a, 1), cb = corner(b, 1);\n return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0];\n }\n }\n function d3_geo_conic(projectAt) {\n var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1);\n p.parallels = function(_) {\n if (!arguments.length) return [ φ0 / π * 180, φ1 / π * 180 ];\n return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180);\n };\n return p;\n }\n function d3_geo_conicEqualArea(φ0, φ1) {\n var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n;\n function forward(λ, φ) {\n var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n;\n return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ];\n }\n forward.invert = function(x, y) {\n var ρ0_y = ρ0 - y;\n return [ Math.atan2(x, ρ0_y) / n, d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ];\n };\n return forward;\n }\n (d3.geo.conicEqualArea = function() {\n return d3_geo_conic(d3_geo_conicEqualArea);\n }).raw = d3_geo_conicEqualArea;\n d3.geo.albers = function() {\n return d3.geo.conicEqualArea().rotate([ 96, 0 ]).center([ -.6, 38.7 ]).parallels([ 29.5, 45.5 ]).scale(1070);\n };\n d3.geo.albersUsa = function() {\n var lower48 = d3.geo.albers();\n var alaska = d3.geo.conicEqualArea().rotate([ 154, 0 ]).center([ -2, 58.5 ]).parallels([ 55, 65 ]);\n var hawaii = d3.geo.conicEqualArea().rotate([ 157, 0 ]).center([ -3, 19.9 ]).parallels([ 8, 18 ]);\n var point, pointStream = {\n point: function(x, y) {\n point = [ x, y ];\n }\n }, lower48Point, alaskaPoint, hawaiiPoint;\n function albersUsa(coordinates) {\n var x = coordinates[0], y = coordinates[1];\n point = null;\n (lower48Point(x, y), point) || (alaskaPoint(x, y), point) || hawaiiPoint(x, y);\n return point;\n }\n albersUsa.invert = function(coordinates) {\n var k = lower48.scale(), t = lower48.translate(), x = (coordinates[0] - t[0]) / k, y = (coordinates[1] - t[1]) / k;\n return (y >= .12 && y < .234 && x >= -.425 && x < -.214 ? alaska : y >= .166 && y < .234 && x >= -.214 && x < -.115 ? hawaii : lower48).invert(coordinates);\n };\n albersUsa.stream = function(stream) {\n var lower48Stream = lower48.stream(stream), alaskaStream = alaska.stream(stream), hawaiiStream = hawaii.stream(stream);\n return {\n point: function(x, y) {\n lower48Stream.point(x, y);\n alaskaStream.point(x, y);\n hawaiiStream.point(x, y);\n },\n sphere: function() {\n lower48Stream.sphere();\n alaskaStream.sphere();\n hawaiiStream.sphere();\n },\n lineStart: function() {\n lower48Stream.lineStart();\n alaskaStream.lineStart();\n hawaiiStream.lineStart();\n },\n lineEnd: function() {\n lower48Stream.lineEnd();\n alaskaStream.lineEnd();\n hawaiiStream.lineEnd();\n },\n polygonStart: function() {\n lower48Stream.polygonStart();\n alaskaStream.polygonStart();\n hawaiiStream.polygonStart();\n },\n polygonEnd: function() {\n lower48Stream.polygonEnd();\n alaskaStream.polygonEnd();\n hawaiiStream.polygonEnd();\n }\n };\n };\n albersUsa.precision = function(_) {\n if (!arguments.length) return lower48.precision();\n lower48.precision(_);\n alaska.precision(_);\n hawaii.precision(_);\n return albersUsa;\n };\n albersUsa.scale = function(_) {\n if (!arguments.length) return lower48.scale();\n lower48.scale(_);\n alaska.scale(_ * .35);\n hawaii.scale(_);\n return albersUsa.translate(lower48.translate());\n };\n albersUsa.translate = function(_) {\n if (!arguments.length) return lower48.translate();\n var k = lower48.scale(), x = +_[0], y = +_[1];\n lower48Point = lower48.translate(_).clipExtent([ [ x - .455 * k, y - .238 * k ], [ x + .455 * k, y + .238 * k ] ]).stream(pointStream).point;\n alaskaPoint = alaska.translate([ x - .307 * k, y + .201 * k ]).clipExtent([ [ x - .425 * k + ε, y + .12 * k + ε ], [ x - .214 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;\n hawaiiPoint = hawaii.translate([ x - .205 * k, y + .212 * k ]).clipExtent([ [ x - .214 * k + ε, y + .166 * k + ε ], [ x - .115 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;\n return albersUsa;\n };\n return albersUsa.scale(1070);\n };\n var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = {\n point: d3_noop,\n lineStart: d3_noop,\n lineEnd: d3_noop,\n polygonStart: function() {\n d3_geo_pathAreaPolygon = 0;\n d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart;\n },\n polygonEnd: function() {\n d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop;\n d3_geo_pathAreaSum += abs(d3_geo_pathAreaPolygon / 2);\n }\n };\n function d3_geo_pathAreaRingStart() {\n var x00, y00, x0, y0;\n d3_geo_pathArea.point = function(x, y) {\n d3_geo_pathArea.point = nextPoint;\n x00 = x0 = x, y00 = y0 = y;\n };\n function nextPoint(x, y) {\n d3_geo_pathAreaPolygon += y0 * x - x0 * y;\n x0 = x, y0 = y;\n }\n d3_geo_pathArea.lineEnd = function() {\n nextPoint(x00, y00);\n };\n }\n var d3_geo_pathBoundsX0, d3_geo_pathBoundsY0, d3_geo_pathBoundsX1, d3_geo_pathBoundsY1;\n var d3_geo_pathBounds = {\n point: d3_geo_pathBoundsPoint,\n lineStart: d3_noop,\n lineEnd: d3_noop,\n polygonStart: d3_noop,\n polygonEnd: d3_noop\n };\n function d3_geo_pathBoundsPoint(x, y) {\n if (x < d3_geo_pathBoundsX0) d3_geo_pathBoundsX0 = x;\n if (x > d3_geo_pathBoundsX1) d3_geo_pathBoundsX1 = x;\n if (y < d3_geo_pathBoundsY0) d3_geo_pathBoundsY0 = y;\n if (y > d3_geo_pathBoundsY1) d3_geo_pathBoundsY1 = y;\n }\n function d3_geo_pathBuffer() {\n var pointCircle = d3_geo_pathBufferCircle(4.5), buffer = [];\n var stream = {\n point: point,\n lineStart: function() {\n stream.point = pointLineStart;\n },\n lineEnd: lineEnd,\n polygonStart: function() {\n stream.lineEnd = lineEndPolygon;\n },\n polygonEnd: function() {\n stream.lineEnd = lineEnd;\n stream.point = point;\n },\n pointRadius: function(_) {\n pointCircle = d3_geo_pathBufferCircle(_);\n return stream;\n },\n result: function() {\n if (buffer.length) {\n var result = buffer.join(\"\");\n buffer = [];\n return result;\n }\n }\n };\n function point(x, y) {\n buffer.push(\"M\", x, \",\", y, pointCircle);\n }\n function pointLineStart(x, y) {\n buffer.push(\"M\", x, \",\", y);\n stream.point = pointLine;\n }\n function pointLine(x, y) {\n buffer.push(\"L\", x, \",\", y);\n }\n function lineEnd() {\n stream.point = point;\n }\n function lineEndPolygon() {\n buffer.push(\"Z\");\n }\n return stream;\n }\n function d3_geo_pathBufferCircle(radius) {\n return \"m0,\" + radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius + \"z\";\n }\n var d3_geo_pathCentroid = {\n point: d3_geo_pathCentroidPoint,\n lineStart: d3_geo_pathCentroidLineStart,\n lineEnd: d3_geo_pathCentroidLineEnd,\n polygonStart: function() {\n d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart;\n },\n polygonEnd: function() {\n d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;\n d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart;\n d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd;\n }\n };\n function d3_geo_pathCentroidPoint(x, y) {\n d3_geo_centroidX0 += x;\n d3_geo_centroidY0 += y;\n ++d3_geo_centroidZ0;\n }\n function d3_geo_pathCentroidLineStart() {\n var x0, y0;\n d3_geo_pathCentroid.point = function(x, y) {\n d3_geo_pathCentroid.point = nextPoint;\n d3_geo_pathCentroidPoint(x0 = x, y0 = y);\n };\n function nextPoint(x, y) {\n var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);\n d3_geo_centroidX1 += z * (x0 + x) / 2;\n d3_geo_centroidY1 += z * (y0 + y) / 2;\n d3_geo_centroidZ1 += z;\n d3_geo_pathCentroidPoint(x0 = x, y0 = y);\n }\n }\n function d3_geo_pathCentroidLineEnd() {\n d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;\n }\n function d3_geo_pathCentroidRingStart() {\n var x00, y00, x0, y0;\n d3_geo_pathCentroid.point = function(x, y) {\n d3_geo_pathCentroid.point = nextPoint;\n d3_geo_pathCentroidPoint(x00 = x0 = x, y00 = y0 = y);\n };\n function nextPoint(x, y) {\n var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);\n d3_geo_centroidX1 += z * (x0 + x) / 2;\n d3_geo_centroidY1 += z * (y0 + y) / 2;\n d3_geo_centroidZ1 += z;\n z = y0 * x - x0 * y;\n d3_geo_centroidX2 += z * (x0 + x);\n d3_geo_centroidY2 += z * (y0 + y);\n d3_geo_centroidZ2 += z * 3;\n d3_geo_pathCentroidPoint(x0 = x, y0 = y);\n }\n d3_geo_pathCentroid.lineEnd = function() {\n nextPoint(x00, y00);\n };\n }\n function d3_geo_pathContext(context) {\n var pointRadius = 4.5;\n var stream = {\n point: point,\n lineStart: function() {\n stream.point = pointLineStart;\n },\n lineEnd: lineEnd,\n polygonStart: function() {\n stream.lineEnd = lineEndPolygon;\n },\n polygonEnd: function() {\n stream.lineEnd = lineEnd;\n stream.point = point;\n },\n pointRadius: function(_) {\n pointRadius = _;\n return stream;\n },\n result: d3_noop\n };\n function point(x, y) {\n context.moveTo(x + pointRadius, y);\n context.arc(x, y, pointRadius, 0, τ);\n }\n function pointLineStart(x, y) {\n context.moveTo(x, y);\n stream.point = pointLine;\n }\n function pointLine(x, y) {\n context.lineTo(x, y);\n }\n function lineEnd() {\n stream.point = point;\n }\n function lineEndPolygon() {\n context.closePath();\n }\n return stream;\n }\n function d3_geo_resample(project) {\n var δ2 = .5, cosMinDistance = Math.cos(30 * d3_radians), maxDepth = 16;\n function resample(stream) {\n return (maxDepth ? resampleRecursive : resampleNone)(stream);\n }\n function resampleNone(stream) {\n return d3_geo_transformPoint(stream, function(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n });\n }\n function resampleRecursive(stream) {\n var λ00, φ00, x00, y00, a00, b00, c00, λ0, x0, y0, a0, b0, c0;\n var resample = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n stream.polygonStart();\n resample.lineStart = ringStart;\n },\n polygonEnd: function() {\n stream.polygonEnd();\n resample.lineStart = lineStart;\n }\n };\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n function lineStart() {\n x0 = NaN;\n resample.point = linePoint;\n stream.lineStart();\n }\n function linePoint(λ, φ) {\n var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ);\n resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n function lineEnd() {\n resample.point = point;\n stream.lineEnd();\n }\n function ringStart() {\n lineStart();\n resample.point = ringPoint;\n resample.lineEnd = ringEnd;\n }\n function ringPoint(λ, φ) {\n linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resample.point = linePoint;\n }\n function ringEnd() {\n resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream);\n resample.lineEnd = lineEnd;\n lineEnd();\n }\n return resample;\n }\n function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy;\n if (d2 > 4 * δ2 && depth--) {\n var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = abs(abs(c) - 1) < ε || abs(λ0 - λ1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > δ2 || abs((dx * dx2 + dy * dy2) / d2 - .5) > .3 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) {\n resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream);\n }\n }\n }\n resample.precision = function(_) {\n if (!arguments.length) return Math.sqrt(δ2);\n maxDepth = (δ2 = _ * _) > 0 && 16;\n return resample;\n };\n return resample;\n }\n d3.geo.path = function() {\n var pointRadius = 4.5, projection, context, projectStream, contextStream, cacheStream;\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n if (!cacheStream || !cacheStream.valid) cacheStream = projectStream(contextStream);\n d3.geo.stream(object, cacheStream);\n }\n return contextStream.result();\n }\n path.area = function(object) {\n d3_geo_pathAreaSum = 0;\n d3.geo.stream(object, projectStream(d3_geo_pathArea));\n return d3_geo_pathAreaSum;\n };\n path.centroid = function(object) {\n d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;\n d3.geo.stream(object, projectStream(d3_geo_pathCentroid));\n return d3_geo_centroidZ2 ? [ d3_geo_centroidX2 / d3_geo_centroidZ2, d3_geo_centroidY2 / d3_geo_centroidZ2 ] : d3_geo_centroidZ1 ? [ d3_geo_centroidX1 / d3_geo_centroidZ1, d3_geo_centroidY1 / d3_geo_centroidZ1 ] : d3_geo_centroidZ0 ? [ d3_geo_centroidX0 / d3_geo_centroidZ0, d3_geo_centroidY0 / d3_geo_centroidZ0 ] : [ NaN, NaN ];\n };\n path.bounds = function(object) {\n d3_geo_pathBoundsX1 = d3_geo_pathBoundsY1 = -(d3_geo_pathBoundsX0 = d3_geo_pathBoundsY0 = Infinity);\n d3.geo.stream(object, projectStream(d3_geo_pathBounds));\n return [ [ d3_geo_pathBoundsX0, d3_geo_pathBoundsY0 ], [ d3_geo_pathBoundsX1, d3_geo_pathBoundsY1 ] ];\n };\n path.projection = function(_) {\n if (!arguments.length) return projection;\n projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity;\n return reset();\n };\n path.context = function(_) {\n if (!arguments.length) return context;\n contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return reset();\n };\n path.pointRadius = function(_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n function reset() {\n cacheStream = null;\n return path;\n }\n return path.projection(d3.geo.albersUsa()).context(null);\n };\n function d3_geo_pathProjectStream(project) {\n var resample = d3_geo_resample(function(x, y) {\n return project([ x * d3_degrees, y * d3_degrees ]);\n });\n return function(stream) {\n return d3_geo_projectionRadians(resample(stream));\n };\n }\n d3.geo.transform = function(methods) {\n return {\n stream: function(stream) {\n var transform = new d3_geo_transform(stream);\n for (var k in methods) transform[k] = methods[k];\n return transform;\n }\n };\n };\n function d3_geo_transform(stream) {\n this.stream = stream;\n }\n d3_geo_transform.prototype = {\n point: function(x, y) {\n this.stream.point(x, y);\n },\n sphere: function() {\n this.stream.sphere();\n },\n lineStart: function() {\n this.stream.lineStart();\n },\n lineEnd: function() {\n this.stream.lineEnd();\n },\n polygonStart: function() {\n this.stream.polygonStart();\n },\n polygonEnd: function() {\n this.stream.polygonEnd();\n }\n };\n function d3_geo_transformPoint(stream, point) {\n return {\n point: point,\n sphere: function() {\n stream.sphere();\n },\n lineStart: function() {\n stream.lineStart();\n },\n lineEnd: function() {\n stream.lineEnd();\n },\n polygonStart: function() {\n stream.polygonStart();\n },\n polygonEnd: function() {\n stream.polygonEnd();\n }\n };\n }\n d3.geo.projection = d3_geo_projection;\n d3.geo.projectionMutator = d3_geo_projectionMutator;\n function d3_geo_projection(project) {\n return d3_geo_projectionMutator(function() {\n return project;\n })();\n }\n function d3_geo_projectionMutator(projectAt) {\n var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) {\n x = project(x, y);\n return [ x[0] * k + δx, δy - x[1] * k ];\n }), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, preclip = d3_geo_clipAntimeridian, postclip = d3_identity, clipAngle = null, clipExtent = null, stream;\n function projection(point) {\n point = projectRotate(point[0] * d3_radians, point[1] * d3_radians);\n return [ point[0] * k + δx, δy - point[1] * k ];\n }\n function invert(point) {\n point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k);\n return point && [ point[0] * d3_degrees, point[1] * d3_degrees ];\n }\n projection.stream = function(output) {\n if (stream) stream.valid = false;\n stream = d3_geo_projectionRadians(preclip(rotate, projectResample(postclip(output))));\n stream.valid = true;\n return stream;\n };\n projection.clipAngle = function(_) {\n if (!arguments.length) return clipAngle;\n preclip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle((clipAngle = +_) * d3_radians);\n return invalidate();\n };\n projection.clipExtent = function(_) {\n if (!arguments.length) return clipExtent;\n clipExtent = _;\n postclip = _ ? d3_geo_clipExtent(_[0][0], _[0][1], _[1][0], _[1][1]) : d3_identity;\n return invalidate();\n };\n projection.scale = function(_) {\n if (!arguments.length) return k;\n k = +_;\n return reset();\n };\n projection.translate = function(_) {\n if (!arguments.length) return [ x, y ];\n x = +_[0];\n y = +_[1];\n return reset();\n };\n projection.center = function(_) {\n if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ];\n λ = _[0] % 360 * d3_radians;\n φ = _[1] % 360 * d3_radians;\n return reset();\n };\n projection.rotate = function(_) {\n if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ];\n δλ = _[0] % 360 * d3_radians;\n δφ = _[1] % 360 * d3_radians;\n δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0;\n return reset();\n };\n d3.rebind(projection, projectResample, \"precision\");\n function reset() {\n projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project);\n var center = project(λ, φ);\n δx = x - center[0] * k;\n δy = y + center[1] * k;\n return invalidate();\n }\n function invalidate() {\n if (stream) stream.valid = false, stream = null;\n return projection;\n }\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return reset();\n };\n }\n function d3_geo_projectionRadians(stream) {\n return d3_geo_transformPoint(stream, function(x, y) {\n stream.point(x * d3_radians, y * d3_radians);\n });\n }\n function d3_geo_equirectangular(λ, φ) {\n return [ λ, φ ];\n }\n (d3.geo.equirectangular = function() {\n return d3_geo_projection(d3_geo_equirectangular);\n }).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular;\n d3.geo.rotation = function(rotate) {\n rotate = d3_geo_rotation(rotate[0] % 360 * d3_radians, rotate[1] * d3_radians, rotate.length > 2 ? rotate[2] * d3_radians : 0);\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians);\n return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;\n }\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians);\n return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;\n };\n return forward;\n };\n function d3_geo_identityRotation(λ, φ) {\n return [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ];\n }\n d3_geo_identityRotation.invert = d3_geo_equirectangular;\n function d3_geo_rotation(δλ, δφ, δγ) {\n return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_identityRotation;\n }\n function d3_geo_forwardRotationλ(δλ) {\n return function(λ, φ) {\n return λ += δλ, [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ];\n };\n }\n function d3_geo_rotationλ(δλ) {\n var rotation = d3_geo_forwardRotationλ(δλ);\n rotation.invert = d3_geo_forwardRotationλ(-δλ);\n return rotation;\n }\n function d3_geo_rotationφγ(δφ, δγ) {\n var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ);\n function rotation(λ, φ) {\n var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ;\n return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), d3_asin(k * cosδγ + y * sinδγ) ];\n }\n rotation.invert = function(λ, φ) {\n var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ;\n return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), d3_asin(k * cosδφ - x * sinδφ) ];\n };\n return rotation;\n }\n d3.geo.circle = function() {\n var origin = [ 0, 0 ], angle, precision = 6, interpolate;\n function circle() {\n var center = typeof origin === \"function\" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = [];\n interpolate(null, null, 1, {\n point: function(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= d3_degrees, x[1] *= d3_degrees;\n }\n });\n return {\n type: \"Polygon\",\n coordinates: [ ring ]\n };\n }\n circle.origin = function(x) {\n if (!arguments.length) return origin;\n origin = x;\n return circle;\n };\n circle.angle = function(x) {\n if (!arguments.length) return angle;\n interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians);\n return circle;\n };\n circle.precision = function(_) {\n if (!arguments.length) return precision;\n interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians);\n return circle;\n };\n return circle.angle(90);\n };\n function d3_geo_circleInterpolate(radius, precision) {\n var cr = Math.cos(radius), sr = Math.sin(radius);\n return function(from, to, direction, listener) {\n var step = direction * precision;\n if (from != null) {\n from = d3_geo_circleAngle(cr, from);\n to = d3_geo_circleAngle(cr, to);\n if (direction > 0 ? from < to : from > to) from += direction * τ;\n } else {\n from = radius + direction * τ;\n to = radius - .5 * step;\n }\n for (var point, t = from; direction > 0 ? t > to : t < to; t -= step) {\n listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]);\n }\n };\n }\n function d3_geo_circleAngle(cr, point) {\n var a = d3_geo_cartesian(point);\n a[0] -= cr;\n d3_geo_cartesianNormalize(a);\n var angle = d3_acos(-a[1]);\n return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI);\n }\n d3.geo.distance = function(a, b) {\n var Δλ = (b[0] - a[0]) * d3_radians, φ0 = a[1] * d3_radians, φ1 = b[1] * d3_radians, sinΔλ = Math.sin(Δλ), cosΔλ = Math.cos(Δλ), sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1), t;\n return Math.atan2(Math.sqrt((t = cosφ1 * sinΔλ) * t + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ);\n };\n d3.geo.graticule = function() {\n var x1, x0, X1, X0, y1, y0, Y1, Y0, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5;\n function graticule() {\n return {\n type: \"MultiLineString\",\n coordinates: lines()\n };\n }\n function lines() {\n return d3.range(Math.ceil(X0 / DX) * DX, X1, DX).map(X).concat(d3.range(Math.ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(d3.range(Math.ceil(x0 / dx) * dx, x1, dx).filter(function(x) {\n return abs(x % DX) > ε;\n }).map(x)).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).filter(function(y) {\n return abs(y % DY) > ε;\n }).map(y));\n }\n graticule.lines = function() {\n return lines().map(function(coordinates) {\n return {\n type: \"LineString\",\n coordinates: coordinates\n };\n });\n };\n graticule.outline = function() {\n return {\n type: \"Polygon\",\n coordinates: [ X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1)) ]\n };\n };\n graticule.extent = function(_) {\n if (!arguments.length) return graticule.minorExtent();\n return graticule.majorExtent(_).minorExtent(_);\n };\n graticule.majorExtent = function(_) {\n if (!arguments.length) return [ [ X0, Y0 ], [ X1, Y1 ] ];\n X0 = +_[0][0], X1 = +_[1][0];\n Y0 = +_[0][1], Y1 = +_[1][1];\n if (X0 > X1) _ = X0, X0 = X1, X1 = _;\n if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;\n return graticule.precision(precision);\n };\n graticule.minorExtent = function(_) {\n if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];\n x0 = +_[0][0], x1 = +_[1][0];\n y0 = +_[0][1], y1 = +_[1][1];\n if (x0 > x1) _ = x0, x0 = x1, x1 = _;\n if (y0 > y1) _ = y0, y0 = y1, y1 = _;\n return graticule.precision(precision);\n };\n graticule.step = function(_) {\n if (!arguments.length) return graticule.minorStep();\n return graticule.majorStep(_).minorStep(_);\n };\n graticule.majorStep = function(_) {\n if (!arguments.length) return [ DX, DY ];\n DX = +_[0], DY = +_[1];\n return graticule;\n };\n graticule.minorStep = function(_) {\n if (!arguments.length) return [ dx, dy ];\n dx = +_[0], dy = +_[1];\n return graticule;\n };\n graticule.precision = function(_) {\n if (!arguments.length) return precision;\n precision = +_;\n x = d3_geo_graticuleX(y0, y1, 90);\n y = d3_geo_graticuleY(x0, x1, precision);\n X = d3_geo_graticuleX(Y0, Y1, 90);\n Y = d3_geo_graticuleY(X0, X1, precision);\n return graticule;\n };\n return graticule.majorExtent([ [ -180, -90 + ε ], [ 180, 90 - ε ] ]).minorExtent([ [ -180, -80 - ε ], [ 180, 80 + ε ] ]);\n };\n function d3_geo_graticuleX(y0, y1, dy) {\n var y = d3.range(y0, y1 - ε, dy).concat(y1);\n return function(x) {\n return y.map(function(y) {\n return [ x, y ];\n });\n };\n }\n function d3_geo_graticuleY(x0, x1, dx) {\n var x = d3.range(x0, x1 - ε, dx).concat(x1);\n return function(y) {\n return x.map(function(x) {\n return [ x, y ];\n });\n };\n }\n function d3_source(d) {\n return d.source;\n }\n function d3_target(d) {\n return d.target;\n }\n d3.geo.greatArc = function() {\n var source = d3_source, source_, target = d3_target, target_;\n function greatArc() {\n return {\n type: \"LineString\",\n coordinates: [ source_ || source.apply(this, arguments), target_ || target.apply(this, arguments) ]\n };\n }\n greatArc.distance = function() {\n return d3.geo.distance(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments));\n };\n greatArc.source = function(_) {\n if (!arguments.length) return source;\n source = _, source_ = typeof _ === \"function\" ? null : _;\n return greatArc;\n };\n greatArc.target = function(_) {\n if (!arguments.length) return target;\n target = _, target_ = typeof _ === \"function\" ? null : _;\n return greatArc;\n };\n greatArc.precision = function() {\n return arguments.length ? greatArc : 0;\n };\n return greatArc;\n };\n d3.geo.interpolate = function(source, target) {\n return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians);\n };\n function d3_geo_interpolate(x0, y0, x1, y1) {\n var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = 2 * Math.asin(Math.sqrt(d3_haversin(y1 - y0) + cy0 * cy1 * d3_haversin(x1 - x0))), k = 1 / Math.sin(d);\n var interpolate = d ? function(t) {\n var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1;\n return [ Math.atan2(y, x) * d3_degrees, Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees ];\n } : function() {\n return [ x0 * d3_degrees, y0 * d3_degrees ];\n };\n interpolate.distance = d;\n return interpolate;\n }\n d3.geo.length = function(object) {\n d3_geo_lengthSum = 0;\n d3.geo.stream(object, d3_geo_length);\n return d3_geo_lengthSum;\n };\n var d3_geo_lengthSum;\n var d3_geo_length = {\n sphere: d3_noop,\n point: d3_noop,\n lineStart: d3_geo_lengthLineStart,\n lineEnd: d3_noop,\n polygonStart: d3_noop,\n polygonEnd: d3_noop\n };\n function d3_geo_lengthLineStart() {\n var λ0, sinφ0, cosφ0;\n d3_geo_length.point = function(λ, φ) {\n λ0 = λ * d3_radians, sinφ0 = Math.sin(φ *= d3_radians), cosφ0 = Math.cos(φ);\n d3_geo_length.point = nextPoint;\n };\n d3_geo_length.lineEnd = function() {\n d3_geo_length.point = d3_geo_length.lineEnd = d3_noop;\n };\n function nextPoint(λ, φ) {\n var sinφ = Math.sin(φ *= d3_radians), cosφ = Math.cos(φ), t = abs((λ *= d3_radians) - λ0), cosΔλ = Math.cos(t);\n d3_geo_lengthSum += Math.atan2(Math.sqrt((t = cosφ * Math.sin(t)) * t + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t), sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ);\n λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ;\n }\n }\n function d3_geo_azimuthal(scale, angle) {\n function azimuthal(λ, φ) {\n var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ);\n return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ];\n }\n azimuthal.invert = function(x, y) {\n var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c);\n return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ];\n };\n return azimuthal;\n }\n var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) {\n return Math.sqrt(2 / (1 + cosλcosφ));\n }, function(ρ) {\n return 2 * Math.asin(ρ / 2);\n });\n (d3.geo.azimuthalEqualArea = function() {\n return d3_geo_projection(d3_geo_azimuthalEqualArea);\n }).raw = d3_geo_azimuthalEqualArea;\n var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) {\n var c = Math.acos(cosλcosφ);\n return c && c / Math.sin(c);\n }, d3_identity);\n (d3.geo.azimuthalEquidistant = function() {\n return d3_geo_projection(d3_geo_azimuthalEquidistant);\n }).raw = d3_geo_azimuthalEquidistant;\n function d3_geo_conicConformal(φ0, φ1) {\n var cosφ0 = Math.cos(φ0), t = function(φ) {\n return Math.tan(π / 4 + φ / 2);\n }, n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), F = cosφ0 * Math.pow(t(φ0), n) / n;\n if (!n) return d3_geo_mercator;\n function forward(λ, φ) {\n if (F > 0) {\n if (φ < -halfπ + ε) φ = -halfπ + ε;\n } else {\n if (φ > halfπ - ε) φ = halfπ - ε;\n }\n var ρ = F / Math.pow(t(φ), n);\n return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ];\n }\n forward.invert = function(x, y) {\n var ρ0_y = F - y, ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y);\n return [ Math.atan2(x, ρ0_y) / n, 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - halfπ ];\n };\n return forward;\n }\n (d3.geo.conicConformal = function() {\n return d3_geo_conic(d3_geo_conicConformal);\n }).raw = d3_geo_conicConformal;\n function d3_geo_conicEquidistant(φ0, φ1) {\n var cosφ0 = Math.cos(φ0), n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), G = cosφ0 / n + φ0;\n if (abs(n) < ε) return d3_geo_equirectangular;\n function forward(λ, φ) {\n var ρ = G - φ;\n return [ ρ * Math.sin(n * λ), G - ρ * Math.cos(n * λ) ];\n }\n forward.invert = function(x, y) {\n var ρ0_y = G - y;\n return [ Math.atan2(x, ρ0_y) / n, G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) ];\n };\n return forward;\n }\n (d3.geo.conicEquidistant = function() {\n return d3_geo_conic(d3_geo_conicEquidistant);\n }).raw = d3_geo_conicEquidistant;\n var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) {\n return 1 / cosλcosφ;\n }, Math.atan);\n (d3.geo.gnomonic = function() {\n return d3_geo_projection(d3_geo_gnomonic);\n }).raw = d3_geo_gnomonic;\n function d3_geo_mercator(λ, φ) {\n return [ λ, Math.log(Math.tan(π / 4 + φ / 2)) ];\n }\n d3_geo_mercator.invert = function(x, y) {\n return [ x, 2 * Math.atan(Math.exp(y)) - halfπ ];\n };\n function d3_geo_mercatorProjection(project) {\n var m = d3_geo_projection(project), scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, clipAuto;\n m.scale = function() {\n var v = scale.apply(m, arguments);\n return v === m ? clipAuto ? m.clipExtent(null) : m : v;\n };\n m.translate = function() {\n var v = translate.apply(m, arguments);\n return v === m ? clipAuto ? m.clipExtent(null) : m : v;\n };\n m.clipExtent = function(_) {\n var v = clipExtent.apply(m, arguments);\n if (v === m) {\n if (clipAuto = _ == null) {\n var k = π * scale(), t = translate();\n clipExtent([ [ t[0] - k, t[1] - k ], [ t[0] + k, t[1] + k ] ]);\n }\n } else if (clipAuto) {\n v = null;\n }\n return v;\n };\n return m.clipExtent(null);\n }\n (d3.geo.mercator = function() {\n return d3_geo_mercatorProjection(d3_geo_mercator);\n }).raw = d3_geo_mercator;\n var d3_geo_orthographic = d3_geo_azimuthal(function() {\n return 1;\n }, Math.asin);\n (d3.geo.orthographic = function() {\n return d3_geo_projection(d3_geo_orthographic);\n }).raw = d3_geo_orthographic;\n var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) {\n return 1 / (1 + cosλcosφ);\n }, function(ρ) {\n return 2 * Math.atan(ρ);\n });\n (d3.geo.stereographic = function() {\n return d3_geo_projection(d3_geo_stereographic);\n }).raw = d3_geo_stereographic;\n function d3_geo_transverseMercator(λ, φ) {\n return [ Math.log(Math.tan(π / 4 + φ / 2)), -λ ];\n }\n d3_geo_transverseMercator.invert = function(x, y) {\n return [ -y, 2 * Math.atan(Math.exp(x)) - halfπ ];\n };\n (d3.geo.transverseMercator = function() {\n var projection = d3_geo_mercatorProjection(d3_geo_transverseMercator), center = projection.center, rotate = projection.rotate;\n projection.center = function(_) {\n return _ ? center([ -_[1], _[0] ]) : (_ = center(), [ _[1], -_[0] ]);\n };\n projection.rotate = function(_) {\n return _ ? rotate([ _[0], _[1], _.length > 2 ? _[2] + 90 : 90 ]) : (_ = rotate(), \n [ _[0], _[1], _[2] - 90 ]);\n };\n return rotate([ 0, 0, 90 ]);\n }).raw = d3_geo_transverseMercator;\n d3.geom = {};\n function d3_geom_pointX(d) {\n return d[0];\n }\n function d3_geom_pointY(d) {\n return d[1];\n }\n d3.geom.hull = function(vertices) {\n var x = d3_geom_pointX, y = d3_geom_pointY;\n if (arguments.length) return hull(vertices);\n function hull(data) {\n if (data.length < 3) return [];\n var fx = d3_functor(x), fy = d3_functor(y), i, n = data.length, points = [], flippedPoints = [];\n for (i = 0; i < n; i++) {\n points.push([ +fx.call(this, data[i], i), +fy.call(this, data[i], i), i ]);\n }\n points.sort(d3_geom_hullOrder);\n for (i = 0; i < n; i++) flippedPoints.push([ points[i][0], -points[i][1] ]);\n var upper = d3_geom_hullUpper(points), lower = d3_geom_hullUpper(flippedPoints);\n var skipLeft = lower[0] === upper[0], skipRight = lower[lower.length - 1] === upper[upper.length - 1], polygon = [];\n for (i = upper.length - 1; i >= 0; --i) polygon.push(data[points[upper[i]][2]]);\n for (i = +skipLeft; i < lower.length - skipRight; ++i) polygon.push(data[points[lower[i]][2]]);\n return polygon;\n }\n hull.x = function(_) {\n return arguments.length ? (x = _, hull) : x;\n };\n hull.y = function(_) {\n return arguments.length ? (y = _, hull) : y;\n };\n return hull;\n };\n function d3_geom_hullUpper(points) {\n var n = points.length, hull = [ 0, 1 ], hs = 2;\n for (var i = 2; i < n; i++) {\n while (hs > 1 && d3_cross2d(points[hull[hs - 2]], points[hull[hs - 1]], points[i]) <= 0) --hs;\n hull[hs++] = i;\n }\n return hull.slice(0, hs);\n }\n function d3_geom_hullOrder(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n }\n d3.geom.polygon = function(coordinates) {\n d3_subclass(coordinates, d3_geom_polygonPrototype);\n return coordinates;\n };\n var d3_geom_polygonPrototype = d3.geom.polygon.prototype = [];\n d3_geom_polygonPrototype.area = function() {\n var i = -1, n = this.length, a, b = this[n - 1], area = 0;\n while (++i < n) {\n a = b;\n b = this[i];\n area += a[1] * b[0] - a[0] * b[1];\n }\n return area * .5;\n };\n d3_geom_polygonPrototype.centroid = function(k) {\n var i = -1, n = this.length, x = 0, y = 0, a, b = this[n - 1], c;\n if (!arguments.length) k = -1 / (6 * this.area());\n while (++i < n) {\n a = b;\n b = this[i];\n c = a[0] * b[1] - b[0] * a[1];\n x += (a[0] + b[0]) * c;\n y += (a[1] + b[1]) * c;\n }\n return [ x * k, y * k ];\n };\n d3_geom_polygonPrototype.clip = function(subject) {\n var input, closed = d3_geom_polygonClosed(subject), i = -1, n = this.length - d3_geom_polygonClosed(this), j, m, a = this[n - 1], b, c, d;\n while (++i < n) {\n input = subject.slice();\n subject.length = 0;\n b = this[i];\n c = input[(m = input.length - closed) - 1];\n j = -1;\n while (++j < m) {\n d = input[j];\n if (d3_geom_polygonInside(d, a, b)) {\n if (!d3_geom_polygonInside(c, a, b)) {\n subject.push(d3_geom_polygonIntersect(c, d, a, b));\n }\n subject.push(d);\n } else if (d3_geom_polygonInside(c, a, b)) {\n subject.push(d3_geom_polygonIntersect(c, d, a, b));\n }\n c = d;\n }\n if (closed) subject.push(subject[0]);\n a = b;\n }\n return subject;\n };\n function d3_geom_polygonInside(p, a, b) {\n return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);\n }\n function d3_geom_polygonIntersect(c, d, a, b) {\n var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21);\n return [ x1 + ua * x21, y1 + ua * y21 ];\n }\n function d3_geom_polygonClosed(coordinates) {\n var a = coordinates[0], b = coordinates[coordinates.length - 1];\n return !(a[0] - b[0] || a[1] - b[1]);\n }\n var d3_geom_voronoiEdges, d3_geom_voronoiCells, d3_geom_voronoiBeaches, d3_geom_voronoiBeachPool = [], d3_geom_voronoiFirstCircle, d3_geom_voronoiCircles, d3_geom_voronoiCirclePool = [];\n function d3_geom_voronoiBeach() {\n d3_geom_voronoiRedBlackNode(this);\n this.edge = this.site = this.circle = null;\n }\n function d3_geom_voronoiCreateBeach(site) {\n var beach = d3_geom_voronoiBeachPool.pop() || new d3_geom_voronoiBeach();\n beach.site = site;\n return beach;\n }\n function d3_geom_voronoiDetachBeach(beach) {\n d3_geom_voronoiDetachCircle(beach);\n d3_geom_voronoiBeaches.remove(beach);\n d3_geom_voronoiBeachPool.push(beach);\n d3_geom_voronoiRedBlackNode(beach);\n }\n function d3_geom_voronoiRemoveBeach(beach) {\n var circle = beach.circle, x = circle.x, y = circle.cy, vertex = {\n x: x,\n y: y\n }, previous = beach.P, next = beach.N, disappearing = [ beach ];\n d3_geom_voronoiDetachBeach(beach);\n var lArc = previous;\n while (lArc.circle && abs(x - lArc.circle.x) < ε && abs(y - lArc.circle.cy) < ε) {\n previous = lArc.P;\n disappearing.unshift(lArc);\n d3_geom_voronoiDetachBeach(lArc);\n lArc = previous;\n }\n disappearing.unshift(lArc);\n d3_geom_voronoiDetachCircle(lArc);\n var rArc = next;\n while (rArc.circle && abs(x - rArc.circle.x) < ε && abs(y - rArc.circle.cy) < ε) {\n next = rArc.N;\n disappearing.push(rArc);\n d3_geom_voronoiDetachBeach(rArc);\n rArc = next;\n }\n disappearing.push(rArc);\n d3_geom_voronoiDetachCircle(rArc);\n var nArcs = disappearing.length, iArc;\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n d3_geom_voronoiSetEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, rArc.site, null, vertex);\n d3_geom_voronoiAttachCircle(lArc);\n d3_geom_voronoiAttachCircle(rArc);\n }\n function d3_geom_voronoiAddBeach(site) {\n var x = site.x, directrix = site.y, lArc, rArc, dxl, dxr, node = d3_geom_voronoiBeaches._;\n while (node) {\n dxl = d3_geom_voronoiLeftBreakPoint(node, directrix) - x;\n if (dxl > ε) node = node.L; else {\n dxr = x - d3_geom_voronoiRightBreakPoint(node, directrix);\n if (dxr > ε) {\n if (!node.R) {\n lArc = node;\n break;\n }\n node = node.R;\n } else {\n if (dxl > -ε) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -ε) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n break;\n }\n }\n }\n var newArc = d3_geom_voronoiCreateBeach(site);\n d3_geom_voronoiBeaches.insert(lArc, newArc);\n if (!lArc && !rArc) return;\n if (lArc === rArc) {\n d3_geom_voronoiDetachCircle(lArc);\n rArc = d3_geom_voronoiCreateBeach(lArc.site);\n d3_geom_voronoiBeaches.insert(newArc, rArc);\n newArc.edge = rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);\n d3_geom_voronoiAttachCircle(lArc);\n d3_geom_voronoiAttachCircle(rArc);\n return;\n }\n if (!rArc) {\n newArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);\n return;\n }\n d3_geom_voronoiDetachCircle(lArc);\n d3_geom_voronoiDetachCircle(rArc);\n var lSite = lArc.site, ax = lSite.x, ay = lSite.y, bx = site.x - ax, by = site.y - ay, rSite = rArc.site, cx = rSite.x - ax, cy = rSite.y - ay, d = 2 * (bx * cy - by * cx), hb = bx * bx + by * by, hc = cx * cx + cy * cy, vertex = {\n x: (cy * hb - by * hc) / d + ax,\n y: (bx * hc - cx * hb) / d + ay\n };\n d3_geom_voronoiSetEdgeEnd(rArc.edge, lSite, rSite, vertex);\n newArc.edge = d3_geom_voronoiCreateEdge(lSite, site, null, vertex);\n rArc.edge = d3_geom_voronoiCreateEdge(site, rSite, null, vertex);\n d3_geom_voronoiAttachCircle(lArc);\n d3_geom_voronoiAttachCircle(rArc);\n }\n function d3_geom_voronoiLeftBreakPoint(arc, directrix) {\n var site = arc.site, rfocx = site.x, rfocy = site.y, pby2 = rfocy - directrix;\n if (!pby2) return rfocx;\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n site = lArc.site;\n var lfocx = site.x, lfocy = site.y, plby2 = lfocy - directrix;\n if (!plby2) return lfocx;\n var hl = lfocx - rfocx, aby2 = 1 / pby2 - 1 / plby2, b = hl / plby2;\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n return (rfocx + lfocx) / 2;\n }\n function d3_geom_voronoiRightBreakPoint(arc, directrix) {\n var rArc = arc.N;\n if (rArc) return d3_geom_voronoiLeftBreakPoint(rArc, directrix);\n var site = arc.site;\n return site.y === directrix ? site.x : Infinity;\n }\n function d3_geom_voronoiCell(site) {\n this.site = site;\n this.edges = [];\n }\n d3_geom_voronoiCell.prototype.prepare = function() {\n var halfEdges = this.edges, iHalfEdge = halfEdges.length, edge;\n while (iHalfEdge--) {\n edge = halfEdges[iHalfEdge].edge;\n if (!edge.b || !edge.a) halfEdges.splice(iHalfEdge, 1);\n }\n halfEdges.sort(d3_geom_voronoiHalfEdgeOrder);\n return halfEdges.length;\n };\n function d3_geom_voronoiCloseCells(extent) {\n var x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], x2, y2, x3, y3, cells = d3_geom_voronoiCells, iCell = cells.length, cell, iHalfEdge, halfEdges, nHalfEdges, start, end;\n while (iCell--) {\n cell = cells[iCell];\n if (!cell || !cell.prepare()) continue;\n halfEdges = cell.edges;\n nHalfEdges = halfEdges.length;\n iHalfEdge = 0;\n while (iHalfEdge < nHalfEdges) {\n end = halfEdges[iHalfEdge].end(), x3 = end.x, y3 = end.y;\n start = halfEdges[++iHalfEdge % nHalfEdges].start(), x2 = start.x, y2 = start.y;\n if (abs(x3 - x2) > ε || abs(y3 - y2) > ε) {\n halfEdges.splice(iHalfEdge, 0, new d3_geom_voronoiHalfEdge(d3_geom_voronoiCreateBorderEdge(cell.site, end, abs(x3 - x0) < ε && y1 - y3 > ε ? {\n x: x0,\n y: abs(x2 - x0) < ε ? y2 : y1\n } : abs(y3 - y1) < ε && x1 - x3 > ε ? {\n x: abs(y2 - y1) < ε ? x2 : x1,\n y: y1\n } : abs(x3 - x1) < ε && y3 - y0 > ε ? {\n x: x1,\n y: abs(x2 - x1) < ε ? y2 : y0\n } : abs(y3 - y0) < ε && x3 - x0 > ε ? {\n x: abs(y2 - y0) < ε ? x2 : x0,\n y: y0\n } : null), cell.site, null));\n ++nHalfEdges;\n }\n }\n }\n }\n function d3_geom_voronoiHalfEdgeOrder(a, b) {\n return b.angle - a.angle;\n }\n function d3_geom_voronoiCircle() {\n d3_geom_voronoiRedBlackNode(this);\n this.x = this.y = this.arc = this.site = this.cy = null;\n }\n function d3_geom_voronoiAttachCircle(arc) {\n var lArc = arc.P, rArc = arc.N;\n if (!lArc || !rArc) return;\n var lSite = lArc.site, cSite = arc.site, rSite = rArc.site;\n if (lSite === rSite) return;\n var bx = cSite.x, by = cSite.y, ax = lSite.x - bx, ay = lSite.y - by, cx = rSite.x - bx, cy = rSite.y - by;\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -ε2) return;\n var ha = ax * ax + ay * ay, hc = cx * cx + cy * cy, x = (cy * ha - ay * hc) / d, y = (ax * hc - cx * ha) / d, cy = y + by;\n var circle = d3_geom_voronoiCirclePool.pop() || new d3_geom_voronoiCircle();\n circle.arc = arc;\n circle.site = cSite;\n circle.x = x + bx;\n circle.y = cy + Math.sqrt(x * x + y * y);\n circle.cy = cy;\n arc.circle = circle;\n var before = null, node = d3_geom_voronoiCircles._;\n while (node) {\n if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) {\n if (node.L) node = node.L; else {\n before = node.P;\n break;\n }\n } else {\n if (node.R) node = node.R; else {\n before = node;\n break;\n }\n }\n }\n d3_geom_voronoiCircles.insert(before, circle);\n if (!before) d3_geom_voronoiFirstCircle = circle;\n }\n function d3_geom_voronoiDetachCircle(arc) {\n var circle = arc.circle;\n if (circle) {\n if (!circle.P) d3_geom_voronoiFirstCircle = circle.N;\n d3_geom_voronoiCircles.remove(circle);\n d3_geom_voronoiCirclePool.push(circle);\n d3_geom_voronoiRedBlackNode(circle);\n arc.circle = null;\n }\n }\n function d3_geom_voronoiClipEdges(extent) {\n var edges = d3_geom_voronoiEdges, clip = d3_geom_clipLine(extent[0][0], extent[0][1], extent[1][0], extent[1][1]), i = edges.length, e;\n while (i--) {\n e = edges[i];\n if (!d3_geom_voronoiConnectEdge(e, extent) || !clip(e) || abs(e.a.x - e.b.x) < ε && abs(e.a.y - e.b.y) < ε) {\n e.a = e.b = null;\n edges.splice(i, 1);\n }\n }\n }\n function d3_geom_voronoiConnectEdge(edge, extent) {\n var vb = edge.b;\n if (vb) return true;\n var va = edge.a, x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], lSite = edge.l, rSite = edge.r, lx = lSite.x, ly = lSite.y, rx = rSite.x, ry = rSite.y, fx = (lx + rx) / 2, fy = (ly + ry) / 2, fm, fb;\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n if (lx > rx) {\n if (!va) va = {\n x: fx,\n y: y0\n }; else if (va.y >= y1) return;\n vb = {\n x: fx,\n y: y1\n };\n } else {\n if (!va) va = {\n x: fx,\n y: y1\n }; else if (va.y < y0) return;\n vb = {\n x: fx,\n y: y0\n };\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!va) va = {\n x: (y0 - fb) / fm,\n y: y0\n }; else if (va.y >= y1) return;\n vb = {\n x: (y1 - fb) / fm,\n y: y1\n };\n } else {\n if (!va) va = {\n x: (y1 - fb) / fm,\n y: y1\n }; else if (va.y < y0) return;\n vb = {\n x: (y0 - fb) / fm,\n y: y0\n };\n }\n } else {\n if (ly < ry) {\n if (!va) va = {\n x: x0,\n y: fm * x0 + fb\n }; else if (va.x >= x1) return;\n vb = {\n x: x1,\n y: fm * x1 + fb\n };\n } else {\n if (!va) va = {\n x: x1,\n y: fm * x1 + fb\n }; else if (va.x < x0) return;\n vb = {\n x: x0,\n y: fm * x0 + fb\n };\n }\n }\n }\n edge.a = va;\n edge.b = vb;\n return true;\n }\n function d3_geom_voronoiEdge(lSite, rSite) {\n this.l = lSite;\n this.r = rSite;\n this.a = this.b = null;\n }\n function d3_geom_voronoiCreateEdge(lSite, rSite, va, vb) {\n var edge = new d3_geom_voronoiEdge(lSite, rSite);\n d3_geom_voronoiEdges.push(edge);\n if (va) d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, va);\n if (vb) d3_geom_voronoiSetEdgeEnd(edge, rSite, lSite, vb);\n d3_geom_voronoiCells[lSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, lSite, rSite));\n d3_geom_voronoiCells[rSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, rSite, lSite));\n return edge;\n }\n function d3_geom_voronoiCreateBorderEdge(lSite, va, vb) {\n var edge = new d3_geom_voronoiEdge(lSite, null);\n edge.a = va;\n edge.b = vb;\n d3_geom_voronoiEdges.push(edge);\n return edge;\n }\n function d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, vertex) {\n if (!edge.a && !edge.b) {\n edge.a = vertex;\n edge.l = lSite;\n edge.r = rSite;\n } else if (edge.l === rSite) {\n edge.b = vertex;\n } else {\n edge.a = vertex;\n }\n }\n function d3_geom_voronoiHalfEdge(edge, lSite, rSite) {\n var va = edge.a, vb = edge.b;\n this.edge = edge;\n this.site = lSite;\n this.angle = rSite ? Math.atan2(rSite.y - lSite.y, rSite.x - lSite.x) : edge.l === lSite ? Math.atan2(vb.x - va.x, va.y - vb.y) : Math.atan2(va.x - vb.x, vb.y - va.y);\n }\n d3_geom_voronoiHalfEdge.prototype = {\n start: function() {\n return this.edge.l === this.site ? this.edge.a : this.edge.b;\n },\n end: function() {\n return this.edge.l === this.site ? this.edge.b : this.edge.a;\n }\n };\n function d3_geom_voronoiRedBlackTree() {\n this._ = null;\n }\n function d3_geom_voronoiRedBlackNode(node) {\n node.U = node.C = node.L = node.R = node.P = node.N = null;\n }\n d3_geom_voronoiRedBlackTree.prototype = {\n insert: function(after, node) {\n var parent, grandpa, uncle;\n if (after) {\n node.P = after;\n node.N = after.N;\n if (after.N) after.N.P = node;\n after.N = node;\n if (after.R) {\n after = after.R;\n while (after.L) after = after.L;\n after.L = node;\n } else {\n after.R = node;\n }\n parent = after;\n } else if (this._) {\n after = d3_geom_voronoiRedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n after = node;\n while (parent && parent.C) {\n grandpa = parent.U;\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n d3_geom_voronoiRedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n d3_geom_voronoiRedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n d3_geom_voronoiRedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n d3_geom_voronoiRedBlackRotateLeft(this, grandpa);\n }\n }\n parent = after.U;\n }\n this._.C = false;\n },\n remove: function(node) {\n if (node.N) node.N.P = node.P;\n if (node.P) node.P.N = node.N;\n node.N = node.P = null;\n var parent = node.U, sibling, left = node.L, right = node.R, next, red;\n if (!left) next = right; else if (!right) next = left; else next = d3_geom_voronoiRedBlackFirst(right);\n if (parent) {\n if (parent.L === node) parent.L = next; else parent.R = next;\n } else {\n this._ = next;\n }\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n if (next !== right) {\n parent = next.U;\n next.U = node.U;\n node = next.R;\n parent.L = node;\n next.R = right;\n right.U = next;\n } else {\n next.U = parent;\n parent = next;\n node = next.R;\n }\n } else {\n red = node.C;\n node = next;\n }\n if (node) node.U = parent;\n if (red) return;\n if (node && node.C) {\n node.C = false;\n return;\n }\n do {\n if (node === this._) break;\n if (node === parent.L) {\n sibling = parent.R;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n d3_geom_voronoiRedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n d3_geom_voronoiRedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n d3_geom_voronoiRedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n d3_geom_voronoiRedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n d3_geom_voronoiRedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n d3_geom_voronoiRedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n if (node) node.C = false;\n }\n };\n function d3_geom_voronoiRedBlackRotateLeft(tree, node) {\n var p = node, q = node.R, parent = p.U;\n if (parent) {\n if (parent.L === p) parent.L = q; else parent.R = q;\n } else {\n tree._ = q;\n }\n q.U = parent;\n p.U = q;\n p.R = q.L;\n if (p.R) p.R.U = p;\n q.L = p;\n }\n function d3_geom_voronoiRedBlackRotateRight(tree, node) {\n var p = node, q = node.L, parent = p.U;\n if (parent) {\n if (parent.L === p) parent.L = q; else parent.R = q;\n } else {\n tree._ = q;\n }\n q.U = parent;\n p.U = q;\n p.L = q.R;\n if (p.L) p.L.U = p;\n q.R = p;\n }\n function d3_geom_voronoiRedBlackFirst(node) {\n while (node.L) node = node.L;\n return node;\n }\n function d3_geom_voronoi(sites, bbox) {\n var site = sites.sort(d3_geom_voronoiVertexOrder).pop(), x0, y0, circle;\n d3_geom_voronoiEdges = [];\n d3_geom_voronoiCells = new Array(sites.length);\n d3_geom_voronoiBeaches = new d3_geom_voronoiRedBlackTree();\n d3_geom_voronoiCircles = new d3_geom_voronoiRedBlackTree();\n while (true) {\n circle = d3_geom_voronoiFirstCircle;\n if (site && (!circle || site.y < circle.y || site.y === circle.y && site.x < circle.x)) {\n if (site.x !== x0 || site.y !== y0) {\n d3_geom_voronoiCells[site.i] = new d3_geom_voronoiCell(site);\n d3_geom_voronoiAddBeach(site);\n x0 = site.x, y0 = site.y;\n }\n site = sites.pop();\n } else if (circle) {\n d3_geom_voronoiRemoveBeach(circle.arc);\n } else {\n break;\n }\n }\n if (bbox) d3_geom_voronoiClipEdges(bbox), d3_geom_voronoiCloseCells(bbox);\n var diagram = {\n cells: d3_geom_voronoiCells,\n edges: d3_geom_voronoiEdges\n };\n d3_geom_voronoiBeaches = d3_geom_voronoiCircles = d3_geom_voronoiEdges = d3_geom_voronoiCells = null;\n return diagram;\n }\n function d3_geom_voronoiVertexOrder(a, b) {\n return b.y - a.y || b.x - a.x;\n }\n d3.geom.voronoi = function(points) {\n var x = d3_geom_pointX, y = d3_geom_pointY, fx = x, fy = y, clipExtent = d3_geom_voronoiClipExtent;\n if (points) return voronoi(points);\n function voronoi(data) {\n var polygons = new Array(data.length), x0 = clipExtent[0][0], y0 = clipExtent[0][1], x1 = clipExtent[1][0], y1 = clipExtent[1][1];\n d3_geom_voronoi(sites(data), clipExtent).cells.forEach(function(cell, i) {\n var edges = cell.edges, site = cell.site, polygon = polygons[i] = edges.length ? edges.map(function(e) {\n var s = e.start();\n return [ s.x, s.y ];\n }) : site.x >= x0 && site.x <= x1 && site.y >= y0 && site.y <= y1 ? [ [ x0, y1 ], [ x1, y1 ], [ x1, y0 ], [ x0, y0 ] ] : [];\n polygon.point = data[i];\n });\n return polygons;\n }\n function sites(data) {\n return data.map(function(d, i) {\n return {\n x: Math.round(fx(d, i) / ε) * ε,\n y: Math.round(fy(d, i) / ε) * ε,\n i: i\n };\n });\n }\n voronoi.links = function(data) {\n return d3_geom_voronoi(sites(data)).edges.filter(function(edge) {\n return edge.l && edge.r;\n }).map(function(edge) {\n return {\n source: data[edge.l.i],\n target: data[edge.r.i]\n };\n });\n };\n voronoi.triangles = function(data) {\n var triangles = [];\n d3_geom_voronoi(sites(data)).cells.forEach(function(cell, i) {\n var site = cell.site, edges = cell.edges.sort(d3_geom_voronoiHalfEdgeOrder), j = -1, m = edges.length, e0, s0, e1 = edges[m - 1].edge, s1 = e1.l === site ? e1.r : e1.l;\n while (++j < m) {\n e0 = e1;\n s0 = s1;\n e1 = edges[j].edge;\n s1 = e1.l === site ? e1.r : e1.l;\n if (i < s0.i && i < s1.i && d3_geom_voronoiTriangleArea(site, s0, s1) < 0) {\n triangles.push([ data[i], data[s0.i], data[s1.i] ]);\n }\n }\n });\n return triangles;\n };\n voronoi.x = function(_) {\n return arguments.length ? (fx = d3_functor(x = _), voronoi) : x;\n };\n voronoi.y = function(_) {\n return arguments.length ? (fy = d3_functor(y = _), voronoi) : y;\n };\n voronoi.clipExtent = function(_) {\n if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent;\n clipExtent = _ == null ? d3_geom_voronoiClipExtent : _;\n return voronoi;\n };\n voronoi.size = function(_) {\n if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent && clipExtent[1];\n return voronoi.clipExtent(_ && [ [ 0, 0 ], _ ]);\n };\n return voronoi;\n };\n var d3_geom_voronoiClipExtent = [ [ -1e6, -1e6 ], [ 1e6, 1e6 ] ];\n function d3_geom_voronoiTriangleArea(a, b, c) {\n return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y);\n }\n d3.geom.delaunay = function(vertices) {\n return d3.geom.voronoi().triangles(vertices);\n };\n d3.geom.quadtree = function(points, x1, y1, x2, y2) {\n var x = d3_geom_pointX, y = d3_geom_pointY, compat;\n if (compat = arguments.length) {\n x = d3_geom_quadtreeCompatX;\n y = d3_geom_quadtreeCompatY;\n if (compat === 3) {\n y2 = y1;\n x2 = x1;\n y1 = x1 = 0;\n }\n return quadtree(points);\n }\n function quadtree(data) {\n var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_;\n if (x1 != null) {\n x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2;\n } else {\n x2_ = y2_ = -(x1_ = y1_ = Infinity);\n xs = [], ys = [];\n n = data.length;\n if (compat) for (i = 0; i < n; ++i) {\n d = data[i];\n if (d.x < x1_) x1_ = d.x;\n if (d.y < y1_) y1_ = d.y;\n if (d.x > x2_) x2_ = d.x;\n if (d.y > y2_) y2_ = d.y;\n xs.push(d.x);\n ys.push(d.y);\n } else for (i = 0; i < n; ++i) {\n var x_ = +fx(d = data[i], i), y_ = +fy(d, i);\n if (x_ < x1_) x1_ = x_;\n if (y_ < y1_) y1_ = y_;\n if (x_ > x2_) x2_ = x_;\n if (y_ > y2_) y2_ = y_;\n xs.push(x_);\n ys.push(y_);\n }\n }\n var dx = x2_ - x1_, dy = y2_ - y1_;\n if (dx > dy) y2_ = y1_ + dx; else x2_ = x1_ + dy;\n function insert(n, d, x, y, x1, y1, x2, y2) {\n if (isNaN(x) || isNaN(y)) return;\n if (n.leaf) {\n var nx = n.x, ny = n.y;\n if (nx != null) {\n if (abs(nx - x) + abs(ny - y) < .01) {\n insertChild(n, d, x, y, x1, y1, x2, y2);\n } else {\n var nPoint = n.point;\n n.x = n.y = n.point = null;\n insertChild(n, nPoint, nx, ny, x1, y1, x2, y2);\n insertChild(n, d, x, y, x1, y1, x2, y2);\n }\n } else {\n n.x = x, n.y = y, n.point = d;\n }\n } else {\n insertChild(n, d, x, y, x1, y1, x2, y2);\n }\n }\n function insertChild(n, d, x, y, x1, y1, x2, y2) {\n var xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym, i = below << 1 | right;\n n.leaf = false;\n n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());\n if (right) x1 = xm; else x2 = xm;\n if (below) y1 = ym; else y2 = ym;\n insert(n, d, x, y, x1, y1, x2, y2);\n }\n var root = d3_geom_quadtreeNode();\n root.add = function(d) {\n insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_);\n };\n root.visit = function(f) {\n d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_);\n };\n root.find = function(point) {\n return d3_geom_quadtreeFind(root, point[0], point[1], x1_, y1_, x2_, y2_);\n };\n i = -1;\n if (x1 == null) {\n while (++i < n) {\n insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_);\n }\n --i;\n } else data.forEach(root.add);\n xs = ys = data = d = null;\n return root;\n }\n quadtree.x = function(_) {\n return arguments.length ? (x = _, quadtree) : x;\n };\n quadtree.y = function(_) {\n return arguments.length ? (y = _, quadtree) : y;\n };\n quadtree.extent = function(_) {\n if (!arguments.length) return x1 == null ? null : [ [ x1, y1 ], [ x2, y2 ] ];\n if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = +_[0][0], y1 = +_[0][1], x2 = +_[1][0], \n y2 = +_[1][1];\n return quadtree;\n };\n quadtree.size = function(_) {\n if (!arguments.length) return x1 == null ? null : [ x2 - x1, y2 - y1 ];\n if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = y1 = 0, x2 = +_[0], y2 = +_[1];\n return quadtree;\n };\n return quadtree;\n };\n function d3_geom_quadtreeCompatX(d) {\n return d.x;\n }\n function d3_geom_quadtreeCompatY(d) {\n return d.y;\n }\n function d3_geom_quadtreeNode() {\n return {\n leaf: true,\n nodes: [],\n point: null,\n x: null,\n y: null\n };\n }\n function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {\n if (!f(node, x1, y1, x2, y2)) {\n var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes;\n if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);\n if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);\n if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);\n if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);\n }\n }\n function d3_geom_quadtreeFind(root, x, y, x0, y0, x3, y3) {\n var minDistance2 = Infinity, closestPoint;\n (function find(node, x1, y1, x2, y2) {\n if (x1 > x3 || y1 > y3 || x2 < x0 || y2 < y0) return;\n if (point = node.point) {\n var point, dx = x - node.x, dy = y - node.y, distance2 = dx * dx + dy * dy;\n if (distance2 < minDistance2) {\n var distance = Math.sqrt(minDistance2 = distance2);\n x0 = x - distance, y0 = y - distance;\n x3 = x + distance, y3 = y + distance;\n closestPoint = point;\n }\n }\n var children = node.nodes, xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym;\n for (var i = below << 1 | right, j = i + 4; i < j; ++i) {\n if (node = children[i & 3]) switch (i & 3) {\n case 0:\n find(node, x1, y1, xm, ym);\n break;\n\n case 1:\n find(node, xm, y1, x2, ym);\n break;\n\n case 2:\n find(node, x1, ym, xm, y2);\n break;\n\n case 3:\n find(node, xm, ym, x2, y2);\n break;\n }\n }\n })(root, x0, y0, x3, y3);\n return closestPoint;\n }\n d3.interpolateRgb = d3_interpolateRgb;\n function d3_interpolateRgb(a, b) {\n a = d3.rgb(a);\n b = d3.rgb(b);\n var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab;\n return function(t) {\n return \"#\" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t));\n };\n }\n d3.interpolateObject = d3_interpolateObject;\n function d3_interpolateObject(a, b) {\n var i = {}, c = {}, k;\n for (k in a) {\n if (k in b) {\n i[k] = d3_interpolate(a[k], b[k]);\n } else {\n c[k] = a[k];\n }\n }\n for (k in b) {\n if (!(k in a)) {\n c[k] = b[k];\n }\n }\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n }\n d3.interpolateNumber = d3_interpolateNumber;\n function d3_interpolateNumber(a, b) {\n a = +a, b = +b;\n return function(t) {\n return a * (1 - t) + b * t;\n };\n }\n d3.interpolateString = d3_interpolateString;\n function d3_interpolateString(a, b) {\n var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];\n a = a + \"\", b = b + \"\";\n while ((am = d3_interpolate_numberA.exec(a)) && (bm = d3_interpolate_numberB.exec(b))) {\n if ((bs = bm.index) > bi) {\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) {\n if (s[i]) s[i] += bm; else s[++i] = bm;\n } else {\n s[++i] = null;\n q.push({\n i: i,\n x: d3_interpolateNumber(am, bm)\n });\n }\n bi = d3_interpolate_numberB.lastIndex;\n }\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; else s[++i] = bs;\n }\n return s.length < 2 ? q[0] ? (b = q[0].x, function(t) {\n return b(t) + \"\";\n }) : function() {\n return b;\n } : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n }\n var d3_interpolate_numberA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g, d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, \"g\");\n d3.interpolate = d3_interpolate;\n function d3_interpolate(a, b) {\n var i = d3.interpolators.length, f;\n while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ;\n return f;\n }\n d3.interpolators = [ function(a, b) {\n var t = typeof b;\n return (t === \"string\" ? d3_rgb_names.has(b.toLowerCase()) || /^(#|rgb\\(|hsl\\()/i.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === \"object\" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b);\n } ];\n d3.interpolateArray = d3_interpolateArray;\n function d3_interpolateArray(a, b) {\n var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i;\n for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i]));\n for (;i < na; ++i) c[i] = a[i];\n for (;i < nb; ++i) c[i] = b[i];\n return function(t) {\n for (i = 0; i < n0; ++i) c[i] = x[i](t);\n return c;\n };\n }\n var d3_ease_default = function() {\n return d3_identity;\n };\n var d3_ease = d3.map({\n linear: d3_ease_default,\n poly: d3_ease_poly,\n quad: function() {\n return d3_ease_quad;\n },\n cubic: function() {\n return d3_ease_cubic;\n },\n sin: function() {\n return d3_ease_sin;\n },\n exp: function() {\n return d3_ease_exp;\n },\n circle: function() {\n return d3_ease_circle;\n },\n elastic: d3_ease_elastic,\n back: d3_ease_back,\n bounce: function() {\n return d3_ease_bounce;\n }\n });\n var d3_ease_mode = d3.map({\n \"in\": d3_identity,\n out: d3_ease_reverse,\n \"in-out\": d3_ease_reflect,\n \"out-in\": function(f) {\n return d3_ease_reflect(d3_ease_reverse(f));\n }\n });\n d3.ease = function(name) {\n var i = name.indexOf(\"-\"), t = i >= 0 ? name.slice(0, i) : name, m = i >= 0 ? name.slice(i + 1) : \"in\";\n t = d3_ease.get(t) || d3_ease_default;\n m = d3_ease_mode.get(m) || d3_identity;\n return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1))));\n };\n function d3_ease_clamp(f) {\n return function(t) {\n return t <= 0 ? 0 : t >= 1 ? 1 : f(t);\n };\n }\n function d3_ease_reverse(f) {\n return function(t) {\n return 1 - f(1 - t);\n };\n }\n function d3_ease_reflect(f) {\n return function(t) {\n return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t));\n };\n }\n function d3_ease_quad(t) {\n return t * t;\n }\n function d3_ease_cubic(t) {\n return t * t * t;\n }\n function d3_ease_cubicInOut(t) {\n if (t <= 0) return 0;\n if (t >= 1) return 1;\n var t2 = t * t, t3 = t2 * t;\n return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75);\n }\n function d3_ease_poly(e) {\n return function(t) {\n return Math.pow(t, e);\n };\n }\n function d3_ease_sin(t) {\n return 1 - Math.cos(t * halfπ);\n }\n function d3_ease_exp(t) {\n return Math.pow(2, 10 * (t - 1));\n }\n function d3_ease_circle(t) {\n return 1 - Math.sqrt(1 - t * t);\n }\n function d3_ease_elastic(a, p) {\n var s;\n if (arguments.length < 2) p = .45;\n if (arguments.length) s = p / τ * Math.asin(1 / a); else a = 1, s = p / 4;\n return function(t) {\n return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * τ / p);\n };\n }\n function d3_ease_back(s) {\n if (!s) s = 1.70158;\n return function(t) {\n return t * t * ((s + 1) * t - s);\n };\n }\n function d3_ease_bounce(t) {\n return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;\n }\n d3.interpolateHcl = d3_interpolateHcl;\n function d3_interpolateHcl(a, b) {\n a = d3.hcl(a);\n b = d3.hcl(b);\n var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al;\n if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac;\n if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;\n return function(t) {\n return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + \"\";\n };\n }\n d3.interpolateHsl = d3_interpolateHsl;\n function d3_interpolateHsl(a, b) {\n a = d3.hsl(a);\n b = d3.hsl(b);\n var ah = a.h, as = a.s, al = a.l, bh = b.h - ah, bs = b.s - as, bl = b.l - al;\n if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as;\n if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;\n return function(t) {\n return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + \"\";\n };\n }\n d3.interpolateLab = d3_interpolateLab;\n function d3_interpolateLab(a, b) {\n a = d3.lab(a);\n b = d3.lab(b);\n var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab;\n return function(t) {\n return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + \"\";\n };\n }\n d3.interpolateRound = d3_interpolateRound;\n function d3_interpolateRound(a, b) {\n b -= a;\n return function(t) {\n return Math.round(a + b * t);\n };\n }\n d3.transform = function(string) {\n var g = d3_document.createElementNS(d3.ns.prefix.svg, \"g\");\n return (d3.transform = function(string) {\n if (string != null) {\n g.setAttribute(\"transform\", string);\n var t = g.transform.baseVal.consolidate();\n }\n return new d3_transform(t ? t.matrix : d3_transformIdentity);\n })(string);\n };\n function d3_transform(m) {\n var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;\n if (r0[0] * r1[1] < r1[0] * r0[1]) {\n r0[0] *= -1;\n r0[1] *= -1;\n kx *= -1;\n kz *= -1;\n }\n this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees;\n this.translate = [ m.e, m.f ];\n this.scale = [ kx, ky ];\n this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0;\n }\n d3_transform.prototype.toString = function() {\n return \"translate(\" + this.translate + \")rotate(\" + this.rotate + \")skewX(\" + this.skew + \")scale(\" + this.scale + \")\";\n };\n function d3_transformDot(a, b) {\n return a[0] * b[0] + a[1] * b[1];\n }\n function d3_transformNormalize(a) {\n var k = Math.sqrt(d3_transformDot(a, a));\n if (k) {\n a[0] /= k;\n a[1] /= k;\n }\n return k;\n }\n function d3_transformCombine(a, b, k) {\n a[0] += k * b[0];\n a[1] += k * b[1];\n return a;\n }\n var d3_transformIdentity = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: 0,\n f: 0\n };\n d3.interpolateTransform = d3_interpolateTransform;\n function d3_interpolateTransformPop(s) {\n return s.length ? s.pop() + \",\" : \"\";\n }\n function d3_interpolateTranslate(ta, tb, s, q) {\n if (ta[0] !== tb[0] || ta[1] !== tb[1]) {\n var i = s.push(\"translate(\", null, \",\", null, \")\");\n q.push({\n i: i - 4,\n x: d3_interpolateNumber(ta[0], tb[0])\n }, {\n i: i - 2,\n x: d3_interpolateNumber(ta[1], tb[1])\n });\n } else if (tb[0] || tb[1]) {\n s.push(\"translate(\" + tb + \")\");\n }\n }\n function d3_interpolateRotate(ra, rb, s, q) {\n if (ra !== rb) {\n if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360;\n q.push({\n i: s.push(d3_interpolateTransformPop(s) + \"rotate(\", null, \")\") - 2,\n x: d3_interpolateNumber(ra, rb)\n });\n } else if (rb) {\n s.push(d3_interpolateTransformPop(s) + \"rotate(\" + rb + \")\");\n }\n }\n function d3_interpolateSkew(wa, wb, s, q) {\n if (wa !== wb) {\n q.push({\n i: s.push(d3_interpolateTransformPop(s) + \"skewX(\", null, \")\") - 2,\n x: d3_interpolateNumber(wa, wb)\n });\n } else if (wb) {\n s.push(d3_interpolateTransformPop(s) + \"skewX(\" + wb + \")\");\n }\n }\n function d3_interpolateScale(ka, kb, s, q) {\n if (ka[0] !== kb[0] || ka[1] !== kb[1]) {\n var i = s.push(d3_interpolateTransformPop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({\n i: i - 4,\n x: d3_interpolateNumber(ka[0], kb[0])\n }, {\n i: i - 2,\n x: d3_interpolateNumber(ka[1], kb[1])\n });\n } else if (kb[0] !== 1 || kb[1] !== 1) {\n s.push(d3_interpolateTransformPop(s) + \"scale(\" + kb + \")\");\n }\n }\n function d3_interpolateTransform(a, b) {\n var s = [], q = [];\n a = d3.transform(a), b = d3.transform(b);\n d3_interpolateTranslate(a.translate, b.translate, s, q);\n d3_interpolateRotate(a.rotate, b.rotate, s, q);\n d3_interpolateSkew(a.skew, b.skew, s, q);\n d3_interpolateScale(a.scale, b.scale, s, q);\n a = b = null;\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n }\n function d3_uninterpolateNumber(a, b) {\n b = (b -= a = +a) || 1 / b;\n return function(x) {\n return (x - a) / b;\n };\n }\n function d3_uninterpolateClamp(a, b) {\n b = (b -= a = +a) || 1 / b;\n return function(x) {\n return Math.max(0, Math.min(1, (x - a) / b));\n };\n }\n d3.layout = {};\n d3.layout.bundle = function() {\n return function(links) {\n var paths = [], i = -1, n = links.length;\n while (++i < n) paths.push(d3_layout_bundlePath(links[i]));\n return paths;\n };\n };\n function d3_layout_bundlePath(link) {\n var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ];\n while (start !== lca) {\n start = start.parent;\n points.push(start);\n }\n var k = points.length;\n while (end !== lca) {\n points.splice(k, 0, end);\n end = end.parent;\n }\n return points;\n }\n function d3_layout_bundleAncestors(node) {\n var ancestors = [], parent = node.parent;\n while (parent != null) {\n ancestors.push(node);\n node = parent;\n parent = parent.parent;\n }\n ancestors.push(node);\n return ancestors;\n }\n function d3_layout_bundleLeastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null;\n while (aNode === bNode) {\n sharedNode = aNode;\n aNode = aNodes.pop();\n bNode = bNodes.pop();\n }\n return sharedNode;\n }\n d3.layout.chord = function() {\n var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords;\n function relayout() {\n var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j;\n chords = [];\n groups = [];\n k = 0, i = -1;\n while (++i < n) {\n x = 0, j = -1;\n while (++j < n) {\n x += matrix[i][j];\n }\n groupSums.push(x);\n subgroupIndex.push(d3.range(n));\n k += x;\n }\n if (sortGroups) {\n groupIndex.sort(function(a, b) {\n return sortGroups(groupSums[a], groupSums[b]);\n });\n }\n if (sortSubgroups) {\n subgroupIndex.forEach(function(d, i) {\n d.sort(function(a, b) {\n return sortSubgroups(matrix[i][a], matrix[i][b]);\n });\n });\n }\n k = (τ - padding * n) / k;\n x = 0, i = -1;\n while (++i < n) {\n x0 = x, j = -1;\n while (++j < n) {\n var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k;\n subgroups[di + \"-\" + dj] = {\n index: di,\n subindex: dj,\n startAngle: a0,\n endAngle: a1,\n value: v\n };\n }\n groups[di] = {\n index: di,\n startAngle: x0,\n endAngle: x,\n value: groupSums[di]\n };\n x += padding;\n }\n i = -1;\n while (++i < n) {\n j = i - 1;\n while (++j < n) {\n var source = subgroups[i + \"-\" + j], target = subgroups[j + \"-\" + i];\n if (source.value || target.value) {\n chords.push(source.value < target.value ? {\n source: target,\n target: source\n } : {\n source: source,\n target: target\n });\n }\n }\n }\n if (sortChords) resort();\n }\n function resort() {\n chords.sort(function(a, b) {\n return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2);\n });\n }\n chord.matrix = function(x) {\n if (!arguments.length) return matrix;\n n = (matrix = x) && matrix.length;\n chords = groups = null;\n return chord;\n };\n chord.padding = function(x) {\n if (!arguments.length) return padding;\n padding = x;\n chords = groups = null;\n return chord;\n };\n chord.sortGroups = function(x) {\n if (!arguments.length) return sortGroups;\n sortGroups = x;\n chords = groups = null;\n return chord;\n };\n chord.sortSubgroups = function(x) {\n if (!arguments.length) return sortSubgroups;\n sortSubgroups = x;\n chords = null;\n return chord;\n };\n chord.sortChords = function(x) {\n if (!arguments.length) return sortChords;\n sortChords = x;\n if (chords) resort();\n return chord;\n };\n chord.chords = function() {\n if (!chords) relayout();\n return chords;\n };\n chord.groups = function() {\n if (!groups) relayout();\n return groups;\n };\n return chord;\n };\n d3.layout.force = function() {\n var force = {}, event = d3.dispatch(\"start\", \"tick\", \"end\"), timer, size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges;\n function repulse(node) {\n return function(quad, x1, _, x2) {\n if (quad.point !== node) {\n var dx = quad.cx - node.x, dy = quad.cy - node.y, dw = x2 - x1, dn = dx * dx + dy * dy;\n if (dw * dw / theta2 < dn) {\n if (dn < chargeDistance2) {\n var k = quad.charge / dn;\n node.px -= dx * k;\n node.py -= dy * k;\n }\n return true;\n }\n if (quad.point && dn && dn < chargeDistance2) {\n var k = quad.pointCharge / dn;\n node.px -= dx * k;\n node.py -= dy * k;\n }\n }\n return !quad.charge;\n };\n }\n force.tick = function() {\n if ((alpha *= .99) < .005) {\n timer = null;\n event.end({\n type: \"end\",\n alpha: alpha = 0\n });\n return true;\n }\n var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y;\n for (i = 0; i < m; ++i) {\n o = links[i];\n s = o.source;\n t = o.target;\n x = t.x - s.x;\n y = t.y - s.y;\n if (l = x * x + y * y) {\n l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;\n x *= l;\n y *= l;\n t.x -= x * (k = s.weight + t.weight ? s.weight / (s.weight + t.weight) : .5);\n t.y -= y * k;\n s.x += x * (k = 1 - k);\n s.y += y * k;\n }\n }\n if (k = alpha * gravity) {\n x = size[0] / 2;\n y = size[1] / 2;\n i = -1;\n if (k) while (++i < n) {\n o = nodes[i];\n o.x += (x - o.x) * k;\n o.y += (y - o.y) * k;\n }\n }\n if (charge) {\n d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);\n i = -1;\n while (++i < n) {\n if (!(o = nodes[i]).fixed) {\n q.visit(repulse(o));\n }\n }\n }\n i = -1;\n while (++i < n) {\n o = nodes[i];\n if (o.fixed) {\n o.x = o.px;\n o.y = o.py;\n } else {\n o.x -= (o.px - (o.px = o.x)) * friction;\n o.y -= (o.py - (o.py = o.y)) * friction;\n }\n }\n event.tick({\n type: \"tick\",\n alpha: alpha\n });\n };\n force.nodes = function(x) {\n if (!arguments.length) return nodes;\n nodes = x;\n return force;\n };\n force.links = function(x) {\n if (!arguments.length) return links;\n links = x;\n return force;\n };\n force.size = function(x) {\n if (!arguments.length) return size;\n size = x;\n return force;\n };\n force.linkDistance = function(x) {\n if (!arguments.length) return linkDistance;\n linkDistance = typeof x === \"function\" ? x : +x;\n return force;\n };\n force.distance = force.linkDistance;\n force.linkStrength = function(x) {\n if (!arguments.length) return linkStrength;\n linkStrength = typeof x === \"function\" ? x : +x;\n return force;\n };\n force.friction = function(x) {\n if (!arguments.length) return friction;\n friction = +x;\n return force;\n };\n force.charge = function(x) {\n if (!arguments.length) return charge;\n charge = typeof x === \"function\" ? x : +x;\n return force;\n };\n force.chargeDistance = function(x) {\n if (!arguments.length) return Math.sqrt(chargeDistance2);\n chargeDistance2 = x * x;\n return force;\n };\n force.gravity = function(x) {\n if (!arguments.length) return gravity;\n gravity = +x;\n return force;\n };\n force.theta = function(x) {\n if (!arguments.length) return Math.sqrt(theta2);\n theta2 = x * x;\n return force;\n };\n force.alpha = function(x) {\n if (!arguments.length) return alpha;\n x = +x;\n if (alpha) {\n if (x > 0) {\n alpha = x;\n } else {\n timer.c = null, timer.t = NaN, timer = null;\n event.end({\n type: \"end\",\n alpha: alpha = 0\n });\n }\n } else if (x > 0) {\n event.start({\n type: \"start\",\n alpha: alpha = x\n });\n timer = d3_timer(force.tick);\n }\n return force;\n };\n force.start = function() {\n var i, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o;\n for (i = 0; i < n; ++i) {\n (o = nodes[i]).index = i;\n o.weight = 0;\n }\n for (i = 0; i < m; ++i) {\n o = links[i];\n if (typeof o.source == \"number\") o.source = nodes[o.source];\n if (typeof o.target == \"number\") o.target = nodes[o.target];\n ++o.source.weight;\n ++o.target.weight;\n }\n for (i = 0; i < n; ++i) {\n o = nodes[i];\n if (isNaN(o.x)) o.x = position(\"x\", w);\n if (isNaN(o.y)) o.y = position(\"y\", h);\n if (isNaN(o.px)) o.px = o.x;\n if (isNaN(o.py)) o.py = o.y;\n }\n distances = [];\n if (typeof linkDistance === \"function\") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance;\n strengths = [];\n if (typeof linkStrength === \"function\") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength;\n charges = [];\n if (typeof charge === \"function\") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge;\n function position(dimension, size) {\n if (!neighbors) {\n neighbors = new Array(n);\n for (j = 0; j < n; ++j) {\n neighbors[j] = [];\n }\n for (j = 0; j < m; ++j) {\n var o = links[j];\n neighbors[o.source.index].push(o.target);\n neighbors[o.target.index].push(o.source);\n }\n }\n var candidates = neighbors[i], j = -1, l = candidates.length, x;\n while (++j < l) if (!isNaN(x = candidates[j][dimension])) return x;\n return Math.random() * size;\n }\n return force.resume();\n };\n force.resume = function() {\n return force.alpha(.1);\n };\n force.stop = function() {\n return force.alpha(0);\n };\n force.drag = function() {\n if (!drag) drag = d3.behavior.drag().origin(d3_identity).on(\"dragstart.force\", d3_layout_forceDragstart).on(\"drag.force\", dragmove).on(\"dragend.force\", d3_layout_forceDragend);\n if (!arguments.length) return drag;\n this.on(\"mouseover.force\", d3_layout_forceMouseover).on(\"mouseout.force\", d3_layout_forceMouseout).call(drag);\n };\n function dragmove(d) {\n d.px = d3.event.x, d.py = d3.event.y;\n force.resume();\n }\n return d3.rebind(force, event, \"on\");\n };\n function d3_layout_forceDragstart(d) {\n d.fixed |= 2;\n }\n function d3_layout_forceDragend(d) {\n d.fixed &= ~6;\n }\n function d3_layout_forceMouseover(d) {\n d.fixed |= 4;\n d.px = d.x, d.py = d.y;\n }\n function d3_layout_forceMouseout(d) {\n d.fixed &= ~4;\n }\n function d3_layout_forceAccumulate(quad, alpha, charges) {\n var cx = 0, cy = 0;\n quad.charge = 0;\n if (!quad.leaf) {\n var nodes = quad.nodes, n = nodes.length, i = -1, c;\n while (++i < n) {\n c = nodes[i];\n if (c == null) continue;\n d3_layout_forceAccumulate(c, alpha, charges);\n quad.charge += c.charge;\n cx += c.charge * c.cx;\n cy += c.charge * c.cy;\n }\n }\n if (quad.point) {\n if (!quad.leaf) {\n quad.point.x += Math.random() - .5;\n quad.point.y += Math.random() - .5;\n }\n var k = alpha * charges[quad.point.index];\n quad.charge += quad.pointCharge = k;\n cx += k * quad.point.x;\n cy += k * quad.point.y;\n }\n quad.cx = cx / quad.charge;\n quad.cy = cy / quad.charge;\n }\n var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1, d3_layout_forceChargeDistance2 = Infinity;\n d3.layout.hierarchy = function() {\n var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;\n function hierarchy(root) {\n var stack = [ root ], nodes = [], node;\n root.depth = 0;\n while ((node = stack.pop()) != null) {\n nodes.push(node);\n if ((childs = children.call(hierarchy, node, node.depth)) && (n = childs.length)) {\n var n, childs, child;\n while (--n >= 0) {\n stack.push(child = childs[n]);\n child.parent = node;\n child.depth = node.depth + 1;\n }\n if (value) node.value = 0;\n node.children = childs;\n } else {\n if (value) node.value = +value.call(hierarchy, node, node.depth) || 0;\n delete node.children;\n }\n }\n d3_layout_hierarchyVisitAfter(root, function(node) {\n var childs, parent;\n if (sort && (childs = node.children)) childs.sort(sort);\n if (value && (parent = node.parent)) parent.value += node.value;\n });\n return nodes;\n }\n hierarchy.sort = function(x) {\n if (!arguments.length) return sort;\n sort = x;\n return hierarchy;\n };\n hierarchy.children = function(x) {\n if (!arguments.length) return children;\n children = x;\n return hierarchy;\n };\n hierarchy.value = function(x) {\n if (!arguments.length) return value;\n value = x;\n return hierarchy;\n };\n hierarchy.revalue = function(root) {\n if (value) {\n d3_layout_hierarchyVisitBefore(root, function(node) {\n if (node.children) node.value = 0;\n });\n d3_layout_hierarchyVisitAfter(root, function(node) {\n var parent;\n if (!node.children) node.value = +value.call(hierarchy, node, node.depth) || 0;\n if (parent = node.parent) parent.value += node.value;\n });\n }\n return root;\n };\n return hierarchy;\n };\n function d3_layout_hierarchyRebind(object, hierarchy) {\n d3.rebind(object, hierarchy, \"sort\", \"children\", \"value\");\n object.nodes = object;\n object.links = d3_layout_hierarchyLinks;\n return object;\n }\n function d3_layout_hierarchyVisitBefore(node, callback) {\n var nodes = [ node ];\n while ((node = nodes.pop()) != null) {\n callback(node);\n if ((children = node.children) && (n = children.length)) {\n var n, children;\n while (--n >= 0) nodes.push(children[n]);\n }\n }\n }\n function d3_layout_hierarchyVisitAfter(node, callback) {\n var nodes = [ node ], nodes2 = [];\n while ((node = nodes.pop()) != null) {\n nodes2.push(node);\n if ((children = node.children) && (n = children.length)) {\n var i = -1, n, children;\n while (++i < n) nodes.push(children[i]);\n }\n }\n while ((node = nodes2.pop()) != null) {\n callback(node);\n }\n }\n function d3_layout_hierarchyChildren(d) {\n return d.children;\n }\n function d3_layout_hierarchyValue(d) {\n return d.value;\n }\n function d3_layout_hierarchySort(a, b) {\n return b.value - a.value;\n }\n function d3_layout_hierarchyLinks(nodes) {\n return d3.merge(nodes.map(function(parent) {\n return (parent.children || []).map(function(child) {\n return {\n source: parent,\n target: child\n };\n });\n }));\n }\n d3.layout.partition = function() {\n var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ];\n function position(node, x, dx, dy) {\n var children = node.children;\n node.x = x;\n node.y = node.depth * dy;\n node.dx = dx;\n node.dy = dy;\n if (children && (n = children.length)) {\n var i = -1, n, c, d;\n dx = node.value ? dx / node.value : 0;\n while (++i < n) {\n position(c = children[i], x, d = c.value * dx, dy);\n x += d;\n }\n }\n }\n function depth(node) {\n var children = node.children, d = 0;\n if (children && (n = children.length)) {\n var i = -1, n;\n while (++i < n) d = Math.max(d, depth(children[i]));\n }\n return 1 + d;\n }\n function partition(d, i) {\n var nodes = hierarchy.call(this, d, i);\n position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));\n return nodes;\n }\n partition.size = function(x) {\n if (!arguments.length) return size;\n size = x;\n return partition;\n };\n return d3_layout_hierarchyRebind(partition, hierarchy);\n };\n d3.layout.pie = function() {\n var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = τ, padAngle = 0;\n function pie(data) {\n var n = data.length, values = data.map(function(d, i) {\n return +value.call(pie, d, i);\n }), a = +(typeof startAngle === \"function\" ? startAngle.apply(this, arguments) : startAngle), da = (typeof endAngle === \"function\" ? endAngle.apply(this, arguments) : endAngle) - a, p = Math.min(Math.abs(da) / n, +(typeof padAngle === \"function\" ? padAngle.apply(this, arguments) : padAngle)), pa = p * (da < 0 ? -1 : 1), sum = d3.sum(values), k = sum ? (da - n * pa) / sum : 0, index = d3.range(n), arcs = [], v;\n if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {\n return values[j] - values[i];\n } : function(i, j) {\n return sort(data[i], data[j]);\n });\n index.forEach(function(i) {\n arcs[i] = {\n data: data[i],\n value: v = values[i],\n startAngle: a,\n endAngle: a += v * k + pa,\n padAngle: p\n };\n });\n return arcs;\n }\n pie.value = function(_) {\n if (!arguments.length) return value;\n value = _;\n return pie;\n };\n pie.sort = function(_) {\n if (!arguments.length) return sort;\n sort = _;\n return pie;\n };\n pie.startAngle = function(_) {\n if (!arguments.length) return startAngle;\n startAngle = _;\n return pie;\n };\n pie.endAngle = function(_) {\n if (!arguments.length) return endAngle;\n endAngle = _;\n return pie;\n };\n pie.padAngle = function(_) {\n if (!arguments.length) return padAngle;\n padAngle = _;\n return pie;\n };\n return pie;\n };\n var d3_layout_pieSortByValue = {};\n d3.layout.stack = function() {\n var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY;\n function stack(data, index) {\n if (!(n = data.length)) return data;\n var series = data.map(function(d, i) {\n return values.call(stack, d, i);\n });\n var points = series.map(function(d) {\n return d.map(function(v, i) {\n return [ x.call(stack, v, i), y.call(stack, v, i) ];\n });\n });\n var orders = order.call(stack, points, index);\n series = d3.permute(series, orders);\n points = d3.permute(points, orders);\n var offsets = offset.call(stack, points, index);\n var m = series[0].length, n, i, j, o;\n for (j = 0; j < m; ++j) {\n out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);\n for (i = 1; i < n; ++i) {\n out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);\n }\n }\n return data;\n }\n stack.values = function(x) {\n if (!arguments.length) return values;\n values = x;\n return stack;\n };\n stack.order = function(x) {\n if (!arguments.length) return order;\n order = typeof x === \"function\" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault;\n return stack;\n };\n stack.offset = function(x) {\n if (!arguments.length) return offset;\n offset = typeof x === \"function\" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero;\n return stack;\n };\n stack.x = function(z) {\n if (!arguments.length) return x;\n x = z;\n return stack;\n };\n stack.y = function(z) {\n if (!arguments.length) return y;\n y = z;\n return stack;\n };\n stack.out = function(z) {\n if (!arguments.length) return out;\n out = z;\n return stack;\n };\n return stack;\n };\n function d3_layout_stackX(d) {\n return d.x;\n }\n function d3_layout_stackY(d) {\n return d.y;\n }\n function d3_layout_stackOut(d, y0, y) {\n d.y0 = y0;\n d.y = y;\n }\n var d3_layout_stackOrders = d3.map({\n \"inside-out\": function(data) {\n var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) {\n return max[a] - max[b];\n }), top = 0, bottom = 0, tops = [], bottoms = [];\n for (i = 0; i < n; ++i) {\n j = index[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n return bottoms.reverse().concat(tops);\n },\n reverse: function(data) {\n return d3.range(data.length).reverse();\n },\n \"default\": d3_layout_stackOrderDefault\n });\n var d3_layout_stackOffsets = d3.map({\n silhouette: function(data) {\n var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = [];\n for (j = 0; j < m; ++j) {\n for (i = 0, o = 0; i < n; i++) o += data[i][j][1];\n if (o > max) max = o;\n sums.push(o);\n }\n for (j = 0; j < m; ++j) {\n y0[j] = (max - sums[j]) / 2;\n }\n return y0;\n },\n wiggle: function(data) {\n var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = [];\n y0[0] = o = o0 = 0;\n for (j = 1; j < m; ++j) {\n for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];\n for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {\n for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {\n s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;\n }\n s2 += s3 * data[i][j][1];\n }\n y0[j] = o -= s1 ? s2 / s1 * dx : 0;\n if (o < o0) o0 = o;\n }\n for (j = 0; j < m; ++j) y0[j] -= o0;\n return y0;\n },\n expand: function(data) {\n var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = [];\n for (j = 0; j < m; ++j) {\n for (i = 0, o = 0; i < n; i++) o += data[i][j][1];\n if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k;\n }\n for (j = 0; j < m; ++j) y0[j] = 0;\n return y0;\n },\n zero: d3_layout_stackOffsetZero\n });\n function d3_layout_stackOrderDefault(data) {\n return d3.range(data.length);\n }\n function d3_layout_stackOffsetZero(data) {\n var j = -1, m = data[0].length, y0 = [];\n while (++j < m) y0[j] = 0;\n return y0;\n }\n function d3_layout_stackMaxIndex(array) {\n var i = 1, j = 0, v = array[0][1], k, n = array.length;\n for (;i < n; ++i) {\n if ((k = array[i][1]) > v) {\n j = i;\n v = k;\n }\n }\n return j;\n }\n function d3_layout_stackReduceSum(d) {\n return d.reduce(d3_layout_stackSum, 0);\n }\n function d3_layout_stackSum(p, d) {\n return p + d[1];\n }\n d3.layout.histogram = function() {\n var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges;\n function histogram(data, i) {\n var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x;\n while (++i < m) {\n bin = bins[i] = [];\n bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);\n bin.y = 0;\n }\n if (m > 0) {\n i = -1;\n while (++i < n) {\n x = values[i];\n if (x >= range[0] && x <= range[1]) {\n bin = bins[d3.bisect(thresholds, x, 1, m) - 1];\n bin.y += k;\n bin.push(data[i]);\n }\n }\n }\n return bins;\n }\n histogram.value = function(x) {\n if (!arguments.length) return valuer;\n valuer = x;\n return histogram;\n };\n histogram.range = function(x) {\n if (!arguments.length) return ranger;\n ranger = d3_functor(x);\n return histogram;\n };\n histogram.bins = function(x) {\n if (!arguments.length) return binner;\n binner = typeof x === \"number\" ? function(range) {\n return d3_layout_histogramBinFixed(range, x);\n } : d3_functor(x);\n return histogram;\n };\n histogram.frequency = function(x) {\n if (!arguments.length) return frequency;\n frequency = !!x;\n return histogram;\n };\n return histogram;\n };\n function d3_layout_histogramBinSturges(range, values) {\n return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));\n }\n function d3_layout_histogramBinFixed(range, n) {\n var x = -1, b = +range[0], m = (range[1] - b) / n, f = [];\n while (++x <= n) f[x] = m * x + b;\n return f;\n }\n function d3_layout_histogramRange(values) {\n return [ d3.min(values), d3.max(values) ];\n }\n d3.layout.pack = function() {\n var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ], radius;\n function pack(d, i) {\n var nodes = hierarchy.call(this, d, i), root = nodes[0], w = size[0], h = size[1], r = radius == null ? Math.sqrt : typeof radius === \"function\" ? radius : function() {\n return radius;\n };\n root.x = root.y = 0;\n d3_layout_hierarchyVisitAfter(root, function(d) {\n d.r = +r(d.value);\n });\n d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);\n if (padding) {\n var dr = padding * (radius ? 1 : Math.max(2 * root.r / w, 2 * root.r / h)) / 2;\n d3_layout_hierarchyVisitAfter(root, function(d) {\n d.r += dr;\n });\n d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);\n d3_layout_hierarchyVisitAfter(root, function(d) {\n d.r -= dr;\n });\n }\n d3_layout_packTransform(root, w / 2, h / 2, radius ? 1 : 1 / Math.max(2 * root.r / w, 2 * root.r / h));\n return nodes;\n }\n pack.size = function(_) {\n if (!arguments.length) return size;\n size = _;\n return pack;\n };\n pack.radius = function(_) {\n if (!arguments.length) return radius;\n radius = _ == null || typeof _ === \"function\" ? _ : +_;\n return pack;\n };\n pack.padding = function(_) {\n if (!arguments.length) return padding;\n padding = +_;\n return pack;\n };\n return d3_layout_hierarchyRebind(pack, hierarchy);\n };\n function d3_layout_packSort(a, b) {\n return a.value - b.value;\n }\n function d3_layout_packInsert(a, b) {\n var c = a._pack_next;\n a._pack_next = b;\n b._pack_prev = a;\n b._pack_next = c;\n c._pack_prev = b;\n }\n function d3_layout_packSplice(a, b) {\n a._pack_next = b;\n b._pack_prev = a;\n }\n function d3_layout_packIntersects(a, b) {\n var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r;\n return .999 * dr * dr > dx * dx + dy * dy;\n }\n function d3_layout_packSiblings(node) {\n if (!(nodes = node.children) || !(n = nodes.length)) return;\n var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n;\n function bound(node) {\n xMin = Math.min(node.x - node.r, xMin);\n xMax = Math.max(node.x + node.r, xMax);\n yMin = Math.min(node.y - node.r, yMin);\n yMax = Math.max(node.y + node.r, yMax);\n }\n nodes.forEach(d3_layout_packLink);\n a = nodes[0];\n a.x = -a.r;\n a.y = 0;\n bound(a);\n if (n > 1) {\n b = nodes[1];\n b.x = b.r;\n b.y = 0;\n bound(b);\n if (n > 2) {\n c = nodes[2];\n d3_layout_packPlace(a, b, c);\n bound(c);\n d3_layout_packInsert(a, c);\n a._pack_prev = c;\n d3_layout_packInsert(c, b);\n b = a._pack_next;\n for (i = 3; i < n; i++) {\n d3_layout_packPlace(a, b, c = nodes[i]);\n var isect = 0, s1 = 1, s2 = 1;\n for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {\n if (d3_layout_packIntersects(j, c)) {\n isect = 1;\n break;\n }\n }\n if (isect == 1) {\n for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {\n if (d3_layout_packIntersects(k, c)) {\n break;\n }\n }\n }\n if (isect) {\n if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b);\n i--;\n } else {\n d3_layout_packInsert(a, c);\n b = c;\n bound(c);\n }\n }\n }\n }\n var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0;\n for (i = 0; i < n; i++) {\n c = nodes[i];\n c.x -= cx;\n c.y -= cy;\n cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y));\n }\n node.r = cr;\n nodes.forEach(d3_layout_packUnlink);\n }\n function d3_layout_packLink(node) {\n node._pack_next = node._pack_prev = node;\n }\n function d3_layout_packUnlink(node) {\n delete node._pack_next;\n delete node._pack_prev;\n }\n function d3_layout_packTransform(node, x, y, k) {\n var children = node.children;\n node.x = x += k * node.x;\n node.y = y += k * node.y;\n node.r *= k;\n if (children) {\n var i = -1, n = children.length;\n while (++i < n) d3_layout_packTransform(children[i], x, y, k);\n }\n }\n function d3_layout_packPlace(a, b, c) {\n var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y;\n if (db && (dx || dy)) {\n var da = b.r + c.r, dc = dx * dx + dy * dy;\n da *= da;\n db *= db;\n var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);\n c.x = a.x + x * dx + y * dy;\n c.y = a.y + x * dy - y * dx;\n } else {\n c.x = a.x + db;\n c.y = a.y;\n }\n }\n d3.layout.tree = function() {\n var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = null;\n function tree(d, i) {\n var nodes = hierarchy.call(this, d, i), root0 = nodes[0], root1 = wrapTree(root0);\n d3_layout_hierarchyVisitAfter(root1, firstWalk), root1.parent.m = -root1.z;\n d3_layout_hierarchyVisitBefore(root1, secondWalk);\n if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode); else {\n var left = root0, right = root0, bottom = root0;\n d3_layout_hierarchyVisitBefore(root0, function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var tx = separation(left, right) / 2 - left.x, kx = size[0] / (right.x + separation(right, left) / 2 + tx), ky = size[1] / (bottom.depth || 1);\n d3_layout_hierarchyVisitBefore(root0, function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n return nodes;\n }\n function wrapTree(root0) {\n var root1 = {\n A: null,\n children: [ root0 ]\n }, queue = [ root1 ], node1;\n while ((node1 = queue.pop()) != null) {\n for (var children = node1.children, child, i = 0, n = children.length; i < n; ++i) {\n queue.push((children[i] = child = {\n _: children[i],\n parent: node1,\n children: (child = children[i].children) && child.slice() || [],\n A: null,\n a: null,\n z: 0,\n m: 0,\n c: 0,\n s: 0,\n t: null,\n i: i\n }).a = child);\n }\n }\n return root1.children[0];\n }\n function firstWalk(v) {\n var children = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null;\n if (children.length) {\n d3_layout_treeShift(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift;\n while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {\n vom = d3_layout_treeLeft(vom);\n vop = d3_layout_treeRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n d3_layout_treeMove(d3_layout_treeAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !d3_layout_treeRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !d3_layout_treeLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n function sizeNode(node) {\n node.x *= size[0];\n node.y = node.depth * size[1];\n }\n tree.separation = function(x) {\n if (!arguments.length) return separation;\n separation = x;\n return tree;\n };\n tree.size = function(x) {\n if (!arguments.length) return nodeSize ? null : size;\n nodeSize = (size = x) == null ? sizeNode : null;\n return tree;\n };\n tree.nodeSize = function(x) {\n if (!arguments.length) return nodeSize ? size : null;\n nodeSize = (size = x) == null ? null : sizeNode;\n return tree;\n };\n return d3_layout_hierarchyRebind(tree, hierarchy);\n };\n function d3_layout_treeSeparation(a, b) {\n return a.parent == b.parent ? 1 : 2;\n }\n function d3_layout_treeLeft(v) {\n var children = v.children;\n return children.length ? children[0] : v.t;\n }\n function d3_layout_treeRight(v) {\n var children = v.children, n;\n return (n = children.length) ? children[n - 1] : v.t;\n }\n function d3_layout_treeMove(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n }\n function d3_layout_treeShift(v) {\n var shift = 0, change = 0, children = v.children, i = children.length, w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n }\n function d3_layout_treeAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n }\n d3.layout.cluster = function() {\n var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = false;\n function cluster(d, i) {\n var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0;\n d3_layout_hierarchyVisitAfter(root, function(node) {\n var children = node.children;\n if (children && children.length) {\n node.x = d3_layout_clusterX(children);\n node.y = d3_layout_clusterY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;\n d3_layout_hierarchyVisitAfter(root, nodeSize ? function(node) {\n node.x = (node.x - root.x) * size[0];\n node.y = (root.y - node.y) * size[1];\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * size[0];\n node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1];\n });\n return nodes;\n }\n cluster.separation = function(x) {\n if (!arguments.length) return separation;\n separation = x;\n return cluster;\n };\n cluster.size = function(x) {\n if (!arguments.length) return nodeSize ? null : size;\n nodeSize = (size = x) == null;\n return cluster;\n };\n cluster.nodeSize = function(x) {\n if (!arguments.length) return nodeSize ? size : null;\n nodeSize = (size = x) != null;\n return cluster;\n };\n return d3_layout_hierarchyRebind(cluster, hierarchy);\n };\n function d3_layout_clusterY(children) {\n return 1 + d3.max(children, function(child) {\n return child.y;\n });\n }\n function d3_layout_clusterX(children) {\n return children.reduce(function(x, child) {\n return x + child.x;\n }, 0) / children.length;\n }\n function d3_layout_clusterLeft(node) {\n var children = node.children;\n return children && children.length ? d3_layout_clusterLeft(children[0]) : node;\n }\n function d3_layout_clusterRight(node) {\n var children = node.children, n;\n return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;\n }\n d3.layout.treemap = function() {\n var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = \"squarify\", ratio = .5 * (1 + Math.sqrt(5));\n function scale(children, k) {\n var i = -1, n = children.length, child, area;\n while (++i < n) {\n area = (child = children[i]).value * (k < 0 ? 0 : k);\n child.area = isNaN(area) || area <= 0 ? 0 : area;\n }\n }\n function squarify(node) {\n var children = node.children;\n if (children && children.length) {\n var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === \"slice\" ? rect.dx : mode === \"dice\" ? rect.dy : mode === \"slice-dice\" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n;\n scale(remaining, rect.dx * rect.dy / node.value);\n row.area = 0;\n while ((n = remaining.length) > 0) {\n row.push(child = remaining[n - 1]);\n row.area += child.area;\n if (mode !== \"squarify\" || (score = worst(row, u)) <= best) {\n remaining.pop();\n best = score;\n } else {\n row.area -= row.pop().area;\n position(row, u, rect, false);\n u = Math.min(rect.dx, rect.dy);\n row.length = row.area = 0;\n best = Infinity;\n }\n }\n if (row.length) {\n position(row, u, rect, true);\n row.length = row.area = 0;\n }\n children.forEach(squarify);\n }\n }\n function stickify(node) {\n var children = node.children;\n if (children && children.length) {\n var rect = pad(node), remaining = children.slice(), child, row = [];\n scale(remaining, rect.dx * rect.dy / node.value);\n row.area = 0;\n while (child = remaining.pop()) {\n row.push(child);\n row.area += child.area;\n if (child.z != null) {\n position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);\n row.length = row.area = 0;\n }\n }\n children.forEach(stickify);\n }\n }\n function worst(row, u) {\n var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length;\n while (++i < n) {\n if (!(r = row[i].area)) continue;\n if (r < rmin) rmin = r;\n if (r > rmax) rmax = r;\n }\n s *= s;\n u *= u;\n return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity;\n }\n function position(row, u, rect, flush) {\n var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o;\n if (u == rect.dx) {\n if (flush || v > rect.dy) v = rect.dy;\n while (++i < n) {\n o = row[i];\n o.x = x;\n o.y = y;\n o.dy = v;\n x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0);\n }\n o.z = true;\n o.dx += rect.x + rect.dx - x;\n rect.y += v;\n rect.dy -= v;\n } else {\n if (flush || v > rect.dx) v = rect.dx;\n while (++i < n) {\n o = row[i];\n o.x = x;\n o.y = y;\n o.dx = v;\n y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0);\n }\n o.z = false;\n o.dy += rect.y + rect.dy - y;\n rect.x += v;\n rect.dx -= v;\n }\n }\n function treemap(d) {\n var nodes = stickies || hierarchy(d), root = nodes[0];\n root.x = root.y = 0;\n if (root.value) root.dx = size[0], root.dy = size[1]; else root.dx = root.dy = 0;\n if (stickies) hierarchy.revalue(root);\n scale([ root ], root.dx * root.dy / root.value);\n (stickies ? stickify : squarify)(root);\n if (sticky) stickies = nodes;\n return nodes;\n }\n treemap.size = function(x) {\n if (!arguments.length) return size;\n size = x;\n return treemap;\n };\n treemap.padding = function(x) {\n if (!arguments.length) return padding;\n function padFunction(node) {\n var p = x.call(treemap, node, node.depth);\n return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === \"number\" ? [ p, p, p, p ] : p);\n }\n function padConstant(node) {\n return d3_layout_treemapPad(node, x);\n }\n var type;\n pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === \"function\" ? padFunction : type === \"number\" ? (x = [ x, x, x, x ], \n padConstant) : padConstant;\n return treemap;\n };\n treemap.round = function(x) {\n if (!arguments.length) return round != Number;\n round = x ? Math.round : Number;\n return treemap;\n };\n treemap.sticky = function(x) {\n if (!arguments.length) return sticky;\n sticky = x;\n stickies = null;\n return treemap;\n };\n treemap.ratio = function(x) {\n if (!arguments.length) return ratio;\n ratio = x;\n return treemap;\n };\n treemap.mode = function(x) {\n if (!arguments.length) return mode;\n mode = x + \"\";\n return treemap;\n };\n return d3_layout_hierarchyRebind(treemap, hierarchy);\n };\n function d3_layout_treemapPadNull(node) {\n return {\n x: node.x,\n y: node.y,\n dx: node.dx,\n dy: node.dy\n };\n }\n function d3_layout_treemapPad(node, padding) {\n var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2];\n if (dx < 0) {\n x += dx / 2;\n dx = 0;\n }\n if (dy < 0) {\n y += dy / 2;\n dy = 0;\n }\n return {\n x: x,\n y: y,\n dx: dx,\n dy: dy\n };\n }\n d3.random = {\n normal: function(µ, σ) {\n var n = arguments.length;\n if (n < 2) σ = 1;\n if (n < 1) µ = 0;\n return function() {\n var x, y, r;\n do {\n x = Math.random() * 2 - 1;\n y = Math.random() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r);\n };\n },\n logNormal: function() {\n var random = d3.random.normal.apply(d3, arguments);\n return function() {\n return Math.exp(random());\n };\n },\n bates: function(m) {\n var random = d3.random.irwinHall(m);\n return function() {\n return random() / m;\n };\n },\n irwinHall: function(m) {\n return function() {\n for (var s = 0, j = 0; j < m; j++) s += Math.random();\n return s;\n };\n }\n };\n d3.scale = {};\n function d3_scaleExtent(domain) {\n var start = domain[0], stop = domain[domain.length - 1];\n return start < stop ? [ start, stop ] : [ stop, start ];\n }\n function d3_scaleRange(scale) {\n return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());\n }\n function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {\n var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]);\n return function(x) {\n return i(u(x));\n };\n }\n function d3_scale_nice(domain, nice) {\n var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx;\n if (x1 < x0) {\n dx = i0, i0 = i1, i1 = dx;\n dx = x0, x0 = x1, x1 = dx;\n }\n domain[i0] = nice.floor(x0);\n domain[i1] = nice.ceil(x1);\n return domain;\n }\n function d3_scale_niceStep(step) {\n return step ? {\n floor: function(x) {\n return Math.floor(x / step) * step;\n },\n ceil: function(x) {\n return Math.ceil(x / step) * step;\n }\n } : d3_scale_niceIdentity;\n }\n var d3_scale_niceIdentity = {\n floor: d3_identity,\n ceil: d3_identity\n };\n function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {\n var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1;\n if (domain[k] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n while (++j <= k) {\n u.push(uninterpolate(domain[j - 1], domain[j]));\n i.push(interpolate(range[j - 1], range[j]));\n }\n return function(x) {\n var j = d3.bisect(domain, x, 1, k) - 1;\n return i[j](u[j](x));\n };\n }\n d3.scale.linear = function() {\n return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false);\n };\n function d3_scale_linear(domain, range, interpolate, clamp) {\n var output, input;\n function rescale() {\n var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;\n output = linear(domain, range, uninterpolate, interpolate);\n input = linear(range, domain, uninterpolate, d3_interpolate);\n return scale;\n }\n function scale(x) {\n return output(x);\n }\n scale.invert = function(y) {\n return input(y);\n };\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n domain = x.map(Number);\n return rescale();\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n return rescale();\n };\n scale.rangeRound = function(x) {\n return scale.range(x).interpolate(d3_interpolateRound);\n };\n scale.clamp = function(x) {\n if (!arguments.length) return clamp;\n clamp = x;\n return rescale();\n };\n scale.interpolate = function(x) {\n if (!arguments.length) return interpolate;\n interpolate = x;\n return rescale();\n };\n scale.ticks = function(m) {\n return d3_scale_linearTicks(domain, m);\n };\n scale.tickFormat = function(m, format) {\n return d3_scale_linearTickFormat(domain, m, format);\n };\n scale.nice = function(m) {\n d3_scale_linearNice(domain, m);\n return rescale();\n };\n scale.copy = function() {\n return d3_scale_linear(domain, range, interpolate, clamp);\n };\n return rescale();\n }\n function d3_scale_linearRebind(scale, linear) {\n return d3.rebind(scale, linear, \"range\", \"rangeRound\", \"interpolate\", \"clamp\");\n }\n function d3_scale_linearNice(domain, m) {\n d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));\n d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));\n return domain;\n }\n function d3_scale_linearTickRange(domain, m) {\n if (m == null) m = 10;\n var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step;\n if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;\n extent[0] = Math.ceil(extent[0] / step) * step;\n extent[1] = Math.floor(extent[1] / step) * step + step * .5;\n extent[2] = step;\n return extent;\n }\n function d3_scale_linearTicks(domain, m) {\n return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));\n }\n function d3_scale_linearTickFormat(domain, m, format) {\n var range = d3_scale_linearTickRange(domain, m);\n if (format) {\n var match = d3_format_re.exec(format);\n match.shift();\n if (match[8] === \"s\") {\n var prefix = d3.formatPrefix(Math.max(abs(range[0]), abs(range[1])));\n if (!match[7]) match[7] = \".\" + d3_scale_linearPrecision(prefix.scale(range[2]));\n match[8] = \"f\";\n format = d3.format(match.join(\"\"));\n return function(d) {\n return format(prefix.scale(d)) + prefix.symbol;\n };\n }\n if (!match[7]) match[7] = \".\" + d3_scale_linearFormatPrecision(match[8], range);\n format = match.join(\"\");\n } else {\n format = \",.\" + d3_scale_linearPrecision(range[2]) + \"f\";\n }\n return d3.format(format);\n }\n var d3_scale_linearFormatSignificant = {\n s: 1,\n g: 1,\n p: 1,\n r: 1,\n e: 1\n };\n function d3_scale_linearPrecision(value) {\n return -Math.floor(Math.log(value) / Math.LN10 + .01);\n }\n function d3_scale_linearFormatPrecision(type, range) {\n var p = d3_scale_linearPrecision(range[2]);\n return type in d3_scale_linearFormatSignificant ? Math.abs(p - d3_scale_linearPrecision(Math.max(abs(range[0]), abs(range[1])))) + +(type !== \"e\") : p - (type === \"%\") * 2;\n }\n d3.scale.log = function() {\n return d3_scale_log(d3.scale.linear().domain([ 0, 1 ]), 10, true, [ 1, 10 ]);\n };\n function d3_scale_log(linear, base, positive, domain) {\n function log(x) {\n return (positive ? Math.log(x < 0 ? 0 : x) : -Math.log(x > 0 ? 0 : -x)) / Math.log(base);\n }\n function pow(x) {\n return positive ? Math.pow(base, x) : -Math.pow(base, -x);\n }\n function scale(x) {\n return linear(log(x));\n }\n scale.invert = function(x) {\n return pow(linear.invert(x));\n };\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n positive = x[0] >= 0;\n linear.domain((domain = x.map(Number)).map(log));\n return scale;\n };\n scale.base = function(_) {\n if (!arguments.length) return base;\n base = +_;\n linear.domain(domain.map(log));\n return scale;\n };\n scale.nice = function() {\n var niced = d3_scale_nice(domain.map(log), positive ? Math : d3_scale_logNiceNegative);\n linear.domain(niced);\n domain = niced.map(pow);\n return scale;\n };\n scale.ticks = function() {\n var extent = d3_scaleExtent(domain), ticks = [], u = extent[0], v = extent[1], i = Math.floor(log(u)), j = Math.ceil(log(v)), n = base % 1 ? 2 : base;\n if (isFinite(j - i)) {\n if (positive) {\n for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k);\n ticks.push(pow(i));\n } else {\n ticks.push(pow(i));\n for (;i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(pow(i) * k);\n }\n for (i = 0; ticks[i] < u; i++) {}\n for (j = ticks.length; ticks[j - 1] > v; j--) {}\n ticks = ticks.slice(i, j);\n }\n return ticks;\n };\n scale.tickFormat = function(n, format) {\n if (!arguments.length) return d3_scale_logFormat;\n if (arguments.length < 2) format = d3_scale_logFormat; else if (typeof format !== \"function\") format = d3.format(format);\n var k = Math.max(1, base * n / scale.ticks().length);\n return function(d) {\n var i = d / pow(Math.round(log(d)));\n if (i * base < base - .5) i *= base;\n return i <= k ? format(d) : \"\";\n };\n };\n scale.copy = function() {\n return d3_scale_log(linear.copy(), base, positive, domain);\n };\n return d3_scale_linearRebind(scale, linear);\n }\n var d3_scale_logFormat = d3.format(\".0e\"), d3_scale_logNiceNegative = {\n floor: function(x) {\n return -Math.ceil(-x);\n },\n ceil: function(x) {\n return -Math.floor(-x);\n }\n };\n d3.scale.pow = function() {\n return d3_scale_pow(d3.scale.linear(), 1, [ 0, 1 ]);\n };\n function d3_scale_pow(linear, exponent, domain) {\n var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent);\n function scale(x) {\n return linear(powp(x));\n }\n scale.invert = function(x) {\n return powb(linear.invert(x));\n };\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n linear.domain((domain = x.map(Number)).map(powp));\n return scale;\n };\n scale.ticks = function(m) {\n return d3_scale_linearTicks(domain, m);\n };\n scale.tickFormat = function(m, format) {\n return d3_scale_linearTickFormat(domain, m, format);\n };\n scale.nice = function(m) {\n return scale.domain(d3_scale_linearNice(domain, m));\n };\n scale.exponent = function(x) {\n if (!arguments.length) return exponent;\n powp = d3_scale_powPow(exponent = x);\n powb = d3_scale_powPow(1 / exponent);\n linear.domain(domain.map(powp));\n return scale;\n };\n scale.copy = function() {\n return d3_scale_pow(linear.copy(), exponent, domain);\n };\n return d3_scale_linearRebind(scale, linear);\n }\n function d3_scale_powPow(e) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);\n };\n }\n d3.scale.sqrt = function() {\n return d3.scale.pow().exponent(.5);\n };\n d3.scale.ordinal = function() {\n return d3_scale_ordinal([], {\n t: \"range\",\n a: [ [] ]\n });\n };\n function d3_scale_ordinal(domain, ranger) {\n var index, range, rangeBand;\n function scale(x) {\n return range[((index.get(x) || (ranger.t === \"range\" ? index.set(x, domain.push(x)) : NaN)) - 1) % range.length];\n }\n function steps(start, step) {\n return d3.range(domain.length).map(function(i) {\n return start + step * i;\n });\n }\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n domain = [];\n index = new d3_Map();\n var i = -1, n = x.length, xi;\n while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi));\n return scale[ranger.t].apply(scale, ranger.a);\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n rangeBand = 0;\n ranger = {\n t: \"range\",\n a: arguments\n };\n return scale;\n };\n scale.rangePoints = function(x, padding) {\n if (arguments.length < 2) padding = 0;\n var start = x[0], stop = x[1], step = domain.length < 2 ? (start = (start + stop) / 2, \n 0) : (stop - start) / (domain.length - 1 + padding);\n range = steps(start + step * padding / 2, step);\n rangeBand = 0;\n ranger = {\n t: \"rangePoints\",\n a: arguments\n };\n return scale;\n };\n scale.rangeRoundPoints = function(x, padding) {\n if (arguments.length < 2) padding = 0;\n var start = x[0], stop = x[1], step = domain.length < 2 ? (start = stop = Math.round((start + stop) / 2), \n 0) : (stop - start) / (domain.length - 1 + padding) | 0;\n range = steps(start + Math.round(step * padding / 2 + (stop - start - (domain.length - 1 + padding) * step) / 2), step);\n rangeBand = 0;\n ranger = {\n t: \"rangeRoundPoints\",\n a: arguments\n };\n return scale;\n };\n scale.rangeBands = function(x, padding, outerPadding) {\n if (arguments.length < 2) padding = 0;\n if (arguments.length < 3) outerPadding = padding;\n var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding);\n range = steps(start + step * outerPadding, step);\n if (reverse) range.reverse();\n rangeBand = step * (1 - padding);\n ranger = {\n t: \"rangeBands\",\n a: arguments\n };\n return scale;\n };\n scale.rangeRoundBands = function(x, padding, outerPadding) {\n if (arguments.length < 2) padding = 0;\n if (arguments.length < 3) outerPadding = padding;\n var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding));\n range = steps(start + Math.round((stop - start - (domain.length - padding) * step) / 2), step);\n if (reverse) range.reverse();\n rangeBand = Math.round(step * (1 - padding));\n ranger = {\n t: \"rangeRoundBands\",\n a: arguments\n };\n return scale;\n };\n scale.rangeBand = function() {\n return rangeBand;\n };\n scale.rangeExtent = function() {\n return d3_scaleExtent(ranger.a[0]);\n };\n scale.copy = function() {\n return d3_scale_ordinal(domain, ranger);\n };\n return scale.domain(domain);\n }\n d3.scale.category10 = function() {\n return d3.scale.ordinal().range(d3_category10);\n };\n d3.scale.category20 = function() {\n return d3.scale.ordinal().range(d3_category20);\n };\n d3.scale.category20b = function() {\n return d3.scale.ordinal().range(d3_category20b);\n };\n d3.scale.category20c = function() {\n return d3.scale.ordinal().range(d3_category20c);\n };\n var d3_category10 = [ 2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175 ].map(d3_rgbString);\n var d3_category20 = [ 2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725 ].map(d3_rgbString);\n var d3_category20b = [ 3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654 ].map(d3_rgbString);\n var d3_category20c = [ 3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081 ].map(d3_rgbString);\n d3.scale.quantile = function() {\n return d3_scale_quantile([], []);\n };\n function d3_scale_quantile(domain, range) {\n var thresholds;\n function rescale() {\n var k = 0, q = range.length;\n thresholds = [];\n while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);\n return scale;\n }\n function scale(x) {\n if (!isNaN(x = +x)) return range[d3.bisect(thresholds, x)];\n }\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n domain = x.map(d3_number).filter(d3_numeric).sort(d3_ascending);\n return rescale();\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n return rescale();\n };\n scale.quantiles = function() {\n return thresholds;\n };\n scale.invertExtent = function(y) {\n y = range.indexOf(y);\n return y < 0 ? [ NaN, NaN ] : [ y > 0 ? thresholds[y - 1] : domain[0], y < thresholds.length ? thresholds[y] : domain[domain.length - 1] ];\n };\n scale.copy = function() {\n return d3_scale_quantile(domain, range);\n };\n return rescale();\n }\n d3.scale.quantize = function() {\n return d3_scale_quantize(0, 1, [ 0, 1 ]);\n };\n function d3_scale_quantize(x0, x1, range) {\n var kx, i;\n function scale(x) {\n return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];\n }\n function rescale() {\n kx = range.length / (x1 - x0);\n i = range.length - 1;\n return scale;\n }\n scale.domain = function(x) {\n if (!arguments.length) return [ x0, x1 ];\n x0 = +x[0];\n x1 = +x[x.length - 1];\n return rescale();\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n return rescale();\n };\n scale.invertExtent = function(y) {\n y = range.indexOf(y);\n y = y < 0 ? NaN : y / kx + x0;\n return [ y, y + 1 / kx ];\n };\n scale.copy = function() {\n return d3_scale_quantize(x0, x1, range);\n };\n return rescale();\n }\n d3.scale.threshold = function() {\n return d3_scale_threshold([ .5 ], [ 0, 1 ]);\n };\n function d3_scale_threshold(domain, range) {\n function scale(x) {\n if (x <= x) return range[d3.bisect(domain, x)];\n }\n scale.domain = function(_) {\n if (!arguments.length) return domain;\n domain = _;\n return scale;\n };\n scale.range = function(_) {\n if (!arguments.length) return range;\n range = _;\n return scale;\n };\n scale.invertExtent = function(y) {\n y = range.indexOf(y);\n return [ domain[y - 1], domain[y] ];\n };\n scale.copy = function() {\n return d3_scale_threshold(domain, range);\n };\n return scale;\n }\n d3.scale.identity = function() {\n return d3_scale_identity([ 0, 1 ]);\n };\n function d3_scale_identity(domain) {\n function identity(x) {\n return +x;\n }\n identity.invert = identity;\n identity.domain = identity.range = function(x) {\n if (!arguments.length) return domain;\n domain = x.map(identity);\n return identity;\n };\n identity.ticks = function(m) {\n return d3_scale_linearTicks(domain, m);\n };\n identity.tickFormat = function(m, format) {\n return d3_scale_linearTickFormat(domain, m, format);\n };\n identity.copy = function() {\n return d3_scale_identity(domain);\n };\n return identity;\n }\n d3.svg = {};\n function d3_zero() {\n return 0;\n }\n d3.svg.arc = function() {\n var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, cornerRadius = d3_zero, padRadius = d3_svg_arcAuto, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle, padAngle = d3_svg_arcPadAngle;\n function arc() {\n var r0 = Math.max(0, +innerRadius.apply(this, arguments)), r1 = Math.max(0, +outerRadius.apply(this, arguments)), a0 = startAngle.apply(this, arguments) - halfπ, a1 = endAngle.apply(this, arguments) - halfπ, da = Math.abs(a1 - a0), cw = a0 > a1 ? 0 : 1;\n if (r1 < r0) rc = r1, r1 = r0, r0 = rc;\n if (da >= τε) return circleSegment(r1, cw) + (r0 ? circleSegment(r0, 1 - cw) : \"\") + \"Z\";\n var rc, cr, rp, ap, p0 = 0, p1 = 0, x0, y0, x1, y1, x2, y2, x3, y3, path = [];\n if (ap = (+padAngle.apply(this, arguments) || 0) / 2) {\n rp = padRadius === d3_svg_arcAuto ? Math.sqrt(r0 * r0 + r1 * r1) : +padRadius.apply(this, arguments);\n if (!cw) p1 *= -1;\n if (r1) p1 = d3_asin(rp / r1 * Math.sin(ap));\n if (r0) p0 = d3_asin(rp / r0 * Math.sin(ap));\n }\n if (r1) {\n x0 = r1 * Math.cos(a0 + p1);\n y0 = r1 * Math.sin(a0 + p1);\n x1 = r1 * Math.cos(a1 - p1);\n y1 = r1 * Math.sin(a1 - p1);\n var l1 = Math.abs(a1 - a0 - 2 * p1) <= π ? 0 : 1;\n if (p1 && d3_svg_arcSweep(x0, y0, x1, y1) === cw ^ l1) {\n var h1 = (a0 + a1) / 2;\n x0 = r1 * Math.cos(h1);\n y0 = r1 * Math.sin(h1);\n x1 = y1 = null;\n }\n } else {\n x0 = y0 = 0;\n }\n if (r0) {\n x2 = r0 * Math.cos(a1 - p0);\n y2 = r0 * Math.sin(a1 - p0);\n x3 = r0 * Math.cos(a0 + p0);\n y3 = r0 * Math.sin(a0 + p0);\n var l0 = Math.abs(a0 - a1 + 2 * p0) <= π ? 0 : 1;\n if (p0 && d3_svg_arcSweep(x2, y2, x3, y3) === 1 - cw ^ l0) {\n var h0 = (a0 + a1) / 2;\n x2 = r0 * Math.cos(h0);\n y2 = r0 * Math.sin(h0);\n x3 = y3 = null;\n }\n } else {\n x2 = y2 = 0;\n }\n if (da > ε && (rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments))) > .001) {\n cr = r0 < r1 ^ cw ? 0 : 1;\n var rc1 = rc, rc0 = rc;\n if (da < π) {\n var oc = x3 == null ? [ x2, y2 ] : x1 == null ? [ x0, y0 ] : d3_geom_polygonIntersect([ x0, y0 ], [ x3, y3 ], [ x1, y1 ], [ x2, y2 ]), ax = x0 - oc[0], ay = y0 - oc[1], bx = x1 - oc[0], by = y1 - oc[1], kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2), lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = Math.min(rc, (r0 - lc) / (kc - 1));\n rc1 = Math.min(rc, (r1 - lc) / (kc + 1));\n }\n if (x1 != null) {\n var t30 = d3_svg_arcCornerTangents(x3 == null ? [ x2, y2 ] : [ x3, y3 ], [ x0, y0 ], r1, rc1, cw), t12 = d3_svg_arcCornerTangents([ x1, y1 ], [ x2, y2 ], r1, rc1, cw);\n if (rc === rc1) {\n path.push(\"M\", t30[0], \"A\", rc1, \",\", rc1, \" 0 0,\", cr, \" \", t30[1], \"A\", r1, \",\", r1, \" 0 \", 1 - cw ^ d3_svg_arcSweep(t30[1][0], t30[1][1], t12[1][0], t12[1][1]), \",\", cw, \" \", t12[1], \"A\", rc1, \",\", rc1, \" 0 0,\", cr, \" \", t12[0]);\n } else {\n path.push(\"M\", t30[0], \"A\", rc1, \",\", rc1, \" 0 1,\", cr, \" \", t12[0]);\n }\n } else {\n path.push(\"M\", x0, \",\", y0);\n }\n if (x3 != null) {\n var t03 = d3_svg_arcCornerTangents([ x0, y0 ], [ x3, y3 ], r0, -rc0, cw), t21 = d3_svg_arcCornerTangents([ x2, y2 ], x1 == null ? [ x0, y0 ] : [ x1, y1 ], r0, -rc0, cw);\n if (rc === rc0) {\n path.push(\"L\", t21[0], \"A\", rc0, \",\", rc0, \" 0 0,\", cr, \" \", t21[1], \"A\", r0, \",\", r0, \" 0 \", cw ^ d3_svg_arcSweep(t21[1][0], t21[1][1], t03[1][0], t03[1][1]), \",\", 1 - cw, \" \", t03[1], \"A\", rc0, \",\", rc0, \" 0 0,\", cr, \" \", t03[0]);\n } else {\n path.push(\"L\", t21[0], \"A\", rc0, \",\", rc0, \" 0 0,\", cr, \" \", t03[0]);\n }\n } else {\n path.push(\"L\", x2, \",\", y2);\n }\n } else {\n path.push(\"M\", x0, \",\", y0);\n if (x1 != null) path.push(\"A\", r1, \",\", r1, \" 0 \", l1, \",\", cw, \" \", x1, \",\", y1);\n path.push(\"L\", x2, \",\", y2);\n if (x3 != null) path.push(\"A\", r0, \",\", r0, \" 0 \", l0, \",\", 1 - cw, \" \", x3, \",\", y3);\n }\n path.push(\"Z\");\n return path.join(\"\");\n }\n function circleSegment(r1, cw) {\n return \"M0,\" + r1 + \"A\" + r1 + \",\" + r1 + \" 0 1,\" + cw + \" 0,\" + -r1 + \"A\" + r1 + \",\" + r1 + \" 0 1,\" + cw + \" 0,\" + r1;\n }\n arc.innerRadius = function(v) {\n if (!arguments.length) return innerRadius;\n innerRadius = d3_functor(v);\n return arc;\n };\n arc.outerRadius = function(v) {\n if (!arguments.length) return outerRadius;\n outerRadius = d3_functor(v);\n return arc;\n };\n arc.cornerRadius = function(v) {\n if (!arguments.length) return cornerRadius;\n cornerRadius = d3_functor(v);\n return arc;\n };\n arc.padRadius = function(v) {\n if (!arguments.length) return padRadius;\n padRadius = v == d3_svg_arcAuto ? d3_svg_arcAuto : d3_functor(v);\n return arc;\n };\n arc.startAngle = function(v) {\n if (!arguments.length) return startAngle;\n startAngle = d3_functor(v);\n return arc;\n };\n arc.endAngle = function(v) {\n if (!arguments.length) return endAngle;\n endAngle = d3_functor(v);\n return arc;\n };\n arc.padAngle = function(v) {\n if (!arguments.length) return padAngle;\n padAngle = d3_functor(v);\n return arc;\n };\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - halfπ;\n return [ Math.cos(a) * r, Math.sin(a) * r ];\n };\n return arc;\n };\n var d3_svg_arcAuto = \"auto\";\n function d3_svg_arcInnerRadius(d) {\n return d.innerRadius;\n }\n function d3_svg_arcOuterRadius(d) {\n return d.outerRadius;\n }\n function d3_svg_arcStartAngle(d) {\n return d.startAngle;\n }\n function d3_svg_arcEndAngle(d) {\n return d.endAngle;\n }\n function d3_svg_arcPadAngle(d) {\n return d && d.padAngle;\n }\n function d3_svg_arcSweep(x0, y0, x1, y1) {\n return (x0 - x1) * y0 - (y0 - y1) * x0 > 0 ? 0 : 1;\n }\n function d3_svg_arcCornerTangents(p0, p1, r1, rc, cw) {\n var x01 = p0[0] - p1[0], y01 = p0[1] - p1[1], lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x1 = p0[0] + ox, y1 = p0[1] + oy, x2 = p1[0] + ox, y2 = p1[1] + oy, x3 = (x1 + x2) / 2, y3 = (y1 + y2) / 2, dx = x2 - x1, dy = y2 - y1, d2 = dx * dx + dy * dy, r = r1 - rc, D = x1 * y2 - x2 * y1, d = (dy < 0 ? -1 : 1) * Math.sqrt(Math.max(0, r * r * d2 - D * D)), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x3, dy0 = cy0 - y3, dx1 = cx1 - x3, dy1 = cy1 - y3;\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n return [ [ cx0 - ox, cy0 - oy ], [ cx0 * r1 / r, cy0 * r1 / r ] ];\n }\n function d3_svg_line(projection) {\n var x = d3_geom_pointX, y = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7;\n function line(data) {\n var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y);\n function segment() {\n segments.push(\"M\", interpolate(projection(points), tension));\n }\n while (++i < n) {\n if (defined.call(this, d = data[i], i)) {\n points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]);\n } else if (points.length) {\n segment();\n points = [];\n }\n }\n if (points.length) segment();\n return segments.length ? segments.join(\"\") : null;\n }\n line.x = function(_) {\n if (!arguments.length) return x;\n x = _;\n return line;\n };\n line.y = function(_) {\n if (!arguments.length) return y;\n y = _;\n return line;\n };\n line.defined = function(_) {\n if (!arguments.length) return defined;\n defined = _;\n return line;\n };\n line.interpolate = function(_) {\n if (!arguments.length) return interpolateKey;\n if (typeof _ === \"function\") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;\n return line;\n };\n line.tension = function(_) {\n if (!arguments.length) return tension;\n tension = _;\n return line;\n };\n return line;\n }\n d3.svg.line = function() {\n return d3_svg_line(d3_identity);\n };\n var d3_svg_lineInterpolators = d3.map({\n linear: d3_svg_lineLinear,\n \"linear-closed\": d3_svg_lineLinearClosed,\n step: d3_svg_lineStep,\n \"step-before\": d3_svg_lineStepBefore,\n \"step-after\": d3_svg_lineStepAfter,\n basis: d3_svg_lineBasis,\n \"basis-open\": d3_svg_lineBasisOpen,\n \"basis-closed\": d3_svg_lineBasisClosed,\n bundle: d3_svg_lineBundle,\n cardinal: d3_svg_lineCardinal,\n \"cardinal-open\": d3_svg_lineCardinalOpen,\n \"cardinal-closed\": d3_svg_lineCardinalClosed,\n monotone: d3_svg_lineMonotone\n });\n d3_svg_lineInterpolators.forEach(function(key, value) {\n value.key = key;\n value.closed = /-closed$/.test(key);\n });\n function d3_svg_lineLinear(points) {\n return points.length > 1 ? points.join(\"L\") : points + \"Z\";\n }\n function d3_svg_lineLinearClosed(points) {\n return points.join(\"L\") + \"Z\";\n }\n function d3_svg_lineStep(points) {\n var i = 0, n = points.length, p = points[0], path = [ p[0], \",\", p[1] ];\n while (++i < n) path.push(\"H\", (p[0] + (p = points[i])[0]) / 2, \"V\", p[1]);\n if (n > 1) path.push(\"H\", p[0]);\n return path.join(\"\");\n }\n function d3_svg_lineStepBefore(points) {\n var i = 0, n = points.length, p = points[0], path = [ p[0], \",\", p[1] ];\n while (++i < n) path.push(\"V\", (p = points[i])[1], \"H\", p[0]);\n return path.join(\"\");\n }\n function d3_svg_lineStepAfter(points) {\n var i = 0, n = points.length, p = points[0], path = [ p[0], \",\", p[1] ];\n while (++i < n) path.push(\"H\", (p = points[i])[0], \"V\", p[1]);\n return path.join(\"\");\n }\n function d3_svg_lineCardinalOpen(points, tension) {\n return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, -1), d3_svg_lineCardinalTangents(points, tension));\n }\n function d3_svg_lineCardinalClosed(points, tension) {\n return points.length < 3 ? d3_svg_lineLinearClosed(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), \n points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension));\n }\n function d3_svg_lineCardinal(points, tension) {\n return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension));\n }\n function d3_svg_lineHermite(points, tangents) {\n if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) {\n return d3_svg_lineLinear(points);\n }\n var quad = points.length != tangents.length, path = \"\", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1;\n if (quad) {\n path += \"Q\" + (p[0] - t0[0] * 2 / 3) + \",\" + (p[1] - t0[1] * 2 / 3) + \",\" + p[0] + \",\" + p[1];\n p0 = points[1];\n pi = 2;\n }\n if (tangents.length > 1) {\n t = tangents[1];\n p = points[pi];\n pi++;\n path += \"C\" + (p0[0] + t0[0]) + \",\" + (p0[1] + t0[1]) + \",\" + (p[0] - t[0]) + \",\" + (p[1] - t[1]) + \",\" + p[0] + \",\" + p[1];\n for (var i = 2; i < tangents.length; i++, pi++) {\n p = points[pi];\n t = tangents[i];\n path += \"S\" + (p[0] - t[0]) + \",\" + (p[1] - t[1]) + \",\" + p[0] + \",\" + p[1];\n }\n }\n if (quad) {\n var lp = points[pi];\n path += \"Q\" + (p[0] + t[0] * 2 / 3) + \",\" + (p[1] + t[1] * 2 / 3) + \",\" + lp[0] + \",\" + lp[1];\n }\n return path;\n }\n function d3_svg_lineCardinalTangents(points, tension) {\n var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length;\n while (++i < n) {\n p0 = p1;\n p1 = p2;\n p2 = points[i];\n tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]);\n }\n return tangents;\n }\n function d3_svg_lineBasis(points) {\n if (points.length < 3) return d3_svg_lineLinear(points);\n var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, \",\", y0, \"L\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];\n points.push(points[n - 1]);\n while (++i <= n) {\n pi = points[i];\n px.shift();\n px.push(pi[0]);\n py.shift();\n py.push(pi[1]);\n d3_svg_lineBasisBezier(path, px, py);\n }\n points.pop();\n path.push(\"L\", pi);\n return path.join(\"\");\n }\n function d3_svg_lineBasisOpen(points) {\n if (points.length < 4) return d3_svg_lineLinear(points);\n var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ];\n while (++i < 3) {\n pi = points[i];\n px.push(pi[0]);\n py.push(pi[1]);\n }\n path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + \",\" + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));\n --i;\n while (++i < n) {\n pi = points[i];\n px.shift();\n px.push(pi[0]);\n py.shift();\n py.push(pi[1]);\n d3_svg_lineBasisBezier(path, px, py);\n }\n return path.join(\"\");\n }\n function d3_svg_lineBasisClosed(points) {\n var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = [];\n while (++i < 4) {\n pi = points[i % n];\n px.push(pi[0]);\n py.push(pi[1]);\n }\n path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];\n --i;\n while (++i < m) {\n pi = points[i % n];\n px.shift();\n px.push(pi[0]);\n py.shift();\n py.push(pi[1]);\n d3_svg_lineBasisBezier(path, px, py);\n }\n return path.join(\"\");\n }\n function d3_svg_lineBundle(points, tension) {\n var n = points.length - 1;\n if (n) {\n var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t;\n while (++i <= n) {\n p = points[i];\n t = i / n;\n p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);\n p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);\n }\n }\n return d3_svg_lineBasis(points);\n }\n function d3_svg_lineDot4(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n }\n var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ];\n function d3_svg_lineBasisBezier(path, x, y) {\n path.push(\"C\", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));\n }\n function d3_svg_lineSlope(p0, p1) {\n return (p1[1] - p0[1]) / (p1[0] - p0[0]);\n }\n function d3_svg_lineFiniteDifferences(points) {\n var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1);\n while (++i < j) {\n m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2;\n }\n m[i] = d;\n return m;\n }\n function d3_svg_lineMonotoneTangents(points) {\n var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1;\n while (++i < j) {\n d = d3_svg_lineSlope(points[i], points[i + 1]);\n if (abs(d) < ε) {\n m[i] = m[i + 1] = 0;\n } else {\n a = m[i] / d;\n b = m[i + 1] / d;\n s = a * a + b * b;\n if (s > 9) {\n s = d * 3 / Math.sqrt(s);\n m[i] = s * a;\n m[i + 1] = s * b;\n }\n }\n }\n i = -1;\n while (++i <= j) {\n s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i]));\n tangents.push([ s || 0, m[i] * s || 0 ]);\n }\n return tangents;\n }\n function d3_svg_lineMonotone(points) {\n return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));\n }\n d3.svg.line.radial = function() {\n var line = d3_svg_line(d3_svg_lineRadial);\n line.radius = line.x, delete line.x;\n line.angle = line.y, delete line.y;\n return line;\n };\n function d3_svg_lineRadial(points) {\n var point, i = -1, n = points.length, r, a;\n while (++i < n) {\n point = points[i];\n r = point[0];\n a = point[1] - halfπ;\n point[0] = r * Math.cos(a);\n point[1] = r * Math.sin(a);\n }\n return points;\n }\n function d3_svg_area(projection) {\n var x0 = d3_geom_pointX, x1 = d3_geom_pointX, y0 = 0, y1 = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = \"L\", tension = .7;\n function area(data) {\n var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() {\n return x;\n } : d3_functor(x1), fy1 = y0 === y1 ? function() {\n return y;\n } : d3_functor(y1), x, y;\n function segment() {\n segments.push(\"M\", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), \"Z\");\n }\n while (++i < n) {\n if (defined.call(this, d = data[i], i)) {\n points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]);\n points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]);\n } else if (points0.length) {\n segment();\n points0 = [];\n points1 = [];\n }\n }\n if (points0.length) segment();\n return segments.length ? segments.join(\"\") : null;\n }\n area.x = function(_) {\n if (!arguments.length) return x1;\n x0 = x1 = _;\n return area;\n };\n area.x0 = function(_) {\n if (!arguments.length) return x0;\n x0 = _;\n return area;\n };\n area.x1 = function(_) {\n if (!arguments.length) return x1;\n x1 = _;\n return area;\n };\n area.y = function(_) {\n if (!arguments.length) return y1;\n y0 = y1 = _;\n return area;\n };\n area.y0 = function(_) {\n if (!arguments.length) return y0;\n y0 = _;\n return area;\n };\n area.y1 = function(_) {\n if (!arguments.length) return y1;\n y1 = _;\n return area;\n };\n area.defined = function(_) {\n if (!arguments.length) return defined;\n defined = _;\n return area;\n };\n area.interpolate = function(_) {\n if (!arguments.length) return interpolateKey;\n if (typeof _ === \"function\") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;\n interpolateReverse = interpolate.reverse || interpolate;\n L = interpolate.closed ? \"M\" : \"L\";\n return area;\n };\n area.tension = function(_) {\n if (!arguments.length) return tension;\n tension = _;\n return area;\n };\n return area;\n }\n d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;\n d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;\n d3.svg.area = function() {\n return d3_svg_area(d3_identity);\n };\n d3.svg.area.radial = function() {\n var area = d3_svg_area(d3_svg_lineRadial);\n area.radius = area.x, delete area.x;\n area.innerRadius = area.x0, delete area.x0;\n area.outerRadius = area.x1, delete area.x1;\n area.angle = area.y, delete area.y;\n area.startAngle = area.y0, delete area.y0;\n area.endAngle = area.y1, delete area.y1;\n return area;\n };\n d3.svg.chord = function() {\n var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;\n function chord(d, i) {\n var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i);\n return \"M\" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + \"Z\";\n }\n function subgroup(self, f, d, i) {\n var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) - halfπ, a1 = endAngle.call(self, subgroup, i) - halfπ;\n return {\n r: r,\n a0: a0,\n a1: a1,\n p0: [ r * Math.cos(a0), r * Math.sin(a0) ],\n p1: [ r * Math.cos(a1), r * Math.sin(a1) ]\n };\n }\n function equals(a, b) {\n return a.a0 == b.a0 && a.a1 == b.a1;\n }\n function arc(r, p, a) {\n return \"A\" + r + \",\" + r + \" 0 \" + +(a > π) + \",1 \" + p;\n }\n function curve(r0, p0, r1, p1) {\n return \"Q 0,0 \" + p1;\n }\n chord.radius = function(v) {\n if (!arguments.length) return radius;\n radius = d3_functor(v);\n return chord;\n };\n chord.source = function(v) {\n if (!arguments.length) return source;\n source = d3_functor(v);\n return chord;\n };\n chord.target = function(v) {\n if (!arguments.length) return target;\n target = d3_functor(v);\n return chord;\n };\n chord.startAngle = function(v) {\n if (!arguments.length) return startAngle;\n startAngle = d3_functor(v);\n return chord;\n };\n chord.endAngle = function(v) {\n if (!arguments.length) return endAngle;\n endAngle = d3_functor(v);\n return chord;\n };\n return chord;\n };\n function d3_svg_chordRadius(d) {\n return d.radius;\n }\n d3.svg.diagonal = function() {\n var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection;\n function diagonal(d, i) {\n var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, {\n x: p0.x,\n y: m\n }, {\n x: p3.x,\n y: m\n }, p3 ];\n p = p.map(projection);\n return \"M\" + p[0] + \"C\" + p[1] + \" \" + p[2] + \" \" + p[3];\n }\n diagonal.source = function(x) {\n if (!arguments.length) return source;\n source = d3_functor(x);\n return diagonal;\n };\n diagonal.target = function(x) {\n if (!arguments.length) return target;\n target = d3_functor(x);\n return diagonal;\n };\n diagonal.projection = function(x) {\n if (!arguments.length) return projection;\n projection = x;\n return diagonal;\n };\n return diagonal;\n };\n function d3_svg_diagonalProjection(d) {\n return [ d.x, d.y ];\n }\n d3.svg.diagonal.radial = function() {\n var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection;\n diagonal.projection = function(x) {\n return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection;\n };\n return diagonal;\n };\n function d3_svg_diagonalRadialProjection(projection) {\n return function() {\n var d = projection.apply(this, arguments), r = d[0], a = d[1] - halfπ;\n return [ r * Math.cos(a), r * Math.sin(a) ];\n };\n }\n d3.svg.symbol = function() {\n var type = d3_svg_symbolType, size = d3_svg_symbolSize;\n function symbol(d, i) {\n return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i));\n }\n symbol.type = function(x) {\n if (!arguments.length) return type;\n type = d3_functor(x);\n return symbol;\n };\n symbol.size = function(x) {\n if (!arguments.length) return size;\n size = d3_functor(x);\n return symbol;\n };\n return symbol;\n };\n function d3_svg_symbolSize() {\n return 64;\n }\n function d3_svg_symbolType() {\n return \"circle\";\n }\n function d3_svg_symbolCircle(size) {\n var r = Math.sqrt(size / π);\n return \"M0,\" + r + \"A\" + r + \",\" + r + \" 0 1,1 0,\" + -r + \"A\" + r + \",\" + r + \" 0 1,1 0,\" + r + \"Z\";\n }\n var d3_svg_symbols = d3.map({\n circle: d3_svg_symbolCircle,\n cross: function(size) {\n var r = Math.sqrt(size / 5) / 2;\n return \"M\" + -3 * r + \",\" + -r + \"H\" + -r + \"V\" + -3 * r + \"H\" + r + \"V\" + -r + \"H\" + 3 * r + \"V\" + r + \"H\" + r + \"V\" + 3 * r + \"H\" + -r + \"V\" + r + \"H\" + -3 * r + \"Z\";\n },\n diamond: function(size) {\n var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30;\n return \"M0,\" + -ry + \"L\" + rx + \",0\" + \" 0,\" + ry + \" \" + -rx + \",0\" + \"Z\";\n },\n square: function(size) {\n var r = Math.sqrt(size) / 2;\n return \"M\" + -r + \",\" + -r + \"L\" + r + \",\" + -r + \" \" + r + \",\" + r + \" \" + -r + \",\" + r + \"Z\";\n },\n \"triangle-down\": function(size) {\n var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;\n return \"M0,\" + ry + \"L\" + rx + \",\" + -ry + \" \" + -rx + \",\" + -ry + \"Z\";\n },\n \"triangle-up\": function(size) {\n var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;\n return \"M0,\" + -ry + \"L\" + rx + \",\" + ry + \" \" + -rx + \",\" + ry + \"Z\";\n }\n });\n d3.svg.symbolTypes = d3_svg_symbols.keys();\n var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians);\n d3_selectionPrototype.transition = function(name) {\n var id = d3_transitionInheritId || ++d3_transitionId, ns = d3_transitionNamespace(name), subgroups = [], subgroup, node, transition = d3_transitionInherit || {\n time: Date.now(),\n ease: d3_ease_cubicInOut,\n delay: 0,\n duration: 250\n };\n for (var j = -1, m = this.length; ++j < m; ) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) d3_transitionNode(node, i, ns, id, transition);\n subgroup.push(node);\n }\n }\n return d3_transition(subgroups, ns, id);\n };\n d3_selectionPrototype.interrupt = function(name) {\n return this.each(name == null ? d3_selection_interrupt : d3_selection_interruptNS(d3_transitionNamespace(name)));\n };\n var d3_selection_interrupt = d3_selection_interruptNS(d3_transitionNamespace());\n function d3_selection_interruptNS(ns) {\n return function() {\n var lock, activeId, active;\n if ((lock = this[ns]) && (active = lock[activeId = lock.active])) {\n active.timer.c = null;\n active.timer.t = NaN;\n if (--lock.count) delete lock[activeId]; else delete this[ns];\n lock.active += .5;\n active.event && active.event.interrupt.call(this, this.__data__, active.index);\n }\n };\n }\n function d3_transition(groups, ns, id) {\n d3_subclass(groups, d3_transitionPrototype);\n groups.namespace = ns;\n groups.id = id;\n return groups;\n }\n var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit;\n d3_transitionPrototype.call = d3_selectionPrototype.call;\n d3_transitionPrototype.empty = d3_selectionPrototype.empty;\n d3_transitionPrototype.node = d3_selectionPrototype.node;\n d3_transitionPrototype.size = d3_selectionPrototype.size;\n d3.transition = function(selection, name) {\n return selection && selection.transition ? d3_transitionInheritId ? selection.transition(name) : selection : d3.selection().transition(selection);\n };\n d3.transition.prototype = d3_transitionPrototype;\n d3_transitionPrototype.select = function(selector) {\n var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnode, node;\n selector = d3_selection_selector(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i, j))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n d3_transitionNode(subnode, i, ns, id, node[ns][id]);\n subgroup.push(subnode);\n } else {\n subgroup.push(null);\n }\n }\n }\n return d3_transition(subgroups, ns, id);\n };\n d3_transitionPrototype.selectAll = function(selector) {\n var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnodes, node, subnode, transition;\n selector = d3_selection_selectorAll(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n transition = node[ns][id];\n subnodes = selector.call(node, node.__data__, i, j);\n subgroups.push(subgroup = []);\n for (var k = -1, o = subnodes.length; ++k < o; ) {\n if (subnode = subnodes[k]) d3_transitionNode(subnode, k, ns, id, transition);\n subgroup.push(subnode);\n }\n }\n }\n }\n return d3_transition(subgroups, ns, id);\n };\n d3_transitionPrototype.filter = function(filter) {\n var subgroups = [], subgroup, group, node;\n if (typeof filter !== \"function\") filter = d3_selection_filter(filter);\n for (var j = 0, m = this.length; j < m; j++) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {\n subgroup.push(node);\n }\n }\n }\n return d3_transition(subgroups, this.namespace, this.id);\n };\n d3_transitionPrototype.tween = function(name, tween) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 2) return this.node()[ns][id].tween.get(name);\n return d3_selection_each(this, tween == null ? function(node) {\n node[ns][id].tween.remove(name);\n } : function(node) {\n node[ns][id].tween.set(name, tween);\n });\n };\n function d3_transition_tween(groups, name, value, tween) {\n var id = groups.id, ns = groups.namespace;\n return d3_selection_each(groups, typeof value === \"function\" ? function(node, i, j) {\n node[ns][id].tween.set(name, tween(value.call(node, node.__data__, i, j)));\n } : (value = tween(value), function(node) {\n node[ns][id].tween.set(name, value);\n }));\n }\n d3_transitionPrototype.attr = function(nameNS, value) {\n if (arguments.length < 2) {\n for (value in nameNS) this.attr(value, nameNS[value]);\n return this;\n }\n var interpolate = nameNS == \"transform\" ? d3_interpolateTransform : d3_interpolate, name = d3.ns.qualify(nameNS);\n function attrNull() {\n this.removeAttribute(name);\n }\n function attrNullNS() {\n this.removeAttributeNS(name.space, name.local);\n }\n function attrTween(b) {\n return b == null ? attrNull : (b += \"\", function() {\n var a = this.getAttribute(name), i;\n return a !== b && (i = interpolate(a, b), function(t) {\n this.setAttribute(name, i(t));\n });\n });\n }\n function attrTweenNS(b) {\n return b == null ? attrNullNS : (b += \"\", function() {\n var a = this.getAttributeNS(name.space, name.local), i;\n return a !== b && (i = interpolate(a, b), function(t) {\n this.setAttributeNS(name.space, name.local, i(t));\n });\n });\n }\n return d3_transition_tween(this, \"attr.\" + nameNS, value, name.local ? attrTweenNS : attrTween);\n };\n d3_transitionPrototype.attrTween = function(nameNS, tween) {\n var name = d3.ns.qualify(nameNS);\n function attrTween(d, i) {\n var f = tween.call(this, d, i, this.getAttribute(name));\n return f && function(t) {\n this.setAttribute(name, f(t));\n };\n }\n function attrTweenNS(d, i) {\n var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));\n return f && function(t) {\n this.setAttributeNS(name.space, name.local, f(t));\n };\n }\n return this.tween(\"attr.\" + nameNS, name.local ? attrTweenNS : attrTween);\n };\n d3_transitionPrototype.style = function(name, value, priority) {\n var n = arguments.length;\n if (n < 3) {\n if (typeof name !== \"string\") {\n if (n < 2) value = \"\";\n for (priority in name) this.style(priority, name[priority], value);\n return this;\n }\n priority = \"\";\n }\n function styleNull() {\n this.style.removeProperty(name);\n }\n function styleString(b) {\n return b == null ? styleNull : (b += \"\", function() {\n var a = d3_window(this).getComputedStyle(this, null).getPropertyValue(name), i;\n return a !== b && (i = d3_interpolate(a, b), function(t) {\n this.style.setProperty(name, i(t), priority);\n });\n });\n }\n return d3_transition_tween(this, \"style.\" + name, value, styleString);\n };\n d3_transitionPrototype.styleTween = function(name, tween, priority) {\n if (arguments.length < 3) priority = \"\";\n function styleTween(d, i) {\n var f = tween.call(this, d, i, d3_window(this).getComputedStyle(this, null).getPropertyValue(name));\n return f && function(t) {\n this.style.setProperty(name, f(t), priority);\n };\n }\n return this.tween(\"style.\" + name, styleTween);\n };\n d3_transitionPrototype.text = function(value) {\n return d3_transition_tween(this, \"text\", value, d3_transition_text);\n };\n function d3_transition_text(b) {\n if (b == null) b = \"\";\n return function() {\n this.textContent = b;\n };\n }\n d3_transitionPrototype.remove = function() {\n var ns = this.namespace;\n return this.each(\"end.transition\", function() {\n var p;\n if (this[ns].count < 2 && (p = this.parentNode)) p.removeChild(this);\n });\n };\n d3_transitionPrototype.ease = function(value) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 1) return this.node()[ns][id].ease;\n if (typeof value !== \"function\") value = d3.ease.apply(d3, arguments);\n return d3_selection_each(this, function(node) {\n node[ns][id].ease = value;\n });\n };\n d3_transitionPrototype.delay = function(value) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 1) return this.node()[ns][id].delay;\n return d3_selection_each(this, typeof value === \"function\" ? function(node, i, j) {\n node[ns][id].delay = +value.call(node, node.__data__, i, j);\n } : (value = +value, function(node) {\n node[ns][id].delay = value;\n }));\n };\n d3_transitionPrototype.duration = function(value) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 1) return this.node()[ns][id].duration;\n return d3_selection_each(this, typeof value === \"function\" ? function(node, i, j) {\n node[ns][id].duration = Math.max(1, value.call(node, node.__data__, i, j));\n } : (value = Math.max(1, value), function(node) {\n node[ns][id].duration = value;\n }));\n };\n d3_transitionPrototype.each = function(type, listener) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 2) {\n var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId;\n try {\n d3_transitionInheritId = id;\n d3_selection_each(this, function(node, i, j) {\n d3_transitionInherit = node[ns][id];\n type.call(node, node.__data__, i, j);\n });\n } finally {\n d3_transitionInherit = inherit;\n d3_transitionInheritId = inheritId;\n }\n } else {\n d3_selection_each(this, function(node) {\n var transition = node[ns][id];\n (transition.event || (transition.event = d3.dispatch(\"start\", \"end\", \"interrupt\"))).on(type, listener);\n });\n }\n return this;\n };\n d3_transitionPrototype.transition = function() {\n var id0 = this.id, id1 = ++d3_transitionId, ns = this.namespace, subgroups = [], subgroup, group, node, transition;\n for (var j = 0, m = this.length; j < m; j++) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n if (node = group[i]) {\n transition = node[ns][id0];\n d3_transitionNode(node, i, ns, id1, {\n time: transition.time,\n ease: transition.ease,\n delay: transition.delay + transition.duration,\n duration: transition.duration\n });\n }\n subgroup.push(node);\n }\n }\n return d3_transition(subgroups, ns, id1);\n };\n function d3_transitionNamespace(name) {\n return name == null ? \"__transition__\" : \"__transition_\" + name + \"__\";\n }\n function d3_transitionNode(node, i, ns, id, inherit) {\n var lock = node[ns] || (node[ns] = {\n active: 0,\n count: 0\n }), transition = lock[id], time, timer, duration, ease, tweens;\n function schedule(elapsed) {\n var delay = transition.delay;\n timer.t = delay + time;\n if (delay <= elapsed) return start(elapsed - delay);\n timer.c = start;\n }\n function start(elapsed) {\n var activeId = lock.active, active = lock[activeId];\n if (active) {\n active.timer.c = null;\n active.timer.t = NaN;\n --lock.count;\n delete lock[activeId];\n active.event && active.event.interrupt.call(node, node.__data__, active.index);\n }\n for (var cancelId in lock) {\n if (+cancelId < id) {\n var cancel = lock[cancelId];\n cancel.timer.c = null;\n cancel.timer.t = NaN;\n --lock.count;\n delete lock[cancelId];\n }\n }\n timer.c = tick;\n d3_timer(function() {\n if (timer.c && tick(elapsed || 1)) {\n timer.c = null;\n timer.t = NaN;\n }\n return 1;\n }, 0, time);\n lock.active = id;\n transition.event && transition.event.start.call(node, node.__data__, i);\n tweens = [];\n transition.tween.forEach(function(key, value) {\n if (value = value.call(node, node.__data__, i)) {\n tweens.push(value);\n }\n });\n ease = transition.ease;\n duration = transition.duration;\n }\n function tick(elapsed) {\n var t = elapsed / duration, e = ease(t), n = tweens.length;\n while (n > 0) {\n tweens[--n].call(node, e);\n }\n if (t >= 1) {\n transition.event && transition.event.end.call(node, node.__data__, i);\n if (--lock.count) delete lock[id]; else delete node[ns];\n return 1;\n }\n }\n if (!transition) {\n time = inherit.time;\n timer = d3_timer(schedule, 0, time);\n transition = lock[id] = {\n tween: new d3_Map(),\n time: time,\n timer: timer,\n delay: inherit.delay,\n duration: inherit.duration,\n ease: inherit.ease,\n index: i\n };\n inherit = null;\n ++lock.count;\n }\n }\n d3.svg.axis = function() {\n var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, innerTickSize = 6, outerTickSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_;\n function axis(g) {\n g.each(function() {\n var g = d3.select(this);\n var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy();\n var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(\".tick\").data(ticks, scale1), tickEnter = tick.enter().insert(\"g\", \".domain\").attr(\"class\", \"tick\").style(\"opacity\", ε), tickExit = d3.transition(tick.exit()).style(\"opacity\", ε).remove(), tickUpdate = d3.transition(tick.order()).style(\"opacity\", 1), tickSpacing = Math.max(innerTickSize, 0) + tickPadding, tickTransform;\n var range = d3_scaleRange(scale1), path = g.selectAll(\".domain\").data([ 0 ]), pathUpdate = (path.enter().append(\"path\").attr(\"class\", \"domain\"), \n d3.transition(path));\n tickEnter.append(\"line\");\n tickEnter.append(\"text\");\n var lineEnter = tickEnter.select(\"line\"), lineUpdate = tickUpdate.select(\"line\"), text = tick.select(\"text\").text(tickFormat), textEnter = tickEnter.select(\"text\"), textUpdate = tickUpdate.select(\"text\"), sign = orient === \"top\" || orient === \"left\" ? -1 : 1, x1, x2, y1, y2;\n if (orient === \"bottom\" || orient === \"top\") {\n tickTransform = d3_svg_axisX, x1 = \"x\", y1 = \"y\", x2 = \"x2\", y2 = \"y2\";\n text.attr(\"dy\", sign < 0 ? \"0em\" : \".71em\").style(\"text-anchor\", \"middle\");\n pathUpdate.attr(\"d\", \"M\" + range[0] + \",\" + sign * outerTickSize + \"V0H\" + range[1] + \"V\" + sign * outerTickSize);\n } else {\n tickTransform = d3_svg_axisY, x1 = \"y\", y1 = \"x\", x2 = \"y2\", y2 = \"x2\";\n text.attr(\"dy\", \".32em\").style(\"text-anchor\", sign < 0 ? \"end\" : \"start\");\n pathUpdate.attr(\"d\", \"M\" + sign * outerTickSize + \",\" + range[0] + \"H0V\" + range[1] + \"H\" + sign * outerTickSize);\n }\n lineEnter.attr(y2, sign * innerTickSize);\n textEnter.attr(y1, sign * tickSpacing);\n lineUpdate.attr(x2, 0).attr(y2, sign * innerTickSize);\n textUpdate.attr(x1, 0).attr(y1, sign * tickSpacing);\n if (scale1.rangeBand) {\n var x = scale1, dx = x.rangeBand() / 2;\n scale0 = scale1 = function(d) {\n return x(d) + dx;\n };\n } else if (scale0.rangeBand) {\n scale0 = scale1;\n } else {\n tickExit.call(tickTransform, scale1, scale0);\n }\n tickEnter.call(tickTransform, scale0, scale1);\n tickUpdate.call(tickTransform, scale1, scale1);\n });\n }\n axis.scale = function(x) {\n if (!arguments.length) return scale;\n scale = x;\n return axis;\n };\n axis.orient = function(x) {\n if (!arguments.length) return orient;\n orient = x in d3_svg_axisOrients ? x + \"\" : d3_svg_axisDefaultOrient;\n return axis;\n };\n axis.ticks = function() {\n if (!arguments.length) return tickArguments_;\n tickArguments_ = d3_array(arguments);\n return axis;\n };\n axis.tickValues = function(x) {\n if (!arguments.length) return tickValues;\n tickValues = x;\n return axis;\n };\n axis.tickFormat = function(x) {\n if (!arguments.length) return tickFormat_;\n tickFormat_ = x;\n return axis;\n };\n axis.tickSize = function(x) {\n var n = arguments.length;\n if (!n) return innerTickSize;\n innerTickSize = +x;\n outerTickSize = +arguments[n - 1];\n return axis;\n };\n axis.innerTickSize = function(x) {\n if (!arguments.length) return innerTickSize;\n innerTickSize = +x;\n return axis;\n };\n axis.outerTickSize = function(x) {\n if (!arguments.length) return outerTickSize;\n outerTickSize = +x;\n return axis;\n };\n axis.tickPadding = function(x) {\n if (!arguments.length) return tickPadding;\n tickPadding = +x;\n return axis;\n };\n axis.tickSubdivide = function() {\n return arguments.length && axis;\n };\n return axis;\n };\n var d3_svg_axisDefaultOrient = \"bottom\", d3_svg_axisOrients = {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n };\n function d3_svg_axisX(selection, x0, x1) {\n selection.attr(\"transform\", function(d) {\n var v0 = x0(d);\n return \"translate(\" + (isFinite(v0) ? v0 : x1(d)) + \",0)\";\n });\n }\n function d3_svg_axisY(selection, y0, y1) {\n selection.attr(\"transform\", function(d) {\n var v0 = y0(d);\n return \"translate(0,\" + (isFinite(v0) ? v0 : y1(d)) + \")\";\n });\n }\n d3.svg.brush = function() {\n var event = d3_eventDispatch(brush, \"brushstart\", \"brush\", \"brushend\"), x = null, y = null, xExtent = [ 0, 0 ], yExtent = [ 0, 0 ], xExtentDomain, yExtentDomain, xClamp = true, yClamp = true, resizes = d3_svg_brushResizes[0];\n function brush(g) {\n g.each(function() {\n var g = d3.select(this).style(\"pointer-events\", \"all\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\").on(\"mousedown.brush\", brushstart).on(\"touchstart.brush\", brushstart);\n var background = g.selectAll(\".background\").data([ 0 ]);\n background.enter().append(\"rect\").attr(\"class\", \"background\").style(\"visibility\", \"hidden\").style(\"cursor\", \"crosshair\");\n g.selectAll(\".extent\").data([ 0 ]).enter().append(\"rect\").attr(\"class\", \"extent\").style(\"cursor\", \"move\");\n var resize = g.selectAll(\".resize\").data(resizes, d3_identity);\n resize.exit().remove();\n resize.enter().append(\"g\").attr(\"class\", function(d) {\n return \"resize \" + d;\n }).style(\"cursor\", function(d) {\n return d3_svg_brushCursor[d];\n }).append(\"rect\").attr(\"x\", function(d) {\n return /[ew]$/.test(d) ? -3 : null;\n }).attr(\"y\", function(d) {\n return /^[ns]/.test(d) ? -3 : null;\n }).attr(\"width\", 6).attr(\"height\", 6).style(\"visibility\", \"hidden\");\n resize.style(\"display\", brush.empty() ? \"none\" : null);\n var gUpdate = d3.transition(g), backgroundUpdate = d3.transition(background), range;\n if (x) {\n range = d3_scaleRange(x);\n backgroundUpdate.attr(\"x\", range[0]).attr(\"width\", range[1] - range[0]);\n redrawX(gUpdate);\n }\n if (y) {\n range = d3_scaleRange(y);\n backgroundUpdate.attr(\"y\", range[0]).attr(\"height\", range[1] - range[0]);\n redrawY(gUpdate);\n }\n redraw(gUpdate);\n });\n }\n brush.event = function(g) {\n g.each(function() {\n var event_ = event.of(this, arguments), extent1 = {\n x: xExtent,\n y: yExtent,\n i: xExtentDomain,\n j: yExtentDomain\n }, extent0 = this.__chart__ || extent1;\n this.__chart__ = extent1;\n if (d3_transitionInheritId) {\n d3.select(this).transition().each(\"start.brush\", function() {\n xExtentDomain = extent0.i;\n yExtentDomain = extent0.j;\n xExtent = extent0.x;\n yExtent = extent0.y;\n event_({\n type: \"brushstart\"\n });\n }).tween(\"brush:brush\", function() {\n var xi = d3_interpolateArray(xExtent, extent1.x), yi = d3_interpolateArray(yExtent, extent1.y);\n xExtentDomain = yExtentDomain = null;\n return function(t) {\n xExtent = extent1.x = xi(t);\n yExtent = extent1.y = yi(t);\n event_({\n type: \"brush\",\n mode: \"resize\"\n });\n };\n }).each(\"end.brush\", function() {\n xExtentDomain = extent1.i;\n yExtentDomain = extent1.j;\n event_({\n type: \"brush\",\n mode: \"resize\"\n });\n event_({\n type: \"brushend\"\n });\n });\n } else {\n event_({\n type: \"brushstart\"\n });\n event_({\n type: \"brush\",\n mode: \"resize\"\n });\n event_({\n type: \"brushend\"\n });\n }\n });\n };\n function redraw(g) {\n g.selectAll(\".resize\").attr(\"transform\", function(d) {\n return \"translate(\" + xExtent[+/e$/.test(d)] + \",\" + yExtent[+/^s/.test(d)] + \")\";\n });\n }\n function redrawX(g) {\n g.select(\".extent\").attr(\"x\", xExtent[0]);\n g.selectAll(\".extent,.n>rect,.s>rect\").attr(\"width\", xExtent[1] - xExtent[0]);\n }\n function redrawY(g) {\n g.select(\".extent\").attr(\"y\", yExtent[0]);\n g.selectAll(\".extent,.e>rect,.w>rect\").attr(\"height\", yExtent[1] - yExtent[0]);\n }\n function brushstart() {\n var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed(\"extent\"), dragRestore = d3_event_dragSuppress(target), center, origin = d3.mouse(target), offset;\n var w = d3.select(d3_window(target)).on(\"keydown.brush\", keydown).on(\"keyup.brush\", keyup);\n if (d3.event.changedTouches) {\n w.on(\"touchmove.brush\", brushmove).on(\"touchend.brush\", brushend);\n } else {\n w.on(\"mousemove.brush\", brushmove).on(\"mouseup.brush\", brushend);\n }\n g.interrupt().selectAll(\"*\").interrupt();\n if (dragging) {\n origin[0] = xExtent[0] - origin[0];\n origin[1] = yExtent[0] - origin[1];\n } else if (resizing) {\n var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing);\n offset = [ xExtent[1 - ex] - origin[0], yExtent[1 - ey] - origin[1] ];\n origin[0] = xExtent[ex];\n origin[1] = yExtent[ey];\n } else if (d3.event.altKey) center = origin.slice();\n g.style(\"pointer-events\", \"none\").selectAll(\".resize\").style(\"display\", null);\n d3.select(\"body\").style(\"cursor\", eventTarget.style(\"cursor\"));\n event_({\n type: \"brushstart\"\n });\n brushmove();\n function keydown() {\n if (d3.event.keyCode == 32) {\n if (!dragging) {\n center = null;\n origin[0] -= xExtent[1];\n origin[1] -= yExtent[1];\n dragging = 2;\n }\n d3_eventPreventDefault();\n }\n }\n function keyup() {\n if (d3.event.keyCode == 32 && dragging == 2) {\n origin[0] += xExtent[1];\n origin[1] += yExtent[1];\n dragging = 0;\n d3_eventPreventDefault();\n }\n }\n function brushmove() {\n var point = d3.mouse(target), moved = false;\n if (offset) {\n point[0] += offset[0];\n point[1] += offset[1];\n }\n if (!dragging) {\n if (d3.event.altKey) {\n if (!center) center = [ (xExtent[0] + xExtent[1]) / 2, (yExtent[0] + yExtent[1]) / 2 ];\n origin[0] = xExtent[+(point[0] < center[0])];\n origin[1] = yExtent[+(point[1] < center[1])];\n } else center = null;\n }\n if (resizingX && move1(point, x, 0)) {\n redrawX(g);\n moved = true;\n }\n if (resizingY && move1(point, y, 1)) {\n redrawY(g);\n moved = true;\n }\n if (moved) {\n redraw(g);\n event_({\n type: \"brush\",\n mode: dragging ? \"move\" : \"resize\"\n });\n }\n }\n function move1(point, scale, i) {\n var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], extent = i ? yExtent : xExtent, size = extent[1] - extent[0], min, max;\n if (dragging) {\n r0 -= position;\n r1 -= size + position;\n }\n min = (i ? yClamp : xClamp) ? Math.max(r0, Math.min(r1, point[i])) : point[i];\n if (dragging) {\n max = (min += position) + size;\n } else {\n if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min));\n if (position < min) {\n max = min;\n min = position;\n } else {\n max = position;\n }\n }\n if (extent[0] != min || extent[1] != max) {\n if (i) yExtentDomain = null; else xExtentDomain = null;\n extent[0] = min;\n extent[1] = max;\n return true;\n }\n }\n function brushend() {\n brushmove();\n g.style(\"pointer-events\", \"all\").selectAll(\".resize\").style(\"display\", brush.empty() ? \"none\" : null);\n d3.select(\"body\").style(\"cursor\", null);\n w.on(\"mousemove.brush\", null).on(\"mouseup.brush\", null).on(\"touchmove.brush\", null).on(\"touchend.brush\", null).on(\"keydown.brush\", null).on(\"keyup.brush\", null);\n dragRestore();\n event_({\n type: \"brushend\"\n });\n }\n }\n brush.x = function(z) {\n if (!arguments.length) return x;\n x = z;\n resizes = d3_svg_brushResizes[!x << 1 | !y];\n return brush;\n };\n brush.y = function(z) {\n if (!arguments.length) return y;\n y = z;\n resizes = d3_svg_brushResizes[!x << 1 | !y];\n return brush;\n };\n brush.clamp = function(z) {\n if (!arguments.length) return x && y ? [ xClamp, yClamp ] : x ? xClamp : y ? yClamp : null;\n if (x && y) xClamp = !!z[0], yClamp = !!z[1]; else if (x) xClamp = !!z; else if (y) yClamp = !!z;\n return brush;\n };\n brush.extent = function(z) {\n var x0, x1, y0, y1, t;\n if (!arguments.length) {\n if (x) {\n if (xExtentDomain) {\n x0 = xExtentDomain[0], x1 = xExtentDomain[1];\n } else {\n x0 = xExtent[0], x1 = xExtent[1];\n if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);\n if (x1 < x0) t = x0, x0 = x1, x1 = t;\n }\n }\n if (y) {\n if (yExtentDomain) {\n y0 = yExtentDomain[0], y1 = yExtentDomain[1];\n } else {\n y0 = yExtent[0], y1 = yExtent[1];\n if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);\n if (y1 < y0) t = y0, y0 = y1, y1 = t;\n }\n }\n return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ];\n }\n if (x) {\n x0 = z[0], x1 = z[1];\n if (y) x0 = x0[0], x1 = x1[0];\n xExtentDomain = [ x0, x1 ];\n if (x.invert) x0 = x(x0), x1 = x(x1);\n if (x1 < x0) t = x0, x0 = x1, x1 = t;\n if (x0 != xExtent[0] || x1 != xExtent[1]) xExtent = [ x0, x1 ];\n }\n if (y) {\n y0 = z[0], y1 = z[1];\n if (x) y0 = y0[1], y1 = y1[1];\n yExtentDomain = [ y0, y1 ];\n if (y.invert) y0 = y(y0), y1 = y(y1);\n if (y1 < y0) t = y0, y0 = y1, y1 = t;\n if (y0 != yExtent[0] || y1 != yExtent[1]) yExtent = [ y0, y1 ];\n }\n return brush;\n };\n brush.clear = function() {\n if (!brush.empty()) {\n xExtent = [ 0, 0 ], yExtent = [ 0, 0 ];\n xExtentDomain = yExtentDomain = null;\n }\n return brush;\n };\n brush.empty = function() {\n return !!x && xExtent[0] == xExtent[1] || !!y && yExtent[0] == yExtent[1];\n };\n return d3.rebind(brush, event, \"on\");\n };\n var d3_svg_brushCursor = {\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n };\n var d3_svg_brushResizes = [ [ \"n\", \"e\", \"s\", \"w\", \"nw\", \"ne\", \"se\", \"sw\" ], [ \"e\", \"w\" ], [ \"n\", \"s\" ], [] ];\n var d3_time_format = d3_time.format = d3_locale_enUS.timeFormat;\n var d3_time_formatUtc = d3_time_format.utc;\n var d3_time_formatIso = d3_time_formatUtc(\"%Y-%m-%dT%H:%M:%S.%LZ\");\n d3_time_format.iso = Date.prototype.toISOString && +new Date(\"2000-01-01T00:00:00.000Z\") ? d3_time_formatIsoNative : d3_time_formatIso;\n function d3_time_formatIsoNative(date) {\n return date.toISOString();\n }\n d3_time_formatIsoNative.parse = function(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n };\n d3_time_formatIsoNative.toString = d3_time_formatIso.toString;\n d3_time.second = d3_time_interval(function(date) {\n return new d3_date(Math.floor(date / 1e3) * 1e3);\n }, function(date, offset) {\n date.setTime(date.getTime() + Math.floor(offset) * 1e3);\n }, function(date) {\n return date.getSeconds();\n });\n d3_time.seconds = d3_time.second.range;\n d3_time.seconds.utc = d3_time.second.utc.range;\n d3_time.minute = d3_time_interval(function(date) {\n return new d3_date(Math.floor(date / 6e4) * 6e4);\n }, function(date, offset) {\n date.setTime(date.getTime() + Math.floor(offset) * 6e4);\n }, function(date) {\n return date.getMinutes();\n });\n d3_time.minutes = d3_time.minute.range;\n d3_time.minutes.utc = d3_time.minute.utc.range;\n d3_time.hour = d3_time_interval(function(date) {\n var timezone = date.getTimezoneOffset() / 60;\n return new d3_date((Math.floor(date / 36e5 - timezone) + timezone) * 36e5);\n }, function(date, offset) {\n date.setTime(date.getTime() + Math.floor(offset) * 36e5);\n }, function(date) {\n return date.getHours();\n });\n d3_time.hours = d3_time.hour.range;\n d3_time.hours.utc = d3_time.hour.utc.range;\n d3_time.month = d3_time_interval(function(date) {\n date = d3_time.day(date);\n date.setDate(1);\n return date;\n }, function(date, offset) {\n date.setMonth(date.getMonth() + offset);\n }, function(date) {\n return date.getMonth();\n });\n d3_time.months = d3_time.month.range;\n d3_time.months.utc = d3_time.month.utc.range;\n function d3_time_scale(linear, methods, format) {\n function scale(x) {\n return linear(x);\n }\n scale.invert = function(x) {\n return d3_time_scaleDate(linear.invert(x));\n };\n scale.domain = function(x) {\n if (!arguments.length) return linear.domain().map(d3_time_scaleDate);\n linear.domain(x);\n return scale;\n };\n function tickMethod(extent, count) {\n var span = extent[1] - extent[0], target = span / count, i = d3.bisect(d3_time_scaleSteps, target);\n return i == d3_time_scaleSteps.length ? [ methods.year, d3_scale_linearTickRange(extent.map(function(d) {\n return d / 31536e6;\n }), count)[2] ] : !i ? [ d3_time_scaleMilliseconds, d3_scale_linearTickRange(extent, count)[2] ] : methods[target / d3_time_scaleSteps[i - 1] < d3_time_scaleSteps[i] / target ? i - 1 : i];\n }\n scale.nice = function(interval, skip) {\n var domain = scale.domain(), extent = d3_scaleExtent(domain), method = interval == null ? tickMethod(extent, 10) : typeof interval === \"number\" && tickMethod(extent, interval);\n if (method) interval = method[0], skip = method[1];\n function skipped(date) {\n return !isNaN(date) && !interval.range(date, d3_time_scaleDate(+date + 1), skip).length;\n }\n return scale.domain(d3_scale_nice(domain, skip > 1 ? {\n floor: function(date) {\n while (skipped(date = interval.floor(date))) date = d3_time_scaleDate(date - 1);\n return date;\n },\n ceil: function(date) {\n while (skipped(date = interval.ceil(date))) date = d3_time_scaleDate(+date + 1);\n return date;\n }\n } : interval));\n };\n scale.ticks = function(interval, skip) {\n var extent = d3_scaleExtent(scale.domain()), method = interval == null ? tickMethod(extent, 10) : typeof interval === \"number\" ? tickMethod(extent, interval) : !interval.range && [ {\n range: interval\n }, skip ];\n if (method) interval = method[0], skip = method[1];\n return interval.range(extent[0], d3_time_scaleDate(+extent[1] + 1), skip < 1 ? 1 : skip);\n };\n scale.tickFormat = function() {\n return format;\n };\n scale.copy = function() {\n return d3_time_scale(linear.copy(), methods, format);\n };\n return d3_scale_linearRebind(scale, linear);\n }\n function d3_time_scaleDate(t) {\n return new Date(t);\n }\n var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ];\n var d3_time_scaleLocalMethods = [ [ d3_time.second, 1 ], [ d3_time.second, 5 ], [ d3_time.second, 15 ], [ d3_time.second, 30 ], [ d3_time.minute, 1 ], [ d3_time.minute, 5 ], [ d3_time.minute, 15 ], [ d3_time.minute, 30 ], [ d3_time.hour, 1 ], [ d3_time.hour, 3 ], [ d3_time.hour, 6 ], [ d3_time.hour, 12 ], [ d3_time.day, 1 ], [ d3_time.day, 2 ], [ d3_time.week, 1 ], [ d3_time.month, 1 ], [ d3_time.month, 3 ], [ d3_time.year, 1 ] ];\n var d3_time_scaleLocalFormat = d3_time_format.multi([ [ \".%L\", function(d) {\n return d.getMilliseconds();\n } ], [ \":%S\", function(d) {\n return d.getSeconds();\n } ], [ \"%I:%M\", function(d) {\n return d.getMinutes();\n } ], [ \"%I %p\", function(d) {\n return d.getHours();\n } ], [ \"%a %d\", function(d) {\n return d.getDay() && d.getDate() != 1;\n } ], [ \"%b %d\", function(d) {\n return d.getDate() != 1;\n } ], [ \"%B\", function(d) {\n return d.getMonth();\n } ], [ \"%Y\", d3_true ] ]);\n var d3_time_scaleMilliseconds = {\n range: function(start, stop, step) {\n return d3.range(Math.ceil(start / step) * step, +stop, step).map(d3_time_scaleDate);\n },\n floor: d3_identity,\n ceil: d3_identity\n };\n d3_time_scaleLocalMethods.year = d3_time.year;\n d3_time.scale = function() {\n return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat);\n };\n var d3_time_scaleUtcMethods = d3_time_scaleLocalMethods.map(function(m) {\n return [ m[0].utc, m[1] ];\n });\n var d3_time_scaleUtcFormat = d3_time_formatUtc.multi([ [ \".%L\", function(d) {\n return d.getUTCMilliseconds();\n } ], [ \":%S\", function(d) {\n return d.getUTCSeconds();\n } ], [ \"%I:%M\", function(d) {\n return d.getUTCMinutes();\n } ], [ \"%I %p\", function(d) {\n return d.getUTCHours();\n } ], [ \"%a %d\", function(d) {\n return d.getUTCDay() && d.getUTCDate() != 1;\n } ], [ \"%b %d\", function(d) {\n return d.getUTCDate() != 1;\n } ], [ \"%B\", function(d) {\n return d.getUTCMonth();\n } ], [ \"%Y\", d3_true ] ]);\n d3_time_scaleUtcMethods.year = d3_time.year.utc;\n d3_time.scale.utc = function() {\n return d3_time_scale(d3.scale.linear(), d3_time_scaleUtcMethods, d3_time_scaleUtcFormat);\n };\n d3.text = d3_xhrType(function(request) {\n return request.responseText;\n });\n d3.json = function(url, callback) {\n return d3_xhr(url, \"application/json\", d3_json, callback);\n };\n function d3_json(request) {\n return JSON.parse(request.responseText);\n }\n d3.html = function(url, callback) {\n return d3_xhr(url, \"text/html\", d3_html, callback);\n };\n function d3_html(request) {\n var range = d3_document.createRange();\n range.selectNode(d3_document.body);\n return range.createContextualFragment(request.responseText);\n }\n d3.xml = d3_xhrType(function(request) {\n return request.responseXML;\n });\n if (typeof define === \"function\" && define.amd) this.d3 = d3, define(d3); else if (typeof module === \"object\" && module.exports) module.exports = d3; else this.d3 = d3;\n}();","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nexport default map;\n","import map from \"./map\";\n\nexport default function() {\n var keys = [],\n sortKeys = [],\n sortValues,\n rollup,\n nest;\n\n function apply(array, depth, createResult, setResult) {\n if (depth >= keys.length) {\n if (sortValues != null) array.sort(sortValues);\n return rollup != null ? rollup(array) : array;\n }\n\n var i = -1,\n n = array.length,\n key = keys[depth++],\n keyValue,\n value,\n valuesByKey = map(),\n values,\n result = createResult();\n\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n values.push(value);\n } else {\n valuesByKey.set(keyValue, [value]);\n }\n }\n\n valuesByKey.each(function(values, key) {\n setResult(result, key, apply(values, depth, createResult, setResult));\n });\n\n return result;\n }\n\n function entries(map, depth) {\n if (++depth > keys.length) return map;\n var array, sortKey = sortKeys[depth - 1];\n if (rollup != null && depth >= keys.length) array = map.entries();\n else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });\n return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;\n }\n\n return nest = {\n object: function(array) { return apply(array, 0, createObject, setObject); },\n map: function(array) { return apply(array, 0, createMap, setMap); },\n entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },\n key: function(d) { keys.push(d); return nest; },\n sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },\n sortValues: function(order) { sortValues = order; return nest; },\n rollup: function(f) { rollup = f; return nest; }\n };\n}\n\nfunction createObject() {\n return {};\n}\n\nfunction setObject(object, key, value) {\n object[key] = value;\n}\n\nfunction createMap() {\n return map();\n}\n\nfunction setMap(map, key, value) {\n map.set(key, value);\n}\n","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nexport default set;\n","export {default as nest} from \"./nest\";\nexport {default as set} from \"./set\";\nexport {default as map} from \"./map\";\nexport {default as keys} from \"./keys\";\nexport {default as values} from \"./values\";\nexport {default as entries} from \"./entries\";\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = function eventData(out, pt, trace, cd, pointNumber) {\n // standard cartesian event data\n out.x = 'xVal' in pt ? pt.xVal : pt.x;\n out.y = 'yVal' in pt ? pt.yVal : pt.y;\n\n // for 2d histograms\n if('zLabelVal' in pt) out.z = pt.zLabelVal;\n\n if(pt.xa) out.xaxis = pt.xa;\n if(pt.ya) out.yaxis = pt.ya;\n\n // specific to histogram - CDFs do not have pts (yet?)\n if(!(trace.cumulative || {}).enabled) {\n var pts = Array.isArray(pointNumber) ?\n cd[0].pts[pointNumber[0]][pointNumber[1]] :\n cd[pointNumber].pts;\n\n out.pointNumbers = pts;\n out.binNumber = out.pointNumber;\n delete out.pointNumber;\n delete out.pointIndex;\n\n var pointIndices;\n if(trace._indexToPoints) {\n pointIndices = [];\n for(var i = 0; i < pts.length; i++) {\n pointIndices = pointIndices.concat(trace._indexToPoints[pts[i]]);\n }\n } else {\n pointIndices = pts;\n }\n\n out.pointIndices = pointIndices;\n }\n\n return out;\n};\n","module.exports = translate;\n\n/**\n * Translate a mat4 by the given vector\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the matrix to translate\n * @param {vec3} v vector to translate by\n * @returns {mat4} out\n */\nfunction translate(out, a, v) {\n var x = v[0], y = v[1], z = v[2],\n a00, a01, a02, a03,\n a10, a11, a12, a13,\n a20, a21, a22, a23;\n\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0]; a01 = a[1]; a02 = a[2]; a03 = a[3];\n a10 = a[4]; a11 = a[5]; a12 = a[6]; a13 = a[7];\n a20 = a[8]; a21 = a[9]; a22 = a[10]; a23 = a[11];\n\n out[0] = a00; out[1] = a01; out[2] = a02; out[3] = a03;\n out[4] = a10; out[5] = a11; out[6] = a12; out[7] = a13;\n out[8] = a20; out[9] = a21; out[10] = a22; out[11] = a23;\n\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n\n return out;\n};","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = function eventData(out, pt /* , trace, cd, pointNumber */) {\n // standard cartesian event data\n out.x = 'xVal' in pt ? pt.xVal : pt.x;\n out.y = 'yVal' in pt ? pt.yVal : pt.y;\n\n // for funnel\n if('percentInitial' in pt) out.percentInitial = pt.percentInitial;\n if('percentPrevious' in pt) out.percentPrevious = pt.percentPrevious;\n if('percentTotal' in pt) out.percentTotal = pt.percentTotal;\n\n if(pt.xa) out.xaxis = pt.xa;\n if(pt.ya) out.yaxis = pt.ya;\n\n return out;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar createMesh = require('gl-mesh3d');\n\nvar parseColorScale = require('../../lib/gl_format_color').parseColorScale;\nvar str2RgbaArray = require('../../lib/str2rgbarray');\nvar extractOpts = require('../../components/colorscale').extractOpts;\nvar zip3 = require('../../plots/gl3d/zip3');\n\nvar findNearestOnAxis = require('../isosurface/convert').findNearestOnAxis;\nvar generateIsoMeshes = require('../isosurface/convert').generateIsoMeshes;\n\nfunction VolumeTrace(scene, mesh, uid) {\n this.scene = scene;\n this.uid = uid;\n this.mesh = mesh;\n this.name = '';\n this.data = null;\n this.showContour = false;\n}\n\nvar proto = VolumeTrace.prototype;\n\nproto.handlePick = function(selection) {\n if(selection.object === this.mesh) {\n var rawId = selection.data.index;\n\n var x = this.data._meshX[rawId];\n var y = this.data._meshY[rawId];\n var z = this.data._meshZ[rawId];\n\n var height = this.data._Ys.length;\n var depth = this.data._Zs.length;\n\n var i = findNearestOnAxis(x, this.data._Xs).id;\n var j = findNearestOnAxis(y, this.data._Ys).id;\n var k = findNearestOnAxis(z, this.data._Zs).id;\n\n var selectIndex = selection.index = k + depth * j + depth * height * i;\n\n selection.traceCoordinate = [\n this.data._meshX[selectIndex],\n this.data._meshY[selectIndex],\n this.data._meshZ[selectIndex],\n this.data._value[selectIndex]\n ];\n\n var text = this.data.hovertext || this.data.text;\n if(Array.isArray(text) && text[selectIndex] !== undefined) {\n selection.textLabel = text[selectIndex];\n } else if(text) {\n selection.textLabel = text;\n }\n\n return true;\n }\n};\n\nproto.update = function(data) {\n var scene = this.scene;\n var layout = scene.fullSceneLayout;\n\n this.data = generateIsoMeshes(data);\n\n // Unpack position data\n function toDataCoords(axis, coord, scale, calendar) {\n return coord.map(function(x) {\n return axis.d2l(x, 0, calendar) * scale;\n });\n }\n\n var positions = zip3(\n toDataCoords(layout.xaxis, data._meshX, scene.dataScale[0], data.xcalendar),\n toDataCoords(layout.yaxis, data._meshY, scene.dataScale[1], data.ycalendar),\n toDataCoords(layout.zaxis, data._meshZ, scene.dataScale[2], data.zcalendar));\n\n var cells = zip3(data._meshI, data._meshJ, data._meshK);\n\n var config = {\n positions: positions,\n cells: cells,\n lightPosition: [data.lightposition.x, data.lightposition.y, data.lightposition.z],\n ambient: data.lighting.ambient,\n diffuse: data.lighting.diffuse,\n specular: data.lighting.specular,\n roughness: data.lighting.roughness,\n fresnel: data.lighting.fresnel,\n vertexNormalsEpsilon: data.lighting.vertexnormalsepsilon,\n faceNormalsEpsilon: data.lighting.facenormalsepsilon,\n opacity: data.opacity,\n opacityscale: data.opacityscale,\n contourEnable: data.contour.show,\n contourColor: str2RgbaArray(data.contour.color).slice(0, 3),\n contourWidth: data.contour.width,\n useFacetNormals: data.flatshading\n };\n\n var cOpts = extractOpts(data);\n config.vertexIntensity = data._meshIntensity;\n config.vertexIntensityBounds = [cOpts.min, cOpts.max];\n config.colormap = parseColorScale(data);\n\n // Update mesh\n this.mesh.update(config);\n};\n\nproto.dispose = function() {\n this.scene.glplot.remove(this.mesh);\n this.mesh.dispose();\n};\n\nfunction createVolumeTrace(scene, data) {\n var gl = scene.glplot.gl;\n var mesh = createMesh({gl: gl});\n var result = new VolumeTrace(scene, mesh, data.uid);\n\n mesh._trace = result;\n result.update(data);\n scene.glplot.add(mesh);\n return result;\n}\n\nmodule.exports = createVolumeTrace;\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\n/** Filter out object items with visible !== true\n * insider array container.\n *\n * @param {array of objects} container\n * @return {array of objects} of length <= container\n *\n */\nmodule.exports = function filterVisible(container) {\n var filterFn = isCalcData(container) ? calcDataFilter : baseFilter;\n var out = [];\n\n for(var i = 0; i < container.length; i++) {\n var item = container[i];\n if(filterFn(item)) out.push(item);\n }\n\n return out;\n};\n\nfunction baseFilter(item) {\n return item.visible === true;\n}\n\nfunction calcDataFilter(item) {\n var trace = item[0].trace;\n return trace.visible === true && trace._length !== 0;\n}\n\nfunction isCalcData(cont) {\n return (\n Array.isArray(cont) &&\n Array.isArray(cont[0]) &&\n cont[0][0] &&\n cont[0][0].trace\n );\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var trace = cd[0].trace;\n var isFunnel = (trace.type === 'funnel');\n var isHorizontal = (trace.orientation === 'h');\n var selection = [];\n var i;\n\n if(selectionTester === false) {\n // clear selection\n for(i = 0; i < cd.length; i++) {\n cd[i].selected = 0;\n }\n } else {\n for(i = 0; i < cd.length; i++) {\n var di = cd[i];\n var ct = 'ct' in di ? di.ct : getCentroid(di, xa, ya, isHorizontal, isFunnel);\n\n if(selectionTester.contains(ct, false, i, searchInfo)) {\n selection.push({\n pointNumber: i,\n x: xa.c2d(di.x),\n y: ya.c2d(di.y)\n });\n di.selected = 1;\n } else {\n di.selected = 0;\n }\n }\n }\n\n return selection;\n};\n\nfunction getCentroid(d, xa, ya, isHorizontal, isFunnel) {\n var x0 = xa.c2p(isHorizontal ? d.s0 : d.p0, true);\n var x1 = xa.c2p(isHorizontal ? d.s1 : d.p1, true);\n var y0 = ya.c2p(isHorizontal ? d.p0 : d.s0, true);\n var y1 = ya.c2p(isHorizontal ? d.p1 : d.s1, true);\n\n if(isFunnel) {\n return [(x0 + x1) / 2, (y0 + y1) / 2];\n } else {\n if(isHorizontal) {\n return [x1, (y0 + y1) / 2];\n } else {\n return [(x0 + x1) / 2, y1];\n }\n }\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/choroplethmapbox');\n","\"use strict\";\n\nvar objToString = Object.prototype.toString\n , isFunctionStringTag = RegExp.prototype.test.bind(/^[object [A-Za-z0-9]*Function]$/);\n\nmodule.exports = function (value) {\n\treturn typeof value === \"function\" && isFunctionStringTag(objToString.call(value));\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar Lib = require('../../lib');\n\n\nmodule.exports = function hasColorbar(container) {\n return Lib.isPlainObject(container.colorbar);\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar isNumeric = require('fast-isnumeric');\nvar Lib = require('../../lib');\n\nvar Axes = require('../../plots/cartesian/axes');\nvar BADNUM = require('../../constants/numerical').BADNUM;\n\nvar subTypes = require('./subtypes');\nvar calcColorscale = require('./colorscale_calc');\nvar arraysToCalcdata = require('./arrays_to_calcdata');\nvar calcSelection = require('./calc_selection');\n\nfunction calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var xa = Axes.getFromId(gd, trace.xaxis || 'x');\n var ya = Axes.getFromId(gd, trace.yaxis || 'y');\n var x = xa.makeCalcdata(trace, 'x');\n var y = ya.makeCalcdata(trace, 'y');\n var serieslen = trace._length;\n var cd = new Array(serieslen);\n var ids = trace.ids;\n var stackGroupOpts = getStackOpts(trace, fullLayout, xa, ya);\n var interpolateGaps = false;\n var isV, i, j, k, interpolate, vali;\n\n setFirstScatter(fullLayout, trace);\n\n var xAttr = 'x';\n var yAttr = 'y';\n var posAttr;\n if(stackGroupOpts) {\n Lib.pushUnique(stackGroupOpts.traceIndices, trace._expandedIndex);\n isV = stackGroupOpts.orientation === 'v';\n\n // size, like we use for bar\n if(isV) {\n yAttr = 's';\n posAttr = 'x';\n } else {\n xAttr = 's';\n posAttr = 'y';\n }\n interpolate = stackGroupOpts.stackgaps === 'interpolate';\n } else {\n var ppad = calcMarkerSize(trace, serieslen);\n calcAxisExpansion(gd, trace, xa, ya, x, y, ppad);\n }\n\n for(i = 0; i < serieslen; i++) {\n var cdi = cd[i] = {};\n var xValid = isNumeric(x[i]);\n var yValid = isNumeric(y[i]);\n if(xValid && yValid) {\n cdi[xAttr] = x[i];\n cdi[yAttr] = y[i];\n } else if(stackGroupOpts && (isV ? xValid : yValid)) {\n // if we're stacking we need to hold on to all valid positions\n // even with invalid sizes\n\n cdi[posAttr] = isV ? x[i] : y[i];\n cdi.gap = true;\n if(interpolate) {\n cdi.s = BADNUM;\n interpolateGaps = true;\n } else {\n cdi.s = 0;\n }\n } else {\n cdi[xAttr] = cdi[yAttr] = BADNUM;\n }\n\n if(ids) {\n cdi.id = String(ids[i]);\n }\n }\n\n arraysToCalcdata(cd, trace);\n calcColorscale(gd, trace);\n calcSelection(cd, trace);\n\n if(stackGroupOpts) {\n // remove bad positions and sort\n // note that original indices get added to cd in arraysToCalcdata\n i = 0;\n while(i < cd.length) {\n if(cd[i][posAttr] === BADNUM) {\n cd.splice(i, 1);\n } else i++;\n }\n\n Lib.sort(cd, function(a, b) {\n return (a[posAttr] - b[posAttr]) || (a.i - b.i);\n });\n\n if(interpolateGaps) {\n // first fill the beginning with constant from the first point\n i = 0;\n while(i < cd.length - 1 && cd[i].gap) {\n i++;\n }\n vali = cd[i].s;\n if(!vali) vali = cd[i].s = 0; // in case of no data AT ALL in this trace - use 0\n for(j = 0; j < i; j++) {\n cd[j].s = vali;\n }\n // then fill the end with constant from the last point\n k = cd.length - 1;\n while(k > i && cd[k].gap) {\n k--;\n }\n vali = cd[k].s;\n for(j = cd.length - 1; j > k; j--) {\n cd[j].s = vali;\n }\n // now interpolate internal gaps linearly\n while(i < k) {\n i++;\n if(cd[i].gap) {\n j = i + 1;\n while(cd[j].gap) {\n j++;\n }\n var pos0 = cd[i - 1][posAttr];\n var size0 = cd[i - 1].s;\n var m = (cd[j].s - size0) / (cd[j][posAttr] - pos0);\n while(i < j) {\n cd[i].s = size0 + (cd[i][posAttr] - pos0) * m;\n i++;\n }\n }\n }\n }\n }\n\n return cd;\n}\n\nfunction calcAxisExpansion(gd, trace, xa, ya, x, y, ppad) {\n var serieslen = trace._length;\n var fullLayout = gd._fullLayout;\n var xId = xa._id;\n var yId = ya._id;\n var firstScatter = fullLayout._firstScatter[firstScatterGroup(trace)] === trace.uid;\n var stackOrientation = (getStackOpts(trace, fullLayout, xa, ya) || {}).orientation;\n var fill = trace.fill;\n\n // cancel minimum tick spacings (only applies to bars and boxes)\n xa._minDtick = 0;\n ya._minDtick = 0;\n\n // check whether bounds should be tight, padded, extended to zero...\n // most cases both should be padded on both ends, so start with that.\n var xOptions = {padded: true};\n var yOptions = {padded: true};\n\n if(ppad) {\n xOptions.ppad = yOptions.ppad = ppad;\n }\n\n // TODO: text size\n\n var openEnded = serieslen < 2 || (x[0] !== x[serieslen - 1]) || (y[0] !== y[serieslen - 1]);\n\n if(openEnded && (\n (fill === 'tozerox') ||\n ((fill === 'tonextx') && (firstScatter || stackOrientation === 'h'))\n )) {\n // include zero (tight) and extremes (padded) if fill to zero\n // (unless the shape is closed, then it's just filling the shape regardless)\n\n xOptions.tozero = true;\n } else if(!(trace.error_y || {}).visible && (\n // if no error bars, markers or text, or fill to y=0 remove x padding\n\n (fill === 'tonexty' || fill === 'tozeroy') ||\n (!subTypes.hasMarkers(trace) && !subTypes.hasText(trace))\n )) {\n xOptions.padded = false;\n xOptions.ppad = 0;\n }\n\n if(openEnded && (\n (fill === 'tozeroy') ||\n ((fill === 'tonexty') && (firstScatter || stackOrientation === 'v'))\n )) {\n // now check for y - rather different logic, though still mostly padded both ends\n // include zero (tight) and extremes (padded) if fill to zero\n // (unless the shape is closed, then it's just filling the shape regardless)\n\n yOptions.tozero = true;\n } else if(fill === 'tonextx' || fill === 'tozerox') {\n // tight y: any x fill\n\n yOptions.padded = false;\n }\n\n // N.B. asymmetric splom traces call this with blank {} xa or ya\n if(xId) trace._extremes[xId] = Axes.findExtremes(xa, x, xOptions);\n if(yId) trace._extremes[yId] = Axes.findExtremes(ya, y, yOptions);\n}\n\nfunction calcMarkerSize(trace, serieslen) {\n if(!subTypes.hasMarkers(trace)) return;\n\n // Treat size like x or y arrays --- Run d2c\n // this needs to go before ppad computation\n var marker = trace.marker;\n var sizeref = 1.6 * (trace.marker.sizeref || 1);\n var markerTrans;\n\n if(trace.marker.sizemode === 'area') {\n markerTrans = function(v) {\n return Math.max(Math.sqrt((v || 0) / sizeref), 3);\n };\n } else {\n markerTrans = function(v) {\n return Math.max((v || 0) / sizeref, 3);\n };\n }\n\n if(Lib.isArrayOrTypedArray(marker.size)) {\n // I tried auto-type but category and dates dont make much sense.\n var ax = {type: 'linear'};\n Axes.setConvert(ax);\n\n var s = ax.makeCalcdata(trace.marker, 'size');\n\n var sizeOut = new Array(serieslen);\n for(var i = 0; i < serieslen; i++) {\n sizeOut[i] = markerTrans(s[i]);\n }\n return sizeOut;\n } else {\n return markerTrans(marker.size);\n }\n}\n\n/**\n * mark the first scatter trace for each subplot\n * note that scatter and scattergl each get their own first trace\n * note also that I'm doing this during calc rather than supplyDefaults\n * so I don't need to worry about transforms, but if we ever do\n * per-trace calc this will get confused.\n */\nfunction setFirstScatter(fullLayout, trace) {\n var group = firstScatterGroup(trace);\n var firstScatter = fullLayout._firstScatter;\n if(!firstScatter[group]) firstScatter[group] = trace.uid;\n}\n\nfunction firstScatterGroup(trace) {\n var stackGroup = trace.stackgroup;\n return trace.xaxis + trace.yaxis + trace.type +\n (stackGroup ? '-' + stackGroup : '');\n}\n\nfunction getStackOpts(trace, fullLayout, xa, ya) {\n var stackGroup = trace.stackgroup;\n if(!stackGroup) return;\n var stackOpts = fullLayout._scatterStackOpts[xa._id + ya._id][stackGroup];\n var stackAx = stackOpts.orientation === 'v' ? ya : xa;\n // Allow stacking only on numeric axes\n // calc is a little late to be figuring this out, but during supplyDefaults\n // we don't know the axis type yet\n if(stackAx.type === 'linear' || stackAx.type === 'log') return stackOpts;\n}\n\nmodule.exports = {\n calc: calc,\n calcMarkerSize: calcMarkerSize,\n calcAxisExpansion: calcAxisExpansion,\n setFirstScatter: setFirstScatter,\n getStackOpts: getStackOpts\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar drawModule = require('./draw');\nvar clickModule = require('./click');\n\nmodule.exports = {\n moduleType: 'component',\n name: 'annotations',\n\n layoutAttributes: require('./attributes'),\n supplyLayoutDefaults: require('./defaults'),\n includeBasePlot: require('../../plots/cartesian/include_components')('annotations'),\n\n calcAutorange: require('./calc_autorange'),\n draw: drawModule.draw,\n drawOne: drawModule.drawOne,\n drawRaw: drawModule.drawRaw,\n\n hasClickToShow: clickModule.hasClickToShow,\n onClick: clickModule.onClick,\n\n convertCoords: require('./convert_coords')\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Registry = require('../../registry');\nvar Lib = require('../../lib');\n\nvar layoutAttributes = require('./layout_attributes');\nvar handleTickValueDefaults = require('./tick_value_defaults');\nvar handleTickMarkDefaults = require('./tick_mark_defaults');\nvar handleTickLabelDefaults = require('./tick_label_defaults');\nvar handleCategoryOrderDefaults = require('./category_order_defaults');\nvar handleLineGridDefaults = require('./line_grid_defaults');\nvar setConvert = require('./set_convert');\n\n/**\n * options: object containing:\n *\n * letter: 'x' or 'y'\n * title: name of the axis (ie 'Colorbar') to go in default title\n * font: the default font to inherit\n * outerTicks: boolean, should ticks default to outside?\n * showGrid: boolean, should gridlines be shown by default?\n * noHover: boolean, this axis doesn't support hover effects?\n * noTickson: boolean, this axis doesn't support 'tickson'\n * data: the plot data, used to manage categories\n * bgColor: the plot background color, to calculate default gridline colors\n * calendar:\n * splomStash:\n * visibleDflt: boolean\n * reverseDflt: boolean\n * automargin: boolean\n */\nmodule.exports = function handleAxisDefaults(containerIn, containerOut, coerce, options, layoutOut) {\n var letter = options.letter;\n var font = options.font || {};\n var splomStash = options.splomStash || {};\n\n var visible = coerce('visible', !options.visibleDflt);\n\n var axType = containerOut.type;\n\n if(axType === 'date') {\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleDefaults');\n handleCalendarDefaults(containerIn, containerOut, 'calendar', options.calendar);\n }\n\n setConvert(containerOut, layoutOut);\n\n var autorangeDflt = !containerOut.isValidRange(containerIn.range);\n if(autorangeDflt && options.reverseDflt) autorangeDflt = 'reversed';\n var autoRange = coerce('autorange', autorangeDflt);\n if(autoRange && (axType === 'linear' || axType === '-')) coerce('rangemode');\n\n coerce('range');\n containerOut.cleanRange();\n\n handleCategoryOrderDefaults(containerIn, containerOut, coerce, options);\n\n if(axType !== 'category' && !options.noHover) coerce('hoverformat');\n\n var dfltColor = coerce('color');\n // if axis.color was provided, use it for fonts too; otherwise,\n // inherit from global font color in case that was provided.\n // Compare to dflt rather than to containerIn, so we can provide color via\n // template too.\n var dfltFontColor = (dfltColor !== layoutAttributes.color.dflt) ? dfltColor : font.color;\n // try to get default title from splom trace, fallback to graph-wide value\n var dfltTitle = splomStash.label || layoutOut._dfltTitle[letter];\n\n handleTickLabelDefaults(containerIn, containerOut, coerce, axType, options, {pass: 1});\n if(!visible) return containerOut;\n\n coerce('title.text', dfltTitle);\n Lib.coerceFont(coerce, 'title.font', {\n family: font.family,\n size: Math.round(font.size * 1.2),\n color: dfltFontColor\n });\n\n handleTickValueDefaults(containerIn, containerOut, coerce, axType);\n handleTickLabelDefaults(containerIn, containerOut, coerce, axType, options, {pass: 2});\n handleTickMarkDefaults(containerIn, containerOut, coerce, options);\n handleLineGridDefaults(containerIn, containerOut, coerce, {\n dfltColor: dfltColor,\n bgColor: options.bgColor,\n showGrid: options.showGrid,\n attributes: layoutAttributes\n });\n\n if(containerOut.showline || containerOut.ticks) coerce('mirror');\n\n if(options.automargin) coerce('automargin');\n\n var isMultiCategory = containerOut.type === 'multicategory';\n\n if(!options.noTickson &&\n (containerOut.type === 'category' || isMultiCategory) &&\n (containerOut.ticks || containerOut.showgrid)\n ) {\n var ticksonDflt;\n if(isMultiCategory) ticksonDflt = 'boundaries';\n coerce('tickson', ticksonDflt);\n }\n\n if(isMultiCategory) {\n var showDividers = coerce('showdividers');\n if(showDividers) {\n coerce('dividercolor');\n coerce('dividerwidth');\n }\n }\n\n return containerOut;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\n\n// arrayOk attributes, merge them into calcdata array\nmodule.exports = function arraysToCalcdata(cd, trace) {\n for(var i = 0; i < cd.length; i++) cd[i].i = i;\n\n Lib.mergeArray(trace.text, cd, 'tx');\n Lib.mergeArray(trace.hovertext, cd, 'htx');\n\n var marker = trace.marker;\n if(marker) {\n Lib.mergeArray(marker.opacity, cd, 'mo');\n Lib.mergeArray(marker.color, cd, 'mc');\n\n var markerLine = marker.line;\n if(markerLine) {\n Lib.mergeArray(markerLine.color, cd, 'mlc');\n Lib.mergeArrayCastPositive(markerLine.width, cd, 'mlw');\n }\n }\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar helpers = require('@turf/helpers');\n\n/**\n * Callback for coordEach\n *\n * @callback coordEachCallback\n * @param {Array} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n/**\n * Iterate over coordinates in any GeoJSON object, similar to Array.forEach()\n *\n * @name coordEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentCoord, coordIndex, featureIndex, multiFeatureIndex)\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordEach(features, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * });\n */\nfunction coordEach(geojson, callback, excludeWrapCoord) {\n // Handles null Geometry -- Skips this GeoJSON\n if (geojson === null) return;\n var j, k, l, geometry, stopG, coords,\n geometryMaybeCollection,\n wrapShrink = 0,\n coordIndex = 0,\n isGeometryCollection,\n type = geojson.type,\n isFeatureCollection = type === 'FeatureCollection',\n isFeature = type === 'Feature',\n stop = isFeatureCollection ? geojson.features.length : 1;\n\n // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n for (var featureIndex = 0; featureIndex < stop; featureIndex++) {\n geometryMaybeCollection = (isFeatureCollection ? geojson.features[featureIndex].geometry :\n (isFeature ? geojson.geometry : geojson));\n isGeometryCollection = (geometryMaybeCollection) ? geometryMaybeCollection.type === 'GeometryCollection' : false;\n stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1;\n\n for (var geomIndex = 0; geomIndex < stopG; geomIndex++) {\n var multiFeatureIndex = 0;\n var geometryIndex = 0;\n geometry = isGeometryCollection ?\n geometryMaybeCollection.geometries[geomIndex] : geometryMaybeCollection;\n\n // Handles null Geometry -- Skips this geometry\n if (geometry === null) continue;\n coords = geometry.coordinates;\n var geomType = geometry.type;\n\n wrapShrink = (excludeWrapCoord && (geomType === 'Polygon' || geomType === 'MultiPolygon')) ? 1 : 0;\n\n switch (geomType) {\n case null:\n break;\n case 'Point':\n if (callback(coords, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n multiFeatureIndex++;\n break;\n case 'LineString':\n case 'MultiPoint':\n for (j = 0; j < coords.length; j++) {\n if (callback(coords[j], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n if (geomType === 'MultiPoint') multiFeatureIndex++;\n }\n if (geomType === 'LineString') multiFeatureIndex++;\n break;\n case 'Polygon':\n case 'MultiLineString':\n for (j = 0; j < coords.length; j++) {\n for (k = 0; k < coords[j].length - wrapShrink; k++) {\n if (callback(coords[j][k], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n }\n if (geomType === 'MultiLineString') multiFeatureIndex++;\n if (geomType === 'Polygon') geometryIndex++;\n }\n if (geomType === 'Polygon') multiFeatureIndex++;\n break;\n case 'MultiPolygon':\n for (j = 0; j < coords.length; j++) {\n geometryIndex = 0;\n for (k = 0; k < coords[j].length; k++) {\n for (l = 0; l < coords[j][k].length - wrapShrink; l++) {\n if (callback(coords[j][k][l], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n }\n geometryIndex++;\n }\n multiFeatureIndex++;\n }\n break;\n case 'GeometryCollection':\n for (j = 0; j < geometry.geometries.length; j++)\n if (coordEach(geometry.geometries[j], callback, excludeWrapCoord) === false) return false;\n break;\n default:\n throw new Error('Unknown Geometry Type');\n }\n }\n }\n}\n\n/**\n * Callback for coordReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback coordReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Array} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * Starts at index 0, if an initialValue is provided, and at index 1 otherwise.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n/**\n * Reduce coordinates in any GeoJSON object, similar to Array.reduce()\n *\n * @name coordReduce\n * @param {FeatureCollection|Geometry|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentCoord, coordIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordReduce(features, function (previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=previousValue\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * return currentCoord;\n * });\n */\nfunction coordReduce(geojson, callback, initialValue, excludeWrapCoord) {\n var previousValue = initialValue;\n coordEach(geojson, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n if (coordIndex === 0 && initialValue === undefined) previousValue = currentCoord;\n else previousValue = callback(previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex);\n }, excludeWrapCoord);\n return previousValue;\n}\n\n/**\n * Callback for propEach\n *\n * @callback propEachCallback\n * @param {Object} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Iterate over properties in any GeoJSON object, similar to Array.forEach()\n *\n * @name propEach\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentProperties, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propEach(features, function (currentProperties, featureIndex) {\n * //=currentProperties\n * //=featureIndex\n * });\n */\nfunction propEach(geojson, callback) {\n var i;\n switch (geojson.type) {\n case 'FeatureCollection':\n for (i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i].properties, i) === false) break;\n }\n break;\n case 'Feature':\n callback(geojson.properties, 0);\n break;\n }\n}\n\n\n/**\n * Callback for propReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback propReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {*} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Reduce properties in any GeoJSON object into a single value,\n * similar to how Array.reduce works. However, in this case we lazily run\n * the reduction, so an array of all properties is unnecessary.\n *\n * @name propReduce\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentProperties, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propReduce(features, function (previousValue, currentProperties, featureIndex) {\n * //=previousValue\n * //=currentProperties\n * //=featureIndex\n * return currentProperties\n * });\n */\nfunction propReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n propEach(geojson, function (currentProperties, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined) previousValue = currentProperties;\n else previousValue = callback(previousValue, currentProperties, featureIndex);\n });\n return previousValue;\n}\n\n/**\n * Callback for featureEach\n *\n * @callback featureEachCallback\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Iterate over features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name featureEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.featureEach(features, function (currentFeature, featureIndex) {\n * //=currentFeature\n * //=featureIndex\n * });\n */\nfunction featureEach(geojson, callback) {\n if (geojson.type === 'Feature') {\n callback(geojson, 0);\n } else if (geojson.type === 'FeatureCollection') {\n for (var i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i], i) === false) break;\n }\n }\n}\n\n/**\n * Callback for featureReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback featureReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Reduce features in any GeoJSON object, similar to Array.reduce().\n *\n * @name featureReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.featureReduce(features, function (previousValue, currentFeature, featureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * return currentFeature\n * });\n */\nfunction featureReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n featureEach(geojson, function (currentFeature, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined) previousValue = currentFeature;\n else previousValue = callback(previousValue, currentFeature, featureIndex);\n });\n return previousValue;\n}\n\n/**\n * Get all coordinates from any GeoJSON object.\n *\n * @name coordAll\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @returns {Array>} coordinate position array\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * var coords = turf.coordAll(features);\n * //= [[26, 37], [36, 53]]\n */\nfunction coordAll(geojson) {\n var coords = [];\n coordEach(geojson, function (coord) {\n coords.push(coord);\n });\n return coords;\n}\n\n/**\n * Callback for geomEach\n *\n * @callback geomEachCallback\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n/**\n * Iterate over each geometry in any GeoJSON object, similar to Array.forEach()\n *\n * @name geomEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomEach(features, function (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * });\n */\nfunction geomEach(geojson, callback) {\n var i, j, g, geometry, stopG,\n geometryMaybeCollection,\n isGeometryCollection,\n featureProperties,\n featureBBox,\n featureId,\n featureIndex = 0,\n isFeatureCollection = geojson.type === 'FeatureCollection',\n isFeature = geojson.type === 'Feature',\n stop = isFeatureCollection ? geojson.features.length : 1;\n\n // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n for (i = 0; i < stop; i++) {\n\n geometryMaybeCollection = (isFeatureCollection ? geojson.features[i].geometry :\n (isFeature ? geojson.geometry : geojson));\n featureProperties = (isFeatureCollection ? geojson.features[i].properties :\n (isFeature ? geojson.properties : {}));\n featureBBox = (isFeatureCollection ? geojson.features[i].bbox :\n (isFeature ? geojson.bbox : undefined));\n featureId = (isFeatureCollection ? geojson.features[i].id :\n (isFeature ? geojson.id : undefined));\n isGeometryCollection = (geometryMaybeCollection) ? geometryMaybeCollection.type === 'GeometryCollection' : false;\n stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1;\n\n for (g = 0; g < stopG; g++) {\n geometry = isGeometryCollection ?\n geometryMaybeCollection.geometries[g] : geometryMaybeCollection;\n\n // Handle null Geometry\n if (geometry === null) {\n if (callback(null, featureIndex, featureProperties, featureBBox, featureId) === false) return false;\n continue;\n }\n switch (geometry.type) {\n case 'Point':\n case 'LineString':\n case 'MultiPoint':\n case 'Polygon':\n case 'MultiLineString':\n case 'MultiPolygon': {\n if (callback(geometry, featureIndex, featureProperties, featureBBox, featureId) === false) return false;\n break;\n }\n case 'GeometryCollection': {\n for (j = 0; j < geometry.geometries.length; j++) {\n if (callback(geometry.geometries[j], featureIndex, featureProperties, featureBBox, featureId) === false) return false;\n }\n break;\n }\n default:\n throw new Error('Unknown Geometry Type');\n }\n }\n // Only increase `featureIndex` per each feature\n featureIndex++;\n }\n}\n\n/**\n * Callback for geomReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback geomReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n/**\n * Reduce geometry in any GeoJSON object, similar to Array.reduce().\n *\n * @name geomReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomReduce(features, function (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=previousValue\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * return currentGeometry\n * });\n */\nfunction geomReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n geomEach(geojson, function (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n if (featureIndex === 0 && initialValue === undefined) previousValue = currentGeometry;\n else previousValue = callback(previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId);\n });\n return previousValue;\n}\n\n/**\n * Callback for flattenEach\n *\n * @callback flattenEachCallback\n * @param {Feature} currentFeature The current flattened feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n/**\n * Iterate over flattened features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name flattenEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex, multiFeatureIndex)\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenEach(features, function (currentFeature, featureIndex, multiFeatureIndex) {\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * });\n */\nfunction flattenEach(geojson, callback) {\n geomEach(geojson, function (geometry, featureIndex, properties, bbox, id) {\n // Callback for single geometry\n var type = (geometry === null) ? null : geometry.type;\n switch (type) {\n case null:\n case 'Point':\n case 'LineString':\n case 'Polygon':\n if (callback(helpers.feature(geometry, properties, {bbox: bbox, id: id}), featureIndex, 0) === false) return false;\n return;\n }\n\n var geomType;\n\n // Callback for multi-geometry\n switch (type) {\n case 'MultiPoint':\n geomType = 'Point';\n break;\n case 'MultiLineString':\n geomType = 'LineString';\n break;\n case 'MultiPolygon':\n geomType = 'Polygon';\n break;\n }\n\n for (var multiFeatureIndex = 0; multiFeatureIndex < geometry.coordinates.length; multiFeatureIndex++) {\n var coordinate = geometry.coordinates[multiFeatureIndex];\n var geom = {\n type: geomType,\n coordinates: coordinate\n };\n if (callback(helpers.feature(geom, properties), featureIndex, multiFeatureIndex) === false) return false;\n }\n });\n}\n\n/**\n * Callback for flattenReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback flattenReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n/**\n * Reduce flattened features in any GeoJSON object, similar to Array.reduce().\n *\n * @name flattenReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex, multiFeatureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenReduce(features, function (previousValue, currentFeature, featureIndex, multiFeatureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * return currentFeature\n * });\n */\nfunction flattenReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n flattenEach(geojson, function (currentFeature, featureIndex, multiFeatureIndex) {\n if (featureIndex === 0 && multiFeatureIndex === 0 && initialValue === undefined) previousValue = currentFeature;\n else previousValue = callback(previousValue, currentFeature, featureIndex, multiFeatureIndex);\n });\n return previousValue;\n}\n\n/**\n * Callback for segmentEach\n *\n * @callback segmentEachCallback\n * @param {Feature} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n * @returns {void}\n */\n\n/**\n * Iterate over 2-vertex line segment in any GeoJSON object, similar to Array.forEach()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex)\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentEach(polygon, function (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //=currentSegment\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * //=segmentIndex\n * });\n *\n * // Calculate the total number of segments\n * var total = 0;\n * turf.segmentEach(polygon, function () {\n * total++;\n * });\n */\nfunction segmentEach(geojson, callback) {\n flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) {\n var segmentIndex = 0;\n\n // Exclude null Geometries\n if (!feature.geometry) return;\n // (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n var type = feature.geometry.type;\n if (type === 'Point' || type === 'MultiPoint') return;\n\n // Generate 2-vertex line segments\n var previousCoords;\n var previousFeatureIndex = 0;\n var previousMultiIndex = 0;\n var prevGeomIndex = 0;\n if (coordEach(feature, function (currentCoord, coordIndex, featureIndexCoord, multiPartIndexCoord, geometryIndex) {\n // Simulating a meta.coordReduce() since `reduce` operations cannot be stopped by returning `false`\n if (previousCoords === undefined || featureIndex > previousFeatureIndex || multiPartIndexCoord > previousMultiIndex || geometryIndex > prevGeomIndex) {\n previousCoords = currentCoord;\n previousFeatureIndex = featureIndex;\n previousMultiIndex = multiPartIndexCoord;\n prevGeomIndex = geometryIndex;\n segmentIndex = 0;\n return;\n }\n var currentSegment = helpers.lineString([previousCoords, currentCoord], feature.properties);\n if (callback(currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) === false) return false;\n segmentIndex++;\n previousCoords = currentCoord;\n }) === false) return false;\n });\n}\n\n/**\n * Callback for segmentReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback segmentReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n */\n\n/**\n * Reduce 2-vertex line segment in any GeoJSON object, similar to Array.reduce()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (previousValue, currentSegment, currentIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentReduce(polygon, function (previousSegment, currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //= previousSegment\n * //= currentSegment\n * //= featureIndex\n * //= multiFeatureIndex\n * //= geometryIndex\n * //= segmentInex\n * return currentSegment\n * });\n *\n * // Calculate the total number of segments\n * var initialValue = 0\n * var total = turf.segmentReduce(polygon, function (previousValue) {\n * previousValue++;\n * return previousValue;\n * }, initialValue);\n */\nfunction segmentReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n var started = false;\n segmentEach(geojson, function (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n if (started === false && initialValue === undefined) previousValue = currentSegment;\n else previousValue = callback(previousValue, currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex);\n started = true;\n });\n return previousValue;\n}\n\n/**\n * Callback for lineEach\n *\n * @callback lineEachCallback\n * @param {Feature} currentLine The current LineString|LinearRing being processed\n * @param {number} featureIndex The current index of the Feature being processed\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed\n * @param {number} geometryIndex The current index of the Geometry being processed\n */\n\n/**\n * Iterate over line or ring coordinates in LineString, Polygon, MultiLineString, MultiPolygon Features or Geometries,\n * similar to Array.forEach.\n *\n * @name lineEach\n * @param {Geometry|Feature} geojson object\n * @param {Function} callback a method that takes (currentLine, featureIndex, multiFeatureIndex, geometryIndex)\n * @example\n * var multiLine = turf.multiLineString([\n * [[26, 37], [35, 45]],\n * [[36, 53], [38, 50], [41, 55]]\n * ]);\n *\n * turf.lineEach(multiLine, function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=currentLine\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * });\n */\nfunction lineEach(geojson, callback) {\n // validation\n if (!geojson) throw new Error('geojson is required');\n\n flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) {\n if (feature.geometry === null) return;\n var type = feature.geometry.type;\n var coords = feature.geometry.coordinates;\n switch (type) {\n case 'LineString':\n if (callback(feature, featureIndex, multiFeatureIndex, 0, 0) === false) return false;\n break;\n case 'Polygon':\n for (var geometryIndex = 0; geometryIndex < coords.length; geometryIndex++) {\n if (callback(helpers.lineString(coords[geometryIndex], feature.properties), featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n }\n break;\n }\n });\n}\n\n/**\n * Callback for lineReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback lineReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentLine The current LineString|LinearRing being processed.\n * @param {number} featureIndex The current index of the Feature being processed\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed\n * @param {number} geometryIndex The current index of the Geometry being processed\n */\n\n/**\n * Reduce features in any GeoJSON object, similar to Array.reduce().\n *\n * @name lineReduce\n * @param {Geometry|Feature} geojson object\n * @param {Function} callback a method that takes (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var multiPoly = turf.multiPolygon([\n * turf.polygon([[[12,48],[2,41],[24,38],[12,48]], [[9,44],[13,41],[13,45],[9,44]]]),\n * turf.polygon([[[5, 5], [0, 0], [2, 2], [4, 4], [5, 5]]])\n * ]);\n *\n * turf.lineReduce(multiPoly, function (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=previousValue\n * //=currentLine\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * return currentLine\n * });\n */\nfunction lineReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n lineEach(geojson, function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n if (featureIndex === 0 && initialValue === undefined) previousValue = currentLine;\n else previousValue = callback(previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex);\n });\n return previousValue;\n}\n\n/**\n * Finds a particular 2-vertex LineString Segment from a GeoJSON using `@turf/meta` indexes.\n *\n * Negative indexes are permitted.\n * Point & MultiPoint will always return null.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {number} [options.featureIndex=0] Feature Index\n * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index\n * @param {number} [options.geometryIndex=0] Geometry Index\n * @param {number} [options.segmentIndex=0] Segment Index\n * @param {Object} [options.properties={}] Translate Properties to output LineString\n * @param {BBox} [options.bbox={}] Translate BBox to output LineString\n * @param {number|string} [options.id={}] Translate Id to output LineString\n * @returns {Feature} 2-vertex GeoJSON Feature LineString\n * @example\n * var multiLine = turf.multiLineString([\n * [[10, 10], [50, 30], [30, 40]],\n * [[-10, -10], [-50, -30], [-30, -40]]\n * ]);\n *\n * // First Segment (defaults are 0)\n * turf.findSegment(multiLine);\n * // => Feature>\n *\n * // First Segment of 2nd Multi Feature\n * turf.findSegment(multiLine, {multiFeatureIndex: 1});\n * // => Feature>\n *\n * // Last Segment of Last Multi Feature\n * turf.findSegment(multiLine, {multiFeatureIndex: -1, segmentIndex: -1});\n * // => Feature>\n */\nfunction findSegment(geojson, options) {\n // Optional Parameters\n options = options || {};\n if (!helpers.isObject(options)) throw new Error('options is invalid');\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var segmentIndex = options.segmentIndex || 0;\n\n // Find FeatureIndex\n var properties = options.properties;\n var geometry;\n\n switch (geojson.type) {\n case 'FeatureCollection':\n if (featureIndex < 0) featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case 'Feature':\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case 'Point':\n case 'MultiPoint':\n return null;\n case 'LineString':\n case 'Polygon':\n case 'MultiLineString':\n case 'MultiPolygon':\n geometry = geojson;\n break;\n default:\n throw new Error('geojson is invalid');\n }\n\n // Find SegmentIndex\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case 'Point':\n case 'MultiPoint':\n return null;\n case 'LineString':\n if (segmentIndex < 0) segmentIndex = coords.length + segmentIndex - 1;\n return helpers.lineString([coords[segmentIndex], coords[segmentIndex + 1]], properties, options);\n case 'Polygon':\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (segmentIndex < 0) segmentIndex = coords[geometryIndex].length + segmentIndex - 1;\n return helpers.lineString([coords[geometryIndex][segmentIndex], coords[geometryIndex][segmentIndex + 1]], properties, options);\n case 'MultiLineString':\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n if (segmentIndex < 0) segmentIndex = coords[multiFeatureIndex].length + segmentIndex - 1;\n return helpers.lineString([coords[multiFeatureIndex][segmentIndex], coords[multiFeatureIndex][segmentIndex + 1]], properties, options);\n case 'MultiPolygon':\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0) geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (segmentIndex < 0) segmentIndex = coords[multiFeatureIndex][geometryIndex].length - segmentIndex - 1;\n return helpers.lineString([coords[multiFeatureIndex][geometryIndex][segmentIndex], coords[multiFeatureIndex][geometryIndex][segmentIndex + 1]], properties, options);\n }\n throw new Error('geojson is invalid');\n}\n\n/**\n * Finds a particular Point from a GeoJSON using `@turf/meta` indexes.\n *\n * Negative indexes are permitted.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {number} [options.featureIndex=0] Feature Index\n * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index\n * @param {number} [options.geometryIndex=0] Geometry Index\n * @param {number} [options.coordIndex=0] Coord Index\n * @param {Object} [options.properties={}] Translate Properties to output Point\n * @param {BBox} [options.bbox={}] Translate BBox to output Point\n * @param {number|string} [options.id={}] Translate Id to output Point\n * @returns {Feature} 2-vertex GeoJSON Feature Point\n * @example\n * var multiLine = turf.multiLineString([\n * [[10, 10], [50, 30], [30, 40]],\n * [[-10, -10], [-50, -30], [-30, -40]]\n * ]);\n *\n * // First Segment (defaults are 0)\n * turf.findPoint(multiLine);\n * // => Feature>\n *\n * // First Segment of the 2nd Multi-Feature\n * turf.findPoint(multiLine, {multiFeatureIndex: 1});\n * // => Feature>\n *\n * // Last Segment of last Multi-Feature\n * turf.findPoint(multiLine, {multiFeatureIndex: -1, coordIndex: -1});\n * // => Feature>\n */\nfunction findPoint(geojson, options) {\n // Optional Parameters\n options = options || {};\n if (!helpers.isObject(options)) throw new Error('options is invalid');\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var coordIndex = options.coordIndex || 0;\n\n // Find FeatureIndex\n var properties = options.properties;\n var geometry;\n\n switch (geojson.type) {\n case 'FeatureCollection':\n if (featureIndex < 0) featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case 'Feature':\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case 'Point':\n case 'MultiPoint':\n return null;\n case 'LineString':\n case 'Polygon':\n case 'MultiLineString':\n case 'MultiPolygon':\n geometry = geojson;\n break;\n default:\n throw new Error('geojson is invalid');\n }\n\n // Find Coord Index\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case 'Point':\n return helpers.point(coords, properties, options);\n case 'MultiPoint':\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n return helpers.point(coords[multiFeatureIndex], properties, options);\n case 'LineString':\n if (coordIndex < 0) coordIndex = coords.length + coordIndex;\n return helpers.point(coords[coordIndex], properties, options);\n case 'Polygon':\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (coordIndex < 0) coordIndex = coords[geometryIndex].length + coordIndex;\n return helpers.point(coords[geometryIndex][coordIndex], properties, options);\n case 'MultiLineString':\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n if (coordIndex < 0) coordIndex = coords[multiFeatureIndex].length + coordIndex;\n return helpers.point(coords[multiFeatureIndex][coordIndex], properties, options);\n case 'MultiPolygon':\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0) geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (coordIndex < 0) coordIndex = coords[multiFeatureIndex][geometryIndex].length - coordIndex;\n return helpers.point(coords[multiFeatureIndex][geometryIndex][coordIndex], properties, options);\n }\n throw new Error('geojson is invalid');\n}\n\nexports.coordEach = coordEach;\nexports.coordReduce = coordReduce;\nexports.propEach = propEach;\nexports.propReduce = propReduce;\nexports.featureEach = featureEach;\nexports.featureReduce = featureReduce;\nexports.coordAll = coordAll;\nexports.geomEach = geomEach;\nexports.geomReduce = geomReduce;\nexports.flattenEach = flattenEach;\nexports.flattenReduce = flattenReduce;\nexports.segmentEach = segmentEach;\nexports.segmentReduce = segmentReduce;\nexports.lineEach = lineEach;\nexports.lineReduce = lineReduce;\nexports.findSegment = findSegment;\nexports.findPoint = findPoint;\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var i, j;\n\n if(selectionTester === false) {\n for(i = 0; i < cd.length; i++) {\n for(j = 0; j < (cd[i].pts || []).length; j++) {\n // clear selection\n cd[i].pts[j].selected = 0;\n }\n }\n } else {\n for(i = 0; i < cd.length; i++) {\n for(j = 0; j < (cd[i].pts || []).length; j++) {\n var pt = cd[i].pts[j];\n var x = xa.c2p(pt.x);\n var y = ya.c2p(pt.y);\n\n if(selectionTester.contains([x, y], null, pt.i, searchInfo)) {\n selection.push({\n pointNumber: pt.i,\n x: xa.c2d(pt.x),\n y: ya.c2d(pt.y)\n });\n pt.selected = 1;\n } else {\n pt.selected = 0;\n }\n }\n }\n }\n\n return selection;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar handleArrayContainerDefaults = require('../../plots/array_container_defaults');\n\nvar attributes = require('./attributes');\nvar constants = require('./constants');\n\nvar name = constants.name;\nvar stepAttrs = attributes.steps;\n\n\nmodule.exports = function slidersDefaults(layoutIn, layoutOut) {\n handleArrayContainerDefaults(layoutIn, layoutOut, {\n name: name,\n handleItemDefaults: sliderDefaults\n });\n};\n\nfunction sliderDefaults(sliderIn, sliderOut, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(sliderIn, sliderOut, attributes, attr, dflt);\n }\n\n var steps = handleArrayContainerDefaults(sliderIn, sliderOut, {\n name: 'steps',\n handleItemDefaults: stepDefaults\n });\n\n var stepCount = 0;\n for(var i = 0; i < steps.length; i++) {\n if(steps[i].visible) stepCount++;\n }\n\n var visible;\n // If it has fewer than two options, it's not really a slider\n if(stepCount < 2) visible = sliderOut.visible = false;\n else visible = coerce('visible');\n if(!visible) return;\n\n sliderOut._stepCount = stepCount;\n var visSteps = sliderOut._visibleSteps = Lib.filterVisible(steps);\n\n var active = coerce('active');\n if(!(steps[active] || {}).visible) sliderOut.active = visSteps[0]._index;\n\n coerce('x');\n coerce('y');\n Lib.noneOrAll(sliderIn, sliderOut, ['x', 'y']);\n\n coerce('xanchor');\n coerce('yanchor');\n\n coerce('len');\n coerce('lenmode');\n\n coerce('pad.t');\n coerce('pad.r');\n coerce('pad.b');\n coerce('pad.l');\n\n Lib.coerceFont(coerce, 'font', layoutOut.font);\n\n var currentValueIsVisible = coerce('currentvalue.visible');\n\n if(currentValueIsVisible) {\n coerce('currentvalue.xanchor');\n coerce('currentvalue.prefix');\n coerce('currentvalue.suffix');\n coerce('currentvalue.offset');\n\n Lib.coerceFont(coerce, 'currentvalue.font', sliderOut.font);\n }\n\n coerce('transition.duration');\n coerce('transition.easing');\n\n coerce('bgcolor');\n coerce('activebgcolor');\n coerce('bordercolor');\n coerce('borderwidth');\n coerce('ticklen');\n coerce('tickwidth');\n coerce('tickcolor');\n coerce('minorticklen');\n}\n\nfunction stepDefaults(valueIn, valueOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(valueIn, valueOut, stepAttrs, attr, dflt);\n }\n\n var visible;\n if(valueIn.method !== 'skip' && !Array.isArray(valueIn.args)) {\n visible = valueOut.visible = false;\n } else visible = coerce('visible');\n\n if(visible) {\n coerce('method');\n coerce('args');\n var label = coerce('label', 'step-' + valueOut._index);\n coerce('value', label);\n coerce('execute');\n }\n}\n","'use strict'\n\nvar db = require('double-bits')\nvar ctz = require('bit-twiddle').countTrailingZeros\n\nmodule.exports = ctzNumber\n\n//Counts the number of trailing zeros\nfunction ctzNumber(x) {\n var l = ctz(db.lo(x))\n if(l < 32) {\n return l\n }\n var h = ctz(db.hi(x))\n if(h > 20) {\n return 52\n }\n return h + 32\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar axisIds = require('../../plots/cartesian/axis_ids');\n\nvar traceIs = require('../../registry').traceIs;\nvar handleGroupingDefaults = require('../bar/defaults').handleGroupingDefaults;\n\nvar nestedProperty = Lib.nestedProperty;\nvar getAxisGroup = axisIds.getAxisGroup;\n\nvar BINATTRS = [\n {aStr: {x: 'xbins.start', y: 'ybins.start'}, name: 'start'},\n {aStr: {x: 'xbins.end', y: 'ybins.end'}, name: 'end'},\n {aStr: {x: 'xbins.size', y: 'ybins.size'}, name: 'size'},\n {aStr: {x: 'nbinsx', y: 'nbinsy'}, name: 'nbins'}\n];\n\nvar BINDIRECTIONS = ['x', 'y'];\n\n// handle bin attrs and relink auto-determined values so fullData is complete\nmodule.exports = function crossTraceDefaults(fullData, fullLayout) {\n var allBinOpts = fullLayout._histogramBinOpts = {};\n var histTraces = [];\n var mustMatchTracesLookup = {};\n var otherTracesList = [];\n\n var traceOut, traces, groupName, binDir;\n var i, j, k;\n\n function coerce(attr, dflt) {\n return Lib.coerce(traceOut._input, traceOut, traceOut._module.attributes, attr, dflt);\n }\n\n function orientation2binDir(traceOut) {\n return traceOut.orientation === 'v' ? 'x' : 'y';\n }\n\n function getAxisType(traceOut, binDir) {\n var ax = axisIds.getFromTrace({_fullLayout: fullLayout}, traceOut, binDir);\n return ax.type;\n }\n\n function fillBinOpts(traceOut, groupName, binDir) {\n // N.B. group traces that don't have a bingroup with themselves\n var fallbackGroupName = traceOut.uid + '__' + binDir;\n if(!groupName) groupName = fallbackGroupName;\n\n var axType = getAxisType(traceOut, binDir);\n var calendar = traceOut[binDir + 'calendar'] || '';\n var binOpts = allBinOpts[groupName];\n var needsNewItem = true;\n\n if(binOpts) {\n if(axType === binOpts.axType && calendar === binOpts.calendar) {\n needsNewItem = false;\n binOpts.traces.push(traceOut);\n binOpts.dirs.push(binDir);\n } else {\n groupName = fallbackGroupName;\n\n if(axType !== binOpts.axType) {\n Lib.warn([\n 'Attempted to group the bins of trace', traceOut.index,\n 'set on a', 'type:' + axType, 'axis',\n 'with bins on', 'type:' + binOpts.axType, 'axis.'\n ].join(' '));\n }\n if(calendar !== binOpts.calendar) {\n // prohibit bingroup for traces using different calendar,\n // there's probably a way to make this work, but skip for now\n Lib.warn([\n 'Attempted to group the bins of trace', traceOut.index,\n 'set with a', calendar, 'calendar',\n 'with bins',\n (binOpts.calendar ? 'on a ' + binOpts.calendar + ' calendar' : 'w/o a set calendar')\n ].join(' '));\n }\n }\n }\n\n if(needsNewItem) {\n allBinOpts[groupName] = {\n traces: [traceOut],\n dirs: [binDir],\n axType: axType,\n calendar: traceOut[binDir + 'calendar'] || ''\n };\n }\n traceOut['_' + binDir + 'bingroup'] = groupName;\n }\n\n for(i = 0; i < fullData.length; i++) {\n traceOut = fullData[i];\n\n if(traceIs(traceOut, 'histogram')) {\n histTraces.push(traceOut);\n\n // TODO: this shouldn't be relinked as it's only used within calc\n // https://github.com/plotly/plotly.js/issues/749\n delete traceOut._xautoBinFinished;\n delete traceOut._yautoBinFinished;\n\n // N.B. need to coerce *alignmentgroup* before *bingroup*, as traces\n // in same alignmentgroup \"have to match\"\n if(!traceIs(traceOut, '2dMap')) {\n handleGroupingDefaults(traceOut._input, traceOut, fullLayout, coerce);\n }\n }\n }\n\n var alignmentOpts = fullLayout._alignmentOpts || {};\n\n // Look for traces that \"have to match\", that is:\n // - 1d histogram traces on the same subplot with same orientation under barmode:stack,\n // - 1d histogram traces on the same subplot with same orientation under barmode:group\n // - 1d histogram traces on the same position axis with the same orientation\n // and the same *alignmentgroup* (coerced under barmode:group)\n // - Once `stackgroup` gets implemented (see https://github.com/plotly/plotly.js/issues/3614),\n // traces within the same stackgroup will also \"have to match\"\n for(i = 0; i < histTraces.length; i++) {\n traceOut = histTraces[i];\n groupName = '';\n\n if(!traceIs(traceOut, '2dMap')) {\n binDir = orientation2binDir(traceOut);\n\n if(fullLayout.barmode === 'group' && traceOut.alignmentgroup) {\n var pa = traceOut[binDir + 'axis'];\n var aGroupId = getAxisGroup(fullLayout, pa) + traceOut.orientation;\n if((alignmentOpts[aGroupId] || {})[traceOut.alignmentgroup]) {\n groupName = aGroupId;\n }\n }\n\n if(!groupName && fullLayout.barmode !== 'overlay') {\n groupName = (\n getAxisGroup(fullLayout, traceOut.xaxis) +\n getAxisGroup(fullLayout, traceOut.yaxis) +\n orientation2binDir(traceOut)\n );\n }\n }\n\n if(groupName) {\n if(!mustMatchTracesLookup[groupName]) {\n mustMatchTracesLookup[groupName] = [];\n }\n mustMatchTracesLookup[groupName].push(traceOut);\n } else {\n otherTracesList.push(traceOut);\n }\n }\n\n // Setup binOpts for traces that have to match,\n // if the traces have a valid bingroup, use that\n // if not use axis+binDir groupName\n for(groupName in mustMatchTracesLookup) {\n traces = mustMatchTracesLookup[groupName];\n\n // no need to 'force' anything when a single\n // trace is detected as \"must match\"\n if(traces.length === 1) {\n otherTracesList.push(traces[0]);\n continue;\n }\n\n var binGroupFound = false;\n for(i = 0; i < traces.length; i++) {\n traceOut = traces[i];\n binGroupFound = coerce('bingroup');\n break;\n }\n\n groupName = binGroupFound || groupName;\n\n for(i = 0; i < traces.length; i++) {\n traceOut = traces[i];\n var bingroupIn = traceOut._input.bingroup;\n if(bingroupIn && bingroupIn !== groupName) {\n Lib.warn([\n 'Trace', traceOut.index, 'must match',\n 'within bingroup', groupName + '.',\n 'Ignoring its bingroup:', bingroupIn, 'setting.'\n ].join(' '));\n }\n traceOut.bingroup = groupName;\n\n // N.B. no need to worry about 2dMap case\n // (where both bin direction are set in each trace)\n // as 2dMap trace never \"have to match\"\n fillBinOpts(traceOut, groupName, orientation2binDir(traceOut));\n }\n }\n\n // setup binOpts for traces that can but don't have to match,\n // notice that these traces can be matched with traces that have to match\n for(i = 0; i < otherTracesList.length; i++) {\n traceOut = otherTracesList[i];\n\n var binGroup = coerce('bingroup');\n\n if(traceIs(traceOut, '2dMap')) {\n for(k = 0; k < 2; k++) {\n binDir = BINDIRECTIONS[k];\n var binGroupInDir = coerce(binDir + 'bingroup',\n binGroup ? binGroup + '__' + binDir : null\n );\n fillBinOpts(traceOut, binGroupInDir, binDir);\n }\n } else {\n fillBinOpts(traceOut, binGroup, orientation2binDir(traceOut));\n }\n }\n\n // coerce bin attrs!\n for(groupName in allBinOpts) {\n var binOpts = allBinOpts[groupName];\n traces = binOpts.traces;\n\n for(j = 0; j < BINATTRS.length; j++) {\n var attrSpec = BINATTRS[j];\n var attr = attrSpec.name;\n var aStr;\n var autoVals;\n\n // nbins(x|y) is moot if we have a size. This depends on\n // nbins coming after size in binAttrs.\n if(attr === 'nbins' && binOpts.sizeFound) continue;\n\n for(i = 0; i < traces.length; i++) {\n traceOut = traces[i];\n binDir = binOpts.dirs[i];\n aStr = attrSpec.aStr[binDir];\n\n if(nestedProperty(traceOut._input, aStr).get() !== undefined) {\n binOpts[attr] = coerce(aStr);\n binOpts[attr + 'Found'] = true;\n break;\n }\n\n autoVals = (traceOut._autoBin || {})[binDir] || {};\n if(autoVals[attr]) {\n // if this is the *first* autoval\n nestedProperty(traceOut, aStr).set(autoVals[attr]);\n }\n }\n\n // start and end we need to coerce anyway, after having collected the\n // first of each into binOpts, in case a trace wants to restrict its\n // data to a certain range\n if(attr === 'start' || attr === 'end') {\n for(; i < traces.length; i++) {\n traceOut = traces[i];\n if(traceOut['_' + binDir + 'bingroup']) {\n autoVals = (traceOut._autoBin || {})[binDir] || {};\n coerce(aStr, autoVals[attr]);\n }\n }\n }\n\n if(attr === 'nbins' && !binOpts.sizeFound && !binOpts.nbinsFound) {\n traceOut = traces[0];\n binOpts[attr] = coerce(aStr);\n }\n }\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\n\nmodule.exports = {\n /**\n * Timing information for interactive elements\n */\n SHOW_PLACEHOLDER: 100,\n HIDE_PLACEHOLDER: 1000,\n\n // opacity dimming fraction for points that are not in selection\n DESELECTDIM: 0.2\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar d3 = require('d3');\n\nvar styleOne = require('./style_one');\nvar resizeText = require('../bar/uniform_text').resizeText;\n\nmodule.exports = function style(gd) {\n var s = gd._fullLayout._pielayer.selectAll('.trace');\n resizeText(gd, s, 'pie');\n\n s.each(function(cd) {\n var cd0 = cd[0];\n var trace = cd0.trace;\n var traceSelection = d3.select(this);\n\n traceSelection.style({opacity: trace.opacity});\n\n traceSelection.selectAll('path.surface').each(function(pt) {\n d3.select(this).call(styleOne, pt, trace);\n });\n });\n};\n","'use strict'\n\nvar isBN = require('./lib/is-bn')\n\nmodule.exports = isRat\n\nfunction isRat(x) {\n return Array.isArray(x) && x.length === 2 && isBN(x[0]) && isBN(x[1])\n}\n","\"use strict\";\n\nvar isValue = require(\"../is-value\");\n\nvar keys = Object.keys;\n\nmodule.exports = function (object) { return keys(isValue(object) ? Object(object) : object); };\n","module.exports = {\n create: require('./create'),\n clone: require('./clone'),\n fromValues: require('./fromValues'),\n copy: require('./copy'),\n set: require('./set'),\n add: require('./add'),\n subtract: require('./subtract'),\n multiply: require('./multiply'),\n divide: require('./divide'),\n min: require('./min'),\n max: require('./max'),\n scale: require('./scale'),\n scaleAndAdd: require('./scaleAndAdd'),\n distance: require('./distance'),\n squaredDistance: require('./squaredDistance'),\n length: require('./length'),\n squaredLength: require('./squaredLength'),\n negate: require('./negate'),\n inverse: require('./inverse'),\n normalize: require('./normalize'),\n dot: require('./dot'),\n lerp: require('./lerp'),\n random: require('./random'),\n transformMat4: require('./transformMat4'),\n transformQuat: require('./transformQuat')\n}\n","module.exports = scaleAndAdd;\n\n/**\n * Adds two vec3's after scaling the second operand by a scalar value\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec3} out\n */\nfunction scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + (b[0] * scale)\n out[1] = a[1] + (b[1] * scale)\n out[2] = a[2] + (b[2] * scale)\n return out\n}","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar Template = require('../../plot_api/plot_template');\n\nvar colorScaleAttrs = require('./layout_attributes');\nvar colorScaleDefaults = require('./defaults');\n\nmodule.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, colorScaleAttrs, attr, dflt);\n }\n\n coerce('colorscale.sequential');\n coerce('colorscale.sequentialminus');\n coerce('colorscale.diverging');\n\n var colorAxes = layoutOut._colorAxes;\n var colorAxIn, colorAxOut;\n\n function coerceAx(attr, dflt) {\n return Lib.coerce(colorAxIn, colorAxOut, colorScaleAttrs.coloraxis, attr, dflt);\n }\n\n for(var k in colorAxes) {\n var stash = colorAxes[k];\n\n if(stash[0]) {\n colorAxIn = layoutIn[k] || {};\n colorAxOut = Template.newContainer(layoutOut, k, 'coloraxis');\n colorAxOut._name = k;\n colorScaleDefaults(colorAxIn, colorAxOut, layoutOut, coerceAx, {prefix: '', cLetter: 'c'});\n } else {\n // re-coerce colorscale attributes w/o coloraxis\n for(var i = 0; i < stash[2].length; i++) {\n stash[2][i]();\n }\n delete layoutOut._colorAxes[k];\n }\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\n\nexports.xmlns = 'http://www.w3.org/2000/xmlns/';\nexports.svg = 'http://www.w3.org/2000/svg';\nexports.xlink = 'http://www.w3.org/1999/xlink';\n\n// the 'old' d3 quirk got fix in v3.5.7\n// https://github.com/mbostock/d3/commit/a6f66e9dd37f764403fc7c1f26be09ab4af24fed\nexports.svgAttrs = {\n xmlns: exports.svg,\n 'xmlns:xlink': exports.xlink\n};\n","module.exports = divide\n\n/**\n * Divides two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @returns {vec4} out\n */\nfunction divide (out, a, b) {\n out[0] = a[0] / b[0]\n out[1] = a[1] / b[1]\n out[2] = a[2] / b[2]\n out[3] = a[3] / b[3]\n return out\n}\n","exports.f = Object.getOwnPropertySymbols;\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar colorMix = require('tinycolor2').mix;\nvar lightFraction = require('../../components/color/attributes').lightFraction;\nvar Lib = require('../../lib');\n\n/**\n * @param {object} opts :\n * - dfltColor {string} : default axis color\n * - bgColor {string} : combined subplot bg color\n * - blend {number, optional} : blend percentage (to compute dflt grid color)\n * - showLine {boolean} : show line by default\n * - showGrid {boolean} : show grid by default\n * - noZeroLine {boolean} : don't coerce zeroline* attributes\n * - attributes {object} : attribute object associated with input containers\n */\nmodule.exports = function handleLineGridDefaults(containerIn, containerOut, coerce, opts) {\n opts = opts || {};\n\n var dfltColor = opts.dfltColor;\n\n function coerce2(attr, dflt) {\n return Lib.coerce2(containerIn, containerOut, opts.attributes, attr, dflt);\n }\n\n var lineColor = coerce2('linecolor', dfltColor);\n var lineWidth = coerce2('linewidth');\n var showLine = coerce('showline', opts.showLine || !!lineColor || !!lineWidth);\n\n if(!showLine) {\n delete containerOut.linecolor;\n delete containerOut.linewidth;\n }\n\n var gridColorDflt = colorMix(dfltColor, opts.bgColor, opts.blend || lightFraction).toRgbString();\n var gridColor = coerce2('gridcolor', gridColorDflt);\n var gridWidth = coerce2('gridwidth');\n var showGridLines = coerce('showgrid', opts.showGrid || !!gridColor || !!gridWidth);\n\n if(!showGridLines) {\n delete containerOut.gridcolor;\n delete containerOut.gridwidth;\n }\n\n if(!opts.noZeroLine) {\n var zeroLineColor = coerce2('zerolinecolor', dfltColor);\n var zeroLineWidth = coerce2('zerolinewidth');\n var showZeroLine = coerce('zeroline', opts.showGrid || !!zeroLineColor || !!zeroLineWidth);\n\n if(!showZeroLine) {\n delete containerOut.zerolinecolor;\n delete containerOut.zerolinewidth;\n }\n }\n};\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar hovertemplateAttrs = require('../../plots/template_attributes').hovertemplateAttrs;\nvar texttemplateAttrs = require('../../plots/template_attributes').texttemplateAttrs;\nvar scatterGeoAttrs = require('../scattergeo/attributes');\nvar scatterAttrs = require('../scatter/attributes');\nvar mapboxAttrs = require('../../plots/mapbox/layout_attributes');\nvar baseAttrs = require('../../plots/attributes');\nvar colorScaleAttrs = require('../../components/colorscale/attributes');\n\nvar extendFlat = require('../../lib/extend').extendFlat;\nvar overrideAll = require('../../plot_api/edit_types').overrideAll;\n\nvar lineAttrs = scatterGeoAttrs.line;\nvar markerAttrs = scatterGeoAttrs.marker;\n\nmodule.exports = overrideAll({\n lon: scatterGeoAttrs.lon,\n lat: scatterGeoAttrs.lat,\n\n // locations\n // locationmode\n\n mode: extendFlat({}, scatterAttrs.mode, {\n dflt: 'markers',\n \n }),\n\n text: extendFlat({}, scatterAttrs.text, {\n \n }),\n texttemplate: texttemplateAttrs({editType: 'plot'}, {\n keys: ['lat', 'lon', 'text']\n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {\n \n }),\n\n line: {\n color: lineAttrs.color,\n width: lineAttrs.width\n\n // TODO\n // dash: dash\n },\n\n connectgaps: scatterAttrs.connectgaps,\n\n marker: extendFlat({\n symbol: {\n valType: 'string',\n dflt: 'circle',\n \n arrayOk: true,\n \n },\n opacity: markerAttrs.opacity,\n size: markerAttrs.size,\n sizeref: markerAttrs.sizeref,\n sizemin: markerAttrs.sizemin,\n sizemode: markerAttrs.sizemode\n },\n colorScaleAttrs('marker')\n // line\n ),\n\n fill: scatterGeoAttrs.fill,\n fillcolor: scatterAttrs.fillcolor,\n\n textfont: mapboxAttrs.layers.symbol.textfont,\n textposition: mapboxAttrs.layers.symbol.textposition,\n\n below: {\n valType: 'string',\n \n \n },\n\n selected: {\n marker: scatterAttrs.selected.marker\n },\n unselected: {\n marker: scatterAttrs.unselected.marker\n },\n\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: ['lon', 'lat', 'text', 'name']\n }),\n hovertemplate: hovertemplateAttrs(),\n}, 'calc', 'nested');\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar isNumeric = require('fast-isnumeric');\nvar isArrayOrTypedArray = require('./array').isArrayOrTypedArray;\n\n/**\n * convert a string s (such as 'xaxis.range[0]')\n * representing a property of nested object into set and get methods\n * also return the string and object so we don't have to keep track of them\n * allows [-1] for an array index, to set a property inside all elements\n * of an array\n * eg if obj = {arr: [{a: 1}, {a: 2}]}\n * you can do p = nestedProperty(obj, 'arr[-1].a')\n * but you cannot set the array itself this way, to do that\n * just set the whole array.\n * eg if obj = {arr: [1, 2, 3]}\n * you can't do nestedProperty(obj, 'arr[-1]').set(5)\n * but you can do nestedProperty(obj, 'arr').set([5, 5, 5])\n */\nmodule.exports = function nestedProperty(container, propStr) {\n if(isNumeric(propStr)) propStr = String(propStr);\n else if(typeof propStr !== 'string' ||\n propStr.substr(propStr.length - 4) === '[-1]') {\n throw 'bad property string';\n }\n\n var j = 0;\n var propParts = propStr.split('.');\n var indexed;\n var indices;\n var i;\n\n // check for parts of the nesting hierarchy that are numbers (ie array elements)\n while(j < propParts.length) {\n // look for non-bracket chars, then any number of [##] blocks\n indexed = String(propParts[j]).match(/^([^\\[\\]]*)((\\[\\-?[0-9]*\\])+)$/);\n if(indexed) {\n if(indexed[1]) propParts[j] = indexed[1];\n // allow propStr to start with bracketed array indices\n else if(j === 0) propParts.splice(0, 1);\n else throw 'bad property string';\n\n indices = indexed[2]\n .substr(1, indexed[2].length - 2)\n .split('][');\n\n for(i = 0; i < indices.length; i++) {\n j++;\n propParts.splice(j, 0, Number(indices[i]));\n }\n }\n j++;\n }\n\n if(typeof container !== 'object') {\n return badContainer(container, propStr, propParts);\n }\n\n return {\n set: npSet(container, propParts, propStr),\n get: npGet(container, propParts),\n astr: propStr,\n parts: propParts,\n obj: container\n };\n};\n\nfunction npGet(cont, parts) {\n return function() {\n var curCont = cont;\n var curPart;\n var allSame;\n var out;\n var i;\n var j;\n\n for(i = 0; i < parts.length - 1; i++) {\n curPart = parts[i];\n if(curPart === -1) {\n allSame = true;\n out = [];\n for(j = 0; j < curCont.length; j++) {\n out[j] = npGet(curCont[j], parts.slice(i + 1))();\n if(out[j] !== out[0]) allSame = false;\n }\n return allSame ? out[0] : out;\n }\n if(typeof curPart === 'number' && !isArrayOrTypedArray(curCont)) {\n return undefined;\n }\n curCont = curCont[curPart];\n if(typeof curCont !== 'object' || curCont === null) {\n return undefined;\n }\n }\n\n // only hit this if parts.length === 1\n if(typeof curCont !== 'object' || curCont === null) return undefined;\n\n out = curCont[parts[i]];\n if(out === null) return undefined;\n return out;\n };\n}\n\n/*\n * Can this value be deleted? We can delete `undefined`, and `null` except INSIDE an\n * *args* array.\n *\n * Previously we also deleted some `{}` and `[]`, in order to try and make set/unset\n * a net noop; but this causes far more complication than it's worth, and still had\n * lots of exceptions. See https://github.com/plotly/plotly.js/issues/1410\n *\n * *args* arrays get passed directly to API methods and we should respect null if\n * the user put it there, but otherwise null is deleted as we use it as code\n * in restyle/relayout/update for \"delete this value\" whereas undefined means\n * \"ignore this edit\"\n */\nvar ARGS_PATTERN = /(^|\\.)args\\[/;\nfunction isDeletable(val, propStr) {\n return (val === undefined) || (val === null && !propStr.match(ARGS_PATTERN));\n}\n\nfunction npSet(cont, parts, propStr) {\n return function(val) {\n var curCont = cont;\n var propPart = '';\n var containerLevels = [[cont, propPart]];\n var toDelete = isDeletable(val, propStr);\n var curPart;\n var i;\n\n for(i = 0; i < parts.length - 1; i++) {\n curPart = parts[i];\n\n if(typeof curPart === 'number' && !isArrayOrTypedArray(curCont)) {\n throw 'array index but container is not an array';\n }\n\n // handle special -1 array index\n if(curPart === -1) {\n toDelete = !setArrayAll(curCont, parts.slice(i + 1), val, propStr);\n if(toDelete) break;\n else return;\n }\n\n if(!checkNewContainer(curCont, curPart, parts[i + 1], toDelete)) {\n break;\n }\n\n curCont = curCont[curPart];\n\n if(typeof curCont !== 'object' || curCont === null) {\n throw 'container is not an object';\n }\n\n propPart = joinPropStr(propPart, curPart);\n\n containerLevels.push([curCont, propPart]);\n }\n\n if(toDelete) {\n if(i === parts.length - 1) {\n delete curCont[parts[i]];\n\n // The one bit of pruning we still do: drop `undefined` from the end of arrays.\n // In case someone has already unset previous items, continue until we hit a\n // non-undefined value.\n if(Array.isArray(curCont) && +parts[i] === curCont.length - 1) {\n while(curCont.length && curCont[curCont.length - 1] === undefined) {\n curCont.pop();\n }\n }\n }\n } else curCont[parts[i]] = val;\n };\n}\n\nfunction joinPropStr(propStr, newPart) {\n var toAdd = newPart;\n if(isNumeric(newPart)) toAdd = '[' + newPart + ']';\n else if(propStr) toAdd = '.' + newPart;\n\n return propStr + toAdd;\n}\n\n// handle special -1 array index\nfunction setArrayAll(containerArray, innerParts, val, propStr) {\n var arrayVal = isArrayOrTypedArray(val);\n var allSet = true;\n var thisVal = val;\n var thisPropStr = propStr.replace('-1', 0);\n var deleteThis = arrayVal ? false : isDeletable(val, thisPropStr);\n var firstPart = innerParts[0];\n var i;\n\n for(i = 0; i < containerArray.length; i++) {\n thisPropStr = propStr.replace('-1', i);\n if(arrayVal) {\n thisVal = val[i % val.length];\n deleteThis = isDeletable(thisVal, thisPropStr);\n }\n if(deleteThis) allSet = false;\n if(!checkNewContainer(containerArray, i, firstPart, deleteThis)) {\n continue;\n }\n npSet(containerArray[i], innerParts, propStr.replace('-1', i))(thisVal);\n }\n return allSet;\n}\n\n/**\n * make new sub-container as needed.\n * returns false if there's no container and none is needed\n * because we're only deleting an attribute\n */\nfunction checkNewContainer(container, part, nextPart, toDelete) {\n if(container[part] === undefined) {\n if(toDelete) return false;\n\n if(typeof nextPart === 'number') container[part] = [];\n else container[part] = {};\n }\n return true;\n}\n\nfunction badContainer(container, propStr, propParts) {\n return {\n set: function() { throw 'bad container'; },\n get: function() {},\n astr: propStr,\n parts: propParts,\n obj: container\n };\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n 'undo': {\n 'width': 857.1,\n 'height': 1000,\n 'path': 'm857 350q0-87-34-166t-91-137-137-92-166-34q-96 0-183 41t-147 114q-4 6-4 13t5 11l76 77q6 5 14 5 9-1 13-7 41-53 100-82t126-29q58 0 110 23t92 61 61 91 22 111-22 111-61 91-92 61-110 23q-55 0-105-20t-90-57l77-77q17-16 8-38-10-23-33-23h-250q-15 0-25 11t-11 25v250q0 24 22 33 22 10 39-8l72-72q60 57 137 88t159 31q87 0 166-34t137-92 91-137 34-166z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'home': {\n 'width': 928.6,\n 'height': 1000,\n 'path': 'm786 296v-267q0-15-11-26t-25-10h-214v214h-143v-214h-214q-15 0-25 10t-11 26v267q0 1 0 2t0 2l321 264 321-264q1-1 1-4z m124 39l-34-41q-5-5-12-6h-2q-7 0-12 3l-386 322-386-322q-7-4-13-4-7 2-12 7l-35 41q-4 5-3 13t6 12l401 334q18 15 42 15t43-15l136-114v109q0 8 5 13t13 5h107q8 0 13-5t5-13v-227l122-102q5-5 6-12t-4-13z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'camera-retro': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm518 386q0 8-5 13t-13 5q-37 0-63-27t-26-63q0-8 5-13t13-5 12 5 5 13q0 23 16 38t38 16q8 0 13 5t5 13z m125-73q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101z m-572-320h858v71h-858v-71z m643 320q0 89-62 152t-152 62-151-62-63-152 63-151 151-63 152 63 62 151z m-571 358h214v72h-214v-72z m-72-107h858v143h-462l-36-71h-360v-72z m929 143v-714q0-30-21-51t-50-21h-858q-29 0-50 21t-21 51v714q0 30 21 51t50 21h858q29 0 50-21t21-51z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'zoombox': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm1000-25l-250 251c40 63 63 138 63 218 0 224-182 406-407 406-224 0-406-182-406-406s183-406 407-406c80 0 155 22 218 62l250-250 125 125z m-812 250l0 438 437 0 0-438-437 0z m62 375l313 0 0-312-313 0 0 312z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'pan': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm1000 350l-187 188 0-125-250 0 0 250 125 0-188 187-187-187 125 0 0-250-250 0 0 125-188-188 186-187 0 125 252 0 0-250-125 0 187-188 188 188-125 0 0 250 250 0 0-126 187 188z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'zoom_plus': {\n 'width': 875,\n 'height': 1000,\n 'path': 'm1 787l0-875 875 0 0 875-875 0z m687-500l-187 0 0-187-125 0 0 187-188 0 0 125 188 0 0 187 125 0 0-187 187 0 0-125z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'zoom_minus': {\n 'width': 875,\n 'height': 1000,\n 'path': 'm0 788l0-876 875 0 0 876-875 0z m688-500l-500 0 0 125 500 0 0-125z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'autoscale': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm250 850l-187 0-63 0 0-62 0-188 63 0 0 188 187 0 0 62z m688 0l-188 0 0-62 188 0 0-188 62 0 0 188 0 62-62 0z m-875-938l0 188-63 0 0-188 0-62 63 0 187 0 0 62-187 0z m875 188l0-188-188 0 0-62 188 0 62 0 0 62 0 188-62 0z m-125 188l-1 0-93-94-156 156 156 156 92-93 2 0 0 250-250 0 0-2 93-92-156-156-156 156 94 92 0 2-250 0 0-250 0 0 93 93 157-156-157-156-93 94 0 0 0-250 250 0 0 0-94 93 156 157 156-157-93-93 0 0 250 0 0 250z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'tooltip_basic': {\n 'width': 1500,\n 'height': 1000,\n 'path': 'm375 725l0 0-375-375 375-374 0-1 1125 0 0 750-1125 0z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'tooltip_compare': {\n 'width': 1125,\n 'height': 1000,\n 'path': 'm187 786l0 2-187-188 188-187 0 0 937 0 0 373-938 0z m0-499l0 1-187-188 188-188 0 0 937 0 0 376-938-1z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'plotlylogo': {\n 'width': 1542,\n 'height': 1000,\n 'path': 'm0-10h182v-140h-182v140z m228 146h183v-286h-183v286z m225 714h182v-1000h-182v1000z m225-285h182v-715h-182v715z m225 142h183v-857h-183v857z m231-428h182v-429h-182v429z m225-291h183v-138h-183v138z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'z-axis': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm833 5l-17 108v41l-130-65 130-66c0 0 0 38 0 39 0-1 36-14 39-25 4-15-6-22-16-30-15-12-39-16-56-20-90-22-187-23-279-23-261 0-341 34-353 59 3 60 228 110 228 110-140-8-351-35-351-116 0-120 293-142 474-142 155 0 477 22 477 142 0 50-74 79-163 96z m-374 94c-58-5-99-21-99-40 0-24 65-43 144-43 79 0 143 19 143 43 0 19-42 34-98 40v216h87l-132 135-133-135h88v-216z m167 515h-136v1c16 16 31 34 46 52l84 109v54h-230v-71h124v-1c-16-17-28-32-44-51l-89-114v-51h245v72z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n '3d_rotate': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm922 660c-5 4-9 7-14 11-359 263-580-31-580-31l-102 28 58-400c0 1 1 1 2 2 118 108 351 249 351 249s-62 27-100 42c88 83 222 183 347 122 16-8 30-17 44-27-2 1-4 2-6 4z m36-329c0 0 64 229-88 296-62 27-124 14-175-11 157-78 225-208 249-266 8-19 11-31 11-31 2 5 6 15 11 32-5-13-8-20-8-20z m-775-239c70-31 117-50 198-32-121 80-199 346-199 346l-96-15-58-12c0 0 55-226 155-287z m603 133l-317-139c0 0 4-4 19-14 7-5 24-15 24-15s-177-147-389 4c235-287 536-112 536-112l31-22 100 299-4-1z m-298-153c6-4 14-9 24-15 0 0-17 10-24 15z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'camera': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm500 450c-83 0-150-67-150-150 0-83 67-150 150-150 83 0 150 67 150 150 0 83-67 150-150 150z m400 150h-120c-16 0-34 13-39 29l-31 93c-6 15-23 28-40 28h-340c-16 0-34-13-39-28l-31-94c-6-15-23-28-40-28h-120c-55 0-100-45-100-100v-450c0-55 45-100 100-100h800c55 0 100 45 100 100v450c0 55-45 100-100 100z m-400-550c-138 0-250 112-250 250 0 138 112 250 250 250 138 0 250-112 250-250 0-138-112-250-250-250z m365 380c-19 0-35 16-35 35 0 19 16 35 35 35 19 0 35-16 35-35 0-19-16-35-35-35z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'movie': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm938 413l-188-125c0 37-17 71-44 94 64 38 107 107 107 187 0 121-98 219-219 219-121 0-219-98-219-219 0-61 25-117 66-156h-115c30 33 49 76 49 125 0 103-84 187-187 187s-188-84-188-187c0-57 26-107 65-141-38-22-65-62-65-109v-250c0-70 56-126 125-126h500c69 0 125 56 125 126l188-126c34 0 62 28 62 63v375c0 35-28 63-62 63z m-750 0c-69 0-125 56-125 125s56 125 125 125 125-56 125-125-56-125-125-125z m406-1c-87 0-157 70-157 157 0 86 70 156 157 156s156-70 156-156-70-157-156-157z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'question': {\n 'width': 857.1,\n 'height': 1000,\n 'path': 'm500 82v107q0 8-5 13t-13 5h-107q-8 0-13-5t-5-13v-107q0-8 5-13t13-5h107q8 0 13 5t5 13z m143 375q0 49-31 91t-77 65-95 23q-136 0-207-119-9-14 4-24l74-55q4-4 10-4 9 0 14 7 30 38 48 51 19 14 48 14 27 0 48-15t21-33q0-21-11-34t-38-25q-35-16-65-48t-29-70v-20q0-8 5-13t13-5h107q8 0 13 5t5 13q0 10 12 27t30 28q18 10 28 16t25 19 25 27 16 34 7 45z m214-107q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'disk': {\n 'width': 857.1,\n 'height': 1000,\n 'path': 'm214-7h429v214h-429v-214z m500 0h72v500q0 8-6 21t-11 20l-157 156q-5 6-19 12t-22 5v-232q0-22-15-38t-38-16h-322q-22 0-37 16t-16 38v232h-72v-714h72v232q0 22 16 38t37 16h465q22 0 38-16t15-38v-232z m-214 518v178q0 8-5 13t-13 5h-107q-7 0-13-5t-5-13v-178q0-8 5-13t13-5h107q7 0 13 5t5 13z m357-18v-518q0-22-15-38t-38-16h-750q-23 0-38 16t-16 38v750q0 22 16 38t38 16h517q23 0 50-12t42-26l156-157q16-15 27-42t11-49z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'lasso': {\n 'width': 1031,\n 'height': 1000,\n 'path': 'm1018 538c-36 207-290 336-568 286-277-48-473-256-436-463 10-57 36-108 76-151-13-66 11-137 68-183 34-28 75-41 114-42l-55-70 0 0c-2-1-3-2-4-3-10-14-8-34 5-45 14-11 34-8 45 4 1 1 2 3 2 5l0 0 113 140c16 11 31 24 45 40 4 3 6 7 8 11 48-3 100 0 151 9 278 48 473 255 436 462z m-624-379c-80 14-149 48-197 96 42 42 109 47 156 9 33-26 47-66 41-105z m-187-74c-19 16-33 37-39 60 50-32 109-55 174-68-42-25-95-24-135 8z m360 75c-34-7-69-9-102-8 8 62-16 128-68 170-73 59-175 54-244-5-9 20-16 40-20 61-28 159 121 317 333 354s407-60 434-217c28-159-121-318-333-355z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'selectbox': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm0 850l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-285l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'spikeline': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'M512 409c0-57-46-104-103-104-57 0-104 47-104 104 0 57 47 103 104 103 57 0 103-46 103-103z m-327-39l92 0 0 92-92 0z m-185 0l92 0 0 92-92 0z m370-186l92 0 0 93-92 0z m0-184l92 0 0 92-92 0z',\n 'transform': 'matrix(1.5 0 0 -1.5 0 850)'\n },\n 'pencil': {\n 'width': 1792,\n 'height': 1792,\n 'path': 'M491 1536l91-91-235-235-91 91v107h128v128h107zm523-928q0-22-22-22-10 0-17 7l-542 542q-7 7-7 17 0 22 22 22 10 0 17-7l542-542q7-7 7-17zm-54-192l416 416-832 832h-416v-416zm683 96q0 53-37 90l-166 166-416-416 166-165q36-38 90-38 53 0 91 38l235 234q37 39 37 91z',\n 'transform': 'matrix(1 0 0 1 0 1)'\n },\n 'newplotlylogo': {\n 'name': 'newplotlylogo',\n 'svg': 'plotly-logomark'\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar d3 = require('d3');\nvar Color = require('../../components/color');\nvar Lib = require('../../lib');\nvar resizeText = require('../bar/uniform_text').resizeText;\n\nfunction style(gd) {\n var s = gd._fullLayout._sunburstlayer.selectAll('.trace');\n resizeText(gd, s, 'sunburst');\n\n s.each(function(cd) {\n var gTrace = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n\n gTrace.style('opacity', trace.opacity);\n\n gTrace.selectAll('path.surface').each(function(pt) {\n d3.select(this).call(styleOne, pt, trace);\n });\n });\n}\n\nfunction styleOne(s, pt, trace) {\n var cdi = pt.data.data;\n var isLeaf = !pt.children;\n var ptNumber = cdi.i;\n var lineColor = Lib.castOption(trace, ptNumber, 'marker.line.color') || Color.defaultLine;\n var lineWidth = Lib.castOption(trace, ptNumber, 'marker.line.width') || 0;\n\n s.style('stroke-width', lineWidth)\n .call(Color.fill, cdi.color)\n .call(Color.stroke, lineColor)\n .style('opacity', isLeaf ? trace.leaf.opacity : null);\n}\n\nmodule.exports = {\n style: style,\n styleOne: styleOne\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/candlestick');\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar isNumeric = require('fast-isnumeric');\nvar tinycolor = require('tinycolor2');\nvar rgba = require('color-normalize');\n\nvar Colorscale = require('../components/colorscale');\nvar colorDflt = require('../components/color/attributes').defaultLine;\nvar isArrayOrTypedArray = require('./array').isArrayOrTypedArray;\n\nvar colorDfltRgba = rgba(colorDflt);\nvar opacityDflt = 1;\n\nfunction calculateColor(colorIn, opacityIn) {\n var colorOut = colorIn;\n colorOut[3] *= opacityIn;\n return colorOut;\n}\n\nfunction validateColor(colorIn) {\n if(isNumeric(colorIn)) return colorDfltRgba;\n\n var colorOut = rgba(colorIn);\n\n return colorOut.length ? colorOut : colorDfltRgba;\n}\n\nfunction validateOpacity(opacityIn) {\n return isNumeric(opacityIn) ? opacityIn : opacityDflt;\n}\n\nfunction formatColor(containerIn, opacityIn, len) {\n var colorIn = containerIn.color;\n var isArrayColorIn = isArrayOrTypedArray(colorIn);\n var isArrayOpacityIn = isArrayOrTypedArray(opacityIn);\n var cOpts = Colorscale.extractOpts(containerIn);\n var colorOut = [];\n\n var sclFunc, getColor, getOpacity, colori, opacityi;\n\n if(cOpts.colorscale !== undefined) {\n sclFunc = Colorscale.makeColorScaleFuncFromTrace(containerIn);\n } else {\n sclFunc = validateColor;\n }\n\n if(isArrayColorIn) {\n getColor = function(c, i) {\n // FIXME: there is double work, considering that sclFunc does the opposite\n return c[i] === undefined ? colorDfltRgba : rgba(sclFunc(c[i]));\n };\n } else getColor = validateColor;\n\n if(isArrayOpacityIn) {\n getOpacity = function(o, i) {\n return o[i] === undefined ? opacityDflt : validateOpacity(o[i]);\n };\n } else getOpacity = validateOpacity;\n\n if(isArrayColorIn || isArrayOpacityIn) {\n for(var i = 0; i < len; i++) {\n colori = getColor(colorIn, i);\n opacityi = getOpacity(opacityIn, i);\n colorOut[i] = calculateColor(colori, opacityi);\n }\n } else colorOut = calculateColor(rgba(colorIn), opacityIn);\n\n return colorOut;\n}\n\nfunction parseColorScale(cont, alpha) {\n if(alpha === undefined) alpha = 1;\n\n var cOpts = Colorscale.extractOpts(cont);\n\n var colorscale = cOpts.reversescale ?\n Colorscale.flipScale(cOpts.colorscale) :\n cOpts.colorscale;\n\n return colorscale.map(function(elem) {\n var index = elem[0];\n var color = tinycolor(elem[1]);\n var rgb = color.toRgb();\n return {\n index: index,\n rgb: [rgb.r, rgb.g, rgb.b, alpha]\n };\n });\n}\n\nmodule.exports = {\n formatColor: formatColor,\n parseColorScale: parseColorScale\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n funnelmode: {\n valType: 'enumerated',\n values: ['stack', 'group', 'overlay'],\n dflt: 'stack',\n \n editType: 'calc',\n \n },\n funnelgap: {\n valType: 'number',\n min: 0,\n max: 1,\n \n editType: 'calc',\n \n },\n funnelgroupgap: {\n valType: 'number',\n min: 0,\n max: 1,\n dflt: 0,\n \n editType: 'calc',\n \n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\n/* global MathJax:false */\n\nmodule.exports = function() {\n if(typeof MathJax !== 'undefined') {\n var globalConfig = (window.PlotlyConfig || {}).MathJaxConfig !== 'local';\n\n if(globalConfig) {\n MathJax.Hub.Config({\n messageStyle: 'none',\n skipStartupTypeset: true,\n displayAlign: 'left',\n tex2jax: {\n inlineMath: [['$', '$'], ['\\\\(', '\\\\)']]\n }\n });\n MathJax.Hub.Configured();\n }\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar str2RgbaArray = require('../../../lib/str2rgbarray');\nvar Lib = require('../../../lib');\n\nvar AXES_NAMES = ['xaxis', 'yaxis', 'zaxis'];\n\nfunction AxesOptions() {\n this.bounds = [\n [-10, -10, -10],\n [10, 10, 10]\n ];\n\n this.ticks = [ [], [], [] ];\n this.tickEnable = [ true, true, true ];\n this.tickFont = [ 'sans-serif', 'sans-serif', 'sans-serif' ];\n this.tickSize = [ 12, 12, 12 ];\n this.tickAngle = [ 0, 0, 0 ];\n this.tickColor = [ [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1] ];\n this.tickPad = [ 18, 18, 18 ];\n\n this.labels = [ 'x', 'y', 'z' ];\n this.labelEnable = [ true, true, true ];\n this.labelFont = ['Open Sans', 'Open Sans', 'Open Sans'];\n this.labelSize = [ 20, 20, 20 ];\n this.labelColor = [ [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1] ];\n this.labelPad = [ 30, 30, 30 ];\n\n this.lineEnable = [ true, true, true ];\n this.lineMirror = [ false, false, false ];\n this.lineWidth = [ 1, 1, 1 ];\n this.lineColor = [ [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1] ];\n\n this.lineTickEnable = [ true, true, true ];\n this.lineTickMirror = [ false, false, false ];\n this.lineTickLength = [ 10, 10, 10 ];\n this.lineTickWidth = [ 1, 1, 1 ];\n this.lineTickColor = [ [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1] ];\n\n this.gridEnable = [ true, true, true ];\n this.gridWidth = [ 1, 1, 1 ];\n this.gridColor = [ [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1] ];\n\n this.zeroEnable = [ true, true, true ];\n this.zeroLineColor = [ [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1] ];\n this.zeroLineWidth = [ 2, 2, 2 ];\n\n this.backgroundEnable = [ true, true, true ];\n this.backgroundColor = [ [0.8, 0.8, 0.8, 0.5],\n [0.8, 0.8, 0.8, 0.5],\n [0.8, 0.8, 0.8, 0.5] ];\n\n // some default values are stored for applying model transforms\n this._defaultTickPad = this.tickPad.slice();\n this._defaultLabelPad = this.labelPad.slice();\n this._defaultLineTickLength = this.lineTickLength.slice();\n}\n\nvar proto = AxesOptions.prototype;\n\nproto.merge = function(fullLayout, sceneLayout) {\n var opts = this;\n for(var i = 0; i < 3; ++i) {\n var axes = sceneLayout[AXES_NAMES[i]];\n\n if(!axes.visible) {\n opts.tickEnable[i] = false;\n opts.labelEnable[i] = false;\n opts.lineEnable[i] = false;\n opts.lineTickEnable[i] = false;\n opts.gridEnable[i] = false;\n opts.zeroEnable[i] = false;\n opts.backgroundEnable[i] = false;\n continue;\n }\n\n // Axes labels\n opts.labels[i] = fullLayout._meta ?\n Lib.templateString(axes.title.text, fullLayout._meta) :\n axes.title.text;\n\n if('font' in axes.title) {\n if(axes.title.font.color) opts.labelColor[i] = str2RgbaArray(axes.title.font.color);\n if(axes.title.font.family) opts.labelFont[i] = axes.title.font.family;\n if(axes.title.font.size) opts.labelSize[i] = axes.title.font.size;\n }\n\n // Lines\n if('showline' in axes) opts.lineEnable[i] = axes.showline;\n if('linecolor' in axes) opts.lineColor[i] = str2RgbaArray(axes.linecolor);\n if('linewidth' in axes) opts.lineWidth[i] = axes.linewidth;\n\n if('showgrid' in axes) opts.gridEnable[i] = axes.showgrid;\n if('gridcolor' in axes) opts.gridColor[i] = str2RgbaArray(axes.gridcolor);\n if('gridwidth' in axes) opts.gridWidth[i] = axes.gridwidth;\n\n // Remove zeroline if axis type is log\n // otherwise the zeroline is incorrectly drawn at 1 on log axes\n if(axes.type === 'log') opts.zeroEnable[i] = false;\n else if('zeroline' in axes) opts.zeroEnable[i] = axes.zeroline;\n if('zerolinecolor' in axes) opts.zeroLineColor[i] = str2RgbaArray(axes.zerolinecolor);\n if('zerolinewidth' in axes) opts.zeroLineWidth[i] = axes.zerolinewidth;\n\n // tick lines\n if('ticks' in axes && !!axes.ticks) opts.lineTickEnable[i] = true;\n else opts.lineTickEnable[i] = false;\n\n if('ticklen' in axes) {\n opts.lineTickLength[i] = opts._defaultLineTickLength[i] = axes.ticklen;\n }\n if('tickcolor' in axes) opts.lineTickColor[i] = str2RgbaArray(axes.tickcolor);\n if('tickwidth' in axes) opts.lineTickWidth[i] = axes.tickwidth;\n if('tickangle' in axes) {\n opts.tickAngle[i] = (axes.tickangle === 'auto') ?\n -3600 : // i.e. special number to set auto option\n Math.PI * -axes.tickangle / 180;\n }\n\n // tick labels\n if('showticklabels' in axes) opts.tickEnable[i] = axes.showticklabels;\n if('tickfont' in axes) {\n if(axes.tickfont.color) opts.tickColor[i] = str2RgbaArray(axes.tickfont.color);\n if(axes.tickfont.family) opts.tickFont[i] = axes.tickfont.family;\n if(axes.tickfont.size) opts.tickSize[i] = axes.tickfont.size;\n }\n\n if('mirror' in axes) {\n if(['ticks', 'all', 'allticks'].indexOf(axes.mirror) !== -1) {\n opts.lineTickMirror[i] = true;\n opts.lineMirror[i] = true;\n } else if(axes.mirror === true) {\n opts.lineTickMirror[i] = false;\n opts.lineMirror[i] = true;\n } else {\n opts.lineTickMirror[i] = false;\n opts.lineMirror[i] = false;\n }\n } else opts.lineMirror[i] = false;\n\n // grid background\n if('showbackground' in axes && axes.showbackground !== false) {\n opts.backgroundEnable[i] = true;\n opts.backgroundColor[i] = str2RgbaArray(axes.backgroundcolor);\n } else opts.backgroundEnable[i] = false;\n }\n};\n\n\nfunction createAxesOptions(fullLayout, sceneLayout) {\n var result = new AxesOptions();\n result.merge(fullLayout, sceneLayout);\n return result;\n}\n\nmodule.exports = createAxesOptions;\n","\"use strict\"; \"use restrict\";\n\nmodule.exports = UnionFind;\n\nfunction UnionFind(count) {\n this.roots = new Array(count);\n this.ranks = new Array(count);\n \n for(var i=0; i ]/) ? '_keybuster_' + Math.random() : '';\n return {\n // keyWithinBlock: /*fromTo[0] + */i, // optimized future version - no busting\n // keyWithinBlock: fromTo[0] + i, // initial always-unoptimized version - janky scrolling with 5+ columns\n keyWithinBlock: i + buster, // current compromise: regular content is very fast; async content is possible\n key: fromTo[0] + i,\n column: d,\n calcdata: d.calcdata,\n page: d.page,\n rowBlocks: d.rowBlocks,\n value: v\n };\n });\n};\n\nfunction rowFromTo(d) {\n var rowBlock = d.rowBlocks[d.page];\n // fixme rowBlock truthiness check is due to ugly hack of placing 2nd panel as d.page = -1\n var rowFrom = rowBlock ? rowBlock.rows[0].rowIndex : 0;\n var rowTo = rowBlock ? rowFrom + rowBlock.rows.length : 0;\n return [rowFrom, rowTo];\n}\n","module.exports = function(dtype) {\n switch (dtype) {\n case 'int8':\n return Int8Array\n case 'int16':\n return Int16Array\n case 'int32':\n return Int32Array\n case 'uint8':\n return Uint8Array\n case 'uint16':\n return Uint16Array\n case 'uint32':\n return Uint32Array\n case 'float32':\n return Float32Array\n case 'float64':\n return Float64Array\n case 'array':\n return Array\n case 'uint8_clamped':\n return Uint8ClampedArray\n }\n}\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict'\n\nmodule.exports = affineHull\n\nvar orient = require('robust-orientation')\n\nfunction linearlyIndependent(points, d) {\n var nhull = new Array(d+1)\n for(var i=0; i 0;\n}\n\nmodule.exports = function plot(gd, cdModule, transitionOpts, makeOnCompleteCallback) {\n var fullLayout = gd._fullLayout;\n var onComplete;\n\n if(hasTransition(transitionOpts)) {\n if(makeOnCompleteCallback) {\n // If it was passed a callback to register completion, make a callback. If\n // this is created, then it must be executed on completion, otherwise the\n // pos-transition redraw will not execute:\n onComplete = makeOnCompleteCallback();\n }\n }\n\n Lib.makeTraceGroups(fullLayout._indicatorlayer, cdModule, 'trace').each(function(cd) {\n var cd0 = cd[0];\n var trace = cd0.trace;\n\n var plotGroup = d3.select(this);\n\n // Elements in trace\n var hasGauge = trace._hasGauge;\n var isAngular = trace._isAngular;\n var isBullet = trace._isBullet;\n\n // Domain size\n var domain = trace.domain;\n var size = {\n w: fullLayout._size.w * (domain.x[1] - domain.x[0]),\n h: fullLayout._size.h * (domain.y[1] - domain.y[0]),\n l: fullLayout._size.l + fullLayout._size.w * domain.x[0],\n r: fullLayout._size.r + fullLayout._size.w * (1 - domain.x[1]),\n t: fullLayout._size.t + fullLayout._size.h * (1 - domain.y[1]),\n b: fullLayout._size.b + fullLayout._size.h * (domain.y[0])\n };\n var centerX = size.l + size.w / 2;\n var centerY = size.t + size.h / 2;\n\n // Angular gauge size\n var radius = Math.min(size.w / 2, size.h); // fill domain\n var innerRadius = cn.innerRadius * radius;\n\n // Position numbers based on mode and set the scaling logic\n var numbersX, numbersY, numbersScaler;\n var numbersAlign = trace.align || 'center';\n\n numbersY = centerY;\n if(!hasGauge) {\n numbersX = size.l + position[numbersAlign] * size.w;\n numbersScaler = function(el) {\n return fitTextInsideBox(el, size.w, size.h);\n };\n } else {\n if(isAngular) {\n numbersX = centerX;\n numbersY = centerY + radius / 2;\n numbersScaler = function(el) {\n return fitTextInsideCircle(el, 0.9 * innerRadius);\n };\n }\n if(isBullet) {\n var padding = cn.bulletPadding;\n var p = (1 - cn.bulletNumberDomainSize) + padding;\n numbersX = size.l + (p + (1 - p) * position[numbersAlign]) * size.w;\n numbersScaler = function(el) {\n return fitTextInsideBox(el, (cn.bulletNumberDomainSize - padding) * size.w, size.h);\n };\n }\n }\n\n // Draw numbers\n drawNumbers(gd, plotGroup, cd, {\n numbersX: numbersX,\n numbersY: numbersY,\n numbersScaler: numbersScaler,\n transitionOpts: transitionOpts,\n onComplete: onComplete\n });\n\n // Reexpress our gauge background attributes for drawing\n var gaugeBg, gaugeOutline;\n if(hasGauge) {\n gaugeBg = {\n range: trace.gauge.axis.range,\n color: trace.gauge.bgcolor,\n line: {\n color: trace.gauge.bordercolor,\n width: 0\n },\n thickness: 1\n };\n\n gaugeOutline = {\n range: trace.gauge.axis.range,\n color: 'rgba(0, 0, 0, 0)',\n line: {\n color: trace.gauge.bordercolor,\n width: trace.gauge.borderwidth\n },\n thickness: 1\n };\n }\n\n // Prepare angular gauge layers\n var angularGauge = plotGroup.selectAll('g.angular').data(isAngular ? cd : []);\n angularGauge.exit().remove();\n var angularaxisLayer = plotGroup.selectAll('g.angularaxis').data(isAngular ? cd : []);\n angularaxisLayer.exit().remove();\n\n if(isAngular) {\n drawAngularGauge(gd, plotGroup, cd, {\n radius: radius,\n innerRadius: innerRadius,\n\n gauge: angularGauge,\n layer: angularaxisLayer,\n size: size,\n gaugeBg: gaugeBg,\n gaugeOutline: gaugeOutline,\n transitionOpts: transitionOpts,\n onComplete: onComplete\n });\n }\n\n // Prepare bullet layers\n var bulletGauge = plotGroup.selectAll('g.bullet').data(isBullet ? cd : []);\n bulletGauge.exit().remove();\n var bulletaxisLayer = plotGroup.selectAll('g.bulletaxis').data(isBullet ? cd : []);\n bulletaxisLayer.exit().remove();\n\n if(isBullet) {\n drawBulletGauge(gd, plotGroup, cd, {\n gauge: bulletGauge,\n layer: bulletaxisLayer,\n size: size,\n gaugeBg: gaugeBg,\n gaugeOutline: gaugeOutline,\n transitionOpts: transitionOpts,\n onComplete: onComplete\n });\n }\n\n // title\n var title = plotGroup.selectAll('text.title').data(cd);\n title.exit().remove();\n title.enter().append('text').classed('title', true);\n title\n .attr('text-anchor', function() {\n return isBullet ? anchor.right : anchor[trace.title.align];\n })\n .text(trace.title.text)\n .call(Drawing.font, trace.title.font)\n .call(svgTextUtils.convertToTspans, gd);\n\n // Position title\n title.attr('transform', function() {\n var titleX = size.l + size.w * position[trace.title.align];\n var titleY;\n var titlePadding = cn.titlePadding;\n var titlebBox = Drawing.bBox(title.node());\n if(hasGauge) {\n if(isAngular) {\n // position above axis ticks/labels\n if(trace.gauge.axis.visible) {\n var bBox = Drawing.bBox(angularaxisLayer.node());\n titleY = (bBox.top - titlePadding) - titlebBox.bottom;\n } else {\n titleY = size.t + size.h / 2 - radius / 2 - titlebBox.bottom - titlePadding;\n }\n }\n if(isBullet) {\n // position outside domain\n titleY = numbersY - (titlebBox.top + titlebBox.bottom) / 2;\n titleX = size.l - cn.bulletPadding * size.w; // Outside domain, on the left\n }\n } else {\n // position above numbers\n titleY = (trace._numbersTop - titlePadding) - titlebBox.bottom;\n }\n return strTranslate(titleX, titleY);\n });\n });\n};\n\nfunction drawBulletGauge(gd, plotGroup, cd, opts) {\n var trace = cd[0].trace;\n\n var bullet = opts.gauge;\n var axisLayer = opts.layer;\n var gaugeBg = opts.gaugeBg;\n var gaugeOutline = opts.gaugeOutline;\n var size = opts.size;\n var domain = trace.domain;\n\n var transitionOpts = opts.transitionOpts;\n var onComplete = opts.onComplete;\n\n // preparing axis\n var ax, vals, transFn, tickSign, shift;\n\n // Enter bullet, axis\n bullet.enter().append('g').classed('bullet', true);\n bullet.attr('transform', 'translate(' + size.l + ', ' + size.t + ')');\n\n axisLayer.enter().append('g')\n .classed('bulletaxis', true)\n .classed('crisp', true);\n axisLayer.selectAll('g.' + 'xbulletaxis' + 'tick,path,text').remove();\n\n // Draw bullet\n var bulletHeight = size.h; // use all vertical domain\n var innerBulletHeight = trace.gauge.bar.thickness * bulletHeight;\n var bulletLeft = domain.x[0];\n var bulletRight = domain.x[0] + (domain.x[1] - domain.x[0]) * ((trace._hasNumber || trace._hasDelta) ? (1 - cn.bulletNumberDomainSize) : 1);\n\n ax = mockAxis(gd, trace.gauge.axis);\n ax._id = 'xbulletaxis';\n ax.domain = [bulletLeft, bulletRight];\n ax.setScale();\n\n vals = Axes.calcTicks(ax);\n transFn = Axes.makeTransFn(ax);\n tickSign = Axes.getTickSigns(ax)[2];\n\n shift = size.t + size.h;\n if(ax.visible) {\n Axes.drawTicks(gd, ax, {\n vals: ax.ticks === 'inside' ? Axes.clipEnds(ax, vals) : vals,\n layer: axisLayer,\n path: Axes.makeTickPath(ax, shift, tickSign),\n transFn: transFn\n });\n\n Axes.drawLabels(gd, ax, {\n vals: vals,\n layer: axisLayer,\n transFn: transFn,\n labelFns: Axes.makeLabelFns(ax, shift)\n });\n }\n\n function drawRect(s) {\n s\n .attr('width', function(d) { return Math.max(0, ax.c2p(d.range[1]) - ax.c2p(d.range[0]));})\n .attr('x', function(d) { return ax.c2p(d.range[0]);})\n .attr('y', function(d) { return 0.5 * (1 - d.thickness) * bulletHeight;})\n .attr('height', function(d) { return d.thickness * bulletHeight; });\n }\n\n // Draw bullet background, steps\n var boxes = [gaugeBg].concat(trace.gauge.steps);\n var bgBullet = bullet.selectAll('g.bg-bullet').data(boxes);\n bgBullet.enter().append('g').classed('bg-bullet', true).append('rect');\n bgBullet.select('rect')\n .call(drawRect)\n .call(styleShape);\n bgBullet.exit().remove();\n\n // Draw value bar with transitions\n var fgBullet = bullet.selectAll('g.value-bullet').data([trace.gauge.bar]);\n fgBullet.enter().append('g').classed('value-bullet', true).append('rect');\n fgBullet.select('rect')\n .attr('height', innerBulletHeight)\n .attr('y', (bulletHeight - innerBulletHeight) / 2)\n .call(styleShape);\n if(hasTransition(transitionOpts)) {\n fgBullet.select('rect')\n .transition()\n .duration(transitionOpts.duration)\n .ease(transitionOpts.easing)\n .each('end', function() { onComplete && onComplete(); })\n .each('interrupt', function() { onComplete && onComplete(); })\n .attr('width', Math.max(0, ax.c2p(Math.min(trace.gauge.axis.range[1], cd[0].y))));\n } else {\n fgBullet.select('rect')\n .attr('width', typeof cd[0].y === 'number' ?\n Math.max(0, ax.c2p(Math.min(trace.gauge.axis.range[1], cd[0].y))) :\n 0);\n }\n fgBullet.exit().remove();\n\n var data = cd.filter(function() {return trace.gauge.threshold.value;});\n var threshold = bullet.selectAll('g.threshold-bullet').data(data);\n threshold.enter().append('g').classed('threshold-bullet', true).append('line');\n threshold.select('line')\n .attr('x1', ax.c2p(trace.gauge.threshold.value))\n .attr('x2', ax.c2p(trace.gauge.threshold.value))\n .attr('y1', (1 - trace.gauge.threshold.thickness) / 2 * bulletHeight)\n .attr('y2', (1 - (1 - trace.gauge.threshold.thickness) / 2) * bulletHeight)\n .call(Color.stroke, trace.gauge.threshold.line.color)\n .style('stroke-width', trace.gauge.threshold.line.width);\n threshold.exit().remove();\n\n var bulletOutline = bullet.selectAll('g.gauge-outline').data([gaugeOutline]);\n bulletOutline.enter().append('g').classed('gauge-outline', true).append('rect');\n bulletOutline.select('rect')\n .call(drawRect)\n .call(styleShape);\n bulletOutline.exit().remove();\n}\n\nfunction drawAngularGauge(gd, plotGroup, cd, opts) {\n var trace = cd[0].trace;\n\n var size = opts.size;\n var radius = opts.radius;\n var innerRadius = opts.innerRadius;\n var gaugeBg = opts.gaugeBg;\n var gaugeOutline = opts.gaugeOutline;\n var gaugePosition = [size.l + size.w / 2, size.t + size.h / 2 + radius / 2];\n var gauge = opts.gauge;\n var axisLayer = opts.layer;\n\n var transitionOpts = opts.transitionOpts;\n var onComplete = opts.onComplete;\n\n // circular gauge\n var theta = Math.PI / 2;\n function valueToAngle(v) {\n var min = trace.gauge.axis.range[0];\n var max = trace.gauge.axis.range[1];\n var angle = (v - min) / (max - min) * Math.PI - theta;\n if(angle < -theta) return -theta;\n if(angle > theta) return theta;\n return angle;\n }\n\n function arcPathGenerator(size) {\n return d3.svg.arc()\n .innerRadius((innerRadius + radius) / 2 - size / 2 * (radius - innerRadius))\n .outerRadius((innerRadius + radius) / 2 + size / 2 * (radius - innerRadius))\n .startAngle(-theta);\n }\n\n function drawArc(p) {\n p\n .attr('d', function(d) {\n return arcPathGenerator(d.thickness)\n .startAngle(valueToAngle(d.range[0]))\n .endAngle(valueToAngle(d.range[1]))();\n });\n }\n\n // preparing axis\n var ax, vals, transFn, tickSign;\n\n // Enter gauge and axis\n gauge.enter().append('g').classed('angular', true);\n gauge.attr('transform', strTranslate(gaugePosition[0], gaugePosition[1]));\n\n axisLayer.enter().append('g')\n .classed('angularaxis', true)\n .classed('crisp', true);\n axisLayer.selectAll('g.' + 'xangularaxis' + 'tick,path,text').remove();\n\n ax = mockAxis(gd, trace.gauge.axis);\n ax.type = 'linear';\n ax.range = trace.gauge.axis.range;\n ax._id = 'xangularaxis'; // or 'y', but I don't think this makes a difference here\n ax.setScale();\n\n // 't'ick to 'g'eometric radians is used all over the place here\n var t2g = function(d) {\n return (ax.range[0] - d.x) / (ax.range[1] - ax.range[0]) * Math.PI + Math.PI;\n };\n\n var labelFns = {};\n var out = Axes.makeLabelFns(ax, 0);\n var labelStandoff = out.labelStandoff;\n labelFns.xFn = function(d) {\n var rad = t2g(d);\n return Math.cos(rad) * labelStandoff;\n };\n labelFns.yFn = function(d) {\n var rad = t2g(d);\n var ff = Math.sin(rad) > 0 ? 0.2 : 1;\n return -Math.sin(rad) * (labelStandoff + d.fontSize * ff) +\n Math.abs(Math.cos(rad)) * (d.fontSize * MID_SHIFT);\n };\n labelFns.anchorFn = function(d) {\n var rad = t2g(d);\n var cos = Math.cos(rad);\n return Math.abs(cos) < 0.1 ?\n 'middle' :\n (cos > 0 ? 'start' : 'end');\n };\n labelFns.heightFn = function(d, a, h) {\n var rad = t2g(d);\n return -0.5 * (1 + Math.sin(rad)) * h;\n };\n var _transFn = function(rad) {\n return strTranslate(\n gaugePosition[0] + radius * Math.cos(rad),\n gaugePosition[1] - radius * Math.sin(rad)\n );\n };\n transFn = function(d) {\n return _transFn(t2g(d));\n };\n var transFn2 = function(d) {\n var rad = t2g(d);\n return _transFn(rad) + 'rotate(' + -rad2deg(rad) + ')';\n };\n vals = Axes.calcTicks(ax);\n tickSign = Axes.getTickSigns(ax)[2];\n if(ax.visible) {\n tickSign = ax.ticks === 'inside' ? -1 : 1;\n var pad = (ax.linewidth || 1) / 2;\n Axes.drawTicks(gd, ax, {\n vals: vals,\n layer: axisLayer,\n path: 'M' + (tickSign * pad) + ',0h' + (tickSign * ax.ticklen),\n transFn: transFn2\n });\n Axes.drawLabels(gd, ax, {\n vals: vals,\n layer: axisLayer,\n transFn: transFn,\n labelFns: labelFns\n });\n }\n\n // Draw background + steps\n var arcs = [gaugeBg].concat(trace.gauge.steps);\n var bgArc = gauge.selectAll('g.bg-arc').data(arcs);\n bgArc.enter().append('g').classed('bg-arc', true).append('path');\n bgArc.select('path').call(drawArc).call(styleShape);\n bgArc.exit().remove();\n\n // Draw foreground with transition\n var valueArcPathGenerator = arcPathGenerator(trace.gauge.bar.thickness);\n var valueArc = gauge.selectAll('g.value-arc').data([trace.gauge.bar]);\n valueArc.enter().append('g').classed('value-arc', true).append('path');\n var valueArcPath = valueArc.select('path');\n if(hasTransition(transitionOpts)) {\n valueArcPath\n .transition()\n .duration(transitionOpts.duration)\n .ease(transitionOpts.easing)\n .each('end', function() { onComplete && onComplete(); })\n .each('interrupt', function() { onComplete && onComplete(); })\n .attrTween('d', arcTween(valueArcPathGenerator, valueToAngle(cd[0].lastY), valueToAngle(cd[0].y)));\n trace._lastValue = cd[0].y;\n } else {\n valueArcPath.attr('d', typeof cd[0].y === 'number' ?\n valueArcPathGenerator.endAngle(valueToAngle(cd[0].y)) :\n 'M0,0Z');\n }\n valueArcPath.call(styleShape);\n valueArc.exit().remove();\n\n // Draw threshold\n arcs = [];\n var v = trace.gauge.threshold.value;\n if(v) {\n arcs.push({\n range: [v, v],\n color: trace.gauge.threshold.color,\n line: {\n color: trace.gauge.threshold.line.color,\n width: trace.gauge.threshold.line.width\n },\n thickness: trace.gauge.threshold.thickness\n });\n }\n var thresholdArc = gauge.selectAll('g.threshold-arc').data(arcs);\n thresholdArc.enter().append('g').classed('threshold-arc', true).append('path');\n thresholdArc.select('path').call(drawArc).call(styleShape);\n thresholdArc.exit().remove();\n\n // Draw border last\n var gaugeBorder = gauge.selectAll('g.gauge-outline').data([gaugeOutline]);\n gaugeBorder.enter().append('g').classed('gauge-outline', true).append('path');\n gaugeBorder.select('path').call(drawArc).call(styleShape);\n gaugeBorder.exit().remove();\n}\n\nfunction drawNumbers(gd, plotGroup, cd, opts) {\n var trace = cd[0].trace;\n\n var numbersX = opts.numbersX;\n var numbersY = opts.numbersY;\n var numbersAlign = trace.align || 'center';\n var numbersAnchor = anchor[numbersAlign];\n\n var transitionOpts = opts.transitionOpts;\n var onComplete = opts.onComplete;\n\n var numbers = Lib.ensureSingle(plotGroup, 'g', 'numbers');\n var bignumberbBox, deltabBox;\n var numbersbBox;\n\n var data = [];\n if(trace._hasNumber) data.push('number');\n if(trace._hasDelta) {\n data.push('delta');\n if(trace.delta.position === 'left') data.reverse();\n }\n var sel = numbers.selectAll('text').data(data);\n sel.enter().append('text');\n sel\n .attr('text-anchor', function() {return numbersAnchor;})\n .attr('class', function(d) { return d;})\n .attr('x', null)\n .attr('y', null)\n .attr('dx', null)\n .attr('dy', null);\n sel.exit().remove();\n\n // Function to override the number formatting used during transitions\n function transitionFormat(valueformat, fmt, from, to) {\n // For now, do not display SI prefix if start and end value do not have any\n if(valueformat.match('s') && // If using SI prefix\n (from >= 0 !== to >= 0) && // If sign change\n (!fmt(from).slice(-1).match(SI_PREFIX) && !fmt(to).slice(-1).match(SI_PREFIX)) // Has no SI prefix\n ) {\n var transitionValueFormat = valueformat.slice().replace('s', 'f').replace(/\\d+/, function(m) { return parseInt(m) - 1;});\n var transitionAx = mockAxis(gd, {tickformat: transitionValueFormat});\n return function(v) {\n // Switch to fixed precision if number is smaller than one\n if(Math.abs(v) < 1) return Axes.tickText(transitionAx, v).text;\n return fmt(v);\n };\n } else {\n return fmt;\n }\n }\n\n function drawBignumber() {\n var bignumberAx = mockAxis(gd, {tickformat: trace.number.valueformat}, trace._range);\n bignumberAx.setScale();\n Axes.prepTicks(bignumberAx);\n\n var fmt = function(v) { return Axes.tickText(bignumberAx, v).text;};\n var bignumberSuffix = trace.number.suffix;\n var bignumberPrefix = trace.number.prefix;\n\n var number = numbers.select('text.number');\n\n function writeNumber() {\n var txt = typeof cd[0].y === 'number' ?\n bignumberPrefix + fmt(cd[0].y) + bignumberSuffix :\n '-';\n number.text(txt)\n .call(Drawing.font, trace.number.font)\n .call(svgTextUtils.convertToTspans, gd);\n }\n\n if(hasTransition(transitionOpts)) {\n number\n .transition()\n .duration(transitionOpts.duration)\n .ease(transitionOpts.easing)\n .each('end', function() { writeNumber(); onComplete && onComplete(); })\n .each('interrupt', function() { writeNumber(); onComplete && onComplete(); })\n .attrTween('text', function() {\n var that = d3.select(this);\n var interpolator = d3.interpolateNumber(cd[0].lastY, cd[0].y);\n trace._lastValue = cd[0].y;\n\n var transitionFmt = transitionFormat(trace.number.valueformat, fmt, cd[0].lastY, cd[0].y);\n return function(t) {\n that.text(bignumberPrefix + transitionFmt(interpolator(t)) + bignumberSuffix);\n };\n });\n } else {\n writeNumber();\n }\n\n bignumberbBox = measureText(bignumberPrefix + fmt(cd[0].y) + bignumberSuffix, trace.number.font, numbersAnchor, gd);\n return number;\n }\n\n function drawDelta() {\n var deltaAx = mockAxis(gd, {tickformat: trace.delta.valueformat}, trace._range);\n deltaAx.setScale();\n Axes.prepTicks(deltaAx);\n\n var deltaFmt = function(v) { return Axes.tickText(deltaAx, v).text;};\n var deltaValue = function(d) {\n var value = trace.delta.relative ? d.relativeDelta : d.delta;\n return value;\n };\n var deltaFormatText = function(value, numberFmt) {\n if(value === 0 || typeof value !== 'number' || isNaN(value)) return '-';\n return (value > 0 ? trace.delta.increasing.symbol : trace.delta.decreasing.symbol) + numberFmt(value);\n };\n var deltaFill = function(d) {\n return d.delta >= 0 ? trace.delta.increasing.color : trace.delta.decreasing.color;\n };\n if(trace._deltaLastValue === undefined) {\n trace._deltaLastValue = deltaValue(cd[0]);\n }\n var delta = numbers.select('text.delta');\n delta\n .call(Drawing.font, trace.delta.font)\n .call(Color.fill, deltaFill({delta: trace._deltaLastValue}));\n\n function writeDelta() {\n delta.text(deltaFormatText(deltaValue(cd[0]), deltaFmt))\n .call(Color.fill, deltaFill(cd[0]))\n .call(svgTextUtils.convertToTspans, gd);\n }\n\n if(hasTransition(transitionOpts)) {\n delta\n .transition()\n .duration(transitionOpts.duration)\n .ease(transitionOpts.easing)\n .tween('text', function() {\n var that = d3.select(this);\n var to = deltaValue(cd[0]);\n var from = trace._deltaLastValue;\n var transitionFmt = transitionFormat(trace.delta.valueformat, deltaFmt, from, to);\n var interpolator = d3.interpolateNumber(from, to);\n trace._deltaLastValue = to;\n return function(t) {\n that.text(deltaFormatText(interpolator(t), transitionFmt));\n that.call(Color.fill, deltaFill({delta: interpolator(t)}));\n };\n })\n .each('end', function() { writeDelta(); onComplete && onComplete(); })\n .each('interrupt', function() { writeDelta(); onComplete && onComplete(); });\n } else {\n writeDelta();\n }\n\n deltabBox = measureText(deltaFormatText(deltaValue(cd[0]), deltaFmt), trace.delta.font, numbersAnchor, gd);\n return delta;\n }\n\n var key = trace.mode + trace.align;\n var delta;\n if(trace._hasDelta) {\n delta = drawDelta();\n key += trace.delta.position + trace.delta.font.size + trace.delta.font.family + trace.delta.valueformat;\n key += trace.delta.increasing.symbol + trace.delta.decreasing.symbol;\n numbersbBox = deltabBox;\n }\n if(trace._hasNumber) {\n drawBignumber();\n key += trace.number.font.size + trace.number.font.family + trace.number.valueformat + trace.number.suffix + trace.number.prefix;\n numbersbBox = bignumberbBox;\n }\n\n // Position delta relative to bignumber\n if(trace._hasDelta && trace._hasNumber) {\n var bignumberCenter = [\n (bignumberbBox.left + bignumberbBox.right) / 2,\n (bignumberbBox.top + bignumberbBox.bottom) / 2\n ];\n var deltaCenter = [\n (deltabBox.left + deltabBox.right) / 2,\n (deltabBox.top + deltabBox.bottom) / 2\n ];\n\n var dx, dy;\n var padding = 0.75 * trace.delta.font.size;\n if(trace.delta.position === 'left') {\n dx = cache(trace, 'deltaPos', 0, -1 * (bignumberbBox.width * (position[trace.align]) + deltabBox.width * (1 - position[trace.align]) + padding), key, Math.min);\n dy = bignumberCenter[1] - deltaCenter[1];\n\n numbersbBox = {\n width: bignumberbBox.width + deltabBox.width + padding,\n height: Math.max(bignumberbBox.height, deltabBox.height),\n left: deltabBox.left + dx,\n right: bignumberbBox.right,\n top: Math.min(bignumberbBox.top, deltabBox.top + dy),\n bottom: Math.max(bignumberbBox.bottom, deltabBox.bottom + dy)\n };\n }\n if(trace.delta.position === 'right') {\n dx = cache(trace, 'deltaPos', 0, bignumberbBox.width * (1 - position[trace.align]) + deltabBox.width * position[trace.align] + padding, key, Math.max);\n dy = bignumberCenter[1] - deltaCenter[1];\n\n numbersbBox = {\n width: bignumberbBox.width + deltabBox.width + padding,\n height: Math.max(bignumberbBox.height, deltabBox.height),\n left: bignumberbBox.left,\n right: deltabBox.right + dx,\n top: Math.min(bignumberbBox.top, deltabBox.top + dy),\n bottom: Math.max(bignumberbBox.bottom, deltabBox.bottom + dy)\n };\n }\n if(trace.delta.position === 'bottom') {\n dx = null;\n dy = deltabBox.height;\n\n numbersbBox = {\n width: Math.max(bignumberbBox.width, deltabBox.width),\n height: bignumberbBox.height + deltabBox.height,\n left: Math.min(bignumberbBox.left, deltabBox.left),\n right: Math.max(bignumberbBox.right, deltabBox.right),\n top: bignumberbBox.bottom - bignumberbBox.height,\n bottom: bignumberbBox.bottom + deltabBox.height\n };\n }\n if(trace.delta.position === 'top') {\n dx = null;\n dy = bignumberbBox.top;\n\n numbersbBox = {\n width: Math.max(bignumberbBox.width, deltabBox.width),\n height: bignumberbBox.height + deltabBox.height,\n left: Math.min(bignumberbBox.left, deltabBox.left),\n right: Math.max(bignumberbBox.right, deltabBox.right),\n top: bignumberbBox.bottom - bignumberbBox.height - deltabBox.height,\n bottom: bignumberbBox.bottom\n };\n }\n\n delta.attr({dx: dx, dy: dy});\n }\n\n // Resize numbers to fit within space and position\n if(trace._hasNumber || trace._hasDelta) {\n numbers.attr('transform', function() {\n var m = opts.numbersScaler(numbersbBox);\n key += m[2];\n var scaleRatio = cache(trace, 'numbersScale', 1, m[0], key, Math.min);\n var translateY;\n if(!trace._scaleNumbers) scaleRatio = 1;\n if(trace._isAngular) {\n // align vertically to bottom\n translateY = numbersY - scaleRatio * numbersbBox.bottom;\n } else {\n // align vertically to center\n translateY = numbersY - scaleRatio * (numbersbBox.top + numbersbBox.bottom) / 2;\n }\n\n // Stash the top position of numbersbBox for title positioning\n trace._numbersTop = scaleRatio * (numbersbBox.top) + translateY;\n\n var ref = numbersbBox[numbersAlign];\n if(numbersAlign === 'center') ref = (numbersbBox.left + numbersbBox.right) / 2;\n var translateX = numbersX - scaleRatio * ref;\n\n // Stash translateX\n translateX = cache(trace, 'numbersTranslate', 0, translateX, key, Math.max);\n return strTranslate(translateX, translateY) + ' scale(' + scaleRatio + ')';\n });\n }\n}\n\n// Apply fill, stroke, stroke-width to SVG shape\nfunction styleShape(p) {\n p\n .each(function(d) { Color.stroke(d3.select(this), d.line.color);})\n .each(function(d) { Color.fill(d3.select(this), d.color);})\n .style('stroke-width', function(d) { return d.line.width;});\n}\n\n// Returns a tween for a transition’s \"d\" attribute, transitioning any selected\n// arcs from their current angle to the specified new angle.\nfunction arcTween(arc, endAngle, newAngle) {\n return function() {\n var interpolate = d3.interpolate(endAngle, newAngle);\n return function(t) {\n return arc.endAngle(interpolate(t))();\n };\n };\n}\n\n// mocks our axis\nfunction mockAxis(gd, opts, zrange) {\n var fullLayout = gd._fullLayout;\n\n var axisIn = Lib.extendFlat({\n type: 'linear',\n ticks: 'outside',\n range: zrange,\n showline: true\n }, opts);\n\n var axisOut = {\n type: 'linear',\n _id: 'x' + opts._id\n };\n\n var axisOptions = {\n letter: 'x',\n font: fullLayout.font,\n noHover: true,\n noTickson: true\n };\n\n function coerce(attr, dflt) {\n return Lib.coerce(axisIn, axisOut, axisLayoutAttrs, attr, dflt);\n }\n\n handleAxisDefaults(axisIn, axisOut, coerce, axisOptions, fullLayout);\n handleAxisPositionDefaults(axisIn, axisOut, coerce, axisOptions);\n\n return axisOut;\n}\n\nfunction strTranslate(x, y) {\n return 'translate(' + x + ',' + y + ')';\n}\n\nfunction fitTextInsideBox(textBB, width, height) {\n // compute scaling ratio to have text fit within specified width and height\n var ratio = Math.min(width / textBB.width, height / textBB.height);\n return [ratio, textBB, width + 'x' + height];\n}\n\nfunction fitTextInsideCircle(textBB, radius) {\n // compute scaling ratio to have text fit within specified radius\n var elRadius = Math.sqrt((textBB.width / 2) * (textBB.width / 2) + textBB.height * textBB.height);\n var ratio = radius / elRadius;\n return [ratio, textBB, radius];\n}\n\nfunction measureText(txt, font, textAnchor, gd) {\n var element = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n var sel = d3.select(element);\n sel.text(txt)\n .attr('x', 0)\n .attr('y', 0)\n .attr('text-anchor', textAnchor)\n .attr('data-unformatted', txt)\n .call(svgTextUtils.convertToTspans, gd)\n .call(Drawing.font, font);\n return Drawing.bBox(sel.node());\n}\n\nfunction cache(trace, name, initialValue, value, key, fn) {\n var objName = '_cache' + name;\n if(!(trace[objName] && trace[objName].key === key)) {\n trace[objName] = {key: key, value: initialValue};\n }\n var v = Lib.aggNums(fn, null, [trace[objName].value, value], 2);\n trace[objName].value = v;\n\n return v;\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar hovertemplateAttrs = require('../../plots/template_attributes').hovertemplateAttrs;\nvar extendFlat = require('../../lib/extend').extendFlat;\nvar scatterPolarAttrs = require('../scatterpolar/attributes');\nvar barAttrs = require('../bar/attributes');\n\nmodule.exports = {\n r: scatterPolarAttrs.r,\n theta: scatterPolarAttrs.theta,\n r0: scatterPolarAttrs.r0,\n dr: scatterPolarAttrs.dr,\n theta0: scatterPolarAttrs.theta0,\n dtheta: scatterPolarAttrs.dtheta,\n thetaunit: scatterPolarAttrs.thetaunit,\n\n // orientation: {\n // valType: 'enumerated',\n // \n // values: ['radial', 'angular'],\n // editType: 'calc+clearAxisTypes',\n // \n // },\n\n base: extendFlat({}, barAttrs.base, {\n \n }),\n offset: extendFlat({}, barAttrs.offset, {\n \n }),\n width: extendFlat({}, barAttrs.width, {\n \n }),\n\n text: extendFlat({}, barAttrs.text, {\n \n }),\n hovertext: extendFlat({}, barAttrs.hovertext, {\n \n }),\n\n // textposition: {},\n // textfont: {},\n // insidetextfont: {},\n // outsidetextfont: {},\n // constraintext: {},\n // cliponaxis: extendFlat({}, barAttrs.cliponaxis, {dflt: false}),\n\n marker: barAttrs.marker,\n\n hoverinfo: scatterPolarAttrs.hoverinfo,\n hovertemplate: hovertemplateAttrs(),\n\n selected: barAttrs.selected,\n unselected: barAttrs.unselected\n\n // error_x (error_r, error_theta)\n // error_y\n};\n","'use strict'\n\nvar createBuffer = require('gl-buffer')\nvar createVAO = require('gl-vao')\nvar createShader = require('./shaders/index')\n\nmodule.exports = createSpikes\n\nvar identity = [1,0,0,0,\n 0,1,0,0,\n 0,0,1,0,\n 0,0,0,1]\n\nfunction AxisSpikes(gl, buffer, vao, shader) {\n this.gl = gl\n this.buffer = buffer\n this.vao = vao\n this.shader = shader\n this.pixelRatio = 1\n this.bounds = [[-1000,-1000,-1000], [1000,1000,1000]]\n this.position = [0,0,0]\n this.lineWidth = [2,2,2]\n this.colors = [[0,0,0,1], [0,0,0,1], [0,0,0,1]]\n this.enabled = [true,true,true]\n this.drawSides = [true,true,true]\n this.axes = null\n}\n\nvar proto = AxisSpikes.prototype\n\nvar OUTER_FACE = [0,0,0]\nvar INNER_FACE = [0,0,0]\n\nvar SHAPE = [0,0]\n\nproto.isTransparent = function() {\n return false\n}\n\nproto.drawTransparent = function(camera) {}\n\nproto.draw = function(camera) {\n var gl = this.gl\n var vao = this.vao\n var shader = this.shader\n\n vao.bind()\n shader.bind()\n\n var model = camera.model || identity\n var view = camera.view || identity\n var projection = camera.projection || identity\n\n var axis\n if(this.axes) {\n axis = this.axes.lastCubeProps.axis\n }\n\n var outerFace = OUTER_FACE\n var innerFace = INNER_FACE\n for(var i=0; i<3; ++i) {\n if(axis && axis[i] < 0) {\n outerFace[i] = this.bounds[0][i]\n innerFace[i] = this.bounds[1][i]\n } else {\n outerFace[i] = this.bounds[1][i]\n innerFace[i] = this.bounds[0][i]\n }\n }\n\n SHAPE[0] = gl.drawingBufferWidth\n SHAPE[1] = gl.drawingBufferHeight\n\n shader.uniforms.model = model\n shader.uniforms.view = view\n shader.uniforms.projection = projection\n shader.uniforms.coordinates = [this.position, outerFace, innerFace]\n shader.uniforms.colors = this.colors\n shader.uniforms.screenShape = SHAPE\n\n for(var i=0; i<3; ++i) {\n shader.uniforms.lineWidth = this.lineWidth[i] * this.pixelRatio\n if(this.enabled[i]) {\n vao.draw(gl.TRIANGLES, 6, 6*i)\n if(this.drawSides[i]) {\n vao.draw(gl.TRIANGLES, 12, 18+12*i)\n }\n }\n }\n\n vao.unbind()\n}\n\nproto.update = function(options) {\n if(!options) {\n return\n }\n if(\"bounds\" in options) {\n this.bounds = options.bounds\n }\n if(\"position\" in options) {\n this.position = options.position\n }\n if(\"lineWidth\" in options) {\n this.lineWidth = options.lineWidth\n }\n if(\"colors\" in options) {\n this.colors = options.colors\n }\n if(\"enabled\" in options) {\n this.enabled = options.enabled\n }\n if(\"drawSides\" in options) {\n this.drawSides = options.drawSides\n }\n}\n\nproto.dispose = function() {\n this.vao.dispose()\n this.buffer.dispose()\n this.shader.dispose()\n}\n\n\n\nfunction createSpikes(gl, options) {\n //Create buffers\n var data = [ ]\n\n function line(x,y,z,i,l,h) {\n var row = [x,y,z, 0,0,0, 1]\n row[i+3] = 1\n row[i] = l\n data.push.apply(data, row)\n row[6] = -1\n data.push.apply(data, row)\n row[i] = h\n data.push.apply(data, row)\n data.push.apply(data, row)\n row[6] = 1\n data.push.apply(data, row)\n row[i] = l\n data.push.apply(data, row)\n }\n\n line(0,0,0, 0, 0, 1)\n line(0,0,0, 1, 0, 1)\n line(0,0,0, 2, 0, 1)\n\n line(1,0,0, 1, -1,1)\n line(1,0,0, 2, -1,1)\n\n line(0,1,0, 0, -1,1)\n line(0,1,0, 2, -1,1)\n\n line(0,0,1, 0, -1,1)\n line(0,0,1, 1, -1,1)\n\n var buffer = createBuffer(gl, data)\n var vao = createVAO(gl, [{\n type: gl.FLOAT,\n buffer: buffer,\n size: 3,\n offset: 0,\n stride: 28\n }, {\n type: gl.FLOAT,\n buffer: buffer,\n size: 3,\n offset: 12,\n stride: 28\n }, {\n type: gl.FLOAT,\n buffer: buffer,\n size: 1,\n offset: 24,\n stride: 28\n }])\n\n //Create shader\n var shader = createShader(gl)\n shader.attributes.position.location = 0\n shader.attributes.color.location = 1\n shader.attributes.weight.location = 2\n\n //Create spike object\n var spikes = new AxisSpikes(gl, buffer, vao, shader)\n\n //Set parameters\n spikes.update(options)\n\n //Return resulting object\n return spikes\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar counterRegex = require('../../lib/regex').counter;\nvar domainAttrs = require('../../plots/domain').attributes;\nvar cartesianIdRegex = require('../../plots/cartesian/constants').idRegex;\nvar Template = require('../../plot_api/plot_template');\n\nvar gridAttrs = {\n rows: {\n valType: 'integer',\n min: 1,\n \n editType: 'plot',\n \n },\n roworder: {\n valType: 'enumerated',\n values: ['top to bottom', 'bottom to top'],\n dflt: 'top to bottom',\n \n editType: 'plot',\n \n },\n columns: {\n valType: 'integer',\n min: 1,\n \n editType: 'plot',\n \n },\n subplots: {\n valType: 'info_array',\n freeLength: true,\n dimensions: 2,\n items: {valType: 'enumerated', values: [counterRegex('xy').toString(), ''], editType: 'plot'},\n \n editType: 'plot',\n \n },\n xaxes: {\n valType: 'info_array',\n freeLength: true,\n items: {valType: 'enumerated', values: [cartesianIdRegex.x.toString(), ''], editType: 'plot'},\n \n editType: 'plot',\n \n },\n yaxes: {\n valType: 'info_array',\n freeLength: true,\n items: {valType: 'enumerated', values: [cartesianIdRegex.y.toString(), ''], editType: 'plot'},\n \n editType: 'plot',\n \n },\n pattern: {\n valType: 'enumerated',\n values: ['independent', 'coupled'],\n dflt: 'coupled',\n \n editType: 'plot',\n \n },\n xgap: {\n valType: 'number',\n min: 0,\n max: 1,\n \n editType: 'plot',\n \n },\n ygap: {\n valType: 'number',\n min: 0,\n max: 1,\n \n editType: 'plot',\n \n },\n domain: domainAttrs({name: 'grid', editType: 'plot', noGridCell: true}, {\n \n }),\n xside: {\n valType: 'enumerated',\n values: ['bottom', 'bottom plot', 'top plot', 'top'],\n dflt: 'bottom plot',\n \n editType: 'plot',\n \n },\n yside: {\n valType: 'enumerated',\n values: ['left', 'left plot', 'right plot', 'right'],\n dflt: 'left plot',\n \n editType: 'plot',\n \n },\n editType: 'plot'\n};\n\nfunction getAxes(layout, grid, axLetter) {\n var gridVal = grid[axLetter + 'axes'];\n var splomVal = Object.keys((layout._splomAxes || {})[axLetter] || {});\n\n if(Array.isArray(gridVal)) return gridVal;\n if(splomVal.length) return splomVal;\n}\n\n// the shape of the grid - this needs to be done BEFORE supplyDataDefaults\n// so that non-subplot traces can place themselves in the grid\nfunction sizeDefaults(layoutIn, layoutOut) {\n var gridIn = layoutIn.grid || {};\n var xAxes = getAxes(layoutOut, gridIn, 'x');\n var yAxes = getAxes(layoutOut, gridIn, 'y');\n\n if(!layoutIn.grid && !xAxes && !yAxes) return;\n\n var hasSubplotGrid = Array.isArray(gridIn.subplots) && Array.isArray(gridIn.subplots[0]);\n var hasXaxes = Array.isArray(xAxes);\n var hasYaxes = Array.isArray(yAxes);\n var isSplomGenerated = (\n hasXaxes && xAxes !== gridIn.xaxes &&\n hasYaxes && yAxes !== gridIn.yaxes\n );\n\n var dfltRows, dfltColumns;\n\n if(hasSubplotGrid) {\n dfltRows = gridIn.subplots.length;\n dfltColumns = gridIn.subplots[0].length;\n } else {\n if(hasYaxes) dfltRows = yAxes.length;\n if(hasXaxes) dfltColumns = xAxes.length;\n }\n\n var gridOut = Template.newContainer(layoutOut, 'grid');\n\n function coerce(attr, dflt) {\n return Lib.coerce(gridIn, gridOut, gridAttrs, attr, dflt);\n }\n\n var rows = coerce('rows', dfltRows);\n var columns = coerce('columns', dfltColumns);\n\n if(!(rows * columns > 1)) {\n delete layoutOut.grid;\n return;\n }\n\n if(!hasSubplotGrid && !hasXaxes && !hasYaxes) {\n var useDefaultSubplots = coerce('pattern') === 'independent';\n if(useDefaultSubplots) hasSubplotGrid = true;\n }\n gridOut._hasSubplotGrid = hasSubplotGrid;\n\n var rowOrder = coerce('roworder');\n var reversed = rowOrder === 'top to bottom';\n\n var dfltGapX = hasSubplotGrid ? 0.2 : 0.1;\n var dfltGapY = hasSubplotGrid ? 0.3 : 0.1;\n\n var dfltSideX, dfltSideY;\n if(isSplomGenerated && layoutOut._splomGridDflt) {\n dfltSideX = layoutOut._splomGridDflt.xside;\n dfltSideY = layoutOut._splomGridDflt.yside;\n }\n\n gridOut._domains = {\n x: fillGridPositions('x', coerce, dfltGapX, dfltSideX, columns),\n y: fillGridPositions('y', coerce, dfltGapY, dfltSideY, rows, reversed)\n };\n}\n\n// coerce x or y sizing attributes and return an array of domains for this direction\nfunction fillGridPositions(axLetter, coerce, dfltGap, dfltSide, len, reversed) {\n var dirGap = coerce(axLetter + 'gap', dfltGap);\n var domain = coerce('domain.' + axLetter);\n coerce(axLetter + 'side', dfltSide);\n\n var out = new Array(len);\n var start = domain[0];\n var step = (domain[1] - start) / (len - dirGap);\n var cellDomain = step * (1 - dirGap);\n for(var i = 0; i < len; i++) {\n var cellStart = start + step * i;\n out[reversed ? (len - 1 - i) : i] = [cellStart, cellStart + cellDomain];\n }\n return out;\n}\n\n// the (cartesian) contents of the grid - this needs to happen AFTER supplyDataDefaults\n// so that we know what cartesian subplots are available\nfunction contentDefaults(layoutIn, layoutOut) {\n var gridOut = layoutOut.grid;\n // make sure we got to the end of handleGridSizing\n if(!gridOut || !gridOut._domains) return;\n\n var gridIn = layoutIn.grid || {};\n var subplots = layoutOut._subplots;\n var hasSubplotGrid = gridOut._hasSubplotGrid;\n var rows = gridOut.rows;\n var columns = gridOut.columns;\n var useDefaultSubplots = gridOut.pattern === 'independent';\n\n var i, j, xId, yId, subplotId, subplotsOut, yPos;\n\n var axisMap = gridOut._axisMap = {};\n\n if(hasSubplotGrid) {\n var subplotsIn = gridIn.subplots || [];\n subplotsOut = gridOut.subplots = new Array(rows);\n var index = 1;\n\n for(i = 0; i < rows; i++) {\n var rowOut = subplotsOut[i] = new Array(columns);\n var rowIn = subplotsIn[i] || [];\n for(j = 0; j < columns; j++) {\n if(useDefaultSubplots) {\n subplotId = (index === 1) ? 'xy' : ('x' + index + 'y' + index);\n index++;\n } else subplotId = rowIn[j];\n\n rowOut[j] = '';\n\n if(subplots.cartesian.indexOf(subplotId) !== -1) {\n yPos = subplotId.indexOf('y');\n xId = subplotId.slice(0, yPos);\n yId = subplotId.slice(yPos);\n if((axisMap[xId] !== undefined && axisMap[xId] !== j) ||\n (axisMap[yId] !== undefined && axisMap[yId] !== i)\n ) {\n continue;\n }\n\n rowOut[j] = subplotId;\n axisMap[xId] = j;\n axisMap[yId] = i;\n }\n }\n }\n } else {\n var xAxes = getAxes(layoutOut, gridIn, 'x');\n var yAxes = getAxes(layoutOut, gridIn, 'y');\n gridOut.xaxes = fillGridAxes(xAxes, subplots.xaxis, columns, axisMap, 'x');\n gridOut.yaxes = fillGridAxes(yAxes, subplots.yaxis, rows, axisMap, 'y');\n }\n\n var anchors = gridOut._anchors = {};\n var reversed = gridOut.roworder === 'top to bottom';\n\n for(var axisId in axisMap) {\n var axLetter = axisId.charAt(0);\n var side = gridOut[axLetter + 'side'];\n\n var i0, inc, iFinal;\n\n if(side.length < 8) {\n // grid edge - ie not \"* plot\" - make these as free axes\n // since we're not guaranteed to have a subplot there at all\n anchors[axisId] = 'free';\n } else if(axLetter === 'x') {\n if((side.charAt(0) === 't') === reversed) {\n i0 = 0;\n inc = 1;\n iFinal = rows;\n } else {\n i0 = rows - 1;\n inc = -1;\n iFinal = -1;\n }\n if(hasSubplotGrid) {\n var column = axisMap[axisId];\n for(i = i0; i !== iFinal; i += inc) {\n subplotId = subplotsOut[i][column];\n if(!subplotId) continue;\n yPos = subplotId.indexOf('y');\n if(subplotId.slice(0, yPos) === axisId) {\n anchors[axisId] = subplotId.slice(yPos);\n break;\n }\n }\n } else {\n for(i = i0; i !== iFinal; i += inc) {\n yId = gridOut.yaxes[i];\n if(subplots.cartesian.indexOf(axisId + yId) !== -1) {\n anchors[axisId] = yId;\n break;\n }\n }\n }\n } else {\n if((side.charAt(0) === 'l')) {\n i0 = 0;\n inc = 1;\n iFinal = columns;\n } else {\n i0 = columns - 1;\n inc = -1;\n iFinal = -1;\n }\n if(hasSubplotGrid) {\n var row = axisMap[axisId];\n for(i = i0; i !== iFinal; i += inc) {\n subplotId = subplotsOut[row][i];\n if(!subplotId) continue;\n yPos = subplotId.indexOf('y');\n if(subplotId.slice(yPos) === axisId) {\n anchors[axisId] = subplotId.slice(0, yPos);\n break;\n }\n }\n } else {\n for(i = i0; i !== iFinal; i += inc) {\n xId = gridOut.xaxes[i];\n if(subplots.cartesian.indexOf(xId + axisId) !== -1) {\n anchors[axisId] = xId;\n break;\n }\n }\n }\n }\n }\n}\n\nfunction fillGridAxes(axesIn, axesAllowed, len, axisMap, axLetter) {\n var out = new Array(len);\n var i;\n\n function fillOneAxis(i, axisId) {\n if(axesAllowed.indexOf(axisId) !== -1 && axisMap[axisId] === undefined) {\n out[i] = axisId;\n axisMap[axisId] = i;\n } else out[i] = '';\n }\n\n if(Array.isArray(axesIn)) {\n for(i = 0; i < len; i++) {\n fillOneAxis(i, axesIn[i]);\n }\n } else {\n // default axis list is the first `len` axis ids\n fillOneAxis(0, axLetter);\n for(i = 1; i < len; i++) {\n fillOneAxis(i, axLetter + (i + 1));\n }\n }\n\n return out;\n}\n\nmodule.exports = {\n moduleType: 'component',\n name: 'grid',\n\n schema: {\n layout: {grid: gridAttrs}\n },\n\n layoutAttributes: gridAttrs,\n sizeDefaults: sizeDefaults,\n contentDefaults: contentDefaults\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar parcoords = require('./parcoords');\nvar prepareRegl = require('../../lib/prepare_regl');\nvar isVisible = require('./helpers').isVisible;\n\nfunction newIndex(visibleIndices, orig, dim) {\n var origIndex = orig.indexOf(dim);\n var currentIndex = visibleIndices.indexOf(origIndex);\n if(currentIndex === -1) {\n // invisible dimensions initially go to the end\n currentIndex += orig.length;\n }\n return currentIndex;\n}\n\nfunction sorter(visibleIndices, orig) {\n return function sorter(d1, d2) {\n return (\n newIndex(visibleIndices, orig, d1) -\n newIndex(visibleIndices, orig, d2)\n );\n };\n}\n\nmodule.exports = function plot(gd, cdModule) {\n var fullLayout = gd._fullLayout;\n\n var success = prepareRegl(gd);\n if(!success) return;\n\n var currentDims = {};\n var initialDims = {};\n var fullIndices = {};\n var inputIndices = {};\n\n var size = fullLayout._size;\n\n cdModule.forEach(function(d, i) {\n var trace = d[0].trace;\n fullIndices[i] = trace.index;\n var iIn = inputIndices[i] = trace._fullInput.index;\n currentDims[i] = gd.data[iIn].dimensions;\n initialDims[i] = gd.data[iIn].dimensions.slice();\n });\n\n var filterChanged = function(i, initialDimIndex, newRanges) {\n // Have updated `constraintrange` data on `gd.data` and raise `Plotly.restyle` event\n // without having to incur heavy UI blocking due to an actual `Plotly.restyle` call\n\n var dim = initialDims[i][initialDimIndex];\n var newConstraints = newRanges.map(function(r) { return r.slice(); });\n\n // Store constraint range in preGUI\n // This one doesn't work if it's stored in pieces in _storeDirectGUIEdit\n // because it's an array of variable dimensionality. So store the whole\n // thing at once manually.\n var aStr = 'dimensions[' + initialDimIndex + '].constraintrange';\n var preGUI = fullLayout._tracePreGUI[gd._fullData[fullIndices[i]]._fullInput.uid];\n if(preGUI[aStr] === undefined) {\n var initialVal = dim.constraintrange;\n preGUI[aStr] = initialVal || null;\n }\n\n var fullDimension = gd._fullData[fullIndices[i]].dimensions[initialDimIndex];\n\n if(!newConstraints.length) {\n delete dim.constraintrange;\n delete fullDimension.constraintrange;\n newConstraints = null;\n } else {\n if(newConstraints.length === 1) newConstraints = newConstraints[0];\n dim.constraintrange = newConstraints;\n fullDimension.constraintrange = newConstraints.slice();\n // wrap in another array for restyle event data\n newConstraints = [newConstraints];\n }\n\n var restyleData = {};\n restyleData[aStr] = newConstraints;\n gd.emit('plotly_restyle', [restyleData, [inputIndices[i]]]);\n };\n\n var hover = function(eventData) {\n gd.emit('plotly_hover', eventData);\n };\n\n var unhover = function(eventData) {\n gd.emit('plotly_unhover', eventData);\n };\n\n var axesMoved = function(i, visibleIndices) {\n // Have updated order data on `gd.data` and raise `Plotly.restyle` event\n // without having to incur heavy UI blocking due to an actual `Plotly.restyle` call\n\n // drag&drop sorting of the visible dimensions\n var orig = sorter(visibleIndices, initialDims[i].filter(isVisible));\n currentDims[i].sort(orig);\n\n // invisible dimensions are not interpreted in the context of drag&drop sorting as an invisible dimension\n // cannot be dragged; they're interspersed into their original positions by this subsequent merging step\n initialDims[i].filter(function(d) {return !isVisible(d);})\n .sort(function(d) {\n // subsequent splicing to be done left to right, otherwise indices may be incorrect\n return initialDims[i].indexOf(d);\n })\n .forEach(function(d) {\n currentDims[i].splice(currentDims[i].indexOf(d), 1); // remove from the end\n currentDims[i].splice(initialDims[i].indexOf(d), 0, d); // insert at original index\n });\n\n // TODO: we can't really store this part of the interaction state\n // directly as below, since it incudes data arrays. If we want to\n // persist column order we may have to do something special for this\n // case to just store the order itself.\n // Registry.call('_storeDirectGUIEdit',\n // gd.data[inputIndices[i]],\n // fullLayout._tracePreGUI[gd._fullData[fullIndices[i]]._fullInput.uid],\n // {dimensions: currentDims[i]}\n // );\n\n gd.emit('plotly_restyle', [{dimensions: [currentDims[i]]}, [inputIndices[i]]]);\n };\n\n parcoords(\n gd,\n cdModule,\n { // layout\n width: size.w,\n height: size.h,\n margin: {\n t: size.t,\n r: size.r,\n b: size.b,\n l: size.l\n }\n },\n { // callbacks\n filterChanged: filterChanged,\n hover: hover,\n unhover: unhover,\n axesMoved: axesMoved\n }\n );\n};\n","\"use strict\"\n\nmodule.exports = function signum(x) {\n if(x < 0) { return -1 }\n if(x > 0) { return 1 }\n return 0.0\n}","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nexports.isGrouped = function isGrouped(legendLayout) {\n return (legendLayout.traceorder || '').indexOf('grouped') !== -1;\n};\n\nexports.isVertical = function isVertical(legendLayout) {\n return legendLayout.orientation !== 'h';\n};\n\nexports.isReversed = function isReversed(legendLayout) {\n return (legendLayout.traceorder || '').indexOf('reversed') !== -1;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar isArrayOrTypedArray = require('../../lib').isArrayOrTypedArray;\n\nmodule.exports = function(a) {\n return minMax(a, 0);\n};\n\nfunction minMax(a, depth) {\n // Limit to ten dimensional datasets. This seems *exceedingly* unlikely to\n // ever cause problems or even be a concern. It's include strictly so that\n // circular arrays could never cause this to loop.\n if(!isArrayOrTypedArray(a) || depth >= 10) {\n return null;\n }\n\n var min = Infinity;\n var max = -Infinity;\n var n = a.length;\n for(var i = 0; i < n; i++) {\n var datum = a[i];\n\n if(isArrayOrTypedArray(datum)) {\n var result = minMax(datum, depth + 1);\n\n if(result) {\n min = Math.min(result[0], min);\n max = Math.max(result[1], max);\n }\n } else {\n min = Math.min(datum, min);\n max = Math.max(datum, max);\n }\n }\n\n return [min, max];\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar setConvertCartesian = require('../cartesian/set_convert');\n\nvar deg2rad = Lib.deg2rad;\nvar rad2deg = Lib.rad2deg;\n\n/**\n * setConvert for polar axes!\n *\n * @param {object} ax\n * axis in question (works for both radial and angular axes)\n * @param {object} polarLayout\n * full polar layout of the subplot associated with 'ax'\n * @param {object} fullLayout\n * full layout\n *\n * Here, reuse some of the Cartesian setConvert logic,\n * but we must extend some of it, as both radial and angular axes\n * don't have domains and angular axes don't have _true_ ranges.\n *\n * Moreover, we introduce two new coordinate systems:\n * - 'g' for geometric coordinates and\n * - 't' for angular ticks\n *\n * Radial axis coordinate systems:\n * - d, c and l: same as for cartesian axes\n * - g: like calcdata but translated about `radialaxis.range[0]` & `polar.hole`\n *\n * Angular axis coordinate systems:\n * - d: data, in whatever form it's provided\n * - c: calcdata, turned into radians (for linear axes)\n * or category indices (category axes)\n * - t: tick calcdata, just like 'c' but in degrees for linear axes\n * - g: geometric calcdata, radians coordinates that take into account\n * axis rotation and direction\n *\n * Then, 'g'eometric data is ready to be converted to (x,y).\n */\nmodule.exports = function setConvert(ax, polarLayout, fullLayout) {\n setConvertCartesian(ax, fullLayout);\n\n switch(ax._id) {\n case 'x':\n case 'radialaxis':\n setConvertRadial(ax, polarLayout);\n break;\n case 'angularaxis':\n setConvertAngular(ax, polarLayout);\n break;\n }\n};\n\nfunction setConvertRadial(ax, polarLayout) {\n var subplot = polarLayout._subplot;\n\n ax.setGeometry = function() {\n var rl0 = ax._rl[0];\n var rl1 = ax._rl[1];\n\n var b = subplot.innerRadius;\n var m = (subplot.radius - b) / (rl1 - rl0);\n var b2 = b / m;\n\n var rFilter = rl0 > rl1 ?\n function(v) { return v <= 0; } :\n function(v) { return v >= 0; };\n\n ax.c2g = function(v) {\n var r = ax.c2l(v) - rl0;\n return (rFilter(r) ? r : 0) + b2;\n };\n\n ax.g2c = function(v) {\n return ax.l2c(v + rl0 - b2);\n };\n\n ax.g2p = function(v) { return v * m; };\n ax.c2p = function(v) { return ax.g2p(ax.c2g(v)); };\n };\n}\n\nfunction toRadians(v, unit) {\n return unit === 'degrees' ? deg2rad(v) : v;\n}\n\nfunction fromRadians(v, unit) {\n return unit === 'degrees' ? rad2deg(v) : v;\n}\n\nfunction setConvertAngular(ax, polarLayout) {\n var axType = ax.type;\n\n if(axType === 'linear') {\n var _d2c = ax.d2c;\n var _c2d = ax.c2d;\n\n ax.d2c = function(v, unit) { return toRadians(_d2c(v), unit); };\n ax.c2d = function(v, unit) { return _c2d(fromRadians(v, unit)); };\n }\n\n // override makeCalcdata to handle thetaunit and special theta0/dtheta logic\n ax.makeCalcdata = function(trace, coord) {\n var arrayIn = trace[coord];\n var len = trace._length;\n var arrayOut, i;\n\n var _d2c = function(v) { return ax.d2c(v, trace.thetaunit); };\n\n if(arrayIn) {\n if(Lib.isTypedArray(arrayIn) && axType === 'linear') {\n if(len === arrayIn.length) {\n return arrayIn;\n } else if(arrayIn.subarray) {\n return arrayIn.subarray(0, len);\n }\n }\n\n arrayOut = new Array(len);\n for(i = 0; i < len; i++) {\n arrayOut[i] = _d2c(arrayIn[i]);\n }\n } else {\n var coord0 = coord + '0';\n var dcoord = 'd' + coord;\n var v0 = (coord0 in trace) ? _d2c(trace[coord0]) : 0;\n var dv = (trace[dcoord]) ? _d2c(trace[dcoord]) : (ax.period || 2 * Math.PI) / len;\n\n arrayOut = new Array(len);\n for(i = 0; i < len; i++) {\n arrayOut[i] = v0 + i * dv;\n }\n }\n\n return arrayOut;\n };\n\n // N.B. we mock the axis 'range' here\n ax.setGeometry = function() {\n var sector = polarLayout.sector;\n var sectorInRad = sector.map(deg2rad);\n var dir = {clockwise: -1, counterclockwise: 1}[ax.direction];\n var rot = deg2rad(ax.rotation);\n\n var rad2g = function(v) { return dir * v + rot; };\n var g2rad = function(v) { return (v - rot) / dir; };\n\n var rad2c, c2rad;\n var rad2t, t2rad;\n\n switch(axType) {\n case 'linear':\n c2rad = rad2c = Lib.identity;\n t2rad = deg2rad;\n rad2t = rad2deg;\n\n // Set the angular range in degrees to make auto-tick computation cleaner,\n // changing rotation/direction should not affect the angular tick value.\n ax.range = Lib.isFullCircle(sectorInRad) ?\n [sector[0], sector[0] + 360] :\n sectorInRad.map(g2rad).map(rad2deg);\n break;\n\n case 'category':\n var catLen = ax._categories.length;\n var _period = ax.period ? Math.max(ax.period, catLen) : catLen;\n\n // fallback in case all categories have been filtered out\n if(_period === 0) _period = 1;\n\n c2rad = t2rad = function(v) { return v * 2 * Math.PI / _period; };\n rad2c = rad2t = function(v) { return v * _period / Math.PI / 2; };\n\n ax.range = [0, _period];\n break;\n }\n\n ax.c2g = function(v) { return rad2g(c2rad(v)); };\n ax.g2c = function(v) { return rad2c(g2rad(v)); };\n\n ax.t2g = function(v) { return rad2g(t2rad(v)); };\n ax.g2t = function(v) { return rad2t(g2rad(v)); };\n };\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n moduleType: 'trace',\n name: 'indicator',\n basePlotModule: require('./base_plot'),\n categories: ['svg', 'noOpacity', 'noHover'],\n animatable: true,\n\n attributes: require('./attributes'),\n supplyDefaults: require('./defaults').supplyDefaults,\n\n calc: require('./calc').calc,\n\n plot: require('./plot'),\n\n meta: {\n \n }\n};\n","'use strict'\r\n\r\nmodule.exports = measure\r\n\r\nmeasure.canvas = document.createElement('canvas')\r\nmeasure.cache = {}\r\n\r\nfunction measure (font, o) {\r\n\tif (!o) o = {}\r\n\r\n\tif (typeof font === 'string' || Array.isArray(font)) {\r\n\t\to.family = font\r\n\t}\r\n\r\n\tvar family = Array.isArray(o.family) ? o.family.join(', ') : o.family\r\n\tif (!family) throw Error('`family` must be defined')\r\n\r\n\tvar fs = o.size || o.fontSize || o.em || 48\r\n\tvar weight = o.weight || o.fontWeight || ''\r\n\tvar style = o.style || o.fontStyle || ''\r\n\tvar font = [style, weight, fs].join(' ') + 'px ' + family\r\n\tvar origin = o.origin || 'top'\r\n\r\n\tif (measure.cache[family]) {\r\n\t\t// return more precise values if cache has them\r\n\t\tif (fs <= measure.cache[family].em) {\r\n\t\t\treturn applyOrigin(measure.cache[family], origin)\r\n\t\t}\r\n\t}\r\n\r\n\tvar canvas = o.canvas || measure.canvas\r\n\tvar ctx = canvas.getContext('2d')\r\n\tvar chars = {\r\n\t\tupper: o.upper !== undefined ? o.upper : 'H',\r\n\t\tlower: o.lower !== undefined ? o.lower : 'x',\r\n\t\tdescent: o.descent !== undefined ? o.descent : 'p',\r\n\t\tascent: o.ascent !== undefined ? o.ascent : 'h',\r\n\t\ttittle: o.tittle !== undefined ? o.tittle : 'i',\r\n\t\tovershoot: o.overshoot !== undefined ? o.overshoot : 'O'\r\n\t}\r\n\tvar l = Math.ceil(fs * 1.5)\r\n\tcanvas.height = l\r\n\tcanvas.width = l * .5\r\n\tctx.font = font\r\n\r\n\tvar char = 'H'\r\n\tvar result = {\r\n\t\ttop: 0\r\n\t}\r\n\r\n\t// measure line-height\r\n\tctx.clearRect(0, 0, l, l)\r\n\tctx.textBaseline = 'top'\r\n\tctx.fillStyle = 'black'\r\n\tctx.fillText(char, 0, 0)\r\n\tvar topPx = firstTop(ctx.getImageData(0, 0, l, l))\r\n\tctx.clearRect(0, 0, l, l)\r\n\tctx.textBaseline = 'bottom'\r\n\tctx.fillText(char, 0, l)\r\n\tvar bottomPx = firstTop(ctx.getImageData(0, 0, l, l))\r\n\tresult.lineHeight =\r\n\tresult.bottom = l - bottomPx + topPx\r\n\r\n\t// measure baseline\r\n\tctx.clearRect(0, 0, l, l)\r\n\tctx.textBaseline = 'alphabetic'\r\n\tctx.fillText(char, 0, l)\r\n\tvar baselinePx = firstTop(ctx.getImageData(0, 0, l, l))\r\n\tvar baseline = l - baselinePx - 1 + topPx\r\n\tresult.baseline =\r\n\tresult.alphabetic = baseline\r\n\r\n\t// measure median\r\n\tctx.clearRect(0, 0, l, l)\r\n\tctx.textBaseline = 'middle'\r\n\tctx.fillText(char, 0, l * .5)\r\n\tvar medianPx = firstTop(ctx.getImageData(0, 0, l, l))\r\n\tresult.median =\r\n\tresult.middle = l - medianPx - 1 + topPx - l * .5\r\n\r\n\t// measure hanging\r\n\tctx.clearRect(0, 0, l, l)\r\n\tctx.textBaseline = 'hanging'\r\n\tctx.fillText(char, 0, l * .5)\r\n\tvar hangingPx = firstTop(ctx.getImageData(0, 0, l, l))\r\n\tresult.hanging = l - hangingPx - 1 + topPx - l * .5\r\n\r\n\t// measure ideographic\r\n\tctx.clearRect(0, 0, l, l)\r\n\tctx.textBaseline = 'ideographic'\r\n\tctx.fillText(char, 0, l)\r\n\tvar ideographicPx = firstTop(ctx.getImageData(0, 0, l, l))\r\n\tresult.ideographic = l - ideographicPx - 1 + topPx\r\n\r\n\t// measure cap\r\n\tif (chars.upper) {\r\n\t\tctx.clearRect(0, 0, l, l)\r\n\t\tctx.textBaseline = 'top'\r\n\t\tctx.fillText(chars.upper, 0, 0)\r\n\t\tresult.upper = firstTop(ctx.getImageData(0, 0, l, l))\r\n\t\tresult.capHeight = (result.baseline - result.upper)\r\n\t}\r\n\r\n\t// measure x\r\n\tif (chars.lower) {\r\n\t\tctx.clearRect(0, 0, l, l)\r\n\t\tctx.textBaseline = 'top'\r\n\t\tctx.fillText(chars.lower, 0, 0)\r\n\t\tresult.lower = firstTop(ctx.getImageData(0, 0, l, l))\r\n\t\tresult.xHeight = (result.baseline - result.lower)\r\n\t}\r\n\r\n\t// measure tittle\r\n\tif (chars.tittle) {\r\n\t\tctx.clearRect(0, 0, l, l)\r\n\t\tctx.textBaseline = 'top'\r\n\t\tctx.fillText(chars.tittle, 0, 0)\r\n\t\tresult.tittle = firstTop(ctx.getImageData(0, 0, l, l))\r\n\t}\r\n\r\n\t// measure ascent\r\n\tif (chars.ascent) {\r\n\t\tctx.clearRect(0, 0, l, l)\r\n\t\tctx.textBaseline = 'top'\r\n\t\tctx.fillText(chars.ascent, 0, 0)\r\n\t\tresult.ascent = firstTop(ctx.getImageData(0, 0, l, l))\r\n\t}\r\n\r\n\t// measure descent\r\n\tif (chars.descent) {\r\n\t\tctx.clearRect(0, 0, l, l)\r\n\t\tctx.textBaseline = 'top'\r\n\t\tctx.fillText(chars.descent, 0, 0)\r\n\t\tresult.descent = firstBottom(ctx.getImageData(0, 0, l, l))\r\n\t}\r\n\r\n\t// measure overshoot\r\n\tif (chars.overshoot) {\r\n\t\tctx.clearRect(0, 0, l, l)\r\n\t\tctx.textBaseline = 'top'\r\n\t\tctx.fillText(chars.overshoot, 0, 0)\r\n\t\tvar overshootPx = firstBottom(ctx.getImageData(0, 0, l, l))\r\n\t\tresult.overshoot = overshootPx - baseline\r\n\t}\r\n\r\n\t// normalize result\r\n\tfor (var name in result) {\r\n\t\tresult[name] /= fs\r\n\t}\r\n\r\n\tresult.em = fs\r\n\tmeasure.cache[family] = result\r\n\r\n\treturn applyOrigin(result, origin)\r\n}\r\n\r\nfunction applyOrigin(obj, origin) {\r\n\tvar res = {}\r\n\tif (typeof origin === 'string') origin = obj[origin]\r\n\tfor (var name in obj) {\r\n\t\tif (name === 'em') continue\r\n\t\tres[name] = obj[name] - origin\r\n\t}\r\n\treturn res\r\n}\r\n\r\nfunction firstTop(iData) {\r\n\tvar l = iData.height\r\n\tvar data = iData.data\r\n\tfor (var i = 3; i < data.length; i+=4) {\r\n\t\tif (data[i] !== 0) {\r\n\t\t\treturn Math.floor((i - 3) *.25 / l)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction firstBottom(iData) {\r\n\tvar l = iData.height\r\n\tvar data = iData.data\r\n\tfor (var i = data.length - 1; i > 0; i -= 4) {\r\n\t\tif (data[i] !== 0) {\r\n\t\t\treturn Math.floor((i - 3) *.25 / l)\r\n\t\t}\r\n\t}\r\n}\r\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n attributes: require('./attributes'),\n supplyDefaults: require('./defaults'),\n colorbar: require('../heatmap/colorbar'),\n calc: require('./calc'),\n calcGeoJSON: require('./plot').calcGeoJSON,\n plot: require('./plot').plot,\n style: require('./style').style,\n styleOnSelect: require('./style').styleOnSelect,\n hoverPoints: require('./hover'),\n eventData: require('./event_data'),\n selectPoints: require('./select'),\n\n moduleType: 'trace',\n name: 'choropleth',\n basePlotModule: require('../../plots/geo'),\n categories: ['geo', 'noOpacity', 'showLegend'],\n meta: {\n \n }\n};\n","/*\n * World Calendars\n * https://github.com/alexcjohnson/world-calendars\n *\n * Batch-converted from kbwood/calendars\n * Many thanks to Keith Wood and all of the contributors to the original project!\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/* http://keith-wood.name/calendars.html\n UmmAlQura calendar for jQuery v2.0.2.\n Written by Amro Osama March 2013.\n Modified by Binnooh.com & www.elm.sa - 2014 - Added dates back to 1276 Hijri year.\n Available under the MIT (http://keith-wood.name/licence.html) license. \n Please attribute the author if you use it. */\n\nvar main = require('../main');\nvar assign = require('object-assign');\n\n\n/** Implementation of the UmmAlQura or 'saudi' calendar.\n See also http://en.wikipedia.org/wiki/Islamic_calendar#Saudi_Arabia.27s_Umm_al-Qura_calendar.\n http://www.ummulqura.org.sa/About.aspx\n http://www.staff.science.uu.nl/~gent0113/islam/ummalqura.htm\n @class UmmAlQuraCalendar\n @param [language=''] {string} The language code (default English) for localisation. */\nfunction UmmAlQuraCalendar(language) {\n this.local = this.regionalOptions[language || ''] || this.regionalOptions[''];\n}\n\nUmmAlQuraCalendar.prototype = new main.baseCalendar;\n\nassign(UmmAlQuraCalendar.prototype, {\n /** The calendar name.\n @memberof UmmAlQuraCalendar */\n name: 'UmmAlQura',\n //jdEpoch: 1948440, // Julian date of start of UmmAlQura epoch: 14 March 1937 CE\n //daysPerMonth: // Days per month in a common year, replaced by a method.\n /** true if has a year zero, false if not.\n @memberof UmmAlQuraCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof UmmAlQuraCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof UmmAlQuraCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof UmmAlQuraCalendar */\n minDay: 1,\n\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof UmmAlQuraCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: { // Localisations\n '': {\n name: 'Umm al-Qura',\n epochs: ['BH', 'AH'],\n monthNames: ['Al-Muharram', 'Safar', 'Rabi\\' al-awwal', 'Rabi\\' Al-Thani', 'Jumada Al-Awwal', 'Jumada Al-Thani',\n 'Rajab', 'Sha\\'aban', 'Ramadan', 'Shawwal', 'Dhu al-Qi\\'dah', 'Dhu al-Hijjah'],\n monthNamesShort: ['Muh', 'Saf', 'Rab1', 'Rab2', 'Jum1', 'Jum2', 'Raj', 'Sha\\'', 'Ram', 'Shaw', 'DhuQ', 'DhuH'],\n dayNames: ['Yawm al-Ahad', 'Yawm al-Ithnain', 'Yawm al-Thalāthā’', 'Yawm al-Arba‘ā’', 'Yawm al-Khamīs', 'Yawm al-Jum‘a', 'Yawm al-Sabt'],\n dayNamesMin: ['Ah', 'Ith', 'Th', 'Ar', 'Kh', 'Ju', 'Sa'],\n digits: null,\n dateFormat: 'yyyy/mm/dd',\n firstDay: 6,\n isRTL: true\n }\n },\n\n /** Determine whether this date is in a leap year.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function (year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return (this.daysInYear(date.year()) === 355);\n },\n\n /** Determine the week of the year for a date.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function (year, month, day) {\n // Find Sunday of this week starting on Sunday\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-checkDate.dayOfWeek(), 'd');\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n\n /** Retrieve the number of days in a year.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function (year) {\n var daysCount = 0;\n for (var i = 1; i <= 12; i++) {\n daysCount += this.daysInMonth(year, i);\n }\n return daysCount;\n },\n\n /** Retrieve the number of days in a month.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function (year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n var mcjdn = date.toJD() - 2400000 + 0.5; // Modified Chronological Julian Day Number (MCJDN)\n // the MCJDN's of the start of the lunations in the Umm al-Qura calendar are stored in the 'ummalqura_dat' array\n var index = 0;\n for (var i = 0; i < ummalqura_dat.length; i++) {\n if (ummalqura_dat[i] > mcjdn) {\n return (ummalqura_dat[index] - ummalqura_dat[index - 1]);\n }\n index++;\n }\n return 30; // Unknown outside\n },\n\n /** Determine whether this date is a week day.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function (year, month, day) {\n return this.dayOfWeek(year, month, day) !== 5;\n },\n\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function (year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n var index = (12 * (date.year() - 1)) + date.month() - 15292;\n var mcjdn = date.day() + ummalqura_dat[index - 1] - 1;\n return mcjdn + 2400000 - 0.5; // Modified Chronological Julian Day Number (MCJDN)\n },\n\n /** Create a new date from a Julian date.\n @memberof UmmAlQuraCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function (jd) {\n var mcjdn = jd - 2400000 + 0.5; // Modified Chronological Julian Day Number (MCJDN)\n // the MCJDN's of the start of the lunations in the Umm al-Qura calendar \n // are stored in the 'ummalqura_dat' array\n var index = 0;\n for (var i = 0; i < ummalqura_dat.length; i++) {\n if (ummalqura_dat[i] > mcjdn) break;\n index++;\n }\n var lunation = index + 15292; //UmmAlQura Lunation Number\n var ii = Math.floor((lunation - 1) / 12);\n var year = ii + 1;\n var month = lunation - 12 * ii;\n var day = mcjdn - ummalqura_dat[index - 1] + 1;\n return this.newDate(year, month, day);\n },\n\n /** Determine whether a date is valid for this calendar.\n @memberof UmmAlQuraCalendar\n @param year {number} The year to examine.\n @param month {number} The month to examine.\n @param day {number} The day to examine.\n @return {boolean} true if a valid date, false if not. */\n isValid: function(year, month, day) {\n var valid = main.baseCalendar.prototype.isValid.apply(this, arguments);\n if (valid) {\n year = (year.year != null ? year.year : year);\n valid = (year >= 1276 && year <= 1500);\n }\n return valid;\n },\n\n /** Check that a candidate date is from the same calendar and is valid.\n @memberof UmmAlQuraCalendar\n @private\n @param year {CDate|number} The date to validate or the year to validate.\n @param month {number} The month to validate.\n @param day {number} The day to validate.\n @param error {string} Error message if invalid.\n @throws Error if different calendars used or invalid date. */\n _validate: function(year, month, day, error) {\n var date = main.baseCalendar.prototype._validate.apply(this, arguments);\n if (date.year < 1276 || date.year > 1500) {\n throw error.replace(/\\{0\\}/, this.local.name);\n }\n return date;\n }\n});\n\n// UmmAlQura calendar implementation\nmain.calendars.ummalqura = UmmAlQuraCalendar;\n\nvar ummalqura_dat = [\n 20, 50, 79, 109, 138, 168, 197, 227, 256, 286, 315, 345, 374, 404, 433, 463, 492, 522, 551, 581, \n 611, 641, 670, 700, 729, 759, 788, 818, 847, 877, 906, 936, 965, 995, 1024, 1054, 1083, 1113, 1142, 1172,\n 1201, 1231, 1260, 1290, 1320, 1350, 1379, 1409, 1438, 1468, 1497, 1527, 1556, 1586, 1615, 1645, 1674, 1704, 1733, 1763,\n 1792, 1822, 1851, 1881, 1910, 1940, 1969, 1999, 2028, 2058, 2087, 2117, 2146, 2176, 2205, 2235, 2264, 2294, 2323, 2353,\n 2383, 2413, 2442, 2472, 2501, 2531, 2560, 2590, 2619, 2649, 2678, 2708, 2737, 2767, 2796, 2826, 2855, 2885, 2914, 2944,\n 2973, 3003, 3032, 3062, 3091, 3121, 3150, 3180, 3209, 3239, 3268, 3298, 3327, 3357, 3386, 3416, 3446, 3476, 3505, 3535,\n 3564, 3594, 3623, 3653, 3682, 3712, 3741, 3771, 3800, 3830, 3859, 3889, 3918, 3948, 3977, 4007, 4036, 4066, 4095, 4125,\n 4155, 4185, 4214, 4244, 4273, 4303, 4332, 4362, 4391, 4421, 4450, 4480, 4509, 4539, 4568, 4598, 4627, 4657, 4686, 4716,\n 4745, 4775, 4804, 4834, 4863, 4893, 4922, 4952, 4981, 5011, 5040, 5070, 5099, 5129, 5158, 5188, 5218, 5248, 5277, 5307,\n 5336, 5366, 5395, 5425, 5454, 5484, 5513, 5543, 5572, 5602, 5631, 5661, 5690, 5720, 5749, 5779, 5808, 5838, 5867, 5897,\n 5926, 5956, 5985, 6015, 6044, 6074, 6103, 6133, 6162, 6192, 6221, 6251, 6281, 6311, 6340, 6370, 6399, 6429, 6458, 6488,\n 6517, 6547, 6576, 6606, 6635, 6665, 6694, 6724, 6753, 6783, 6812, 6842, 6871, 6901, 6930, 6960, 6989, 7019, 7048, 7078,\n 7107, 7137, 7166, 7196, 7225, 7255, 7284, 7314, 7344, 7374, 7403, 7433, 7462, 7492, 7521, 7551, 7580, 7610, 7639, 7669,\n 7698, 7728, 7757, 7787, 7816, 7846, 7875, 7905, 7934, 7964, 7993, 8023, 8053, 8083, 8112, 8142, 8171, 8201, 8230, 8260,\n 8289, 8319, 8348, 8378, 8407, 8437, 8466, 8496, 8525, 8555, 8584, 8614, 8643, 8673, 8702, 8732, 8761, 8791, 8821, 8850,\n 8880, 8909, 8938, 8968, 8997, 9027, 9056, 9086, 9115, 9145, 9175, 9205, 9234, 9264, 9293, 9322, 9352, 9381, 9410, 9440,\n 9470, 9499, 9529, 9559, 9589, 9618, 9648, 9677, 9706, 9736, 9765, 9794, 9824, 9853, 9883, 9913, 9943, 9972, 10002, 10032,\n 10061, 10090, 10120, 10149, 10178, 10208, 10237, 10267, 10297, 10326, 10356, 10386, 10415, 10445, 10474, 10504, 10533, 10562, 10592, 10621,\n 10651, 10680, 10710, 10740, 10770, 10799, 10829, 10858, 10888, 10917, 10947, 10976, 11005, 11035, 11064, 11094, 11124, 11153, 11183, 11213,\n 11242, 11272, 11301, 11331, 11360, 11389, 11419, 11448, 11478, 11507, 11537, 11567, 11596, 11626, 11655, 11685, 11715, 11744, 11774, 11803,\n 11832, 11862, 11891, 11921, 11950, 11980, 12010, 12039, 12069, 12099, 12128, 12158, 12187, 12216, 12246, 12275, 12304, 12334, 12364, 12393,\n 12423, 12453, 12483, 12512, 12542, 12571, 12600, 12630, 12659, 12688, 12718, 12747, 12777, 12807, 12837, 12866, 12896, 12926, 12955, 12984,\n 13014, 13043, 13072, 13102, 13131, 13161, 13191, 13220, 13250, 13280, 13310, 13339, 13368, 13398, 13427, 13456, 13486, 13515, 13545, 13574,\n 13604, 13634, 13664, 13693, 13723, 13752, 13782, 13811, 13840, 13870, 13899, 13929, 13958, 13988, 14018, 14047, 14077, 14107, 14136, 14166,\n 14195, 14224, 14254, 14283, 14313, 14342, 14372, 14401, 14431, 14461, 14490, 14520, 14550, 14579, 14609, 14638, 14667, 14697, 14726, 14756,\n 14785, 14815, 14844, 14874, 14904, 14933, 14963, 14993, 15021, 15051, 15081, 15110, 15140, 15169, 15199, 15228, 15258, 15287, 15317, 15347,\n 15377, 15406, 15436, 15465, 15494, 15524, 15553, 15582, 15612, 15641, 15671, 15701, 15731, 15760, 15790, 15820, 15849, 15878, 15908, 15937,\n 15966, 15996, 16025, 16055, 16085, 16114, 16144, 16174, 16204, 16233, 16262, 16292, 16321, 16350, 16380, 16409, 16439, 16468, 16498, 16528,\n 16558, 16587, 16617, 16646, 16676, 16705, 16734, 16764, 16793, 16823, 16852, 16882, 16912, 16941, 16971, 17001, 17030, 17060, 17089, 17118,\n 17148, 17177, 17207, 17236, 17266, 17295, 17325, 17355, 17384, 17414, 17444, 17473, 17502, 17532, 17561, 17591, 17620, 17650, 17679, 17709,\n 17738, 17768, 17798, 17827, 17857, 17886, 17916, 17945, 17975, 18004, 18034, 18063, 18093, 18122, 18152, 18181, 18211, 18241, 18270, 18300,\n 18330, 18359, 18388, 18418, 18447, 18476, 18506, 18535, 18565, 18595, 18625, 18654, 18684, 18714, 18743, 18772, 18802, 18831, 18860, 18890,\n 18919, 18949, 18979, 19008, 19038, 19068, 19098, 19127, 19156, 19186, 19215, 19244, 19274, 19303, 19333, 19362, 19392, 19422, 19452, 19481,\n 19511, 19540, 19570, 19599, 19628, 19658, 19687, 19717, 19746, 19776, 19806, 19836, 19865, 19895, 19924, 19954, 19983, 20012, 20042, 20071,\n 20101, 20130, 20160, 20190, 20219, 20249, 20279, 20308, 20338, 20367, 20396, 20426, 20455, 20485, 20514, 20544, 20573, 20603, 20633, 20662,\n 20692, 20721, 20751, 20780, 20810, 20839, 20869, 20898, 20928, 20957, 20987, 21016, 21046, 21076, 21105, 21135, 21164, 21194, 21223, 21253,\n 21282, 21312, 21341, 21371, 21400, 21430, 21459, 21489, 21519, 21548, 21578, 21607, 21637, 21666, 21696, 21725, 21754, 21784, 21813, 21843,\n 21873, 21902, 21932, 21962, 21991, 22021, 22050, 22080, 22109, 22138, 22168, 22197, 22227, 22256, 22286, 22316, 22346, 22375, 22405, 22434,\n 22464, 22493, 22522, 22552, 22581, 22611, 22640, 22670, 22700, 22730, 22759, 22789, 22818, 22848, 22877, 22906, 22936, 22965, 22994, 23024,\n 23054, 23083, 23113, 23143, 23173, 23202, 23232, 23261, 23290, 23320, 23349, 23379, 23408, 23438, 23467, 23497, 23527, 23556, 23586, 23616,\n 23645, 23674, 23704, 23733, 23763, 23792, 23822, 23851, 23881, 23910, 23940, 23970, 23999, 24029, 24058, 24088, 24117, 24147, 24176, 24206,\n 24235, 24265, 24294, 24324, 24353, 24383, 24413, 24442, 24472, 24501, 24531, 24560, 24590, 24619, 24648, 24678, 24707, 24737, 24767, 24796,\n 24826, 24856, 24885, 24915, 24944, 24974, 25003, 25032, 25062, 25091, 25121, 25150, 25180, 25210, 25240, 25269, 25299, 25328, 25358, 25387,\n 25416, 25446, 25475, 25505, 25534, 25564, 25594, 25624, 25653, 25683, 25712, 25742, 25771, 25800, 25830, 25859, 25888, 25918, 25948, 25977,\n 26007, 26037, 26067, 26096, 26126, 26155, 26184, 26214, 26243, 26272, 26302, 26332, 26361, 26391, 26421, 26451, 26480, 26510, 26539, 26568,\n 26598, 26627, 26656, 26686, 26715, 26745, 26775, 26805, 26834, 26864, 26893, 26923, 26952, 26982, 27011, 27041, 27070, 27099, 27129, 27159,\n 27188, 27218, 27248, 27277, 27307, 27336, 27366, 27395, 27425, 27454, 27484, 27513, 27542, 27572, 27602, 27631, 27661, 27691, 27720, 27750,\n 27779, 27809, 27838, 27868, 27897, 27926, 27956, 27985, 28015, 28045, 28074, 28104, 28134, 28163, 28193, 28222, 28252, 28281, 28310, 28340,\n 28369, 28399, 28428, 28458, 28488, 28517, 28547, 28577,\n // From 1356\n 28607, 28636, 28665, 28695, 28724, 28754, 28783, 28813, 28843, 28872, 28901, 28931, 28960, 28990, 29019, 29049, 29078, 29108, 29137, 29167,\n 29196, 29226, 29255, 29285, 29315, 29345, 29375, 29404, 29434, 29463, 29492, 29522, 29551, 29580, 29610, 29640, 29669, 29699, 29729, 29759,\n 29788, 29818, 29847, 29876, 29906, 29935, 29964, 29994, 30023, 30053, 30082, 30112, 30141, 30171, 30200, 30230, 30259, 30289, 30318, 30348,\n 30378, 30408, 30437, 30467, 30496, 30526, 30555, 30585, 30614, 30644, 30673, 30703, 30732, 30762, 30791, 30821, 30850, 30880, 30909, 30939,\n 30968, 30998, 31027, 31057, 31086, 31116, 31145, 31175, 31204, 31234, 31263, 31293, 31322, 31352, 31381, 31411, 31441, 31471, 31500, 31530,\n 31559, 31589, 31618, 31648, 31676, 31706, 31736, 31766, 31795, 31825, 31854, 31884, 31913, 31943, 31972, 32002, 32031, 32061, 32090, 32120,\n 32150, 32180, 32209, 32239, 32268, 32298, 32327, 32357, 32386, 32416, 32445, 32475, 32504, 32534, 32563, 32593, 32622, 32652, 32681, 32711,\n 32740, 32770, 32799, 32829, 32858, 32888, 32917, 32947, 32976, 33006, 33035, 33065, 33094, 33124, 33153, 33183, 33213, 33243, 33272, 33302,\n 33331, 33361, 33390, 33420, 33450, 33479, 33509, 33539, 33568, 33598, 33627, 33657, 33686, 33716, 33745, 33775, 33804, 33834, 33863, 33893,\n 33922, 33952, 33981, 34011, 34040, 34069, 34099, 34128, 34158, 34187, 34217, 34247, 34277, 34306, 34336, 34365, 34395, 34424, 34454, 34483,\n 34512, 34542, 34571, 34601, 34631, 34660, 34690, 34719, 34749, 34778, 34808, 34837, 34867, 34896, 34926, 34955, 34985, 35015, 35044, 35074,\n 35103, 35133, 35162, 35192, 35222, 35251, 35280, 35310, 35340, 35370, 35399, 35429, 35458, 35488, 35517, 35547, 35576, 35605, 35635, 35665,\n 35694, 35723, 35753, 35782, 35811, 35841, 35871, 35901, 35930, 35960, 35989, 36019, 36048, 36078, 36107, 36136, 36166, 36195, 36225, 36254,\n 36284, 36314, 36343, 36373, 36403, 36433, 36462, 36492, 36521, 36551, 36580, 36610, 36639, 36669, 36698, 36728, 36757, 36786, 36816, 36845,\n 36875, 36904, 36934, 36963, 36993, 37022, 37052, 37081, 37111, 37141, 37170, 37200, 37229, 37259, 37288, 37318, 37347, 37377, 37406, 37436,\n 37465, 37495, 37524, 37554, 37584, 37613, 37643, 37672, 37701, 37731, 37760, 37790, 37819, 37849, 37878, 37908, 37938, 37967, 37997, 38027,\n 38056, 38085, 38115, 38144, 38174, 38203, 38233, 38262, 38292, 38322, 38351, 38381, 38410, 38440, 38469, 38499, 38528, 38558, 38587, 38617,\n 38646, 38676, 38705, 38735, 38764, 38794, 38823, 38853, 38882, 38912, 38941, 38971, 39001, 39030, 39059, 39089, 39118, 39148, 39178, 39208,\n 39237, 39267, 39297, 39326, 39355, 39385, 39414, 39444, 39473, 39503, 39532, 39562, 39592, 39621, 39650, 39680, 39709, 39739, 39768, 39798,\n 39827, 39857, 39886, 39916, 39946, 39975, 40005, 40035, 40064, 40094, 40123, 40153, 40182, 40212, 40241, 40271, 40300, 40330, 40359, 40389,\n 40418, 40448, 40477, 40507, 40536, 40566, 40595, 40625, 40655, 40685, 40714, 40744, 40773, 40803, 40832, 40862, 40892, 40921, 40951, 40980,\n 41009, 41039, 41068, 41098, 41127, 41157, 41186, 41216, 41245, 41275, 41304, 41334, 41364, 41393, 41422, 41452, 41481, 41511, 41540, 41570,\n 41599, 41629, 41658, 41688, 41718, 41748, 41777, 41807, 41836, 41865, 41894, 41924, 41953, 41983, 42012, 42042, 42072, 42102, 42131, 42161,\n 42190, 42220, 42249, 42279, 42308, 42337, 42367, 42397, 42426, 42456, 42485, 42515, 42545, 42574, 42604, 42633, 42662, 42692, 42721, 42751,\n 42780, 42810, 42839, 42869, 42899, 42929, 42958, 42988, 43017, 43046, 43076, 43105, 43135, 43164, 43194, 43223, 43253, 43283, 43312, 43342,\n 43371, 43401, 43430, 43460, 43489, 43519, 43548, 43578, 43607, 43637, 43666, 43696, 43726, 43755, 43785, 43814, 43844, 43873, 43903, 43932,\n 43962, 43991, 44021, 44050, 44080, 44109, 44139, 44169, 44198, 44228, 44258, 44287, 44317, 44346, 44375, 44405, 44434, 44464, 44493, 44523,\n 44553, 44582, 44612, 44641, 44671, 44700, 44730, 44759, 44788, 44818, 44847, 44877, 44906, 44936, 44966, 44996, 45025, 45055, 45084, 45114,\n 45143, 45172, 45202, 45231, 45261, 45290, 45320, 45350, 45380, 45409, 45439, 45468, 45498, 45527, 45556, 45586, 45615, 45644, 45674, 45704,\n 45733, 45763, 45793, 45823, 45852, 45882, 45911, 45940, 45970, 45999, 46028, 46058, 46088, 46117, 46147, 46177, 46206, 46236, 46265, 46295,\n 46324, 46354, 46383, 46413, 46442, 46472, 46501, 46531, 46560, 46590, 46620, 46649, 46679, 46708, 46738, 46767, 46797, 46826, 46856, 46885,\n 46915, 46944, 46974, 47003, 47033, 47063, 47092, 47122, 47151, 47181, 47210, 47240, 47269, 47298, 47328, 47357, 47387, 47417, 47446, 47476,\n 47506, 47535, 47565, 47594, 47624, 47653, 47682, 47712, 47741, 47771, 47800, 47830, 47860, 47890, 47919, 47949, 47978, 48008, 48037, 48066,\n 48096, 48125, 48155, 48184, 48214, 48244, 48273, 48303, 48333, 48362, 48392, 48421, 48450, 48480, 48509, 48538, 48568, 48598, 48627, 48657,\n 48687, 48717, 48746, 48776, 48805, 48834, 48864, 48893, 48922, 48952, 48982, 49011, 49041, 49071, 49100, 49130, 49160, 49189, 49218, 49248,\n 49277, 49306, 49336, 49365, 49395, 49425, 49455, 49484, 49514, 49543, 49573, 49602, 49632, 49661, 49690, 49720, 49749, 49779, 49809, 49838,\n 49868, 49898, 49927, 49957, 49986, 50016, 50045, 50075, 50104, 50133, 50163, 50192, 50222, 50252, 50281, 50311, 50340, 50370, 50400, 50429,\n 50459, 50488, 50518, 50547, 50576, 50606, 50635, 50665, 50694, 50724, 50754, 50784, 50813, 50843, 50872, 50902, 50931, 50960, 50990, 51019,\n 51049, 51078, 51108, 51138, 51167, 51197, 51227, 51256, 51286, 51315, 51345, 51374, 51403, 51433, 51462, 51492, 51522, 51552, 51582, 51611,\n 51641, 51670, 51699, 51729, 51758, 51787, 51816, 51846, 51876, 51906, 51936, 51965, 51995, 52025, 52054, 52083, 52113, 52142, 52171, 52200,\n 52230, 52260, 52290, 52319, 52349, 52379, 52408, 52438, 52467, 52497, 52526, 52555, 52585, 52614, 52644, 52673, 52703, 52733, 52762, 52792,\n 52822, 52851, 52881, 52910, 52939, 52969, 52998, 53028, 53057, 53087, 53116, 53146, 53176, 53205, 53235, 53264, 53294, 53324, 53353, 53383,\n 53412, 53441, 53471, 53500, 53530, 53559, 53589, 53619, 53648, 53678, 53708, 53737, 53767, 53796, 53825, 53855, 53884, 53913, 53943, 53973,\n 54003, 54032, 54062, 54092, 54121, 54151, 54180, 54209, 54239, 54268, 54297, 54327, 54357, 54387, 54416, 54446, 54476, 54505, 54535, 54564,\n 54593, 54623, 54652, 54681, 54711, 54741, 54770, 54800, 54830, 54859, 54889, 54919, 54948, 54977, 55007, 55036, 55066, 55095, 55125, 55154,\n 55184, 55213, 55243, 55273, 55302, 55332, 55361, 55391, 55420, 55450, 55479, 55508, 55538, 55567, 55597, 55627, 55657, 55686, 55716, 55745,\n 55775, 55804, 55834, 55863, 55892, 55922, 55951, 55981, 56011, 56040, 56070, 56100, 56129, 56159, 56188, 56218, 56247, 56276, 56306, 56335,\n 56365, 56394, 56424, 56454, 56483, 56513, 56543, 56572, 56601, 56631, 56660, 56690, 56719, 56749, 56778, 56808, 56837, 56867, 56897, 56926,\n 56956, 56985, 57015, 57044, 57074, 57103, 57133, 57162, 57192, 57221, 57251, 57280, 57310, 57340, 57369, 57399, 57429, 57458, 57487, 57517,\n 57546, 57576, 57605, 57634, 57664, 57694, 57723, 57753, 57783, 57813, 57842, 57871, 57901, 57930, 57959, 57989, 58018, 58048, 58077, 58107,\n 58137, 58167, 58196, 58226, 58255, 58285, 58314, 58343, 58373, 58402, 58432, 58461, 58491, 58521, 58551, 58580, 58610, 58639, 58669, 58698,\n 58727, 58757, 58786, 58816, 58845, 58875, 58905, 58934, 58964, 58994, 59023, 59053, 59082, 59111, 59141, 59170, 59200, 59229, 59259, 59288,\n 59318, 59348, 59377, 59407, 59436, 59466, 59495, 59525, 59554, 59584, 59613, 59643, 59672, 59702, 59731, 59761, 59791, 59820, 59850, 59879,\n 59909, 59939, 59968, 59997, 60027, 60056, 60086, 60115, 60145, 60174, 60204, 60234, 60264, 60293, 60323, 60352, 60381, 60411, 60440, 60469,\n 60499, 60528, 60558, 60588, 60618, 60648, 60677, 60707, 60736, 60765, 60795, 60824, 60853, 60883, 60912, 60942, 60972, 61002, 61031, 61061,\n 61090, 61120, 61149, 61179, 61208, 61237, 61267, 61296, 61326, 61356, 61385, 61415, 61445, 61474, 61504, 61533, 61563, 61592, 61621, 61651,\n 61680, 61710, 61739, 61769, 61799, 61828, 61858, 61888, 61917, 61947, 61976, 62006, 62035, 62064, 62094, 62123, 62153, 62182, 62212, 62242,\n 62271, 62301, 62331, 62360, 62390, 62419, 62448, 62478, 62507, 62537, 62566, 62596, 62625, 62655, 62685, 62715, 62744, 62774, 62803, 62832,\n 62862, 62891, 62921, 62950, 62980, 63009, 63039, 63069, 63099, 63128, 63157, 63187, 63216, 63246, 63275, 63305, 63334, 63363, 63393, 63423,\n 63453, 63482, 63512, 63541, 63571, 63600, 63630, 63659, 63689, 63718, 63747, 63777, 63807, 63836, 63866, 63895, 63925, 63955, 63984, 64014,\n 64043, 64073, 64102, 64131, 64161, 64190, 64220, 64249, 64279, 64309, 64339, 64368, 64398, 64427, 64457, 64486, 64515, 64545, 64574, 64603,\n 64633, 64663, 64692, 64722, 64752, 64782, 64811, 64841, 64870, 64899, 64929, 64958, 64987, 65017, 65047, 65076, 65106, 65136, 65166, 65195,\n 65225, 65254, 65283, 65313, 65342, 65371, 65401, 65431, 65460, 65490, 65520, 65549, 65579, 65608, 65638, 65667, 65697, 65726, 65755, 65785,\n 65815, 65844, 65874, 65903, 65933, 65963, 65992, 66022, 66051, 66081, 66110, 66140, 66169, 66199, 66228, 66258, 66287, 66317, 66346, 66376,\n 66405, 66435, 66465, 66494, 66524, 66553, 66583, 66612, 66641, 66671, 66700, 66730, 66760, 66789, 66819, 66849, 66878, 66908, 66937, 66967,\n 66996, 67025, 67055, 67084, 67114, 67143, 67173, 67203, 67233, 67262, 67292, 67321, 67351, 67380, 67409, 67439, 67468, 67497, 67527, 67557,\n 67587, 67617, 67646, 67676, 67705, 67735, 67764, 67793, 67823, 67852, 67882, 67911, 67941, 67971, 68000, 68030, 68060, 68089, 68119, 68148,\n 68177, 68207, 68236, 68266, 68295, 68325, 68354, 68384, 68414, 68443, 68473, 68502, 68532, 68561, 68591, 68620, 68650, 68679, 68708, 68738,\n 68768, 68797, 68827, 68857, 68886, 68916, 68946, 68975, 69004, 69034, 69063, 69092, 69122, 69152, 69181, 69211, 69240, 69270, 69300, 69330,\n 69359, 69388, 69418, 69447, 69476, 69506, 69535, 69565, 69595, 69624, 69654, 69684, 69713, 69743, 69772, 69802, 69831, 69861, 69890, 69919,\n 69949, 69978, 70008, 70038, 70067, 70097, 70126, 70156, 70186, 70215, 70245, 70274, 70303, 70333, 70362, 70392, 70421, 70451, 70481, 70510,\n 70540, 70570, 70599, 70629, 70658, 70687, 70717, 70746, 70776, 70805, 70835, 70864, 70894, 70924, 70954, 70983, 71013, 71042, 71071, 71101,\n 71130, 71159, 71189, 71218, 71248, 71278, 71308, 71337, 71367, 71397, 71426, 71455, 71485, 71514, 71543, 71573, 71602, 71632, 71662, 71691,\n 71721, 71751, 71781, 71810, 71839, 71869, 71898, 71927, 71957, 71986, 72016, 72046, 72075, 72105, 72135, 72164, 72194, 72223, 72253, 72282,\n 72311, 72341, 72370, 72400, 72429, 72459, 72489, 72518, 72548, 72577, 72607, 72637, 72666, 72695, 72725, 72754, 72784, 72813, 72843, 72872,\n 72902, 72931, 72961, 72991, 73020, 73050, 73080, 73109, 73139, 73168, 73197, 73227, 73256, 73286, 73315, 73345, 73375, 73404, 73434, 73464,\n 73493, 73523, 73552, 73581, 73611, 73640, 73669, 73699, 73729, 73758, 73788, 73818, 73848, 73877, 73907, 73936, 73965, 73995, 74024, 74053,\n 74083, 74113, 74142, 74172, 74202, 74231, 74261, 74291, 74320, 74349, 74379, 74408, 74437, 74467, 74497, 74526, 74556, 74586, 74615, 74645,\n 74675, 74704, 74733, 74763, 74792, 74822, 74851, 74881, 74910, 74940, 74969, 74999, 75029, 75058, 75088, 75117, 75147, 75176, 75206, 75235,\n 75264, 75294, 75323, 75353, 75383, 75412, 75442, 75472, 75501, 75531, 75560, 75590, 75619, 75648, 75678, 75707, 75737, 75766, 75796, 75826,\n 75856, 75885, 75915, 75944, 75974, 76003, 76032, 76062, 76091, 76121, 76150, 76180, 76210, 76239, 76269, 76299, 76328, 76358, 76387, 76416,\n 76446, 76475, 76505, 76534, 76564, 76593, 76623, 76653, 76682, 76712, 76741, 76771, 76801, 76830, 76859, 76889, 76918, 76948, 76977, 77007,\n 77036, 77066, 77096, 77125, 77155, 77185, 77214, 77243, 77273, 77302, 77332, 77361, 77390, 77420, 77450, 77479, 77509, 77539, 77569, 77598,\n 77627, 77657, 77686, 77715, 77745, 77774, 77804, 77833, 77863, 77893, 77923, 77952, 77982, 78011, 78041, 78070, 78099, 78129, 78158, 78188,\n 78217, 78247, 78277, 78307, 78336, 78366, 78395, 78425, 78454, 78483, 78513, 78542, 78572, 78601, 78631, 78661, 78690, 78720, 78750, 78779,\n 78808, 78838, 78867, 78897, 78926, 78956, 78985, 79015, 79044, 79074, 79104, 79133, 79163, 79192, 79222, 79251, 79281, 79310, 79340, 79369,\n 79399, 79428, 79458, 79487, 79517, 79546, 79576, 79606, 79635, 79665, 79695, 79724, 79753, 79783, 79812, 79841, 79871, 79900, 79930, 79960,\n 79990];\n\n","module.exports = perspective;\n\n/**\n * Generates a perspective projection matrix with the given bounds\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\nfunction perspective(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf = 1 / (near - far);\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = (far + near) * nf;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = (2 * far * near) * nf;\n out[15] = 0;\n return out;\n};","module.exports = lerp\n\n/**\n * Performs a linear interpolation between two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @param {Number} t interpolation amount between the two inputs\n * @returns {vec4} out\n */\nfunction lerp (out, a, b, t) {\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3]\n out[0] = ax + t * (b[0] - ax)\n out[1] = ay + t * (b[1] - ay)\n out[2] = az + t * (b[2] - az)\n out[3] = aw + t * (b[3] - aw)\n return out\n}\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","/**\r\n * @module update-diff\r\n */\r\n\r\n'use strict'\r\n\r\nmodule.exports = function updateDiff (obj, diff, mappers) {\r\n\tif (!Array.isArray(mappers)) mappers = [].slice.call(arguments, 2)\r\n\r\n\tfor (var i = 0, l = mappers.length; i < l; i++) {\r\n\t\tvar dict = mappers[i]\r\n\t\tfor (var prop in dict) {\r\n\t\t\tif (diff[prop] !== undefined && !Array.isArray(diff[prop]) && obj[prop] === diff[prop]) continue\r\n\r\n\t\t\tif (prop in diff) {\r\n\t\t\t\tvar result\r\n\r\n\t\t\t\tif (dict[prop] === true) result = diff[prop]\r\n\t\t\t\telse if (dict[prop] === false) continue\r\n\t\t\t\telse if (typeof dict[prop] === 'function') {\r\n\t\t\t\t\tresult = dict[prop](diff[prop], obj, diff)\r\n\t\t\t\t\tif (result === undefined) continue\r\n\t\t\t\t}\r\n\r\n\t\t\t\tobj[prop] = result\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn obj\r\n}\r\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n sunburstcolorway: {\n valType: 'colorlist',\n \n editType: 'calc',\n \n },\n extendsunburstcolors: {\n valType: 'boolean',\n dflt: true,\n \n editType: 'calc',\n \n }\n};\n","module.exports = dot\n\n/**\n * Calculates the dot product of two vec4's\n *\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @returns {Number} dot product of a and b\n */\nfunction dot (a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]\n}\n","'use strict'\n\nmodule.exports = alphaComplex\n\nvar delaunay = require('delaunay-triangulate')\nvar circumradius = require('circumradius')\n\nfunction alphaComplex(alpha, points) {\n return delaunay(points).filter(function(cell) {\n var simplex = new Array(cell.length)\n for(var i=0; i 0.999) h = 0.999; // TODO: may handle this case separately\n var h2 = Math.pow(h, 2);\n\n var v1 = cd0.vTotal;\n var v0 = v1 * h2 / (1 - h2);\n\n var totalValues = v1;\n var sumSteps = v0 / v1;\n\n function calcPos() {\n var q = Math.sqrt(sumSteps);\n return {\n x: q,\n y: -q\n };\n }\n\n function getPoint() {\n var pos = calcPos();\n return [pos.x, pos.y];\n }\n\n var p;\n var allPoints = [];\n allPoints.push(getPoint());\n\n var i, cdi;\n for(i = cd.length - 1; i > -1; i--) {\n cdi = cd[i];\n if(cdi.hidden) continue;\n\n var step = cdi.v / totalValues;\n sumSteps += step;\n\n allPoints.push(getPoint());\n }\n\n var minY = Infinity;\n var maxY = -Infinity;\n for(i = 0; i < allPoints.length; i++) {\n p = allPoints[i];\n minY = Math.min(minY, p[1]);\n maxY = Math.max(maxY, p[1]);\n }\n\n // center the shape\n for(i = 0; i < allPoints.length; i++) {\n allPoints[i][1] -= (maxY + minY) / 2;\n }\n\n var lastX = allPoints[allPoints.length - 1][0];\n\n // get pie r\n var r = cd0.r;\n\n var rY = (maxY - minY) / 2;\n var scaleX = r / lastX;\n var scaleY = r / rY * aspectratio;\n\n // set funnelarea r\n cd0.r = scaleY * rY;\n\n // scale the shape\n for(i = 0; i < allPoints.length; i++) {\n allPoints[i][0] *= scaleX;\n allPoints[i][1] *= scaleY;\n }\n\n // record first position\n p = allPoints[0];\n var prevLeft = [-p[0], p[1]];\n var prevRight = [p[0], p[1]];\n\n var n = 0; // note we skip the very first point.\n for(i = cd.length - 1; i > -1; i--) {\n cdi = cd[i];\n if(cdi.hidden) continue;\n\n n += 1;\n var x = allPoints[n][0];\n var y = allPoints[n][1];\n\n cdi.TL = [-x, y];\n cdi.TR = [x, y];\n\n cdi.BL = prevLeft;\n cdi.BR = prevRight;\n\n cdi.pxmid = getBetween(cdi.TR, cdi.BR);\n\n prevLeft = cdi.TL;\n prevRight = cdi.TR;\n }\n}\n","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? globalThis : require(\"./implementation\");\n","\"use strict\"\n\nmodule.exports = permutationSign\n\nvar BRUTE_FORCE_CUTOFF = 32\n\nvar pool = require(\"typedarray-pool\")\n\nfunction permutationSign(p) {\n var n = p.length\n if(n < BRUTE_FORCE_CUTOFF) {\n //Use quadratic algorithm for small n\n var sgn = 1\n for(var i=0; i 7) {\n\t\t\t\t\tresult.push(seg.splice(0, 7))\n\t\t\t\t\tseg.unshift('C')\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'S':\n\t\t\t\t// default control point\n\t\t\t\tvar cx = x\n\t\t\t\tvar cy = y\n\t\t\t\tif (prev == 'C' || prev == 'S') {\n\t\t\t\t\tcx += cx - bezierX // reflect the previous command's control\n\t\t\t\t\tcy += cy - bezierY // point relative to the current point\n\t\t\t\t}\n\t\t\t\tseg = ['C', cx, cy, seg[1], seg[2], seg[3], seg[4]]\n\t\t\t\tbreak\n\t\t\tcase 'T':\n\t\t\t\tif (prev == 'Q' || prev == 'T') {\n\t\t\t\t\tquadX = x * 2 - quadX // as with 'S' reflect previous control point\n\t\t\t\t\tquadY = y * 2 - quadY\n\t\t\t\t} else {\n\t\t\t\t\tquadX = x\n\t\t\t\t\tquadY = y\n\t\t\t\t}\n\t\t\t\tseg = quadratic(x, y, quadX, quadY, seg[1], seg[2])\n\t\t\t\tbreak\n\t\t\tcase 'Q':\n\t\t\t\tquadX = seg[1]\n\t\t\t\tquadY = seg[2]\n\t\t\t\tseg = quadratic(x, y, seg[1], seg[2], seg[3], seg[4])\n\t\t\t\tbreak\n\t\t\tcase 'L':\n\t\t\t\tseg = line(x, y, seg[1], seg[2])\n\t\t\t\tbreak\n\t\t\tcase 'H':\n\t\t\t\tseg = line(x, y, seg[1], y)\n\t\t\t\tbreak\n\t\t\tcase 'V':\n\t\t\t\tseg = line(x, y, x, seg[1])\n\t\t\t\tbreak\n\t\t\tcase 'Z':\n\t\t\t\tseg = line(x, y, startX, startY)\n\t\t\t\tbreak\n\t\t}\n\n\t\t// update state\n\t\tprev = command\n\t\tx = seg[seg.length - 2]\n\t\ty = seg[seg.length - 1]\n\t\tif (seg.length > 4) {\n\t\t\tbezierX = seg[seg.length - 4]\n\t\t\tbezierY = seg[seg.length - 3]\n\t\t} else {\n\t\t\tbezierX = x\n\t\t\tbezierY = y\n\t\t}\n\t\tresult.push(seg)\n\t}\n\n\treturn result\n}\n\nfunction line(x1, y1, x2, y2){\n\treturn ['C', x1, y1, x2, y2, x2, y2]\n}\n\nfunction quadratic(x1, y1, cx, cy, x2, y2){\n\treturn [\n\t\t'C',\n\t\tx1/3 + (2/3) * cx,\n\t\ty1/3 + (2/3) * cy,\n\t\tx2/3 + (2/3) * cx,\n\t\ty2/3 + (2/3) * cy,\n\t\tx2,\n\t\ty2\n\t]\n}\n\n// This function is ripped from \n// github.com/DmitryBaranovskiy/raphael/blob/4d97d4/raphael.js#L2216-L2304 \n// which references w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n// TODO: make it human readable\n\nfunction arc(x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) {\n\tif (!recursive) {\n\t\tvar xy = rotate(x1, y1, -angle)\n\t\tx1 = xy.x\n\t\ty1 = xy.y\n\t\txy = rotate(x2, y2, -angle)\n\t\tx2 = xy.x\n\t\ty2 = xy.y\n\t\tvar x = (x1 - x2) / 2\n\t\tvar y = (y1 - y2) / 2\n\t\tvar h = (x * x) / (rx * rx) + (y * y) / (ry * ry)\n\t\tif (h > 1) {\n\t\t\th = Math.sqrt(h)\n\t\t\trx = h * rx\n\t\t\try = h * ry\n\t\t}\n\t\tvar rx2 = rx * rx\n\t\tvar ry2 = ry * ry\n\t\tvar k = (large_arc_flag == sweep_flag ? -1 : 1)\n\t\t\t* Math.sqrt(Math.abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x)))\n\t\tif (k == Infinity) k = 1 // neutralize\n\t\tvar cx = k * rx * y / ry + (x1 + x2) / 2\n\t\tvar cy = k * -ry * x / rx + (y1 + y2) / 2\n\t\tvar f1 = Math.asin(((y1 - cy) / ry).toFixed(9))\n\t\tvar f2 = Math.asin(((y2 - cy) / ry).toFixed(9))\n\n\t\tf1 = x1 < cx ? π - f1 : f1\n\t\tf2 = x2 < cx ? π - f2 : f2\n\t\tif (f1 < 0) f1 = π * 2 + f1\n\t\tif (f2 < 0) f2 = π * 2 + f2\n\t\tif (sweep_flag && f1 > f2) f1 = f1 - π * 2\n\t\tif (!sweep_flag && f2 > f1) f2 = f2 - π * 2\n\t} else {\n\t\tf1 = recursive[0]\n\t\tf2 = recursive[1]\n\t\tcx = recursive[2]\n\t\tcy = recursive[3]\n\t}\n\t// greater than 120 degrees requires multiple segments\n\tif (Math.abs(f2 - f1) > _120) {\n\t\tvar f2old = f2\n\t\tvar x2old = x2\n\t\tvar y2old = y2\n\t\tf2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1)\n\t\tx2 = cx + rx * Math.cos(f2)\n\t\ty2 = cy + ry * Math.sin(f2)\n\t\tvar res = arc(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy])\n\t}\n\tvar t = Math.tan((f2 - f1) / 4)\n\tvar hx = 4 / 3 * rx * t\n\tvar hy = 4 / 3 * ry * t\n\tvar curve = [\n\t\t2 * x1 - (x1 + hx * Math.sin(f1)),\n\t\t2 * y1 - (y1 - hy * Math.cos(f1)),\n\t\tx2 + hx * Math.sin(f2),\n\t\ty2 - hy * Math.cos(f2),\n\t\tx2,\n\t\ty2\n\t]\n\tif (recursive) return curve\n\tif (res) curve = curve.concat(res)\n\tfor (var i = 0; i < curve.length;) {\n\t\tvar rot = rotate(curve[i], curve[i+1], angle)\n\t\tcurve[i++] = rot.x\n\t\tcurve[i++] = rot.y\n\t}\n\treturn curve\n}\n\nfunction rotate(x, y, rad){\n\treturn {\n\t\tx: x * Math.cos(rad) - y * Math.sin(rad),\n\t\ty: x * Math.sin(rad) + y * Math.cos(rad)\n\t}\n}\n\nfunction radians(degress){\n\treturn degress * (π / 180)\n}\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n moduleType: 'component',\n name: 'images',\n\n layoutAttributes: require('./attributes'),\n supplyLayoutDefaults: require('./defaults'),\n includeBasePlot: require('../../plots/cartesian/include_components')('images'),\n\n draw: require('./draw'),\n\n convertCoords: require('./convert_coords')\n};\n","// Exports true if environment provides native `WeakMap` implementation, whatever that is.\n\n\"use strict\";\n\nmodule.exports = (function () {\n\tif (typeof WeakMap !== \"function\") return false;\n\treturn Object.prototype.toString.call(new WeakMap()) === \"[object WeakMap]\";\n}());\n","\"use strict\";\n\nvar safeToString = require(\"./safe-to-string\");\n\nvar reNewLine = /[\\n\\r\\u2028\\u2029]/g;\n\nmodule.exports = function (value) {\n\tvar string = safeToString(value);\n\tif (string === null) return \"\";\n\t// Trim if too long\n\tif (string.length > 100) string = string.slice(0, 99) + \"…\";\n\t// Replace eventual new lines\n\tstring = string.replace(reNewLine, function (char) {\n\t\tswitch (char) {\n\t\t\tcase \"\\n\":\n\t\t\t\treturn \"\\\\n\";\n\t\t\tcase \"\\r\":\n\t\t\t\treturn \"\\\\r\";\n\t\t\tcase \"\\u2028\":\n\t\t\t\treturn \"\\\\u2028\";\n\t\t\tcase \"\\u2029\":\n\t\t\t\treturn \"\\\\u2029\";\n\t\t\t/* istanbul ignore next */\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"Unexpected character\");\n\t\t}\n\t});\n\treturn string;\n};\n","(function(aa,ia){\"object\"===typeof exports&&\"undefined\"!==typeof module?module.exports=ia():\"function\"===typeof define&&define.amd?define(ia):aa.createREGL=ia()})(this,function(){function aa(a,b){this.id=Ab++;this.type=a;this.data=b}function ia(a){if(0===a.length)return[];var b=a.charAt(0),c=a.charAt(a.length-1);if(1>>=b;c=(255>>=c;b|=c;c=(15>>=c;b|=c;c=(3>>c>>1}function cb(){function a(a){a:{for(var b=16;268435456>=b;b*=16)if(a<=b){a=b;break a}a=0}b=c[bb(a)>>2];return 0>2].push(a)}var c=J(8,function(){return[]});return{alloc:a,free:b,allocType:function(b,c){var d=null;switch(b){case 5120:d=new Int8Array(a(c),0,c);break;case 5121:d=new Uint8Array(a(c),0,c);break;case 5122:d=new Int16Array(a(2*c),0,c);break;case 5123:d=new Uint16Array(a(2*c),0,c);break;case 5124:d=new Int32Array(a(4*c),0,c);break;case 5125:d=new Uint32Array(a(4*c),0,c);break;case 5126:d=new Float32Array(a(4*c),0,c);break;default:return null}return d.length!==\nc?d.subarray(0,c):d},freeType:function(a){b(a.buffer)}}}function ma(a){return!!a&&\"object\"===typeof a&&Array.isArray(a.shape)&&Array.isArray(a.stride)&&\"number\"===typeof a.offset&&a.shape.length===a.stride.length&&(Array.isArray(a.data)||M(a.data))}function db(a,b,c,e,g,d){for(var p=0;pd&&(d=e.buffer.byteLength,5123===f?d>>=1:5125===f&&(d>>=2));e.vertCount=d;d=h;0>h&&(d=4,h=e.buffer.dimension,1===h&&(d=0),2===h&&(d=1),3===h&&(d=4));e.primType=d}function p(a){e.elementsCount--;delete f[a.id];a.buffer.destroy();a.buffer=null}var f={},r=0,q={uint8:5121,\nuint16:5123};b.oes_element_index_uint&&(q.uint32=5125);g.prototype.bind=function(){this.buffer.bind()};var t=[];return{create:function(a,b){function k(a){if(a)if(\"number\"===typeof a)h(a),l.primType=4,l.vertCount=a|0,l.type=5121;else{var b=null,c=35044,e=-1,g=-1,f=0,m=0;if(Array.isArray(a)||M(a)||ma(a))b=a;else if(\"data\"in a&&(b=a.data),\"usage\"in a&&(c=jb[a.usage]),\"primitive\"in a&&(e=Sa[a.primitive]),\"count\"in a&&(g=a.count|0),\"type\"in a&&(m=q[a.type]),\"length\"in a)f=a.length|0;else if(f=g,5123===\nm||5122===m)f*=2;else if(5125===m||5124===m)f*=4;d(l,b,c,e,g,f,m)}else h(),l.primType=4,l.vertCount=0,l.type=5121;return k}var h=c.create(null,34963,!0),l=new g(h._buffer);e.elementsCount++;k(a);k._reglType=\"elements\";k._elements=l;k.subdata=function(a,b){h.subdata(a,b);return k};k.destroy=function(){p(l)};return k},createStream:function(a){var b=t.pop();b||(b=new g(c.create(null,34963,!0,!1)._buffer));d(b,a,35040,-1,-1,0,0);return b},destroyStream:function(a){t.push(a)},getElements:function(a){return\"function\"===\ntypeof a&&a._elements instanceof g?a._elements:null},clear:function(){S(f).forEach(p)}}}function kb(a){for(var b=x.allocType(5123,a.length),c=0;c>>31<<15,d=(e<<1>>>24)-127,e=e>>13&1023;b[c]=-24>d?g:-14>d?g+(e+1024>>-14-d):15>=e,c.height>>=e,C(c,d[e]),a.mipmask|=1<b;++b)a.images[b]=null;return a}function ib(a){for(var b=a.images,c=0;cb){for(var c=0;c=--this.refCount&&A(this)}});p.profile&&(d.getTotalTextureSize=function(){var a=0;Object.keys(X).forEach(function(b){a+=X[b].stats.size});return a});return{create2D:function(b,c){function e(a,b){var c=f.texInfo;z.call(c);var d=D();\"number\"===typeof a?\"number\"===typeof b?\nv(d,a|0,b|0):v(d,a|0,a|0):a?(O(c,a),N(d,a)):v(d,1,1);c.genMipmaps&&(d.mipmask=(d.width<<1)-1);f.mipmask=d.mipmask;r(f,d);f.internalformat=d.internalformat;e.width=d.width;e.height=d.height;T(f);B(d,3553);R(c,3553);Aa();ib(d);p.profile&&(f.stats.size=Ja(f.internalformat,f.type,d.width,d.height,c.genMipmaps,!1));e.format=J[f.internalformat];e.type=da[f.type];e.mag=oa[c.magFilter];e.min=za[c.minFilter];e.wrapS=ka[c.wrapS];e.wrapT=ka[c.wrapT];return e}var f=new F(3553);X[f.id]=f;d.textureCount++;e(b,\nc);e.subimage=function(a,b,c,d){b|=0;c|=0;d|=0;var n=h();r(n,f);n.width=0;n.height=0;C(n,a);n.width=n.width||(f.width>>d)-b;n.height=n.height||(f.height>>d)-c;T(f);k(n,3553,b,c,d);Aa();l(n);return e};e.resize=function(b,c){var d=b|0,h=c|0||d;if(d===f.width&&h===f.height)return e;e.width=f.width=d;e.height=f.height=h;T(f);for(var n,w=f.channels,y=f.type,I=0;f.mipmask>>I;++I){var fa=d>>I,ga=h>>I;if(!fa||!ga)break;n=x.zero.allocType(y,fa*ga*w);a.texImage2D(3553,I,f.format,fa,ga,0,f.format,f.type,n);\nn&&x.zero.freeType(n)}Aa();p.profile&&(f.stats.size=Ja(f.internalformat,f.type,d,h,!1,!1));return e};e._reglType=\"texture2d\";e._texture=f;p.profile&&(e.stats=f.stats);e.destroy=function(){f.decRef()};return e},createCube:function(b,c,e,f,g,ua){function A(a,b,c,d,e,f){var H,Y=m.texInfo;z.call(Y);for(H=0;6>H;++H)n[H]=D();if(\"number\"===typeof a||!a)for(a=a|0||1,H=0;6>H;++H)v(n[H],a,a);else if(\"object\"===typeof a)if(b)N(n[0],a),N(n[1],b),N(n[2],c),N(n[3],d),N(n[4],e),N(n[5],f);else if(O(Y,a),q(m,a),\"faces\"in\na)for(a=a.faces,H=0;6>H;++H)r(n[H],m),N(n[H],a[H]);else for(H=0;6>H;++H)N(n[H],a);r(m,n[0]);m.mipmask=Y.genMipmaps?(n[0].width<<1)-1:n[0].mipmask;m.internalformat=n[0].internalformat;A.width=n[0].width;A.height=n[0].height;T(m);for(H=0;6>H;++H)B(n[H],34069+H);R(Y,34067);Aa();p.profile&&(m.stats.size=Ja(m.internalformat,m.type,A.width,A.height,Y.genMipmaps,!0));A.format=J[m.internalformat];A.type=da[m.type];A.mag=oa[Y.magFilter];A.min=za[Y.minFilter];A.wrapS=ka[Y.wrapS];A.wrapT=ka[Y.wrapT];for(H=0;6>\nH;++H)ib(n[H]);return A}var m=new F(34067);X[m.id]=m;d.cubeCount++;var n=Array(6);A(b,c,e,f,g,ua);A.subimage=function(a,b,c,n,d){c|=0;n|=0;d|=0;var e=h();r(e,m);e.width=0;e.height=0;C(e,b);e.width=e.width||(m.width>>d)-c;e.height=e.height||(m.height>>d)-n;T(m);k(e,34069+a,c,n,d);Aa();l(e);return A};A.resize=function(b){b|=0;if(b!==m.width){A.width=m.width=b;A.height=m.height=b;T(m);for(var c=0;6>c;++c)for(var n=0;m.mipmask>>n;++n)a.texImage2D(34069+c,n,m.format,b>>n,b>>n,0,m.format,m.type,null);Aa();\np.profile&&(m.stats.size=Ja(m.internalformat,m.type,A.width,A.height,!1,!0));return A}};A._reglType=\"textureCube\";A._texture=m;p.profile&&(A.stats=m.stats);A.destroy=function(){m.decRef()};return A},clear:function(){for(var b=0;bc;++c)if(0!==(b.mipmask&1<>c,b.height>>c,0,b.internalformat,b.type,null);else for(var d=0;6>d;++d)a.texImage2D(34069+d,c,b.internalformat,b.width>>c,b.height>>c,0,b.internalformat,b.type,null);R(b.texInfo,b.target)})}}}function Ob(a,b,c,e,g,d){function p(a,b,c){this.target=a;this.texture=b;this.renderbuffer=c;var d=a=0;b?(a=b.width,d=b.height):c&&(a=c.width,d=c.height);\nthis.width=a;this.height=d}function f(a){a&&(a.texture&&a.texture._texture.decRef(),a.renderbuffer&&a.renderbuffer._renderbuffer.decRef())}function r(a,b,c){a&&(a.texture?a.texture._texture.refCount+=1:a.renderbuffer._renderbuffer.refCount+=1)}function q(b,c){c&&(c.texture?a.framebufferTexture2D(36160,b,c.target,c.texture._texture.texture,0):a.framebufferRenderbuffer(36160,b,36161,c.renderbuffer._renderbuffer.renderbuffer))}function t(a){var b=3553,c=null,d=null,e=a;\"object\"===typeof a&&(e=a.data,\n\"target\"in a&&(b=a.target|0));a=e._reglType;\"texture2d\"===a?c=e:\"textureCube\"===a?c=e:\"renderbuffer\"===a&&(d=e,b=36161);return new p(b,c,d)}function m(a,b,c,d,f){if(c)return a=e.create2D({width:a,height:b,format:d,type:f}),a._texture.refCount=0,new p(3553,a,null);a=g.create({width:a,height:b,format:d});a._renderbuffer.refCount=0;return new p(36161,null,a)}function C(a){return a&&(a.texture||a.renderbuffer)}function k(a,b,c){a&&(a.texture?a.texture.resize(b,c):a.renderbuffer&&a.renderbuffer.resize(b,\nc),a.width=b,a.height=c)}function h(){this.id=O++;R[this.id]=this;this.framebuffer=a.createFramebuffer();this.height=this.width=0;this.colorAttachments=[];this.depthStencilAttachment=this.stencilAttachment=this.depthAttachment=null}function l(a){a.colorAttachments.forEach(f);f(a.depthAttachment);f(a.stencilAttachment);f(a.depthStencilAttachment)}function u(b){a.deleteFramebuffer(b.framebuffer);b.framebuffer=null;d.framebufferCount--;delete R[b.id]}function v(b){var d;a.bindFramebuffer(36160,b.framebuffer);\nvar e=b.colorAttachments;for(d=0;dd;++d){for(m=0;ma;++a)c[a].resize(d);b.width=b.height=d;return b},_reglType:\"framebufferCube\",destroy:function(){c.forEach(function(a){a.destroy()})}})},\nclear:function(){S(R).forEach(u)},restore:function(){B.cur=null;B.next=null;B.dirty=!0;S(R).forEach(function(b){b.framebuffer=a.createFramebuffer();v(b)})}})}function ub(){this.w=this.z=this.y=this.x=this.state=0;this.buffer=null;this.size=0;this.normalized=!1;this.type=5126;this.divisor=this.stride=this.offset=0}function Pb(a,b,c,e){a=c.maxAttributes;b=Array(a);for(c=0;ca&&(a=b.stats.uniformsCount)});return a},c.getMaxAttributesCount=function(){var a=0;C.forEach(function(b){b.stats.attributesCount>a&&(a=b.stats.attributesCount)});return a});return{clear:function(){var b=a.deleteShader.bind(a);S(q).forEach(b);q={};S(t).forEach(b);t={};C.forEach(function(b){a.deleteProgram(b.program)});\nC.length=0;m={};c.shaderCount=0},program:function(a,b,d){var e=m[b];e||(e=m[b]={});var g=e[a];g||(g=new f(b,a),c.shaderCount++,r(g,d),e[a]=g,C.push(g));return g},restore:function(){q={};t={};for(var a=0;a\"+b+\"?\"+e+\".constant[\"+b+\"]:0;\"}).join(\"\"),\"}}else{\",\"if(\",g,\"(\",e,\".buffer)){\",y,\"=\",n,\".createStream(\",34962,\",\",e,\".buffer);\",\"}else{\",y,\"=\",n,\".getBuffer(\",e,\".buffer);\",\"}\",k,'=\"type\" in ',e,\"?\",f.glTypes,\"[\",e,\".type]:\",y,\".dtype;\",\nw.normalized,\"=!!\",e,\".normalized;\");d(\"size\");d(\"offset\");d(\"stride\");d(\"divisor\");c(\"}}\");c.exit(\"if(\",w.isStream,\"){\",n,\".destroyStream(\",y,\");\",\"}\");return w})});return f}function M(a){var b=a[\"static\"],c=a.dynamic,d={};Object.keys(b).forEach(function(a){var c=b[a];d[a]=D(function(a,b){return\"number\"===typeof c||\"boolean\"===typeof c?\"\"+c:a.link(c)})});Object.keys(c).forEach(function(a){var b=c[a];d[a]=P(b,function(a,c){return a.invoke(c,b)})});return d}function A(a,b,c,d,e){var f=z(a,e),g=x(a,\nf,e),h=O(a,e),k=R(a,e),m=E(a,e),ba=g.viewport;ba&&(k.viewport=ba);ba=l(\"scissor.box\");(g=g[ba])&&(k[ba]=g);g=0>1)\",v],\");\")}function b(){c(u,\".drawArraysInstancedANGLE(\",[q,r,t,v],\");\")}p?da?a():(c(\"if(\",p,\"){\"),a(),c(\"}else{\"),b(),c(\"}\")):b()}function g(){function a(){c(k+\".drawElements(\"+[q,t,C,r+\"<<((\"+C+\"-5121)>>1)\"]+\");\")}function b(){c(k+\".drawArrays(\"+[q,r,t]+\");\")}p?da?a():(c(\"if(\",p,\"){\"),a(),c(\"}else{\"),b(),c(\"}\")):b()}var h=a.shared,k=h.gl,m=h.draw,l=d.draw,p=function(){var e=l.elements,f=b;if(e){if(e.contextDep&&d.contextDynamic||e.propDep)f=c;e=e.append(a,f)}else e=f.def(m,\n\".\",\"elements\");e&&f(\"if(\"+e+\")\"+k+\".bindBuffer(34963,\"+e+\".buffer.buffer);\");return e}(),q=e(\"primitive\"),r=e(\"offset\"),t=function(){var e=l.count,f=b;if(e){if(e.contextDep&&d.contextDynamic||e.propDep)f=c;e=e.append(a,f)}else e=f.def(m,\".\",\"count\");return e}();if(\"number\"===typeof t){if(0===t)return}else c(\"if(\",t,\"){\"),c.exit(\"}\");var v,u;ea&&(v=e(\"instances\"),u=a.instancing);var C=p+\".type\",da=l.elements&&va(l.elements);ea&&(\"number\"!==typeof v||0<=v)?\"string\"===typeof v?(c(\"if(\",v,\">0){\"),f(),\nc(\"}else if(\",v,\"<0){\"),g(),c(\"}\")):f():g()}function ca(a,b,c,d,e){b=N();e=b.proc(\"body\",e);ea&&(b.instancing=e.def(b.shared.extensions,\".angle_instanced_arrays\"));a(b,e,c,d);return b.compile().body}function L(a,b,c,d){wa(a,b);U(a,b,c,d.attributes,function(){return!0});W(a,b,c,d.uniforms,function(){return!0});S(a,b,b,c)}function da(a,b){var c=a.proc(\"draw\",1);wa(a,c);ua(a,c,b.context);K(a,c,b.framebuffer);V(a,c,b);Q(a,c,b.state);G(a,c,b,!1,!0);var d=b.shader.progVar.append(a,c);c(a.shared.gl,\".useProgram(\",\nd,\".program);\");if(b.shader.program)L(a,c,b,b.shader.program);else{var e=a.global.def(\"{}\"),f=c.def(d,\".id\"),g=c.def(e,\"[\",f,\"]\");c(a.cond(g).then(g,\".call(this,a0);\")[\"else\"](g,\"=\",e,\"[\",f,\"]=\",a.link(function(c){return ca(L,a,b,c,1)}),\"(\",d,\");\",g,\".call(this,a0);\"))}0=--this.refCount&&p(this)};g.profile&&(e.getTotalRenderbufferSize=function(){var a=0;Object.keys(t).forEach(function(b){a+=t[b].stats.size});return a});return{create:function(b,c){function k(b,c){var d=0,e=0,m=32854;\"object\"===typeof b&&b?(\"shape\"in b?(e=b.shape,d=e[0]|0,e=e[1]|0):(\"radius\"in b&&(d=e=b.radius|0),\"width\"in b&&(d=b.width|0),\"height\"in b&&(e=b.height|0)),\"format\"in b&&(m=f[b.format])):\"number\"===\ntypeof b?(d=b|0,e=\"number\"===typeof c?c|0:d):b||(d=e=1);if(d!==h.width||e!==h.height||m!==h.format)return k.width=h.width=d,k.height=h.height=e,h.format=m,a.bindRenderbuffer(36161,h.renderbuffer),a.renderbufferStorage(36161,m,d,e),g.profile&&(h.stats.size=Q[h.format]*h.width*h.height),k.format=r[h.format],k}var h=new d(a.createRenderbuffer());t[h.id]=h;e.renderbufferCount++;k(b,c);k.resize=function(b,c){var d=b|0,e=c|0||d;if(d===h.width&&e===h.height)return k;k.width=h.width=d;k.height=h.height=e;\na.bindRenderbuffer(36161,h.renderbuffer);a.renderbufferStorage(36161,h.format,d,e);g.profile&&(h.stats.size=Q[h.format]*h.width*h.height);return k};k._reglType=\"renderbuffer\";k._renderbuffer=h;g.profile&&(k.stats=h.stats);k.destroy=function(){h.decRef()};return k},clear:function(){S(t).forEach(p)},restore:function(){S(t).forEach(function(b){b.renderbuffer=a.createRenderbuffer();a.bindRenderbuffer(36161,b.renderbuffer);a.renderbufferStorage(36161,b.format,b.width,b.height)});a.bindRenderbuffer(36161,\nnull)}}},Wa=[];Wa[6408]=4;Wa[6407]=3;var Na=[];Na[5121]=1;Na[5126]=4;Na[36193]=2;var Da=[\"x\",\"y\",\"z\",\"w\"],Ub=\"blend.func blend.equation stencil.func stencil.opFront stencil.opBack sample.coverage viewport scissor.box polygonOffset.offset\".split(\" \"),Ga={0:0,1:1,zero:0,one:1,\"src color\":768,\"one minus src color\":769,\"src alpha\":770,\"one minus src alpha\":771,\"dst color\":774,\"one minus dst color\":775,\"dst alpha\":772,\"one minus dst alpha\":773,\"constant color\":32769,\"one minus constant color\":32770,\"constant alpha\":32771,\n\"one minus constant alpha\":32772,\"src alpha saturate\":776},Xa={never:512,less:513,\"<\":513,equal:514,\"=\":514,\"==\":514,\"===\":514,lequal:515,\"<=\":515,greater:516,\">\":516,notequal:517,\"!=\":517,\"!==\":517,gequal:518,\">=\":518,always:519},Pa={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,\"increment wrap\":34055,\"decrement wrap\":34056,invert:5386},wb={cw:2304,ccw:2305},xb=new Z(!1,!1,!1,function(){}),Xb=function(a,b){function c(){this.endQueryIndex=this.startQueryIndex=-1;this.sum=0;this.stats=\nnull}function e(a,b,d){var e=p.pop()||new c;e.startQueryIndex=a;e.endQueryIndex=b;e.sum=0;e.stats=d;f.push(e)}if(!b.ext_disjoint_timer_query)return null;var g=[],d=[],p=[],f=[],r=[],q=[];return{beginQuery:function(a){var c=g.pop()||b.ext_disjoint_timer_query.createQueryEXT();b.ext_disjoint_timer_query.beginQueryEXT(35007,c);d.push(c);e(d.length-1,d.length,a)},endQuery:function(){b.ext_disjoint_timer_query.endQueryEXT(35007)},pushScopeStats:e,update:function(){var a,c;a=d.length;if(0!==a){q.length=\nMath.max(q.length,a+1);r.length=Math.max(r.length,a+1);r[0]=0;var e=q[0]=0;for(c=a=0;c=G.length&&e()}var c=yb(G,a);G[c]=b}}}function q(){var a=S.viewport,b=S.scissor_box;a[0]=a[1]=b[0]=b[1]=0;O.viewportWidth=O.framebufferWidth=O.drawingBufferWidth=a[2]=b[2]=k.drawingBufferWidth;O.viewportHeight=O.framebufferHeight=O.drawingBufferHeight=a[3]=b[3]=k.drawingBufferHeight}function t(){O.tick+=1;O.time=z();\nq();V.procs.poll()}function m(){q();V.procs.refresh();B&&B.update()}function z(){return(zb()-D)/1E3}a=Eb(a);if(!a)return null;var k=a.gl,h=k.getContextAttributes();k.isContextLost();var l=Fb(k,a);if(!l)return null;var u=Bb(),v={bufferCount:0,elementsCount:0,framebufferCount:0,shaderCount:0,textureCount:0,cubeCount:0,renderbufferCount:0,maxTextureUnits:0},x=l.extensions,B=Xb(k,x),D=zb(),J=k.drawingBufferWidth,P=k.drawingBufferHeight,O={tick:0,time:0,viewportWidth:J,viewportHeight:P,framebufferWidth:J,\nframebufferHeight:P,drawingBufferWidth:J,drawingBufferHeight:P,pixelRatio:a.pixelRatio},R=Vb(k,x),J=Pb(k,x,R,u),F=Gb(k,v,a,J),T=Hb(k,x,F,v),Q=Qb(k,u,v,a),A=Kb(k,x,R,function(){V.procs.poll()},O,v,a),M=Wb(k,x,R,v,a),K=Ob(k,x,R,A,M,v),V=Tb(k,u,x,R,F,T,A,K,{},J,Q,{elements:null,primitive:4,count:-1,offset:0,instances:-1},O,B,a),u=Rb(k,K,V.procs.poll,O,h,x,R),S=V.next,L=k.canvas,G=[],U=[],W=[],Z=[a.onDestroy],ca=null;L&&(L.addEventListener(\"webglcontextlost\",g,!1),L.addEventListener(\"webglcontextrestored\",\nd,!1));var aa=K.setFBO=p({framebuffer:la.define.call(null,1,\"framebuffer\")});m();h=E(p,{clear:function(a){if(\"framebuffer\"in a)if(a.framebuffer&&\"framebufferCube\"===a.framebuffer_reglType)for(var b=0;6>b;++b)aa(E({framebuffer:a.framebuffer.faces[b]},a),f);else aa(a,f);else f(null,a)},prop:la.define.bind(null,1),context:la.define.bind(null,2),\"this\":la.define.bind(null,3),draw:p({}),buffer:function(a){return F.create(a,34962,!1,!1)},elements:function(a){return T.create(a,!1)},texture:A.create2D,cube:A.createCube,\nrenderbuffer:M.create,framebuffer:K.create,framebufferCube:K.createCube,attributes:h,frame:r,on:function(a,b){var c;switch(a){case \"frame\":return r(b);case \"lost\":c=U;break;case \"restore\":c=W;break;case \"destroy\":c=Z}c.push(b);return{cancel:function(){for(var a=0;a cache.ts + minInterval) {\n exec();\n return;\n }\n\n cache.timer = setTimeout(function() {\n exec();\n cache.timer = null;\n }, minInterval);\n};\n\nexports.done = function(id) {\n var cache = timerCache[id];\n if(!cache || !cache.timer) return Promise.resolve();\n\n return new Promise(function(resolve) {\n var previousOnDone = cache.onDone;\n cache.onDone = function onDone() {\n if(previousOnDone) previousOnDone();\n resolve();\n cache.onDone = null;\n };\n });\n};\n\n/**\n * Clear the throttle cache for one or all timers\n * @param {optional string} id:\n * if provided, clear just this timer\n * if omitted, clear all timers (mainly useful for testing)\n */\nexports.clear = function(id) {\n if(id) {\n _clearTimeout(timerCache[id]);\n delete timerCache[id];\n } else {\n for(var idi in timerCache) exports.clear(idi);\n }\n};\n\nfunction _clearTimeout(cache) {\n if(cache && cache.timer !== null) {\n clearTimeout(cache.timer);\n cache.timer = null;\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n","var tarjan = require('strongly-connected-components');\n\nmodule.exports = function findCircuits(edges) {\n var circuits = []; // Output\n\n var stack = [];\n var blocked = [];\n var B = {};\n var Ak = [];\n var s;\n\n function unblock(u) {\n blocked[u] = false;\n if(B.hasOwnProperty(u)) {\n Object.keys(B[u]).forEach(function(w) {\n delete B[u][w];\n if(blocked[w]) {unblock(w);}\n });\n }\n }\n\n function circuit(v) {\n var found = false;\n\n stack.push(v);\n blocked[v] = true;\n\n // L1\n var i;\n var w;\n for(i = 0; i < Ak[v].length; i++) {\n w = Ak[v][i];\n if(w === s) {\n output(s, stack);\n found = true;\n } else if(!blocked[w]) {\n found = circuit(w);\n }\n }\n\n // L2\n if(found) {\n unblock(v);\n } else {\n for(i = 0; i < Ak[v].length; i++) {\n w = Ak[v][i];\n var entry = B[w];\n\n if(!entry) {\n entry = {};\n B[w] = entry;\n }\n\n entry[w] = true;\n }\n }\n stack.pop();\n return found;\n }\n\n function output(start, stack) {\n var cycle = [].concat(stack).concat(start);\n circuits.push(cycle);\n }\n\n function subgraph(minId) {\n // Remove edges with indice smaller than minId\n for(var i = 0; i < edges.length; i++) {\n if(i < minId) edges[i] = [];\n edges[i] = edges[i].filter(function(i) {\n return i >= minId;\n });\n }\n }\n\n function adjacencyStructureSCC(from) {\n // Make subgraph starting from vertex minId\n subgraph(from);\n var g = edges;\n\n // Find strongly connected components using Tarjan algorithm\n var sccs = tarjan(g);\n\n // Filter out trivial connected components (ie. made of one node)\n var ccs = sccs.components.filter(function(scc) {\n return scc.length > 1;\n });\n\n // Find least vertex\n var leastVertex = Infinity;\n var leastVertexComponent;\n for(var i = 0; i < ccs.length; i++) {\n for(var j = 0; j < ccs[i].length; j++) {\n if(ccs[i][j] < leastVertex) {\n leastVertex = ccs[i][j];\n leastVertexComponent = i;\n }\n }\n }\n\n var cc = ccs[leastVertexComponent];\n\n if(!cc) return false;\n\n // Return the adjacency list of first component\n var adjList = edges.map(function(l, index) {\n if(cc.indexOf(index) === -1) return [];\n return l.filter(function(i) {\n return cc.indexOf(i) !== -1;\n });\n });\n\n return {\n leastVertex: leastVertex,\n adjList: adjList\n };\n }\n\n s = 0;\n var n = edges.length;\n while(s < n) {\n // find strong component with least vertex in\n // subgraph starting from vertex `s`\n var p = adjacencyStructureSCC(s);\n\n // Its least vertex\n s = p.leastVertex;\n // Its adjacency list\n Ak = p.adjList;\n\n if(Ak) {\n for(var i = 0; i < Ak.length; i++) {\n for(var j = 0; j < Ak[i].length; j++) {\n var vertexId = Ak[i][j];\n blocked[+vertexId] = false;\n B[vertexId] = {};\n }\n }\n circuit(s);\n s = s + 1;\n } else {\n s = n;\n }\n\n }\n\n return circuits;\n};\n","'use strict'\n\nmodule.exports = createAttributeWrapper\n\nvar GLError = require(\"./GLError\")\n\nfunction ShaderAttribute(\n gl\n , wrapper\n , index\n , locations\n , dimension\n , constFunc) {\n this._gl = gl\n this._wrapper = wrapper\n this._index = index\n this._locations = locations\n this._dimension = dimension\n this._constFunc = constFunc\n}\n\nvar proto = ShaderAttribute.prototype\n\nproto.pointer = function setAttribPointer(\n type\n , normalized\n , stride\n , offset) {\n\n var self = this\n var gl = self._gl\n var location = self._locations[self._index]\n\n gl.vertexAttribPointer(\n location\n , self._dimension\n , type || gl.FLOAT\n , !!normalized\n , stride || 0\n , offset || 0)\n gl.enableVertexAttribArray(location)\n}\n\nproto.set = function(x0, x1, x2, x3) {\n return this._constFunc(this._locations[this._index], x0, x1, x2, x3)\n}\n\nObject.defineProperty(proto, 'location', {\n get: function() {\n return this._locations[this._index]\n }\n , set: function(v) {\n if(v !== this._locations[this._index]) {\n this._locations[this._index] = v|0\n this._wrapper.program = null\n }\n return v|0\n }\n})\n\n//Adds a vector attribute to obj\nfunction addVectorAttribute(\n gl\n , wrapper\n , index\n , locations\n , dimension\n , obj\n , name) {\n\n //Construct constant function\n var constFuncArgs = [ 'gl', 'v' ]\n var varNames = []\n for(var i=0; i= 0) {\n var d = type.charCodeAt(type.length-1) - 48\n if(d < 2 || d > 4) {\n throw new GLError('', 'Invalid data type for attribute ' + name + ': ' + type)\n }\n addVectorAttribute(\n gl\n , wrapper\n , locs[0]\n , locations\n , d\n , obj\n , name)\n } else if(type.indexOf('mat') >= 0) {\n var d = type.charCodeAt(type.length-1) - 48\n if(d < 2 || d > 4) {\n throw new GLError('', 'Invalid data type for attribute ' + name + ': ' + type)\n }\n addMatrixAttribute(\n gl\n , wrapper\n , locs\n , locations\n , d\n , obj\n , name)\n } else {\n throw new GLError('', 'Unknown data type for attribute ' + name + ': ' + type)\n }\n break\n }\n }\n return obj\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Axes = require('../../plots/cartesian/axes');\n\nmodule.exports = function formatLabels(cdi, trace, fullLayout) {\n var labels = {};\n\n var mockGd = {_fullLayout: fullLayout};\n var xa = Axes.getFromTrace(mockGd, trace, 'x');\n var ya = Axes.getFromTrace(mockGd, trace, 'y');\n\n labels.xLabel = Axes.tickText(xa, cdi.x, true).text;\n labels.yLabel = Axes.tickText(ya, cdi.y, true).text;\n\n return labels;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar overrideAll = require('../../plot_api/edit_types').overrideAll;\n\nvar attributes = require('./attributes');\n\nvar xyAttrs = {\n error_x: Lib.extendFlat({}, attributes),\n error_y: Lib.extendFlat({}, attributes)\n};\ndelete xyAttrs.error_x.copy_zstyle;\ndelete xyAttrs.error_y.copy_zstyle;\ndelete xyAttrs.error_y.copy_ystyle;\n\nvar xyzAttrs = {\n error_x: Lib.extendFlat({}, attributes),\n error_y: Lib.extendFlat({}, attributes),\n error_z: Lib.extendFlat({}, attributes)\n};\ndelete xyzAttrs.error_x.copy_ystyle;\ndelete xyzAttrs.error_y.copy_ystyle;\ndelete xyzAttrs.error_z.copy_ystyle;\ndelete xyzAttrs.error_z.copy_zstyle;\n\nmodule.exports = {\n moduleType: 'component',\n name: 'errorbars',\n\n schema: {\n traces: {\n scatter: xyAttrs,\n bar: xyAttrs,\n histogram: xyAttrs,\n scatter3d: overrideAll(xyzAttrs, 'calc', 'nested'),\n scattergl: overrideAll(xyAttrs, 'calc', 'nested')\n }\n },\n\n supplyDefaults: require('./defaults'),\n\n calc: require('./calc'),\n makeComputeError: require('./compute_error'),\n\n plot: require('./plot'),\n style: require('./style'),\n hoverInfo: hoverInfo\n};\n\nfunction hoverInfo(calcPoint, trace, hoverPoint) {\n if((trace.error_y || {}).visible) {\n hoverPoint.yerr = calcPoint.yh - calcPoint.y;\n if(!trace.error_y.symmetric) hoverPoint.yerrneg = calcPoint.y - calcPoint.ys;\n }\n if((trace.error_x || {}).visible) {\n hoverPoint.xerr = calcPoint.xh - calcPoint.x;\n if(!trace.error_x.symmetric) hoverPoint.xerrneg = calcPoint.x - calcPoint.xs;\n }\n}\n","/** @module color-rgba */\n\n'use strict'\n\nvar parse = require('color-parse')\nvar hsl = require('color-space/hsl')\nvar clamp = require('clamp')\n\nmodule.exports = function rgba (color) {\n\tvar values, i, l\n\n\t//attempt to parse non-array arguments\n\tvar parsed = parse(color)\n\n\tif (!parsed.space) return []\n\n\tvalues = Array(3)\n\tvalues[0] = clamp(parsed.values[0], 0, 255)\n\tvalues[1] = clamp(parsed.values[1], 0, 255)\n\tvalues[2] = clamp(parsed.values[2], 0, 255)\n\n\tif (parsed.space[0] === 'h') {\n\t\tvalues = hsl.rgb(values)\n\t}\n\n\tvalues.push(clamp(parsed.alpha, 0, 1))\n\n\treturn values\n}\n","\"use strict\"\n\nvar ndarray = require(\"ndarray\")\nvar do_convert = require(\"./doConvert.js\")\n\nmodule.exports = function convert(arr, result) {\n var shape = [], c = arr, sz = 1\n while(Array.isArray(c)) {\n shape.push(c.length)\n sz *= c.length\n c = c[0]\n }\n if(shape.length === 0) {\n return ndarray()\n }\n if(!result) {\n result = ndarray(new Float64Array(sz), shape)\n }\n do_convert(result, arr)\n return result\n}\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var createShaderWrapper = require('gl-shader')\nvar glslify = require('glslify')\n\nvar perspectiveVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 glyph;\\nattribute vec4 id;\\n\\nuniform vec4 highlightId;\\nuniform float highlightScale;\\nuniform mat4 model, view, projection;\\nuniform vec3 clipBounds[2];\\n\\nvarying vec4 interpColor;\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0,0,0,0);\\n } else {\\n float scale = 1.0;\\n if(distance(highlightId, id) < 0.0001) {\\n scale = highlightScale;\\n }\\n\\n vec4 worldPosition = model * vec4(position, 1);\\n vec4 viewPosition = view * worldPosition;\\n viewPosition = viewPosition / viewPosition.w;\\n vec4 clipPosition = projection * (viewPosition + scale * vec4(glyph.x, -glyph.y, 0, 0));\\n\\n gl_Position = clipPosition;\\n interpColor = color;\\n pickId = id;\\n dataCoordinate = position;\\n }\\n}\"])\nvar orthographicVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 glyph;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\nuniform vec2 screenSize;\\nuniform vec3 clipBounds[2];\\nuniform float highlightScale, pixelRatio;\\nuniform vec4 highlightId;\\n\\nvarying vec4 interpColor;\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0,0,0,0);\\n } else {\\n float scale = pixelRatio;\\n if(distance(highlightId.bgr, id.bgr) < 0.001) {\\n scale *= highlightScale;\\n }\\n\\n vec4 worldPosition = model * vec4(position, 1.0);\\n vec4 viewPosition = view * worldPosition;\\n vec4 clipPosition = projection * viewPosition;\\n clipPosition /= clipPosition.w;\\n\\n gl_Position = clipPosition + vec4(screenSize * scale * vec2(glyph.x, -glyph.y), 0.0, 0.0);\\n interpColor = color;\\n pickId = id;\\n dataCoordinate = position;\\n }\\n}\"])\nvar projectionVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 glyph;\\nattribute vec4 id;\\n\\nuniform float highlightScale;\\nuniform vec4 highlightId;\\nuniform vec3 axes[2];\\nuniform mat4 model, view, projection;\\nuniform vec2 screenSize;\\nuniform vec3 clipBounds[2];\\nuniform float scale, pixelRatio;\\n\\nvarying vec4 interpColor;\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0,0,0,0);\\n } else {\\n float lscale = pixelRatio * scale;\\n if(distance(highlightId, id) < 0.0001) {\\n lscale *= highlightScale;\\n }\\n\\n vec4 clipCenter = projection * view * model * vec4(position, 1);\\n vec3 dataPosition = position + 0.5*lscale*(axes[0] * glyph.x + axes[1] * glyph.y) * clipCenter.w * screenSize.y;\\n vec4 clipPosition = projection * view * model * vec4(dataPosition, 1);\\n\\n gl_Position = clipPosition;\\n interpColor = color;\\n pickId = id;\\n dataCoordinate = dataPosition;\\n }\\n}\\n\"])\nvar drawFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 fragClipBounds[2];\\nuniform float opacity;\\n\\nvarying vec4 interpColor;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (\\n outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate) ||\\n interpColor.a * opacity == 0.\\n ) discard;\\n gl_FragColor = interpColor * opacity;\\n}\\n\"])\nvar pickFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 fragClipBounds[2];\\nuniform float pickGroup;\\n\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate)) discard;\\n\\n gl_FragColor = vec4(pickGroup, pickId.bgr);\\n}\"])\n\nvar ATTRIBUTES = [\n {name: 'position', type: 'vec3'},\n {name: 'color', type: 'vec4'},\n {name: 'glyph', type: 'vec2'},\n {name: 'id', type: 'vec4'}\n]\n\nvar perspective = {\n vertex: perspectiveVertSrc,\n fragment: drawFragSrc,\n attributes: ATTRIBUTES\n },\n ortho = {\n vertex: orthographicVertSrc,\n fragment: drawFragSrc,\n attributes: ATTRIBUTES\n },\n project = {\n vertex: projectionVertSrc,\n fragment: drawFragSrc,\n attributes: ATTRIBUTES\n },\n pickPerspective = {\n vertex: perspectiveVertSrc,\n fragment: pickFragSrc,\n attributes: ATTRIBUTES\n },\n pickOrtho = {\n vertex: orthographicVertSrc,\n fragment: pickFragSrc,\n attributes: ATTRIBUTES\n },\n pickProject = {\n vertex: projectionVertSrc,\n fragment: pickFragSrc,\n attributes: ATTRIBUTES\n }\n\nfunction createShader(gl, src) {\n var shader = createShaderWrapper(gl, src)\n var attr = shader.attributes\n attr.position.location = 0\n attr.color.location = 1\n attr.glyph.location = 2\n attr.id.location = 3\n return shader\n}\n\nexports.createPerspective = function(gl) {\n return createShader(gl, perspective)\n}\nexports.createOrtho = function(gl) {\n return createShader(gl, ortho)\n}\nexports.createProject = function(gl) {\n return createShader(gl, project)\n}\nexports.createPickPerspective = function(gl) {\n return createShader(gl, pickPerspective)\n}\nexports.createPickOrtho = function(gl) {\n return createShader(gl, pickOrtho)\n}\nexports.createPickProject = function(gl) {\n return createShader(gl, pickProject)\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar Axes = require('../../plots/cartesian/axes');\n\nvar binFunctions = require('../histogram/bin_functions');\nvar normFunctions = require('../histogram/norm_functions');\nvar doAvg = require('../histogram/average');\nvar getBinSpanLabelRound = require('../histogram/bin_label_vals');\nvar calcAllAutoBins = require('../histogram/calc').calcAllAutoBins;\n\nmodule.exports = function calc(gd, trace) {\n var xa = Axes.getFromId(gd, trace.xaxis);\n var ya = Axes.getFromId(gd, trace.yaxis);\n\n var xcalendar = trace.xcalendar;\n var ycalendar = trace.ycalendar;\n var xr2c = function(v) { return xa.r2c(v, 0, xcalendar); };\n var yr2c = function(v) { return ya.r2c(v, 0, ycalendar); };\n var xc2r = function(v) { return xa.c2r(v, 0, xcalendar); };\n var yc2r = function(v) { return ya.c2r(v, 0, ycalendar); };\n\n var i, j, n, m;\n\n // calculate the bins\n var xBinsAndPos = calcAllAutoBins(gd, trace, xa, 'x');\n var xBinSpec = xBinsAndPos[0];\n var xPos0 = xBinsAndPos[1];\n var yBinsAndPos = calcAllAutoBins(gd, trace, ya, 'y');\n var yBinSpec = yBinsAndPos[0];\n var yPos0 = yBinsAndPos[1];\n\n var serieslen = trace._length;\n if(xPos0.length > serieslen) xPos0.splice(serieslen, xPos0.length - serieslen);\n if(yPos0.length > serieslen) yPos0.splice(serieslen, yPos0.length - serieslen);\n\n // make the empty bin array & scale the map\n var z = [];\n var onecol = [];\n var zerocol = [];\n var nonuniformBinsX = typeof xBinSpec.size === 'string';\n var nonuniformBinsY = typeof yBinSpec.size === 'string';\n var xEdges = [];\n var yEdges = [];\n var xbins = nonuniformBinsX ? xEdges : xBinSpec;\n var ybins = nonuniformBinsY ? yEdges : yBinSpec;\n var total = 0;\n var counts = [];\n var inputPoints = [];\n var norm = trace.histnorm;\n var func = trace.histfunc;\n var densitynorm = norm.indexOf('density') !== -1;\n var extremefunc = func === 'max' || func === 'min';\n var sizeinit = extremefunc ? null : 0;\n var binfunc = binFunctions.count;\n var normfunc = normFunctions[norm];\n var doavg = false;\n var xinc = [];\n var yinc = [];\n\n // set a binning function other than count?\n // for binning functions: check first for 'z',\n // then 'mc' in case we had a colored scatter plot\n // and want to transfer these colors to the 2D histo\n // TODO: axe this, make it the responsibility of the app changing type? or an impliedEdit?\n var rawCounterData = ('z' in trace) ?\n trace.z :\n (('marker' in trace && Array.isArray(trace.marker.color)) ?\n trace.marker.color : '');\n if(rawCounterData && func !== 'count') {\n doavg = func === 'avg';\n binfunc = binFunctions[func];\n }\n\n // decrease end a little in case of rounding errors\n var xBinSize = xBinSpec.size;\n var xBinStart = xr2c(xBinSpec.start);\n var xBinEnd = xr2c(xBinSpec.end) +\n (xBinStart - Axes.tickIncrement(xBinStart, xBinSize, false, xcalendar)) / 1e6;\n\n for(i = xBinStart; i < xBinEnd; i = Axes.tickIncrement(i, xBinSize, false, xcalendar)) {\n onecol.push(sizeinit);\n xEdges.push(i);\n if(doavg) zerocol.push(0);\n }\n xEdges.push(i);\n\n var nx = onecol.length;\n var dx = (i - xBinStart) / nx;\n var x0 = xc2r(xBinStart + dx / 2);\n\n var yBinSize = yBinSpec.size;\n var yBinStart = yr2c(yBinSpec.start);\n var yBinEnd = yr2c(yBinSpec.end) +\n (yBinStart - Axes.tickIncrement(yBinStart, yBinSize, false, ycalendar)) / 1e6;\n\n for(i = yBinStart; i < yBinEnd; i = Axes.tickIncrement(i, yBinSize, false, ycalendar)) {\n z.push(onecol.slice());\n yEdges.push(i);\n var ipCol = new Array(nx);\n for(j = 0; j < nx; j++) ipCol[j] = [];\n inputPoints.push(ipCol);\n if(doavg) counts.push(zerocol.slice());\n }\n yEdges.push(i);\n\n var ny = z.length;\n var dy = (i - yBinStart) / ny;\n var y0 = yc2r(yBinStart + dy / 2);\n\n if(densitynorm) {\n xinc = makeIncrements(onecol.length, xbins, dx, nonuniformBinsX);\n yinc = makeIncrements(z.length, ybins, dy, nonuniformBinsY);\n }\n\n // for date axes we need bin bounds to be calcdata. For nonuniform bins\n // we already have this, but uniform with start/end/size they're still strings.\n if(!nonuniformBinsX && xa.type === 'date') xbins = binsToCalc(xr2c, xbins);\n if(!nonuniformBinsY && ya.type === 'date') ybins = binsToCalc(yr2c, ybins);\n\n // put data into bins\n var uniqueValsPerX = true;\n var uniqueValsPerY = true;\n var xVals = new Array(nx);\n var yVals = new Array(ny);\n var xGapLow = Infinity;\n var xGapHigh = Infinity;\n var yGapLow = Infinity;\n var yGapHigh = Infinity;\n for(i = 0; i < serieslen; i++) {\n var xi = xPos0[i];\n var yi = yPos0[i];\n n = Lib.findBin(xi, xbins);\n m = Lib.findBin(yi, ybins);\n if(n >= 0 && n < nx && m >= 0 && m < ny) {\n total += binfunc(n, i, z[m], rawCounterData, counts[m]);\n inputPoints[m][n].push(i);\n\n if(uniqueValsPerX) {\n if(xVals[n] === undefined) xVals[n] = xi;\n else if(xVals[n] !== xi) uniqueValsPerX = false;\n }\n if(uniqueValsPerY) {\n if(yVals[m] === undefined) yVals[m] = yi;\n else if(yVals[m] !== yi) uniqueValsPerY = false;\n }\n\n xGapLow = Math.min(xGapLow, xi - xEdges[n]);\n xGapHigh = Math.min(xGapHigh, xEdges[n + 1] - xi);\n yGapLow = Math.min(yGapLow, yi - yEdges[m]);\n yGapHigh = Math.min(yGapHigh, yEdges[m + 1] - yi);\n }\n }\n // normalize, if needed\n if(doavg) {\n for(m = 0; m < ny; m++) total += doAvg(z[m], counts[m]);\n }\n if(normfunc) {\n for(m = 0; m < ny; m++) normfunc(z[m], total, xinc, yinc[m]);\n }\n\n return {\n x: xPos0,\n xRanges: getRanges(xEdges, uniqueValsPerX && xVals, xGapLow, xGapHigh, xa, xcalendar),\n x0: x0,\n dx: dx,\n y: yPos0,\n yRanges: getRanges(yEdges, uniqueValsPerY && yVals, yGapLow, yGapHigh, ya, ycalendar),\n y0: y0,\n dy: dy,\n z: z,\n pts: inputPoints\n };\n};\n\nfunction makeIncrements(len, bins, dv, nonuniform) {\n var out = new Array(len);\n var i;\n if(nonuniform) {\n for(i = 0; i < len; i++) out[i] = 1 / (bins[i + 1] - bins[i]);\n } else {\n var inc = 1 / dv;\n for(i = 0; i < len; i++) out[i] = inc;\n }\n return out;\n}\n\nfunction binsToCalc(r2c, bins) {\n return {\n start: r2c(bins.start),\n end: r2c(bins.end),\n size: bins.size\n };\n}\n\nfunction getRanges(edges, uniqueVals, gapLow, gapHigh, ax, calendar) {\n var i;\n var len = edges.length - 1;\n var out = new Array(len);\n var roundFn = getBinSpanLabelRound(gapLow, gapHigh, edges, ax, calendar);\n\n for(i = 0; i < len; i++) {\n var v = (uniqueVals || [])[i];\n out[i] = v === undefined ?\n [roundFn(edges[i]), roundFn(edges[i + 1], true)] :\n [v, v];\n }\n return out;\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n // hover labels for multiple horizontal bars get tilted by this angle\n YANGLE: 60,\n\n // size and display constants for hover text\n\n // pixel size of hover arrows\n HOVERARROWSIZE: 6,\n // pixels padding around text\n HOVERTEXTPAD: 3,\n // hover font\n HOVERFONTSIZE: 13,\n HOVERFONT: 'Arial, sans-serif',\n\n // minimum time (msec) between hover calls\n HOVERMINTIME: 50,\n\n // ID suffix (with fullLayout._uid) for hover events in the throttle cache\n HOVERID: '-hover'\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Axes = require('../../plots/cartesian/axes');\nvar extendFlat = require('../../lib/extend').extendFlat;\n\nmodule.exports = function calcGridlines(trace, axisLetter, crossAxisLetter) {\n var i, j, j0;\n var eps, bounds, n1, n2, n, value, v;\n var j1, v0, v1, d;\n\n var data = trace['_' + axisLetter];\n var axis = trace[axisLetter + 'axis'];\n\n var gridlines = axis._gridlines = [];\n var minorgridlines = axis._minorgridlines = [];\n var boundarylines = axis._boundarylines = [];\n\n var crossData = trace['_' + crossAxisLetter];\n var crossAxis = trace[crossAxisLetter + 'axis'];\n\n if(axis.tickmode === 'array') {\n axis.tickvals = data.slice();\n }\n\n var xcp = trace._xctrl;\n var ycp = trace._yctrl;\n var nea = xcp[0].length;\n var neb = xcp.length;\n var na = trace._a.length;\n var nb = trace._b.length;\n\n Axes.prepTicks(axis);\n\n // don't leave tickvals in axis looking like an attribute\n if(axis.tickmode === 'array') delete axis.tickvals;\n\n // The default is an empty array that will cause the join to remove the gridline if\n // it's just disappeared:\n // axis._startline = axis._endline = [];\n\n // If the cross axis uses bicubic interpolation, then the grid\n // lines fall once every three expanded grid row/cols:\n var stride = axis.smoothing ? 3 : 1;\n\n function constructValueGridline(value) {\n var i, j, j0, tj, pxy, i0, ti, xy, dxydi0, dxydi1, dxydj0, dxydj1;\n var xpoints = [];\n var ypoints = [];\n var ret = {};\n // Search for the fractional grid index giving this line:\n if(axisLetter === 'b') {\n // For the position we use just the i-j coordinates:\n j = trace.b2j(value);\n\n // The derivatives for catmull-rom splines are discontinuous across cell\n // boundaries though, so we need to provide both the cell and the position\n // within the cell separately:\n j0 = Math.floor(Math.max(0, Math.min(nb - 2, j)));\n tj = j - j0;\n\n ret.length = nb;\n ret.crossLength = na;\n\n ret.xy = function(i) {\n return trace.evalxy([], i, j);\n };\n\n ret.dxy = function(i0, ti) {\n return trace.dxydi([], i0, j0, ti, tj);\n };\n\n for(i = 0; i < na; i++) {\n i0 = Math.min(na - 2, i);\n ti = i - i0;\n xy = trace.evalxy([], i, j);\n\n if(crossAxis.smoothing && i > 0) {\n // First control point:\n dxydi0 = trace.dxydi([], i - 1, j0, 0, tj);\n xpoints.push(pxy[0] + dxydi0[0] / 3);\n ypoints.push(pxy[1] + dxydi0[1] / 3);\n\n // Second control point:\n dxydi1 = trace.dxydi([], i - 1, j0, 1, tj);\n xpoints.push(xy[0] - dxydi1[0] / 3);\n ypoints.push(xy[1] - dxydi1[1] / 3);\n }\n\n xpoints.push(xy[0]);\n ypoints.push(xy[1]);\n\n pxy = xy;\n }\n } else {\n i = trace.a2i(value);\n i0 = Math.floor(Math.max(0, Math.min(na - 2, i)));\n ti = i - i0;\n\n ret.length = na;\n ret.crossLength = nb;\n\n ret.xy = function(j) {\n return trace.evalxy([], i, j);\n };\n\n ret.dxy = function(j0, tj) {\n return trace.dxydj([], i0, j0, ti, tj);\n };\n\n for(j = 0; j < nb; j++) {\n j0 = Math.min(nb - 2, j);\n tj = j - j0;\n xy = trace.evalxy([], i, j);\n\n if(crossAxis.smoothing && j > 0) {\n // First control point:\n dxydj0 = trace.dxydj([], i0, j - 1, ti, 0);\n xpoints.push(pxy[0] + dxydj0[0] / 3);\n ypoints.push(pxy[1] + dxydj0[1] / 3);\n\n // Second control point:\n dxydj1 = trace.dxydj([], i0, j - 1, ti, 1);\n xpoints.push(xy[0] - dxydj1[0] / 3);\n ypoints.push(xy[1] - dxydj1[1] / 3);\n }\n\n xpoints.push(xy[0]);\n ypoints.push(xy[1]);\n\n pxy = xy;\n }\n }\n\n ret.axisLetter = axisLetter;\n ret.axis = axis;\n ret.crossAxis = crossAxis;\n ret.value = value;\n ret.constvar = crossAxisLetter;\n ret.index = n;\n ret.x = xpoints;\n ret.y = ypoints;\n ret.smoothing = crossAxis.smoothing;\n\n return ret;\n }\n\n function constructArrayGridline(idx) {\n var j, i0, j0, ti, tj;\n var xpoints = [];\n var ypoints = [];\n var ret = {};\n ret.length = data.length;\n ret.crossLength = crossData.length;\n\n if(axisLetter === 'b') {\n j0 = Math.max(0, Math.min(nb - 2, idx));\n tj = Math.min(1, Math.max(0, idx - j0));\n\n ret.xy = function(i) {\n return trace.evalxy([], i, idx);\n };\n\n ret.dxy = function(i0, ti) {\n return trace.dxydi([], i0, j0, ti, tj);\n };\n\n // In the tickmode: array case, this operation is a simple\n // transfer of data:\n for(j = 0; j < nea; j++) {\n xpoints[j] = xcp[idx * stride][j];\n ypoints[j] = ycp[idx * stride][j];\n }\n } else {\n i0 = Math.max(0, Math.min(na - 2, idx));\n ti = Math.min(1, Math.max(0, idx - i0));\n\n ret.xy = function(j) {\n return trace.evalxy([], idx, j);\n };\n\n ret.dxy = function(j0, tj) {\n return trace.dxydj([], i0, j0, ti, tj);\n };\n\n // In the tickmode: array case, this operation is a simple\n // transfer of data:\n for(j = 0; j < neb; j++) {\n xpoints[j] = xcp[j][idx * stride];\n ypoints[j] = ycp[j][idx * stride];\n }\n }\n\n ret.axisLetter = axisLetter;\n ret.axis = axis;\n ret.crossAxis = crossAxis;\n ret.value = data[idx];\n ret.constvar = crossAxisLetter;\n ret.index = idx;\n ret.x = xpoints;\n ret.y = ypoints;\n ret.smoothing = crossAxis.smoothing;\n\n return ret;\n }\n\n if(axis.tickmode === 'array') {\n // var j0 = axis.startline ? 1 : 0;\n // var j1 = data.length - (axis.endline ? 1 : 0);\n\n eps = 5e-15;\n bounds = [\n Math.floor(((data.length - 1) - axis.arraytick0) / axis.arraydtick * (1 + eps)),\n Math.ceil((- axis.arraytick0) / axis.arraydtick / (1 + eps))\n ].sort(function(a, b) {return a - b;});\n\n // Unpack sorted values so we can be sure to avoid infinite loops if something\n // is backwards:\n n1 = bounds[0] - 1;\n n2 = bounds[1] + 1;\n\n // If the axes fall along array lines, then this is a much simpler process since\n // we already have all the control points we need\n for(n = n1; n < n2; n++) {\n j = axis.arraytick0 + axis.arraydtick * n;\n if(j < 0 || j > data.length - 1) continue;\n gridlines.push(extendFlat(constructArrayGridline(j), {\n color: axis.gridcolor,\n width: axis.gridwidth\n }));\n }\n\n for(n = n1; n < n2; n++) {\n j0 = axis.arraytick0 + axis.arraydtick * n;\n j1 = Math.min(j0 + axis.arraydtick, data.length - 1);\n\n // TODO: fix the bounds computation so we don't have to do a large range and then throw\n // out unneeded numbers\n if(j0 < 0 || j0 > data.length - 1) continue;\n if(j1 < 0 || j1 > data.length - 1) continue;\n\n v0 = data[j0];\n v1 = data[j1];\n\n for(i = 0; i < axis.minorgridcount; i++) {\n d = j1 - j0;\n\n // TODO: fix the bounds computation so we don't have to do a large range and then throw\n // out unneeded numbers\n if(d <= 0) continue;\n\n // XXX: This calculation isn't quite right. Off by one somewhere?\n v = v0 + (v1 - v0) * (i + 1) / (axis.minorgridcount + 1) * (axis.arraydtick / d);\n\n // TODO: fix the bounds computation so we don't have to do a large range and then throw\n // out unneeded numbers\n if(v < data[0] || v > data[data.length - 1]) continue;\n minorgridlines.push(extendFlat(constructValueGridline(v), {\n color: axis.minorgridcolor,\n width: axis.minorgridwidth\n }));\n }\n }\n\n if(axis.startline) {\n boundarylines.push(extendFlat(constructArrayGridline(0), {\n color: axis.startlinecolor,\n width: axis.startlinewidth\n }));\n }\n\n if(axis.endline) {\n boundarylines.push(extendFlat(constructArrayGridline(data.length - 1), {\n color: axis.endlinecolor,\n width: axis.endlinewidth\n }));\n }\n } else {\n // If the lines do not fall along the axes, then we have to interpolate\n // the contro points and so some math to figure out where the lines are\n // in the first place.\n\n // Compute the integer boudns of tick0 + n * dtick that fall within the range\n // (roughly speaking):\n // Give this a nice generous epsilon. We use at as * (1 + eps) in order to make\n // inequalities a little tolerant in a more or less correct manner:\n eps = 5e-15;\n bounds = [\n Math.floor((data[data.length - 1] - axis.tick0) / axis.dtick * (1 + eps)),\n Math.ceil((data[0] - axis.tick0) / axis.dtick / (1 + eps))\n ].sort(function(a, b) {return a - b;});\n\n // Unpack sorted values so we can be sure to avoid infinite loops if something\n // is backwards:\n n1 = bounds[0];\n n2 = bounds[1];\n\n for(n = n1; n <= n2; n++) {\n value = axis.tick0 + axis.dtick * n;\n\n gridlines.push(extendFlat(constructValueGridline(value), {\n color: axis.gridcolor,\n width: axis.gridwidth\n }));\n }\n\n for(n = n1 - 1; n < n2 + 1; n++) {\n value = axis.tick0 + axis.dtick * n;\n\n for(i = 0; i < axis.minorgridcount; i++) {\n v = value + axis.dtick * (i + 1) / (axis.minorgridcount + 1);\n if(v < data[0] || v > data[data.length - 1]) continue;\n minorgridlines.push(extendFlat(constructValueGridline(v), {\n color: axis.minorgridcolor,\n width: axis.minorgridwidth\n }));\n }\n }\n\n if(axis.startline) {\n boundarylines.push(extendFlat(constructValueGridline(data[0]), {\n color: axis.startlinecolor,\n width: axis.startlinewidth\n }));\n }\n\n if(axis.endline) {\n boundarylines.push(extendFlat(constructValueGridline(data[data.length - 1]), {\n color: axis.endlinecolor,\n width: axis.endlinewidth\n }));\n }\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Registry = require('../../registry');\nvar hover = require('./hover').hover;\n\nmodule.exports = function click(gd, evt, subplot) {\n var annotationsDone = Registry.getComponentMethod('annotations', 'onClick')(gd, gd._hoverdata);\n\n // fallback to fail-safe in case the plot type's hover method doesn't pass the subplot.\n // Ternary, for example, didn't, but it was caught because tested.\n if(subplot !== undefined) {\n // The true flag at the end causes it to re-run the hover computation to figure out *which*\n // point is being clicked. Without this, clicking is somewhat unreliable.\n hover(gd, evt, subplot, true);\n }\n\n function emitClick() { gd.emit('plotly_click', {points: gd._hoverdata, event: evt}); }\n\n if(gd._hoverdata && evt && evt.target) {\n if(annotationsDone && annotationsDone.then) {\n annotationsDone.then(emitClick);\n } else emitClick();\n\n // why do we get a double event without this???\n if(evt.stopImmediatePropagation) evt.stopImmediatePropagation();\n }\n};\n","\"use strict\"\n\nfunction compileSearch(funcName, predicate, reversed, extraArgs, useNdarray, earlyOut) {\n var code = [\n \"function \", funcName, \"(a,l,h,\", extraArgs.join(\",\"), \"){\",\nearlyOut ? \"\" : \"var i=\", (reversed ? \"l-1\" : \"h+1\"),\n\";while(l<=h){\\\nvar m=(l+h)>>>1,x=a\", useNdarray ? \".get(m)\" : \"[m]\"]\n if(earlyOut) {\n if(predicate.indexOf(\"c\") < 0) {\n code.push(\";if(x===y){return m}else if(x<=y){\")\n } else {\n code.push(\";var p=c(x,y);if(p===0){return m}else if(p<=0){\")\n }\n } else {\n code.push(\";if(\", predicate, \"){i=m;\")\n }\n if(reversed) {\n code.push(\"l=m+1}else{h=m-1}\")\n } else {\n code.push(\"h=m-1}else{l=m+1}\")\n }\n code.push(\"}\")\n if(earlyOut) {\n code.push(\"return -1};\")\n } else {\n code.push(\"return i};\")\n }\n return code.join(\"\")\n}\n\nfunction compileBoundsSearch(predicate, reversed, suffix, earlyOut) {\n var result = new Function([\n compileSearch(\"A\", \"x\" + predicate + \"y\", reversed, [\"y\"], false, earlyOut),\n compileSearch(\"B\", \"x\" + predicate + \"y\", reversed, [\"y\"], true, earlyOut),\n compileSearch(\"P\", \"c(x,y)\" + predicate + \"0\", reversed, [\"y\", \"c\"], false, earlyOut),\n compileSearch(\"Q\", \"c(x,y)\" + predicate + \"0\", reversed, [\"y\", \"c\"], true, earlyOut),\n\"function dispatchBsearch\", suffix, \"(a,y,c,l,h){\\\nif(a.shape){\\\nif(typeof(c)==='function'){\\\nreturn Q(a,(l===undefined)?0:l|0,(h===undefined)?a.shape[0]-1:h|0,y,c)\\\n}else{\\\nreturn B(a,(c===undefined)?0:c|0,(l===undefined)?a.shape[0]-1:l|0,y)\\\n}}else{\\\nif(typeof(c)==='function'){\\\nreturn P(a,(l===undefined)?0:l|0,(h===undefined)?a.length-1:h|0,y,c)\\\n}else{\\\nreturn A(a,(c===undefined)?0:c|0,(l===undefined)?a.length-1:l|0,y)\\\n}}}\\\nreturn dispatchBsearch\", suffix].join(\"\"))\n return result()\n}\n\nmodule.exports = {\n ge: compileBoundsSearch(\">=\", false, \"GE\"),\n gt: compileBoundsSearch(\">\", false, \"GT\"),\n lt: compileBoundsSearch(\"<\", true, \"LT\"),\n le: compileBoundsSearch(\"<=\", true, \"LE\"),\n eq: compileBoundsSearch(\"-\", true, \"EQ\", true)\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Axes = require('../../plots/cartesian/axes');\nvar mergeArray = require('../../lib').mergeArray;\nvar calcSelection = require('../scatter/calc_selection');\nvar BADNUM = require('../../constants/numerical').BADNUM;\n\nfunction isAbsolute(a) {\n return (a === 'a' || a === 'absolute');\n}\n\nfunction isTotal(a) {\n return (a === 't' || a === 'total');\n}\n\nmodule.exports = function calc(gd, trace) {\n var xa = Axes.getFromId(gd, trace.xaxis || 'x');\n var ya = Axes.getFromId(gd, trace.yaxis || 'y');\n var size, pos;\n\n if(trace.orientation === 'h') {\n size = xa.makeCalcdata(trace, 'x');\n pos = ya.makeCalcdata(trace, 'y');\n } else {\n size = ya.makeCalcdata(trace, 'y');\n pos = xa.makeCalcdata(trace, 'x');\n }\n\n // create the \"calculated data\" to plot\n var serieslen = Math.min(pos.length, size.length);\n var cd = new Array(serieslen);\n\n // set position and size (as well as for waterfall total size)\n var previousSum = 0;\n var newSize;\n // trace-wide flags\n var hasTotals = false;\n\n for(var i = 0; i < serieslen; i++) {\n var amount = size[i] || 0;\n\n var connectToNext = false;\n if(size[i] !== BADNUM || isTotal(trace.measure[i]) || isAbsolute(trace.measure[i])) {\n if(i + 1 < serieslen && (size[i + 1] !== BADNUM || isTotal(trace.measure[i + 1]) || isAbsolute(trace.measure[i + 1]))) {\n connectToNext = true;\n }\n }\n\n var cdi = cd[i] = {\n i: i,\n p: pos[i],\n s: amount,\n rawS: amount,\n cNext: connectToNext\n };\n\n if(isAbsolute(trace.measure[i])) {\n previousSum = cdi.s;\n\n cdi.isSum = true;\n cdi.dir = 'totals';\n cdi.s = previousSum;\n } else if(isTotal(trace.measure[i])) {\n cdi.isSum = true;\n cdi.dir = 'totals';\n cdi.s = previousSum;\n } else {\n // default: relative\n cdi.isSum = false;\n cdi.dir = cdi.rawS < 0 ? 'decreasing' : 'increasing';\n newSize = cdi.s;\n cdi.s = previousSum + newSize;\n previousSum += newSize;\n }\n\n if(cdi.dir === 'totals') {\n hasTotals = true;\n }\n\n if(trace.ids) {\n cdi.id = String(trace.ids[i]);\n }\n\n cdi.v = (trace.base || 0) + previousSum;\n }\n\n if(cd.length) cd[0].hasTotals = hasTotals;\n\n mergeArray(trace.text, cd, 'tx');\n mergeArray(trace.hovertext, cd, 'htx');\n calcSelection(cd, trace);\n\n return cd;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar d3 = require('d3');\n\nvar Drawing = require('../../components/drawing');\nvar Color = require('../../components/color');\nvar DESELECTDIM = require('../../constants/interactions').DESELECTDIM;\nvar barStyle = require('../bar/style');\nvar resizeText = require('../bar/uniform_text').resizeText;\nvar styleTextPoints = barStyle.styleTextPoints;\n\nfunction style(gd, cd, sel) {\n var s = sel ? sel : d3.select(gd).selectAll('g.funnellayer').selectAll('g.trace');\n resizeText(gd, s, 'funnel');\n\n s.style('opacity', function(d) { return d[0].trace.opacity; });\n\n s.each(function(d) {\n var gTrace = d3.select(this);\n var trace = d[0].trace;\n\n gTrace.selectAll('.point > path').each(function(di) {\n if(!di.isBlank) {\n var cont = trace.marker;\n\n d3.select(this)\n .call(Color.fill, di.mc || cont.color)\n .call(Color.stroke, di.mlc || cont.line.color)\n .call(Drawing.dashLine, cont.line.dash, di.mlw || cont.line.width)\n .style('opacity', trace.selectedpoints && !di.selected ? DESELECTDIM : 1);\n }\n });\n\n styleTextPoints(gTrace, trace, gd);\n\n gTrace.selectAll('.regions').each(function() {\n d3.select(this).selectAll('path').style('stroke-width', 0).call(Color.fill, trace.connector.fillcolor);\n });\n\n gTrace.selectAll('.lines').each(function() {\n var cont = trace.connector.line;\n\n Drawing.lineGroupStyle(\n d3.select(this).selectAll('path'),\n cont.width,\n cont.color,\n cont.dash\n );\n });\n });\n}\n\nmodule.exports = {\n style: style\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar subTypes = require('../scatter/subtypes');\nvar helpers = require('./helpers');\n\nmodule.exports = function select(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var trace = cd[0].trace;\n var stash = cd[0].t;\n var scene = searchInfo.scene;\n var cdata = scene.matrixOptions.cdata;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n\n if(!scene) return selection;\n\n var hasOnlyLines = (!subTypes.hasMarkers(trace) && !subTypes.hasText(trace));\n if(trace.visible !== true || hasOnlyLines) return selection;\n\n var xi = helpers.getDimIndex(trace, xa);\n var yi = helpers.getDimIndex(trace, ya);\n if(xi === false || yi === false) return selection;\n\n var xpx = stash.xpx[xi];\n var ypx = stash.ypx[yi];\n var x = cdata[xi];\n var y = cdata[yi];\n var els = [];\n var unels = [];\n\n // degenerate polygon does not enable selection\n // filter out points by visible scatter ones\n if(selectionTester !== false && !selectionTester.degenerate) {\n for(var i = 0; i < x.length; i++) {\n if(selectionTester.contains([xpx[i], ypx[i]], null, i, searchInfo)) {\n els.push(i);\n selection.push({\n pointNumber: i,\n x: x[i],\n y: y[i]\n });\n } else {\n unels.push(i);\n }\n }\n }\n\n var matrixOpts = scene.matrixOptions;\n\n if(!els.length && !unels.length) {\n scene.matrix.update(matrixOpts, null);\n } else if(!scene.selectBatch.length && !scene.unselectBatch.length) {\n scene.matrix.update(\n scene.unselectedOptions,\n Lib.extendFlat({}, matrixOpts, scene.selectedOptions, scene.viewOpts)\n );\n }\n\n scene.selectBatch = els;\n scene.unselectBatch = unels;\n\n return selection;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Registry = require('../../registry');\nvar Lib = require('../../lib');\n\nmodule.exports = function handleSampleDefaults(traceIn, traceOut, coerce, layout) {\n var x = coerce('x');\n var y = coerce('y');\n var xlen = Lib.minRowLength(x);\n var ylen = Lib.minRowLength(y);\n\n // we could try to accept x0 and dx, etc...\n // but that's a pretty weird use case.\n // for now require both x and y explicitly specified.\n if(!xlen || !ylen) {\n traceOut.visible = false;\n return;\n }\n\n traceOut._length = Math.min(xlen, ylen);\n\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');\n handleCalendarDefaults(traceIn, traceOut, ['x', 'y'], layout);\n\n // if marker.color is an array, we can use it in aggregation instead of z\n var hasAggregationData = coerce('z') || coerce('marker.color');\n\n if(hasAggregationData) coerce('histfunc');\n coerce('histnorm');\n\n // Note: bin defaults are now handled in Histogram2D.crossTraceDefaults\n // autobin(x|y) are only included here to appease Plotly.validate\n coerce('autobinx');\n coerce('autobiny');\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar extendFlat = require('../lib/extend').extendFlat;\n\n/**\n * Make a xy domain attribute group\n *\n * @param {object} opts\n * @param {string}\n * opts.name: name to be inserted in the default description\n * @param {boolean}\n * opts.trace: set to true for trace containers\n * @param {string}\n * opts.editType: editType for all pieces\n * @param {boolean}\n * opts.noGridCell: set to true to omit `row` and `column`\n *\n * @param {object} extra\n * @param {string}\n * extra.description: extra description. N.B we use\n * a separate extra container to make it compatible with\n * the compress_attributes transform.\n *\n * @return {object} attributes object containing {x,y} as specified\n */\nexports.attributes = function(opts, extra) {\n opts = opts || {};\n extra = extra || {};\n\n var base = {\n valType: 'info_array',\n \n editType: opts.editType,\n items: [\n {valType: 'number', min: 0, max: 1, editType: opts.editType},\n {valType: 'number', min: 0, max: 1, editType: opts.editType}\n ],\n dflt: [0, 1]\n };\n\n var namePart = opts.name ? opts.name + ' ' : '';\n var contPart = opts.trace ? 'trace ' : 'subplot ';\n var descPart = extra.description ? ' ' + extra.description : '';\n\n var out = {\n x: extendFlat({}, base, {\n \n }),\n y: extendFlat({}, base, {\n \n }),\n editType: opts.editType\n };\n\n if(!opts.noGridCell) {\n out.row = {\n valType: 'integer',\n min: 0,\n dflt: 0,\n \n editType: opts.editType,\n \n };\n out.column = {\n valType: 'integer',\n min: 0,\n dflt: 0,\n \n editType: opts.editType,\n \n };\n }\n\n return out;\n};\n\nexports.defaults = function(containerOut, layout, coerce, dfltDomains) {\n var dfltX = (dfltDomains && dfltDomains.x) || [0, 1];\n var dfltY = (dfltDomains && dfltDomains.y) || [0, 1];\n\n var grid = layout.grid;\n if(grid) {\n var column = coerce('domain.column');\n if(column !== undefined) {\n if(column < grid.columns) dfltX = grid._domains.x[column];\n else delete containerOut.domain.column;\n }\n\n var row = coerce('domain.row');\n if(row !== undefined) {\n if(row < grid.rows) dfltY = grid._domains.y[row];\n else delete containerOut.domain.row;\n }\n }\n\n var x = coerce('domain.x', dfltX);\n var y = coerce('domain.y', dfltY);\n\n // don't accept bad input data\n if(!(x[0] < x[1])) containerOut.domain.x = dfltX.slice();\n if(!(y[0] < y[1])) containerOut.domain.y = dfltY.slice();\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\n/**\n * Clear gl frame (if any). This is a common pattern as\n * we usually set `preserveDrawingBuffer: true` during\n * gl context creation (e.g. via `reglUtils.prepare`).\n *\n * @param {DOM node or object} gd : graph div object\n */\nmodule.exports = function clearGlCanvases(gd) {\n var fullLayout = gd._fullLayout;\n\n if(fullLayout._glcanvas && fullLayout._glcanvas.size()) {\n fullLayout._glcanvas.each(function(d) {\n if(d.regl) d.regl.clear({color: true, depth: true});\n });\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar isNumeric = require('fast-isnumeric');\nvar BADNUM = require('../../constants/numerical').BADNUM;\n\nvar calcMarkerColorscale = require('../scatter/colorscale_calc');\nvar arraysToCalcdata = require('../scatter/arrays_to_calcdata');\nvar calcSelection = require('../scatter/calc_selection');\n\nvar _ = require('../../lib')._;\n\nfunction isNonBlankString(v) {\n return v && typeof v === 'string';\n}\n\nmodule.exports = function calc(gd, trace) {\n var hasLocationData = Array.isArray(trace.locations);\n var len = hasLocationData ? trace.locations.length : trace._length;\n var calcTrace = new Array(len);\n\n var isValidLoc;\n if(trace.geojson) {\n isValidLoc = function(v) { return isNonBlankString(v) || isNumeric(v); };\n } else {\n isValidLoc = isNonBlankString;\n }\n\n for(var i = 0; i < len; i++) {\n var calcPt = calcTrace[i] = {};\n\n if(hasLocationData) {\n var loc = trace.locations[i];\n calcPt.loc = isValidLoc(loc) ? loc : null;\n } else {\n var lon = trace.lon[i];\n var lat = trace.lat[i];\n\n if(isNumeric(lon) && isNumeric(lat)) calcPt.lonlat = [+lon, +lat];\n else calcPt.lonlat = [BADNUM, BADNUM];\n }\n }\n\n arraysToCalcdata(calcTrace, trace);\n calcMarkerColorscale(gd, trace);\n calcSelection(calcTrace, trace);\n\n if(len) {\n calcTrace[0].t = {\n labels: {\n lat: _(gd, 'lat:') + ' ',\n lon: _(gd, 'lon:') + ' '\n }\n };\n }\n\n return calcTrace;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar scatterPlot = require('../scatter/plot');\nvar BADNUM = require('../../constants/numerical').BADNUM;\n\nmodule.exports = function plot(gd, subplot, moduleCalcData) {\n var mlayer = subplot.layers.frontplot.select('g.scatterlayer');\n\n var plotinfo = {\n xaxis: subplot.xaxis,\n yaxis: subplot.yaxis,\n plot: subplot.framework,\n layerClipId: subplot._hasClipOnAxisFalse ? subplot.clipIds.forTraces : null\n };\n\n var radialAxis = subplot.radialAxis;\n var angularAxis = subplot.angularAxis;\n\n // convert:\n // 'c' (r,theta) -> 'geometric' (r,theta) -> (x,y)\n for(var i = 0; i < moduleCalcData.length; i++) {\n var cdi = moduleCalcData[i];\n\n for(var j = 0; j < cdi.length; j++) {\n var cd = cdi[j];\n var r = cd.r;\n\n if(r === BADNUM) {\n cd.x = cd.y = BADNUM;\n } else {\n var rg = radialAxis.c2g(r);\n var thetag = angularAxis.c2g(cd.theta);\n cd.x = rg * Math.cos(thetag);\n cd.y = rg * Math.sin(thetag);\n }\n }\n }\n\n scatterPlot(gd, plotinfo, moduleCalcData, mlayer);\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar d3 = require('d3');\nvar Lib = require('../../lib');\nvar Drawing = require('../../components/drawing');\n\nvar boxPlot = require('../box/plot');\nvar linePoints = require('../scatter/line_points');\nvar helpers = require('./helpers');\n\nmodule.exports = function plot(gd, plotinfo, cdViolins, violinLayer) {\n var fullLayout = gd._fullLayout;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n function makePath(pts) {\n var segments = linePoints(pts, {\n xaxis: xa,\n yaxis: ya,\n connectGaps: true,\n baseTolerance: 0.75,\n shape: 'spline',\n simplify: true,\n linearized: true\n });\n return Drawing.smoothopen(segments[0], 1);\n }\n\n Lib.makeTraceGroups(violinLayer, cdViolins, 'trace violins').each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var t = cd0.t;\n var trace = cd0.trace;\n\n if(trace.visible !== true || t.empty) {\n plotGroup.remove();\n return;\n }\n\n var bPos = t.bPos;\n var bdPos = t.bdPos;\n var valAxis = plotinfo[t.valLetter + 'axis'];\n var posAxis = plotinfo[t.posLetter + 'axis'];\n var hasBothSides = trace.side === 'both';\n var hasPositiveSide = hasBothSides || trace.side === 'positive';\n var hasNegativeSide = hasBothSides || trace.side === 'negative';\n\n var violins = plotGroup.selectAll('path.violin').data(Lib.identity);\n\n violins.enter().append('path')\n .style('vector-effect', 'non-scaling-stroke')\n .attr('class', 'violin');\n\n violins.exit().remove();\n\n violins.each(function(d) {\n var pathSel = d3.select(this);\n var density = d.density;\n var len = density.length;\n var posCenter = posAxis.c2l(d.pos + bPos, true);\n var posCenterPx = posAxis.l2p(posCenter);\n\n var scale;\n if(trace.width) {\n scale = t.maxKDE / bdPos;\n } else {\n var groupStats = fullLayout._violinScaleGroupStats[trace.scalegroup];\n scale = trace.scalemode === 'count' ?\n (groupStats.maxKDE / bdPos) * (groupStats.maxCount / d.pts.length) :\n groupStats.maxKDE / bdPos;\n }\n\n var pathPos, pathNeg, path;\n var i, k, pts, pt;\n\n if(hasPositiveSide) {\n pts = new Array(len);\n for(i = 0; i < len; i++) {\n pt = pts[i] = {};\n pt[t.posLetter] = posCenter + (density[i].v / scale);\n pt[t.valLetter] = valAxis.c2l(density[i].t, true);\n }\n pathPos = makePath(pts);\n }\n\n if(hasNegativeSide) {\n pts = new Array(len);\n for(k = 0, i = len - 1; k < len; k++, i--) {\n pt = pts[k] = {};\n pt[t.posLetter] = posCenter - (density[i].v / scale);\n pt[t.valLetter] = valAxis.c2l(density[i].t, true);\n }\n pathNeg = makePath(pts);\n }\n\n if(hasBothSides) {\n path = pathPos + 'L' + pathNeg.substr(1) + 'Z';\n } else {\n var startPt = [posCenterPx, valAxis.c2p(density[0].t)];\n var endPt = [posCenterPx, valAxis.c2p(density[len - 1].t)];\n\n if(trace.orientation === 'h') {\n startPt.reverse();\n endPt.reverse();\n }\n\n if(hasPositiveSide) {\n path = 'M' + startPt + 'L' + pathPos.substr(1) + 'L' + endPt;\n } else {\n path = 'M' + endPt + 'L' + pathNeg.substr(1) + 'L' + startPt;\n }\n }\n pathSel.attr('d', path);\n\n // save a few things used in getPositionOnKdePath, getKdeValue\n // on hover and for meanline draw block below\n d.posCenterPx = posCenterPx;\n d.posDensityScale = scale * bdPos;\n d.path = pathSel.node();\n d.pathLength = d.path.getTotalLength() / (hasBothSides ? 2 : 1);\n });\n\n var boxAttrs = trace.box;\n var boxWidth = boxAttrs.width;\n var boxLineWidth = (boxAttrs.line || {}).width;\n var bdPosScaled;\n var bPosPxOffset;\n\n if(hasBothSides) {\n bdPosScaled = bdPos * boxWidth;\n bPosPxOffset = 0;\n } else if(hasPositiveSide) {\n bdPosScaled = [0, bdPos * boxWidth / 2];\n bPosPxOffset = boxLineWidth * {x: 1, y: -1}[t.posLetter];\n } else {\n bdPosScaled = [bdPos * boxWidth / 2, 0];\n bPosPxOffset = boxLineWidth * {x: -1, y: 1}[t.posLetter];\n }\n\n // inner box\n boxPlot.plotBoxAndWhiskers(plotGroup, {pos: posAxis, val: valAxis}, trace, {\n bPos: bPos,\n bdPos: bdPosScaled,\n bPosPxOffset: bPosPxOffset\n });\n\n // meanline insider box\n boxPlot.plotBoxMean(plotGroup, {pos: posAxis, val: valAxis}, trace, {\n bPos: bPos,\n bdPos: bdPosScaled,\n bPosPxOffset: bPosPxOffset\n });\n\n var fn;\n if(!trace.box.visible && trace.meanline.visible) {\n fn = Lib.identity;\n }\n\n // N.B. use different class name than boxPlot.plotBoxMean,\n // to avoid selectAll conflict\n var meanPaths = plotGroup.selectAll('path.meanline').data(fn || []);\n meanPaths.enter().append('path')\n .attr('class', 'meanline')\n .style('fill', 'none')\n .style('vector-effect', 'non-scaling-stroke');\n meanPaths.exit().remove();\n meanPaths.each(function(d) {\n var v = valAxis.c2p(d.mean, true);\n var p = helpers.getPositionOnKdePath(d, trace, v);\n\n d3.select(this).attr('d',\n trace.orientation === 'h' ?\n 'M' + v + ',' + p[0] + 'V' + p[1] :\n 'M' + p[0] + ',' + v + 'H' + p[1]\n );\n });\n\n boxPlot.plotPoints(plotGroup, {x: xa, y: ya}, trace, t);\n });\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar Registry = require('../../registry');\n\nmodule.exports = function calc(gd) {\n var calcdata = gd.calcdata;\n var fullLayout = gd._fullLayout;\n\n function makeCoerceHoverInfo(trace) {\n return function(val) {\n return Lib.coerceHoverinfo({hoverinfo: val}, {_module: trace._module}, fullLayout);\n };\n }\n\n for(var i = 0; i < calcdata.length; i++) {\n var cd = calcdata[i];\n var trace = cd[0].trace;\n\n // don't include hover calc fields for pie traces\n // as calcdata items might be sorted by value and\n // won't match the data array order.\n if(Registry.traceIs(trace, 'pie-like')) continue;\n\n var fillFn = Registry.traceIs(trace, '2dMap') ? paste : Lib.fillArray;\n\n fillFn(trace.hoverinfo, cd, 'hi', makeCoerceHoverInfo(trace));\n\n if(trace.hovertemplate) fillFn(trace.hovertemplate, cd, 'ht');\n\n if(!trace.hoverlabel) continue;\n\n fillFn(trace.hoverlabel.bgcolor, cd, 'hbg');\n fillFn(trace.hoverlabel.bordercolor, cd, 'hbc');\n fillFn(trace.hoverlabel.font.size, cd, 'hts');\n fillFn(trace.hoverlabel.font.color, cd, 'htc');\n fillFn(trace.hoverlabel.font.family, cd, 'htf');\n fillFn(trace.hoverlabel.namelength, cd, 'hnl');\n fillFn(trace.hoverlabel.align, cd, 'hta');\n }\n};\n\nfunction paste(traceAttr, cd, cdAttr, fn) {\n fn = fn || Lib.identity;\n\n if(Array.isArray(traceAttr)) {\n cd[0][cdAttr] = fn(traceAttr);\n }\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\n/**\n * Creates a set of padding attributes.\n *\n * @param {object} opts\n * @param {string} editType:\n * the editType for all pieces of this padding definition\n *\n * @return {object} attributes object containing {t, r, b, l} as specified\n */\nmodule.exports = function(opts) {\n var editType = opts.editType;\n return {\n t: {\n valType: 'number',\n dflt: 0,\n \n editType: editType,\n \n },\n r: {\n valType: 'number',\n dflt: 0,\n \n editType: editType,\n \n },\n b: {\n valType: 'number',\n dflt: 0,\n \n editType: editType,\n \n },\n l: {\n valType: 'number',\n dflt: 0,\n \n editType: editType,\n \n },\n editType: editType\n };\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\n\nvar colorscaleDefaults = require('../../components/colorscale/defaults');\nvar attributes = require('./attributes');\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var u = coerce('u');\n var v = coerce('v');\n var w = coerce('w');\n\n var x = coerce('x');\n var y = coerce('y');\n var z = coerce('z');\n\n if(\n !u || !u.length || !v || !v.length || !w || !w.length ||\n !x || !x.length || !y || !y.length || !z || !z.length\n ) {\n traceOut.visible = false;\n return;\n }\n\n coerce('starts.x');\n coerce('starts.y');\n coerce('starts.z');\n\n coerce('maxdisplayed');\n coerce('sizeref');\n\n coerce('lighting.ambient');\n coerce('lighting.diffuse');\n coerce('lighting.specular');\n coerce('lighting.roughness');\n coerce('lighting.fresnel');\n coerce('lightposition.x');\n coerce('lightposition.y');\n coerce('lightposition.z');\n\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'c'});\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n\n // disable 1D transforms (for now)\n // x/y/z and u/v/w have matching lengths,\n // but they don't have to match with starts.(x|y|z)\n traceOut._length = null;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar fontAttrs = require('../../plots/font_attributes');\nvar baseAttrs = require('../../plots/attributes');\nvar colorAttrs = require('../../components/color/attributes');\nvar fxAttrs = require('../../components/fx/attributes');\nvar domainAttrs = require('../../plots/domain').attributes;\nvar hovertemplateAttrs = require('../../plots/template_attributes').hovertemplateAttrs;\nvar colorAttributes = require('../../components/colorscale/attributes');\nvar templatedArray = require('../../plot_api/plot_template').templatedArray;\n\nvar extendFlat = require('../../lib/extend').extendFlat;\nvar overrideAll = require('../../plot_api/edit_types').overrideAll;\n\nvar FORMAT_LINK = require('../../constants/docs').FORMAT_LINK;\n\nvar attrs = module.exports = overrideAll({\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [],\n arrayOk: false,\n \n }),\n hoverlabel: fxAttrs.hoverlabel,\n domain: domainAttrs({name: 'sankey', trace: true}),\n\n orientation: {\n valType: 'enumerated',\n values: ['v', 'h'],\n dflt: 'h',\n \n \n },\n\n valueformat: {\n valType: 'string',\n dflt: '.3s',\n \n \n },\n\n valuesuffix: {\n valType: 'string',\n dflt: '',\n \n \n },\n\n arrangement: {\n valType: 'enumerated',\n values: ['snap', 'perpendicular', 'freeform', 'fixed'],\n dflt: 'snap',\n \n \n },\n\n textfont: fontAttrs({\n \n }),\n\n node: {\n label: {\n valType: 'data_array',\n dflt: [],\n \n \n },\n groups: {\n valType: 'info_array',\n impliedEdits: {'x': [], 'y': []},\n dimensions: 2,\n freeLength: true,\n dflt: [],\n items: {valType: 'number', editType: 'calc'},\n \n \n },\n x: {\n valType: 'data_array',\n dflt: [],\n \n \n },\n y: {\n valType: 'data_array',\n dflt: [],\n \n \n },\n color: {\n valType: 'color',\n \n arrayOk: true,\n \n },\n line: {\n color: {\n valType: 'color',\n \n dflt: colorAttrs.defaultLine,\n arrayOk: true,\n \n },\n width: {\n valType: 'number',\n \n min: 0,\n dflt: 0.5,\n arrayOk: true,\n \n }\n },\n pad: {\n valType: 'number',\n arrayOk: false,\n min: 0,\n dflt: 20,\n \n \n },\n thickness: {\n valType: 'number',\n arrayOk: false,\n min: 1,\n dflt: 20,\n \n \n },\n hoverinfo: {\n valType: 'enumerated',\n values: ['all', 'none', 'skip'],\n dflt: 'all',\n \n \n },\n hoverlabel: fxAttrs.hoverlabel, // needs editType override,\n hovertemplate: hovertemplateAttrs({}, {\n \n keys: ['value', 'label']\n }),\n \n },\n\n link: {\n label: {\n valType: 'data_array',\n dflt: [],\n \n \n },\n color: {\n valType: 'color',\n \n arrayOk: true,\n \n },\n line: {\n color: {\n valType: 'color',\n \n dflt: colorAttrs.defaultLine,\n arrayOk: true,\n \n },\n width: {\n valType: 'number',\n \n min: 0,\n dflt: 0,\n arrayOk: true,\n \n }\n },\n source: {\n valType: 'data_array',\n \n dflt: [],\n \n },\n target: {\n valType: 'data_array',\n \n dflt: [],\n \n },\n value: {\n valType: 'data_array',\n dflt: [],\n \n \n },\n hoverinfo: {\n valType: 'enumerated',\n values: ['all', 'none', 'skip'],\n dflt: 'all',\n \n \n },\n hoverlabel: fxAttrs.hoverlabel, // needs editType override,\n hovertemplate: hovertemplateAttrs({}, {\n \n keys: ['value', 'label']\n }),\n colorscales: templatedArray('concentrationscales', {\n editType: 'calc',\n label: {\n valType: 'string',\n \n editType: 'calc',\n \n dflt: ''\n },\n cmax: {\n valType: 'number',\n \n editType: 'calc',\n dflt: 1,\n \n },\n cmin: {\n valType: 'number',\n \n editType: 'calc',\n dflt: 0,\n \n },\n colorscale: extendFlat(colorAttributes().colorscale, {dflt: [[0, 'white'], [1, 'black']]})\n }),\n \n \n }\n}, 'calc', 'nested');\nattrs.transforms = undefined;\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/table');\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = require('../src/traces/image');\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar Color = require('../../components/color');\nvar Template = require('../../plot_api/plot_template');\nvar basePlotLayoutAttributes = require('../layout_attributes');\n\nvar layoutAttributes = require('./layout_attributes');\nvar handleTypeDefaults = require('./type_defaults');\nvar handleAxisDefaults = require('./axis_defaults');\nvar handleConstraintDefaults = require('./constraints').handleConstraintDefaults;\nvar handlePositionDefaults = require('./position_defaults');\n\nvar axisIds = require('./axis_ids');\nvar id2name = axisIds.id2name;\nvar name2id = axisIds.name2id;\n\nvar Registry = require('../../registry');\nvar traceIs = Registry.traceIs;\nvar getComponentMethod = Registry.getComponentMethod;\n\nfunction appendList(cont, k, item) {\n if(Array.isArray(cont[k])) cont[k].push(item);\n else cont[k] = [item];\n}\n\nmodule.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n var ax2traces = {};\n var xaMayHide = {};\n var yaMayHide = {};\n var xaMustDisplay = {};\n var yaMustDisplay = {};\n var yaMustNotReverse = {};\n var yaMayReverse = {};\n var axHasImage = {};\n var outerTicks = {};\n var noGrids = {};\n var i, j;\n\n // look for axes in the data\n for(i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if(!traceIs(trace, 'cartesian') && !traceIs(trace, 'gl2d')) continue;\n\n var xaName;\n if(trace.xaxis) {\n xaName = id2name(trace.xaxis);\n appendList(ax2traces, xaName, trace);\n } else if(trace.xaxes) {\n for(j = 0; j < trace.xaxes.length; j++) {\n appendList(ax2traces, id2name(trace.xaxes[j]), trace);\n }\n }\n\n var yaName;\n if(trace.yaxis) {\n yaName = id2name(trace.yaxis);\n appendList(ax2traces, yaName, trace);\n } else if(trace.yaxes) {\n for(j = 0; j < trace.yaxes.length; j++) {\n appendList(ax2traces, id2name(trace.yaxes[j]), trace);\n }\n }\n\n // logic for funnels\n if(trace.type === 'funnel') {\n if(trace.orientation === 'h') {\n if(xaName) xaMayHide[xaName] = true;\n if(yaName) yaMayReverse[yaName] = true;\n } else {\n if(yaName) yaMayHide[yaName] = true;\n }\n } else if(trace.type === 'image') {\n if(yaName) axHasImage[yaName] = true;\n if(xaName) axHasImage[xaName] = true;\n } else {\n if(yaName) {\n yaMustDisplay[yaName] = true;\n yaMustNotReverse[yaName] = true;\n }\n\n if(!traceIs(trace, 'carpet') || (trace.type === 'carpet' && !trace._cheater)) {\n if(xaName) xaMustDisplay[xaName] = true;\n }\n }\n\n // Two things trigger axis visibility:\n // 1. is not carpet\n // 2. carpet that's not cheater\n\n // The above check for definitely-not-cheater is not adequate. This\n // second list tracks which axes *could* be a cheater so that the\n // full condition triggering hiding is:\n // *could* be a cheater and *is not definitely visible*\n if(trace.type === 'carpet' && trace._cheater) {\n if(xaName) xaMayHide[xaName] = true;\n }\n\n // check for default formatting tweaks\n if(traceIs(trace, '2dMap')) {\n outerTicks[xaName] = true;\n outerTicks[yaName] = true;\n }\n\n if(traceIs(trace, 'oriented')) {\n var positionAxis = trace.orientation === 'h' ? yaName : xaName;\n noGrids[positionAxis] = true;\n }\n }\n\n var subplots = layoutOut._subplots;\n var xIds = subplots.xaxis;\n var yIds = subplots.yaxis;\n var xNames = Lib.simpleMap(xIds, id2name);\n var yNames = Lib.simpleMap(yIds, id2name);\n var axNames = xNames.concat(yNames);\n\n // plot_bgcolor only makes sense if there's a (2D) plot!\n // TODO: bgcolor for each subplot, to inherit from the main one\n var plotBgColor = Color.background;\n if(xIds.length && yIds.length) {\n plotBgColor = Lib.coerce(layoutIn, layoutOut, basePlotLayoutAttributes, 'plot_bgcolor');\n }\n\n var bgColor = Color.combine(plotBgColor, layoutOut.paper_bgcolor);\n\n var axName, axLetter, axLayoutIn, axLayoutOut;\n\n function coerce(attr, dflt) {\n return Lib.coerce(axLayoutIn, axLayoutOut, layoutAttributes, attr, dflt);\n }\n\n function coerce2(attr, dflt) {\n return Lib.coerce2(axLayoutIn, axLayoutOut, layoutAttributes, attr, dflt);\n }\n\n function getCounterAxes(axLetter) {\n return (axLetter === 'x') ? yIds : xIds;\n }\n\n var counterAxes = {x: getCounterAxes('x'), y: getCounterAxes('y')};\n var allAxisIds = counterAxes.x.concat(counterAxes.y);\n\n function getOverlayableAxes(axLetter, axName) {\n var list = (axLetter === 'x') ? xNames : yNames;\n var out = [];\n\n for(var j = 0; j < list.length; j++) {\n var axName2 = list[j];\n\n if(axName2 !== axName && !(layoutIn[axName2] || {}).overlaying) {\n out.push(name2id(axName2));\n }\n }\n\n return out;\n }\n\n // first pass creates the containers, determines types, and handles most of the settings\n for(i = 0; i < axNames.length; i++) {\n axName = axNames[i];\n axLetter = axName.charAt(0);\n\n if(!Lib.isPlainObject(layoutIn[axName])) {\n layoutIn[axName] = {};\n }\n\n axLayoutIn = layoutIn[axName];\n axLayoutOut = Template.newContainer(layoutOut, axName, axLetter + 'axis');\n\n var traces = ax2traces[axName] || [];\n axLayoutOut._traceIndices = traces.map(function(t) { return t._expandedIndex; });\n axLayoutOut._annIndices = [];\n axLayoutOut._shapeIndices = [];\n axLayoutOut._imgIndices = [];\n axLayoutOut._subplotsWith = [];\n axLayoutOut._counterAxes = [];\n\n // set up some private properties\n axLayoutOut._name = axLayoutOut._attr = axName;\n var id = axLayoutOut._id = name2id(axName);\n\n var overlayableAxes = getOverlayableAxes(axLetter, axName);\n\n var visibleDflt =\n (axLetter === 'x' && !xaMustDisplay[axName] && xaMayHide[axName]) ||\n (axLetter === 'y' && !yaMustDisplay[axName] && yaMayHide[axName]);\n\n var reverseDflt =\n (axLetter === 'y' &&\n (\n (!yaMustNotReverse[axName] && yaMayReverse[axName]) ||\n axHasImage[axName]\n ));\n\n var defaultOptions = {\n letter: axLetter,\n font: layoutOut.font,\n outerTicks: outerTicks[axName],\n showGrid: !noGrids[axName],\n data: traces,\n bgColor: bgColor,\n calendar: layoutOut.calendar,\n automargin: true,\n visibleDflt: visibleDflt,\n reverseDflt: reverseDflt,\n splomStash: ((layoutOut._splomAxes || {})[axLetter] || {})[id]\n };\n\n coerce('uirevision', layoutOut.uirevision);\n\n handleTypeDefaults(axLayoutIn, axLayoutOut, coerce, defaultOptions);\n handleAxisDefaults(axLayoutIn, axLayoutOut, coerce, defaultOptions, layoutOut);\n\n var spikecolor = coerce2('spikecolor');\n var spikethickness = coerce2('spikethickness');\n var spikedash = coerce2('spikedash');\n var spikemode = coerce2('spikemode');\n var spikesnap = coerce2('spikesnap');\n var showSpikes = coerce('showspikes', !!spikecolor || !!spikethickness || !!spikedash || !!spikemode || !!spikesnap);\n\n if(!showSpikes) {\n delete axLayoutOut.spikecolor;\n delete axLayoutOut.spikethickness;\n delete axLayoutOut.spikedash;\n delete axLayoutOut.spikemode;\n delete axLayoutOut.spikesnap;\n }\n\n handlePositionDefaults(axLayoutIn, axLayoutOut, coerce, {\n letter: axLetter,\n counterAxes: counterAxes[axLetter],\n overlayableAxes: overlayableAxes,\n grid: layoutOut.grid\n });\n\n coerce('title.standoff');\n\n axLayoutOut._input = axLayoutIn;\n }\n\n // quick second pass for range slider and selector defaults\n var rangeSliderDefaults = getComponentMethod('rangeslider', 'handleDefaults');\n var rangeSelectorDefaults = getComponentMethod('rangeselector', 'handleDefaults');\n\n for(i = 0; i < xNames.length; i++) {\n axName = xNames[i];\n axLayoutIn = layoutIn[axName];\n axLayoutOut = layoutOut[axName];\n\n rangeSliderDefaults(layoutIn, layoutOut, axName);\n\n if(axLayoutOut.type === 'date') {\n rangeSelectorDefaults(\n axLayoutIn,\n axLayoutOut,\n layoutOut,\n yNames,\n axLayoutOut.calendar\n );\n }\n\n coerce('fixedrange');\n }\n\n for(i = 0; i < yNames.length; i++) {\n axName = yNames[i];\n axLayoutIn = layoutIn[axName];\n axLayoutOut = layoutOut[axName];\n\n var anchoredAxis = layoutOut[id2name(axLayoutOut.anchor)];\n\n var fixedRangeDflt = getComponentMethod('rangeslider', 'isVisible')(anchoredAxis);\n\n coerce('fixedrange', fixedRangeDflt);\n }\n\n // Finally, handle scale constraints and matching axes.\n //\n // We need to do this after all axes have coerced both `type`\n // (so we link only axes of the same type) and\n // `fixedrange` (so we can avoid linking from OR TO a fixed axis).\n\n // sets of axes linked by `scaleanchor` along with the scaleratios compounded\n // together, populated in handleConstraintDefaults\n var constraintGroups = layoutOut._axisConstraintGroups = [];\n // similar to _axisConstraintGroups, but for matching axes\n var matchGroups = layoutOut._axisMatchGroups = [];\n\n for(i = 0; i < axNames.length; i++) {\n axName = axNames[i];\n axLetter = axName.charAt(0);\n axLayoutIn = layoutIn[axName];\n axLayoutOut = layoutOut[axName];\n\n var scaleanchorDflt;\n if(axLetter === 'y' && !axLayoutIn.hasOwnProperty('scaleanchor') && axHasImage[axName]) {\n scaleanchorDflt = axLayoutOut.anchor;\n } else {scaleanchorDflt = undefined;}\n\n var constrainDflt;\n if(!axLayoutIn.hasOwnProperty('constrain') && axHasImage[axName]) {\n constrainDflt = 'domain';\n } else {constrainDflt = undefined;}\n\n handleConstraintDefaults(axLayoutIn, axLayoutOut, coerce, {\n allAxisIds: allAxisIds,\n layoutOut: layoutOut,\n scaleanchorDflt: scaleanchorDflt,\n constrainDflt: constrainDflt\n });\n }\n\n for(i = 0; i < matchGroups.length; i++) {\n var group = matchGroups[i];\n var rng = null;\n var autorange = null;\n var axId;\n\n // find 'matching' range attrs\n for(axId in group) {\n axLayoutOut = layoutOut[id2name(axId)];\n if(!axLayoutOut.matches) {\n rng = axLayoutOut.range;\n autorange = axLayoutOut.autorange;\n }\n }\n // if `ax.matches` values are reciprocal,\n // pick values of first axis in group\n if(rng === null || autorange === null) {\n for(axId in group) {\n axLayoutOut = layoutOut[id2name(axId)];\n rng = axLayoutOut.range;\n autorange = axLayoutOut.autorange;\n break;\n }\n }\n // apply matching range attrs\n for(axId in group) {\n axLayoutOut = layoutOut[id2name(axId)];\n if(axLayoutOut.matches) {\n axLayoutOut.range = rng.slice();\n axLayoutOut.autorange = autorange;\n }\n axLayoutOut._matchGroup = group;\n }\n\n // remove matching axis from scaleanchor constraint groups (for now)\n if(constraintGroups.length) {\n for(axId in group) {\n for(j = 0; j < constraintGroups.length; j++) {\n var group2 = constraintGroups[j];\n for(var axId2 in group2) {\n if(axId === axId2) {\n Lib.warn('Axis ' + axId2 + ' is set with both ' +\n 'a *scaleanchor* and *matches* constraint; ' +\n 'ignoring the scale constraint.');\n\n delete group2[axId2];\n if(Object.keys(group2).length < 2) {\n constraintGroups.splice(j, 1);\n }\n }\n }\n }\n }\n }\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = {\n attributes: require('./attributes'),\n supplyDefaults: require('./defaults'),\n crossTraceDefaults: require('../histogram/cross_trace_defaults'),\n calc: require('../heatmap/calc'),\n plot: require('../heatmap/plot'),\n layerName: 'heatmaplayer',\n colorbar: require('../heatmap/colorbar'),\n style: require('../heatmap/style'),\n hoverPoints: require('./hover'),\n eventData: require('../histogram/event_data'),\n\n moduleType: 'trace',\n name: 'histogram2d',\n basePlotModule: require('../../plots/cartesian'),\n categories: ['cartesian', 'svg', '2dMap', 'histogram', 'showLegend'],\n meta: {\n \n \n }\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar Fx = require('../../components/fx');\nvar Lib = require('../../lib');\nvar getTraceColor = require('../scatter/get_trace_color');\nvar fillText = Lib.fillText;\nvar BADNUM = require('../../constants/numerical').BADNUM;\n\nmodule.exports = function hoverPoints(pointData, xval, yval) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var subplot = pointData.subplot;\n\n // compute winding number about [-180, 180] globe\n var winding = (xval >= 0) ?\n Math.floor((xval + 180) / 360) :\n Math.ceil((xval - 180) / 360);\n\n // shift longitude to [-180, 180] to determine closest point\n var lonShift = winding * 360;\n var xval2 = xval - lonShift;\n\n function distFn(d) {\n var lonlat = d.lonlat;\n if(lonlat[0] === BADNUM) return Infinity;\n\n var lon = Lib.modHalf(lonlat[0], 360);\n var lat = lonlat[1];\n var pt = subplot.project([lon, lat]);\n var dx = pt.x - xa.c2p([xval2, lat]);\n var dy = pt.y - ya.c2p([lon, yval]);\n var rad = Math.max(3, d.mrc || 0);\n\n return Math.max(Math.sqrt(dx * dx + dy * dy) - rad, 1 - 3 / rad);\n }\n\n Fx.getClosest(cd, distFn, pointData);\n\n // skip the rest (for this trace) if we didn't find a close point\n if(pointData.index === false) return;\n\n var di = cd[pointData.index];\n var lonlat = di.lonlat;\n var lonlatShifted = [Lib.modHalf(lonlat[0], 360) + lonShift, lonlat[1]];\n\n // shift labels back to original winded globe\n var xc = xa.c2p(lonlatShifted);\n var yc = ya.c2p(lonlatShifted);\n var rad = di.mrc || 1;\n\n pointData.x0 = xc - rad;\n pointData.x1 = xc + rad;\n pointData.y0 = yc - rad;\n pointData.y1 = yc + rad;\n\n var fullLayout = {};\n fullLayout[trace.subplot] = {_subplot: subplot};\n var labels = trace._module.formatLabels(di, trace, fullLayout);\n pointData.lonLabel = labels.lonLabel;\n pointData.latLabel = labels.latLabel;\n\n pointData.color = getTraceColor(trace, di);\n pointData.extraText = getExtraText(trace, di, cd[0].t.labels);\n pointData.hovertemplate = trace.hovertemplate;\n\n return [pointData];\n};\n\nfunction getExtraText(trace, di, labels) {\n if(trace.hovertemplate) return;\n\n var hoverinfo = di.hi || trace.hoverinfo;\n var parts = hoverinfo.split('+');\n var isAll = parts.indexOf('all') !== -1;\n var hasLon = parts.indexOf('lon') !== -1;\n var hasLat = parts.indexOf('lat') !== -1;\n var lonlat = di.lonlat;\n var text = [];\n\n // TODO should we use a mock axis to format hover?\n // If so, we'll need to make precision be zoom-level dependent\n function format(v) {\n return v + '\\u00B0';\n }\n\n if(isAll || (hasLon && hasLat)) {\n text.push('(' + format(lonlat[0]) + ', ' + format(lonlat[1]) + ')');\n } else if(hasLon) {\n text.push(labels.lon + format(lonlat[0]));\n } else if(hasLat) {\n text.push(labels.lat + format(lonlat[1]));\n }\n\n if(isAll || parts.indexOf('text') !== -1) {\n fillText(di, trace, text);\n }\n\n return text.join('
');\n}\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n'use strict';\n\nvar d3 = require('d3');\nvar isNumeric = require('fast-isnumeric');\nvar tinycolor = require('tinycolor2');\n\nvar Registry = require('../../registry');\nvar Color = require('../color');\nvar Colorscale = require('../colorscale');\nvar Lib = require('../../lib');\nvar svgTextUtils = require('../../lib/svg_text_utils');\n\nvar xmlnsNamespaces = require('../../constants/xmlns_namespaces');\nvar alignment = require('../../constants/alignment');\nvar LINE_SPACING = alignment.LINE_SPACING;\nvar DESELECTDIM = require('../../constants/interactions').DESELECTDIM;\n\nvar subTypes = require('../../traces/scatter/subtypes');\nvar makeBubbleSizeFn = require('../../traces/scatter/make_bubble_size_func');\nvar appendArrayPointValue = require('../../components/fx/helpers').appendArrayPointValue;\n\nvar drawing = module.exports = {};\n\n// -----------------------------------------------------\n// styling functions for plot elements\n// -----------------------------------------------------\n\ndrawing.font = function(s, family, size, color) {\n // also allow the form font(s, {family, size, color})\n if(Lib.isPlainObject(family)) {\n color = family.color;\n size = family.size;\n family = family.family;\n }\n if(family) s.style('font-family', family);\n if(size + 1) s.style('font-size', size + 'px');\n if(color) s.call(Color.fill, color);\n};\n\n/*\n * Positioning helpers\n * Note: do not use `setPosition` with nodes modified by\n * `svgTextUtils.convertToTspans`. Use `svgTextUtils.positionText`\n * instead, so that elements get updated to match.\n */\ndrawing.setPosition = function(s, x, y) { s.attr('x', x).attr('y', y); };\ndrawing.setSize = function(s, w, h) { s.attr('width', w).attr('height', h); };\ndrawing.setRect = function(s, x, y, w, h) {\n s.call(drawing.setPosition, x, y).call(drawing.setSize, w, h);\n};\n\n/** Translate node\n *\n * @param {object} d : calcdata point item\n * @param {sel} sel : d3 selction of node to translate\n * @param {object} xa : corresponding full xaxis object\n * @param {object} ya : corresponding full yaxis object\n *\n * @return {boolean} :\n * true if selection got translated\n * false if selection could not get translated\n */\ndrawing.translatePoint = function(d, sel, xa, ya) {\n var x = xa.c2p(d.x);\n var y = ya.c2p(d.y);\n\n if(isNumeric(x) && isNumeric(y) && sel.node()) {\n // for multiline text this works better\n if(sel.node().nodeName === 'text') {\n sel.attr('x', x).attr('y', y);\n } else {\n sel.attr('transform', 'translate(' + x + ',' + y + ')');\n }\n } else {\n return false;\n }\n\n return true;\n};\n\ndrawing.translatePoints = function(s, xa, ya) {\n s.each(function(d) {\n var sel = d3.select(this);\n drawing.translatePoint(d, sel, xa, ya);\n });\n};\n\ndrawing.hideOutsideRangePoint = function(d, sel, xa, ya, xcalendar, ycalendar) {\n sel.attr(\n 'display',\n (xa.isPtWithinRange(d, xcalendar) && ya.isPtWithinRange(d, ycalendar)) ? null : 'none'\n );\n};\n\ndrawing.hideOutsideRangePoints = function(traceGroups, subplot) {\n if(!subplot._hasClipOnAxisFalse) return;\n\n var xa = subplot.xaxis;\n var ya = subplot.yaxis;\n\n traceGroups.each(function(d) {\n var trace = d[0].trace;\n var xcalendar = trace.xcalendar;\n var ycalendar = trace.ycalendar;\n var selector = Registry.traceIs(trace, 'bar-like') ? '.bartext' : '.point,.textpoint';\n\n traceGroups.selectAll(selector).each(function(d) {\n drawing.hideOutsideRangePoint(d, d3.select(this), xa, ya, xcalendar, ycalendar);\n });\n });\n};\n\ndrawing.crispRound = function(gd, lineWidth, dflt) {\n // for lines that disable antialiasing we want to\n // make sure the width is an integer, and at least 1 if it's nonzero\n\n if(!lineWidth || !isNumeric(lineWidth)) return dflt || 0;\n\n // but not for static plots - these don't get antialiased anyway.\n if(gd._context.staticPlot) return lineWidth;\n\n if(lineWidth < 1) return 1;\n return Math.round(lineWidth);\n};\n\ndrawing.singleLineStyle = function(d, s, lw, lc, ld) {\n s.style('fill', 'none');\n var line = (((d || [])[0] || {}).trace || {}).line || {};\n var lw1 = lw || line.width || 0;\n var dash = ld || line.dash || '';\n\n Color.stroke(s, lc || line.color);\n drawing.dashLine(s, dash, lw1);\n};\n\ndrawing.lineGroupStyle = function(s, lw, lc, ld) {\n s.style('fill', 'none')\n .each(function(d) {\n var line = (((d || [])[0] || {}).trace || {}).line || {};\n var lw1 = lw || line.width || 0;\n var dash = ld || line.dash || '';\n\n d3.select(this)\n .call(Color.stroke, lc || line.color)\n .call(drawing.dashLine, dash, lw1);\n });\n};\n\ndrawing.dashLine = function(s, dash, lineWidth) {\n lineWidth = +lineWidth || 0;\n\n dash = drawing.dashStyle(dash, lineWidth);\n\n s.style({\n 'stroke-dasharray': dash,\n 'stroke-width': lineWidth + 'px'\n });\n};\n\ndrawing.dashStyle = function(dash, lineWidth) {\n lineWidth = +lineWidth || 1;\n var dlw = Math.max(lineWidth, 3);\n\n if(dash === 'solid') dash = '';\n else if(dash === 'dot') dash = dlw + 'px,' + dlw + 'px';\n else if(dash === 'dash') dash = (3 * dlw) + 'px,' + (3 * dlw) + 'px';\n else if(dash === 'longdash') dash = (5 * dlw) + 'px,' + (5 * dlw) + 'px';\n else if(dash === 'dashdot') {\n dash = (3 * dlw) + 'px,' + dlw + 'px,' + dlw + 'px,' + dlw + 'px';\n } else if(dash === 'longdashdot') {\n dash = (5 * dlw) + 'px,' + (2 * dlw) + 'px,' + dlw + 'px,' + (2 * dlw) + 'px';\n }\n // otherwise user wrote the dasharray themselves - leave it be\n\n return dash;\n};\n\n// Same as fillGroupStyle, except in this case the selection may be a transition\ndrawing.singleFillStyle = function(sel) {\n var node = d3.select(sel.node());\n var data = node.data();\n var fillcolor = (((data[0] || [])[0] || {}).trace || {}).fillcolor;\n if(fillcolor) {\n sel.call(Color.fill, fillcolor);\n }\n};\n\ndrawing.fillGroupStyle = function(s) {\n s.style('stroke-width', 0)\n .each(function(d) {\n var shape = d3.select(this);\n // N.B. 'd' won't be a calcdata item when\n // fill !== 'none' on a segment-less and marker-less trace\n if(d[0].trace) {\n shape.call(Color.fill, d[0].trace.fillcolor);\n }\n });\n};\n\nvar SYMBOLDEFS = require('./symbol_defs');\n\ndrawing.symbolNames = [];\ndrawing.symbolFuncs = [];\ndrawing.symbolNeedLines = {};\ndrawing.symbolNoDot = {};\ndrawing.symbolNoFill = {};\ndrawing.symbolList = [];\n\nObject.keys(SYMBOLDEFS).forEach(function(k) {\n var symDef = SYMBOLDEFS[k];\n var n = symDef.n;\n drawing.symbolList.push(\n n,\n k,\n n + 100,\n k + '-open'\n );\n drawing.symbolNames[n] = k;\n drawing.symbolFuncs[n] = symDef.f;\n\n if(symDef.needLine) {\n drawing.symbolNeedLines[n] = true;\n }\n if(symDef.noDot) {\n drawing.symbolNoDot[n] = true;\n } else {\n drawing.symbolList.push(\n n + 200,\n k + '-dot',\n n + 300,\n k + '-open-dot'\n );\n }\n if(symDef.noFill) {\n drawing.symbolNoFill[n] = true;\n }\n});\n\nvar MAXSYMBOL = drawing.symbolNames.length;\n// add a dot in the middle of the symbol\nvar DOTPATH = 'M0,0.5L0.5,0L0,-0.5L-0.5,0Z';\n\ndrawing.symbolNumber = function(v) {\n if(typeof v === 'string') {\n var vbase = 0;\n if(v.indexOf('-open') > 0) {\n vbase = 100;\n v = v.replace('-open', '');\n }\n if(v.indexOf('-dot') > 0) {\n vbase += 200;\n v = v.replace('-dot', '');\n }\n v = drawing.symbolNames.indexOf(v);\n if(v >= 0) { v += vbase; }\n }\n\n return (v % 100 >= MAXSYMBOL || v >= 400) ?\n 0 : Math.floor(Math.max(v, 0));\n};\n\nfunction makePointPath(symbolNumber, r) {\n var base = symbolNumber % 100;\n return drawing.symbolFuncs[base](r) + (symbolNumber >= 200 ? DOTPATH : '');\n}\n\nvar HORZGRADIENT = {x1: 1, x2: 0, y1: 0, y2: 0};\nvar VERTGRADIENT = {x1: 0, x2: 0, y1: 1, y2: 0};\nvar stopFormatter = d3.format('~.1f');\nvar gradientInfo = {\n radial: {node: 'radialGradient'},\n radialreversed: {node: 'radialGradient', reversed: true},\n horizontal: {node: 'linearGradient', attrs: HORZGRADIENT},\n horizontalreversed: {node: 'linearGradient', attrs: HORZGRADIENT, reversed: true},\n vertical: {node: 'linearGradient', attrs: VERTGRADIENT},\n verticalreversed: {node: 'linearGradient', attrs: VERTGRADIENT, reversed: true}\n};\n\n/**\n * gradient: create and apply a gradient fill\n *\n * @param {object} sel: d3 selection to apply this gradient to\n * You can use `selection.call(Drawing.gradient, ...)`\n * @param {DOM element} gd: the graph div `sel` is part of\n * @param {string} gradientID: a unique (within this plot) identifier\n * for this gradient, so that we don't create unnecessary definitions\n * @param {string} type: 'radial', 'horizontal', or 'vertical', optionally with\n * 'reversed' at the end. Normally radial goes center to edge,\n * horizontal goes right to left, and vertical goes bottom to top\n * @param {array} colorscale: as in attribute values, [[fraction, color], ...]\n * @param {string} prop: the property to apply to, 'fill' or 'stroke'\n */\ndrawing.gradient = function(sel, gd, gradientID, type, colorscale, prop) {\n var len = colorscale.length;\n var info = gradientInfo[type];\n var colorStops = new Array(len);\n for(var i = 0; i < len; i++) {\n if(info.reversed) {\n colorStops[len - 1 - i] = [stopFormatter((1 - colorscale[i][0]) * 100), colorscale[i][1]];\n } else {\n colorStops[i] = [stopFormatter(colorscale[i][0] * 100), colorscale[i][1]];\n }\n }\n\n var fullLayout = gd._fullLayout;\n var fullID = 'g' + fullLayout._uid + '-' + gradientID;\n\n var gradient = fullLayout._defs.select('.gradients')\n .selectAll('#' + fullID)\n .data([type + colorStops.join(';')], Lib.identity);\n\n gradient.exit().remove();\n\n gradient.enter()\n .append(info.node)\n .each(function() {\n var el = d3.select(this);\n if(info.attrs) el.attr(info.attrs);\n\n el.attr('id', fullID);\n\n var stops = el.selectAll('stop')\n .data(colorStops);\n stops.exit().remove();\n stops.enter().append('stop');\n\n stops.each(function(d) {\n var tc = tinycolor(d[1]);\n d3.select(this).attr({\n offset: d[0] + '%',\n 'stop-color': Color.tinyRGB(tc),\n 'stop-opacity': tc.getAlpha()\n });\n });\n });\n\n sel.style(prop, getFullUrl(fullID, gd))\n .style(prop + '-opacity', null);\n\n var className2query = function(s) {\n return '.' + s.attr('class').replace(/\\s/g, '.');\n };\n var k = className2query(d3.select(sel.node().parentNode)) +\n '>' + className2query(sel);\n fullLayout._gradientUrlQueryParts[k] = 1;\n};\n\n/*\n * Make the gradients container and clear out any previous gradients.\n * We never collect all the gradients we need in one place,\n * so we can't ever remove gradients that have stopped being useful,\n * except all at once before a full redraw.\n * The upside of this is arbitrary points can share gradient defs\n */\ndrawing.initGradients = function(gd) {\n var fullLayout = gd._fullLayout;\n\n var gradientsGroup = Lib.ensureSingle(fullLayout._defs, 'g', 'gradients');\n gradientsGroup.selectAll('linearGradient,radialGradient').remove();\n\n // initialize stash of query parts filled in Drawing.gradient,\n // used to fix URL strings during image exports\n fullLayout._gradientUrlQueryParts = {};\n};\n\n\ndrawing.pointStyle = function(s, trace, gd) {\n if(!s.size()) return;\n\n var fns = drawing.makePointStyleFns(trace);\n\n s.each(function(d) {\n drawing.singlePointStyle(d, d3.select(this), trace, fns, gd);\n });\n};\n\ndrawing.singlePointStyle = function(d, sel, trace, fns, gd) {\n var marker = trace.marker;\n var markerLine = marker.line;\n\n sel.style('opacity',\n fns.selectedOpacityFn ? fns.selectedOpacityFn(d) :\n (d.mo === undefined ? marker.opacity : d.mo)\n );\n\n if(fns.ms2mrc) {\n var r;\n\n // handle multi-trace graph edit case\n if(d.ms === 'various' || marker.size === 'various') {\n r = 3;\n } else {\n r = fns.ms2mrc(d.ms);\n }\n\n // store the calculated size so hover can use it\n d.mrc = r;\n\n if(fns.selectedSizeFn) {\n r = d.mrc = fns.selectedSizeFn(d);\n }\n\n // turn the symbol into a sanitized number\n var x = drawing.symbolNumber(d.mx || marker.symbol) || 0;\n\n // save if this marker is open\n // because that impacts how to handle colors\n d.om = x % 200 >= 100;\n\n sel.attr('d', makePointPath(x, r));\n }\n\n var perPointGradient = false;\n var fillColor, lineColor, lineWidth;\n\n // 'so' is suspected outliers, for box plots\n if(d.so) {\n lineWidth = markerLine.outlierwidth;\n lineColor = markerLine.outliercolor;\n fillColor = marker.outliercolor;\n } else {\n var markerLineWidth = (markerLine || {}).width;\n\n lineWidth = (\n d.mlw + 1 ||\n markerLineWidth + 1 ||\n // TODO: we need the latter for legends... can we get rid of it?\n (d.trace ? (d.trace.marker.line || {}).width : 0) + 1\n ) - 1 || 0;\n\n if('mlc' in d) lineColor = d.mlcc = fns.lineScale(d.mlc);\n // weird case: array wasn't long enough to apply to every point\n else if(Lib.isArrayOrTypedArray(markerLine.color)) lineColor = Color.defaultLine;\n else lineColor = markerLine.color;\n\n if(Lib.isArrayOrTypedArray(marker.color)) {\n fillColor = Color.defaultLine;\n perPointGradient = true;\n }\n\n if('mc' in d) {\n fillColor = d.mcc = fns.markerScale(d.mc);\n } else {\n fillColor = marker.color || 'rgba(0,0,0,0)';\n }\n\n if(fns.selectedColorFn) {\n fillColor = fns.selectedColorFn(d);\n }\n }\n\n if(d.om) {\n // open markers can't have zero linewidth, default to 1px,\n // and use fill color as stroke color\n sel.call(Color.stroke, fillColor)\n .style({\n 'stroke-width': (lineWidth || 1) + 'px',\n fill: 'none'\n });\n } else {\n sel.style('stroke-width', (d.isBlank ? 0 : lineWidth) + 'px');\n\n var markerGradient = marker.gradient;\n\n var gradientType = d.mgt;\n if(gradientType) perPointGradient = true;\n else gradientType = markerGradient && markerGradient.type;\n\n // for legend - arrays will propagate through here, but we don't need\n // to treat it as per-point.\n if(Array.isArray(gradientType)) {\n gradientType = gradientType[0];\n if(!gradientInfo[gradientType]) gradientType = 0;\n }\n\n if(gradientType && gradientType !== 'none') {\n var gradientColor = d.mgc;\n if(gradientColor) perPointGradient = true;\n else gradientColor = markerGradient.color;\n\n var gradientID = trace.uid;\n if(perPointGradient) gradientID += '-' + d.i;\n\n drawing.gradient(sel, gd, gradientID, gradientType,\n [[0, gradientColor], [1, fillColor]], 'fill');\n } else {\n Color.fill(sel, fillColor);\n }\n\n if(lineWidth) {\n Color.stroke(sel, lineColor);\n }\n }\n};\n\ndrawing.makePointStyleFns = function(trace) {\n var out = {};\n var marker = trace.marker;\n\n // allow array marker and marker line colors to be\n // scaled by given max and min to colorscales\n out.markerScale = drawing.tryColorscale(marker, '');\n out.lineScale = drawing.tryColorscale(marker, 'line');\n\n if(Registry.traceIs(trace, 'symbols')) {\n out.ms2mrc = subTypes.isBubble(trace) ?\n makeBubbleSizeFn(trace) :\n function() { return (marker.size || 6) / 2; };\n }\n\n if(trace.selectedpoints) {\n Lib.extendFlat(out, drawing.makeSelectedPointStyleFns(trace));\n }\n\n return out;\n};\n\ndrawing.makeSelectedPointStyleFns = function(trace) {\n var out = {};\n\n var selectedAttrs = trace.selected || {};\n var unselectedAttrs = trace.unselected || {};\n\n var marker = trace.marker || {};\n var selectedMarker = selectedAttrs.marker || {};\n var unselectedMarker = unselectedAttrs.marker || {};\n\n var mo = marker.opacity;\n var smo = selectedMarker.opacity;\n var usmo = unselectedMarker.opacity;\n var smoIsDefined = smo !== undefined;\n var usmoIsDefined = usmo !== undefined;\n\n if(Lib.isArrayOrTypedArray(mo) || smoIsDefined || usmoIsDefined) {\n out.selectedOpacityFn = function(d) {\n var base = d.mo === undefined ? marker.opacity : d.mo;\n\n if(d.selected) {\n return smoIsDefined ? smo : base;\n } else {\n return usmoIsDefined ? usmo : DESELECTDIM * base;\n }\n };\n }\n\n var mc = marker.color;\n var smc = selectedMarker.color;\n var usmc = unselectedMarker.color;\n\n if(smc || usmc) {\n out.selectedColorFn = function(d) {\n var base = d.mcc || mc;\n\n if(d.selected) {\n return smc || base;\n } else {\n return usmc || base;\n }\n };\n }\n\n var ms = marker.size;\n var sms = selectedMarker.size;\n var usms = unselectedMarker.size;\n var smsIsDefined = sms !== undefined;\n var usmsIsDefined = usms !== undefined;\n\n if(Registry.traceIs(trace, 'symbols') && (smsIsDefined || usmsIsDefined)) {\n out.selectedSizeFn = function(d) {\n var base = d.mrc || ms / 2;\n\n if(d.selected) {\n return smsIsDefined ? sms / 2 : base;\n } else {\n return usmsIsDefined ? usms / 2 : base;\n }\n };\n }\n\n return out;\n};\n\ndrawing.makeSelectedTextStyleFns = function(trace) {\n var out = {};\n\n var selectedAttrs = trace.selected || {};\n var unselectedAttrs = trace.unselected || {};\n\n var textFont = trace.textfont || {};\n var selectedTextFont = selectedAttrs.textfont || {};\n var unselectedTextFont = unselectedAttrs.textfont || {};\n\n var tc = textFont.color;\n var stc = selectedTextFont.color;\n var utc = unselectedTextFont.color;\n\n out.selectedTextColorFn = function(d) {\n var base = d.tc || tc;\n\n if(d.selected) {\n return stc || base;\n } else {\n if(utc) return utc;\n else return stc ? base : Color.addOpacity(base, DESELECTDIM);\n }\n };\n\n return out;\n};\n\ndrawing.selectedPointStyle = function(s, trace) {\n if(!s.size() || !trace.selectedpoints) return;\n\n var fns = drawing.makeSelectedPointStyleFns(trace);\n var marker = trace.marker || {};\n var seq = [];\n\n if(fns.selectedOpacityFn) {\n seq.push(function(pt, d) {\n pt.style('opacity', fns.selectedOpacityFn(d));\n });\n }\n\n if(fns.selectedColorFn) {\n seq.push(function(pt, d) {\n Color.fill(pt, fns.selectedColorFn(d));\n });\n }\n\n if(fns.selectedSizeFn) {\n seq.push(function(pt, d) {\n var mx = d.mx || marker.symbol || 0;\n var mrc2 = fns.selectedSizeFn(d);\n\n pt.attr('d', makePointPath(drawing.symbolNumber(mx), mrc2));\n\n // save for Drawing.selectedTextStyle\n d.mrc2 = mrc2;\n });\n }\n\n if(seq.length) {\n s.each(function(d) {\n var pt = d3.select(this);\n for(var i = 0; i < seq.length; i++) {\n seq[i](pt, d);\n }\n });\n }\n};\n\ndrawing.tryColorscale = function(marker, prefix) {\n var cont = prefix ? Lib.nestedProperty(marker, prefix).get() : marker;\n\n if(cont) {\n var colorArray = cont.color;\n if((cont.colorscale || cont._colorAx) && Lib.isArrayOrTypedArray(colorArray)) {\n return Colorscale.makeColorScaleFuncFromTrace(cont);\n }\n }\n return Lib.identity;\n};\n\nvar TEXTOFFSETSIGN = {\n start: 1, end: -1, middle: 0, bottom: 1, top: -1\n};\n\nfunction textPointPosition(s, textPosition, fontSize, markerRadius) {\n var group = d3.select(s.node().parentNode);\n\n var v = textPosition.indexOf('top') !== -1 ?\n 'top' :\n textPosition.indexOf('bottom') !== -1 ? 'bottom' : 'middle';\n var h = textPosition.indexOf('left') !== -1 ?\n 'end' :\n textPosition.indexOf('right') !== -1 ? 'start' : 'middle';\n\n // if markers are shown, offset a little more than\n // the nominal marker size\n // ie 2/1.6 * nominal, bcs some markers are a bit bigger\n var r = markerRadius ? markerRadius / 0.8 + 1 : 0;\n\n var numLines = (svgTextUtils.lineCount(s) - 1) * LINE_SPACING + 1;\n var dx = TEXTOFFSETSIGN[h] * r;\n var dy = fontSize * 0.75 + TEXTOFFSETSIGN[v] * r +\n (TEXTOFFSETSIGN[v] - 1) * numLines * fontSize / 2;\n\n // fix the overall text group position\n s.attr('text-anchor', h);\n group.attr('transform', 'translate(' + dx + ',' + dy + ')');\n}\n\nfunction extracTextFontSize(d, trace) {\n var fontSize = d.ts || trace.textfont.size;\n return (isNumeric(fontSize) && fontSize > 0) ? fontSize : 0;\n}\n\n// draw text at points\ndrawing.textPointStyle = function(s, trace, gd) {\n if(!s.size()) return;\n\n var selectedTextColorFn;\n if(trace.selectedpoints) {\n var fns = drawing.makeSelectedTextStyleFns(trace);\n selectedTextColorFn = fns.selectedTextColorFn;\n }\n\n var texttemplate = trace.texttemplate;\n var fullLayout = gd._fullLayout;\n\n s.each(function(d) {\n var p = d3.select(this);\n\n var text = texttemplate ?\n Lib.extractOption(d, trace, 'txt', 'texttemplate') :\n Lib.extractOption(d, trace, 'tx', 'text');\n\n if(!text && text !== 0) {\n p.remove();\n return;\n }\n\n if(texttemplate) {\n var labels = trace._module.formatLabels ? trace._module.formatLabels(d, trace, fullLayout) : {};\n var pointValues = {};\n appendArrayPointValue(pointValues, trace, d.i);\n var meta = trace._meta || {};\n text = Lib.texttemplateString(text, labels, fullLayout._d3locale, pointValues, d, meta);\n }\n\n var pos = d.tp || trace.textposition;\n var fontSize = extracTextFontSize(d, trace);\n var fontColor = selectedTextColorFn ?\n selectedTextColorFn(d) :\n (d.tc || trace.textfont.color);\n\n p.call(drawing.font,\n d.tf || trace.textfont.family,\n fontSize,\n fontColor)\n .text(text)\n .call(svgTextUtils.convertToTspans, gd)\n .call(textPointPosition, pos, fontSize, d.mrc);\n });\n};\n\ndrawing.selectedTextStyle = function(s, trace) {\n if(!s.size() || !trace.selectedpoints) return;\n\n var fns = drawing.makeSelectedTextStyleFns(trace);\n\n s.each(function(d) {\n var tx = d3.select(this);\n var tc = fns.selectedTextColorFn(d);\n var tp = d.tp || trace.textposition;\n var fontSize = extracTextFontSize(d, trace);\n\n Color.fill(tx, tc);\n textPointPosition(tx, tp, fontSize, d.mrc2 || d.mrc);\n });\n};\n\n// generalized Catmull-Rom splines, per\n// http://www.cemyuksel.com/research/catmullrom_param/catmullrom.pdf\nvar CatmullRomExp = 0.5;\ndrawing.smoothopen = function(pts, smoothness) {\n if(pts.length < 3) { return 'M' + pts.join('L');}\n var path = 'M' + pts[0];\n var tangents = [];\n var i;\n for(i = 1; i < pts.length - 1; i++) {\n tangents.push(makeTangent(pts[i - 1], pts[i], pts[i + 1], smoothness));\n }\n path += 'Q' + tangents[0][0] + ' ' + pts[1];\n for(i = 2; i < pts.length - 1; i++) {\n path += 'C' + tangents[i - 2][1] + ' ' + tangents[i - 1][0] + ' ' + pts[i];\n }\n path += 'Q' + tangents[pts.length - 3][1] + ' ' + pts[pts.length - 1];\n return path;\n};\n\ndrawing.smoothclosed = function(pts, smoothness) {\n if(pts.length < 3) { return 'M' + pts.join('L') + 'Z'; }\n var path = 'M' + pts[0];\n var pLast = pts.length - 1;\n var tangents = [makeTangent(pts[pLast], pts[0], pts[1], smoothness)];\n var i;\n for(i = 1; i < pLast; i++) {\n tangents.push(makeTangent(pts[i - 1], pts[i], pts[i + 1], smoothness));\n }\n tangents.push(\n makeTangent(pts[pLast - 1], pts[pLast], pts[0], smoothness)\n );\n\n for(i = 1; i <= pLast; i++) {\n path += 'C' + tangents[i - 1][1] + ' ' + tangents[i][0] + ' ' + pts[i];\n }\n path += 'C' + tangents[pLast][1] + ' ' + tangents[0][0] + ' ' + pts[0] + 'Z';\n return path;\n};\n\nfunction makeTangent(prevpt, thispt, nextpt, smoothness) {\n var d1x = prevpt[0] - thispt[0];\n var d1y = prevpt[1] - thispt[1];\n var d2x = nextpt[0] - thispt[0];\n var d2y = nextpt[1] - thispt[1];\n var d1a = Math.pow(d1x * d1x + d1y * d1y, CatmullRomExp / 2);\n var d2a = Math.pow(d2x * d2x + d2y * d2y, CatmullRomExp / 2);\n var numx = (d2a * d2a * d1x - d1a * d1a * d2x) * smoothness;\n var numy = (d2a * d2a * d1y - d1a * d1a * d2y) * smoothness;\n var denom1 = 3 * d2a * (d1a + d2a);\n var denom2 = 3 * d1a * (d1a + d2a);\n return [\n [\n d3.round(thispt[0] + (denom1 && numx / denom1), 2),\n d3.round(thispt[1] + (denom1 && numy / denom1), 2)\n ], [\n d3.round(thispt[0] - (denom2 && numx / denom2), 2),\n d3.round(thispt[1] - (denom2 && numy / denom2), 2)\n ]\n ];\n}\n\n// step paths - returns a generator function for paths\n// with the given step shape\nvar STEPPATH = {\n hv: function(p0, p1) {\n return 'H' + d3.round(p1[0], 2) + 'V' + d3.round(p1[1], 2);\n },\n vh: function(p0, p1) {\n return 'V' + d3.round(p1[1], 2) + 'H' + d3.round(p1[0], 2);\n },\n hvh: function(p0, p1) {\n return 'H' + d3.round((p0[0] + p1[0]) / 2, 2) + 'V' +\n d3.round(p1[1], 2) + 'H' + d3.round(p1[0], 2);\n },\n vhv: function(p0, p1) {\n return 'V' + d3.round((p0[1] + p1[1]) / 2, 2) + 'H' +\n d3.round(p1[0], 2) + 'V' + d3.round(p1[1], 2);\n }\n};\nvar STEPLINEAR = function(p0, p1) {\n return 'L' + d3.round(p1[0], 2) + ',' + d3.round(p1[1], 2);\n};\ndrawing.steps = function(shape) {\n var onestep = STEPPATH[shape] || STEPLINEAR;\n return function(pts) {\n var path = 'M' + d3.round(pts[0][0], 2) + ',' + d3.round(pts[0][1], 2);\n for(var i = 1; i < pts.length; i++) {\n path += onestep(pts[i - 1], pts[i]);\n }\n return path;\n };\n};\n\n// off-screen svg render testing element, shared by the whole page\n// uses the id 'js-plotly-tester' and stores it in drawing.tester\ndrawing.makeTester = function() {\n var tester = Lib.ensureSingleById(d3.select('body'), 'svg', 'js-plotly-tester', function(s) {\n s.attr(xmlnsNamespaces.svgAttrs)\n .style({\n position: 'absolute',\n left: '-10000px',\n top: '-10000px',\n width: '9000px',\n height: '9000px',\n 'z-index': '1'\n });\n });\n\n // browsers differ on how they describe the bounding rect of\n // the svg if its contents spill over... so make a 1x1px\n // reference point we can measure off of.\n var testref = Lib.ensureSingle(tester, 'path', 'js-reference-point', function(s) {\n s.attr('d', 'M0,0H1V1H0Z')\n .style({\n 'stroke-width': 0,\n fill: 'black'\n });\n });\n\n drawing.tester = tester;\n drawing.testref = testref;\n};\n\n/*\n * use our offscreen tester to get a clientRect for an element,\n * in a reference frame where it isn't translated (or transformed) and\n * its anchor point is at (0,0)\n * always returns a copy of the bbox, so the caller can modify it safely\n *\n * @param {SVGElement} node: the element to measure. If possible this should be\n * a or MathJax element that's already passed through\n * `convertToTspans` because in that case we can cache the results, but it's\n * possible to pass in any svg element.\n *\n * @param {boolean} inTester: is this element already in `drawing.tester`?\n * If you are measuring a dummy element, rather than one you really intend\n * to use on the plot, making it in `drawing.tester` in the first place\n * allows us to test faster because it cuts out cloning and appending it.\n *\n * @param {string} hash: for internal use only, if we already know the cache key\n * for this element beforehand.\n *\n * @return {object}: a plain object containing the width, height, left, right,\n * top, and bottom of `node`\n */\ndrawing.savedBBoxes = {};\nvar savedBBoxesCount = 0;\nvar maxSavedBBoxes = 10000;\n\ndrawing.bBox = function(node, inTester, hash) {\n /*\n * Cache elements we've already measured so we don't have to\n * remeasure the same thing many times\n * We have a few bBox callers though who pass a node larger than\n * a or a MathJax , such as an axis group containing many labels.\n * These will not generate a hash (unless we figure out an appropriate\n * hash key for them) and thus we will not hash them.\n */\n if(!hash) hash = nodeHash(node);\n var out;\n if(hash) {\n out = drawing.savedBBoxes[hash];\n if(out) return Lib.extendFlat({}, out);\n } else if(node.childNodes.length === 1) {\n /*\n * If we have only one child element, which is itself hashable, make\n * a new hash from this element plus its x,y,transform\n * These bounding boxes *include* x,y,transform - mostly for use by\n * callers trying to avoid overlaps (ie titles)\n */\n var innerNode = node.childNodes[0];\n\n hash = nodeHash(innerNode);\n if(hash) {\n var x = +innerNode.getAttribute('x') || 0;\n var y = +innerNode.getAttribute('y') || 0;\n var transform = innerNode.getAttribute('transform');\n\n if(!transform) {\n // in this case, just varying x and y, don't bother caching\n // the final bBox because the alteration is quick.\n var innerBB = drawing.bBox(innerNode, false, hash);\n if(x) {\n innerBB.left += x;\n innerBB.right += x;\n }\n if(y) {\n innerBB.top += y;\n innerBB.bottom += y;\n }\n return innerBB;\n }\n /*\n * else we have a transform - rather than make a complicated\n * (and error-prone and probably slow) transform parser/calculator,\n * just continue on calculating the boundingClientRect of the group\n * and use the new composite hash to cache it.\n * That said, `innerNode.transform.baseVal` is an array of\n * `SVGTransform` objects, that *do* seem to have a nice matrix\n * multiplication interface that we could use to avoid making\n * another getBoundingClientRect call...\n */\n hash += '~' + x + '~' + y + '~' + transform;\n\n out = drawing.savedBBoxes[hash];\n if(out) return Lib.extendFlat({}, out);\n }\n }\n var testNode, tester;\n if(inTester) {\n testNode = node;\n } else {\n tester = drawing.tester.node();\n\n // copy the node to test into the tester\n testNode = node.cloneNode(true);\n tester.appendChild(testNode);\n }\n\n // standardize its position (and newline tspans if any)\n d3.select(testNode)\n .attr('transform', null)\n .call(svgTextUtils.positionText, 0, 0);\n\n var testRect = testNode.getBoundingClientRect();\n var refRect = drawing.testref\n .node()\n .getBoundingClientRect();\n\n if(!inTester) tester.removeChild(testNode);\n\n var bb = {\n height: testRect.height,\n width: testRect.width,\n left: testRect.left - refRect.left,\n top: testRect.top - refRect.top,\n right: testRect.right - refRect.left,\n bottom: testRect.bottom - refRect.top\n };\n\n // make sure we don't have too many saved boxes,\n // or a long session could overload on memory\n // by saving boxes for long-gone elements\n if(savedBBoxesCount >= maxSavedBBoxes) {\n drawing.savedBBoxes = {};\n savedBBoxesCount = 0;\n }\n\n // cache this bbox\n if(hash) drawing.savedBBoxes[hash] = bb;\n savedBBoxesCount++;\n\n return Lib.extendFlat({}, bb);\n};\n\n// capture everything about a node (at least in our usage) that\n// impacts its bounding box, given that bBox clears x, y, and transform\nfunction nodeHash(node) {\n var inputText = node.getAttribute('data-unformatted');\n if(inputText === null) return;\n return inputText +\n node.getAttribute('data-math') +\n node.getAttribute('text-anchor') +\n node.getAttribute('style');\n}\n\n/**\n * Set clipPath URL in a way that work for all situations.\n *\n * In details, graphs on pages with HTML tags need to prepend\n * the clip path ids with the page's base url EXCEPT during toImage exports.\n *\n * @param {d3 selection} s : node to add clip-path attribute\n * @param {string} localId : local clip-path (w/o base url) id\n * @param {DOM element || object} gd\n * - context._baseUrl {string}\n * - context._exportedPlot {boolean}\n */\ndrawing.setClipUrl = function(s, localId, gd) {\n s.attr('clip-path', getFullUrl(localId, gd));\n};\n\nfunction getFullUrl(localId, gd) {\n if(!localId) return null;\n\n var context = gd._context;\n var baseUrl = context._exportedPlot ? '' : (context._baseUrl || '');\n return 'url(\\'' + baseUrl + '#' + localId + '\\')';\n}\n\ndrawing.getTranslate = function(element) {\n // Note the separator [^\\d] between x and y in this regex\n // We generally use ',' but IE will convert it to ' '\n var re = /.*\\btranslate\\((-?\\d*\\.?\\d*)[^-\\d]*(-?\\d*\\.?\\d*)[^\\d].*/;\n var getter = element.attr ? 'attr' : 'getAttribute';\n var transform = element[getter]('transform') || '';\n\n var translate = transform.replace(re, function(match, p1, p2) {\n return [p1, p2].join(' ');\n })\n .split(' ');\n\n return {\n x: +translate[0] || 0,\n y: +translate[1] || 0\n };\n};\n\ndrawing.setTranslate = function(element, x, y) {\n var re = /(\\btranslate\\(.*?\\);?)/;\n var getter = element.attr ? 'attr' : 'getAttribute';\n var setter = element.attr ? 'attr' : 'setAttribute';\n var transform = element[getter]('transform') || '';\n\n x = x || 0;\n y = y || 0;\n\n transform = transform.replace(re, '').trim();\n transform += ' translate(' + x + ', ' + y + ')';\n transform = transform.trim();\n\n element[setter]('transform', transform);\n\n return transform;\n};\n\ndrawing.getScale = function(element) {\n var re = /.*\\bscale\\((\\d*\\.?\\d*)[^\\d]*(\\d*\\.?\\d*)[^\\d].*/;\n var getter = element.attr ? 'attr' : 'getAttribute';\n var transform = element[getter]('transform') || '';\n\n var translate = transform.replace(re, function(match, p1, p2) {\n return [p1, p2].join(' ');\n })\n .split(' ');\n\n return {\n x: +translate[0] || 1,\n y: +translate[1] || 1\n };\n};\n\ndrawing.setScale = function(element, x, y) {\n var re = /(\\bscale\\(.*?\\);?)/;\n var getter = element.attr ? 'attr' : 'getAttribute';\n var setter = element.attr ? 'attr' : 'setAttribute';\n var transform = element[getter]('transform') || '';\n\n x = x || 1;\n y = y || 1;\n\n transform = transform.replace(re, '').trim();\n transform += ' scale(' + x + ', ' + y + ')';\n transform = transform.trim();\n\n element[setter]('transform', transform);\n\n return transform;\n};\n\nvar SCALE_RE = /\\s*sc.*/;\n\ndrawing.setPointGroupScale = function(selection, xScale, yScale) {\n xScale = xScale || 1;\n yScale = yScale || 1;\n\n if(!selection) return;\n\n // The same scale transform for every point:\n var scale = (xScale === 1 && yScale === 1) ?\n '' :\n ' scale(' + xScale + ',' + yScale + ')';\n\n selection.each(function() {\n var t = (this.getAttribute('transform') || '').replace(SCALE_RE, '');\n t += scale;\n t = t.trim();\n this.setAttribute('transform', t);\n });\n};\n\nvar TEXT_POINT_LAST_TRANSLATION_RE = /translate\\([^)]*\\)\\s*$/;\n\ndrawing.setTextPointsScale = function(selection, xScale, yScale) {\n if(!selection) return;\n\n selection.each(function() {\n var transforms;\n var el = d3.select(this);\n var text = el.select('text');\n\n if(!text.node()) return;\n\n var x = parseFloat(text.attr('x') || 0);\n var y = parseFloat(text.attr('y') || 0);\n\n var existingTransform = (el.attr('transform') || '').match(TEXT_POINT_LAST_TRANSLATION_RE);\n\n if(xScale === 1 && yScale === 1) {\n transforms = [];\n } else {\n transforms = [\n 'translate(' + x + ',' + y + ')',\n 'scale(' + xScale + ',' + yScale + ')',\n 'translate(' + (-x) + ',' + (-y) + ')',\n ];\n }\n\n if(existingTransform) {\n transforms.push(existingTransform);\n }\n\n el.attr('transform', transforms.join(' '));\n });\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\n\n// The contour extraction is great, except it totally fails for constraints because we\n// need weird range loops and flipped contours instead of the usual format. This function\n// does some weird manipulation of the extracted pathinfo data such that it magically\n// draws contours correctly *as* constraints.\n//\n// ** I do not know which \"weird range loops\" the comment above is referring to.\nmodule.exports = function(pathinfo, operation) {\n var i, pi0, pi1;\n\n var op0 = function(arr) { return arr.reverse(); };\n var op1 = function(arr) { return arr; };\n\n switch(operation) {\n case '=':\n case '<':\n return pathinfo;\n case '>':\n if(pathinfo.length !== 1) {\n Lib.warn('Contour data invalid for the specified inequality operation.');\n }\n\n // In this case there should be exactly one contour levels in pathinfo.\n // We flip all of the data. This will draw the contour as closed.\n pi0 = pathinfo[0];\n\n for(i = 0; i < pi0.edgepaths.length; i++) {\n pi0.edgepaths[i] = op0(pi0.edgepaths[i]);\n }\n for(i = 0; i < pi0.paths.length; i++) {\n pi0.paths[i] = op0(pi0.paths[i]);\n }\n for(i = 0; i < pi0.starts.length; i++) {\n pi0.starts[i] = op0(pi0.starts[i]);\n }\n\n return pathinfo;\n case '][':\n var tmp = op0;\n op0 = op1;\n op1 = tmp;\n // It's a nice rule, except this definitely *is* what's intended here.\n /* eslint-disable: no-fallthrough */\n case '[]':\n /* eslint-enable: no-fallthrough */\n if(pathinfo.length !== 2) {\n Lib.warn('Contour data invalid for the specified inequality range operation.');\n }\n\n // In this case there should be exactly two contour levels in pathinfo.\n // - We concatenate the info into one pathinfo.\n // - We must also flip all of the data in the `[]` case.\n // This will draw the contours as closed.\n pi0 = copyPathinfo(pathinfo[0]);\n pi1 = copyPathinfo(pathinfo[1]);\n\n for(i = 0; i < pi0.edgepaths.length; i++) {\n pi0.edgepaths[i] = op0(pi0.edgepaths[i]);\n }\n for(i = 0; i < pi0.paths.length; i++) {\n pi0.paths[i] = op0(pi0.paths[i]);\n }\n for(i = 0; i < pi0.starts.length; i++) {\n pi0.starts[i] = op0(pi0.starts[i]);\n }\n\n while(pi1.edgepaths.length) {\n pi0.edgepaths.push(op1(pi1.edgepaths.shift()));\n }\n while(pi1.paths.length) {\n pi0.paths.push(op1(pi1.paths.shift()));\n }\n while(pi1.starts.length) {\n pi0.starts.push(op1(pi1.starts.shift()));\n }\n\n return [pi0];\n }\n};\n\nfunction copyPathinfo(pi) {\n return Lib.extendFlat({}, pi, {\n edgepaths: Lib.extendDeep([], pi.edgepaths),\n paths: Lib.extendDeep([], pi.paths),\n starts: Lib.extendDeep([], pi.starts)\n });\n}\n","module.exports = function () {\n for (var i = 0; i < arguments.length; i++) {\n if (arguments[i] !== undefined) return arguments[i];\n }\n};\n","\"use strict\"\n\nfunction dupe_array(count, value, i) {\n var c = count[i]|0\n if(c <= 0) {\n return []\n }\n var result = new Array(c), j\n if(i === count.length-1) {\n for(j=0; j 0) {\n return dupe_number(count|0, value)\n }\n break\n case \"object\":\n if(typeof (count.length) === \"number\") {\n return dupe_array(count, value, 0)\n }\n break\n }\n return []\n}\n\nmodule.exports = dupe","\"use strict\";\n\nvar isValue = require(\"../value/is\")\n , isObject = require(\"../object/is\")\n , stringCoerce = require(\"../string/coerce\")\n , toShortString = require(\"./to-short-string\");\n\nvar resolveMessage = function (message, value) {\n\treturn message.replace(\"%v\", toShortString(value));\n};\n\nmodule.exports = function (value, defaultMessage, inputOptions) {\n\tif (!isObject(inputOptions)) throw new TypeError(resolveMessage(defaultMessage, value));\n\tif (!isValue(value)) {\n\t\tif (\"default\" in inputOptions) return inputOptions[\"default\"];\n\t\tif (inputOptions.isOptional) return null;\n\t}\n\tvar errorMessage = stringCoerce(inputOptions.errorMessage);\n\tif (!isValue(errorMessage)) errorMessage = defaultMessage;\n\tthrow new TypeError(resolveMessage(errorMessage, value));\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar Registry = require('../../registry');\n\nvar SHOWISOLATETIP = true;\n\nmodule.exports = function handleClick(g, gd, numClicks) {\n var fullLayout = gd._fullLayout;\n\n if(gd._dragged || gd._editing) return;\n\n var itemClick = fullLayout.legend.itemclick;\n var itemDoubleClick = fullLayout.legend.itemdoubleclick;\n\n if(numClicks === 1 && itemClick === 'toggle' && itemDoubleClick === 'toggleothers' &&\n SHOWISOLATETIP && gd.data && gd._context.showTips\n ) {\n Lib.notifier(Lib._(gd, 'Double-click on legend to isolate one trace'), 'long');\n SHOWISOLATETIP = false;\n } else {\n SHOWISOLATETIP = false;\n }\n\n var mode;\n if(numClicks === 1) mode = itemClick;\n else if(numClicks === 2) mode = itemDoubleClick;\n if(!mode) return;\n\n var hiddenSlices = fullLayout.hiddenlabels ?\n fullLayout.hiddenlabels.slice() :\n [];\n\n var legendItem = g.data()[0][0];\n var fullData = gd._fullData;\n var fullTrace = legendItem.trace;\n var legendgroup = fullTrace.legendgroup;\n\n var i, j, kcont, key, keys, val;\n var attrUpdate = {};\n var attrIndices = [];\n var carrs = [];\n var carrIdx = [];\n\n function insertUpdate(traceIndex, key, value) {\n var attrIndex = attrIndices.indexOf(traceIndex);\n var valueArray = attrUpdate[key];\n if(!valueArray) {\n valueArray = attrUpdate[key] = [];\n }\n\n if(attrIndices.indexOf(traceIndex) === -1) {\n attrIndices.push(traceIndex);\n attrIndex = attrIndices.length - 1;\n }\n\n valueArray[attrIndex] = value;\n\n return attrIndex;\n }\n\n function setVisibility(fullTrace, visibility) {\n var fullInput = fullTrace._fullInput;\n if(Registry.hasTransform(fullInput, 'groupby')) {\n var kcont = carrs[fullInput.index];\n if(!kcont) {\n var groupbyIndices = Registry.getTransformIndices(fullInput, 'groupby');\n var lastGroupbyIndex = groupbyIndices[groupbyIndices.length - 1];\n kcont = Lib.keyedContainer(fullInput, 'transforms[' + lastGroupbyIndex + '].styles', 'target', 'value.visible');\n carrs[fullInput.index] = kcont;\n }\n\n var curState = kcont.get(fullTrace._group);\n\n // If not specified, assume visible. This happens if there are other style\n // properties set for a group but not the visibility. There are many similar\n // ways to do this (e.g. why not just `curState = fullTrace.visible`??? The\n // answer is: because it breaks other things like groupby trace names in\n // subtle ways.)\n if(curState === undefined) {\n curState = true;\n }\n\n if(curState !== false) {\n // true -> legendonly. All others toggle to true:\n kcont.set(fullTrace._group, visibility);\n }\n carrIdx[fullInput.index] = insertUpdate(fullInput.index, 'visible', fullInput.visible === false ? false : true);\n } else {\n // false -> false (not possible since will not be visible in legend)\n // true -> legendonly\n // legendonly -> true\n var nextVisibility = fullInput.visible === false ? false : visibility;\n\n insertUpdate(fullInput.index, 'visible', nextVisibility);\n }\n }\n\n if(Registry.traceIs(fullTrace, 'pie-like')) {\n var thisLabel = legendItem.label;\n var thisLabelIndex = hiddenSlices.indexOf(thisLabel);\n\n if(mode === 'toggle') {\n if(thisLabelIndex === -1) hiddenSlices.push(thisLabel);\n else hiddenSlices.splice(thisLabelIndex, 1);\n } else if(mode === 'toggleothers') {\n hiddenSlices = [];\n gd.calcdata[0].forEach(function(d) {\n if(thisLabel !== d.label) {\n hiddenSlices.push(d.label);\n }\n });\n if(gd._fullLayout.hiddenlabels && gd._fullLayout.hiddenlabels.length === hiddenSlices.length && thisLabelIndex === -1) {\n hiddenSlices = [];\n }\n }\n\n Registry.call('_guiRelayout', gd, 'hiddenlabels', hiddenSlices);\n } else {\n var hasLegendgroup = legendgroup && legendgroup.length;\n var traceIndicesInGroup = [];\n var tracei;\n if(hasLegendgroup) {\n for(i = 0; i < fullData.length; i++) {\n tracei = fullData[i];\n if(!tracei.visible) continue;\n if(tracei.legendgroup === legendgroup) {\n traceIndicesInGroup.push(i);\n }\n }\n }\n\n if(mode === 'toggle') {\n var nextVisibility;\n\n switch(fullTrace.visible) {\n case true:\n nextVisibility = 'legendonly';\n break;\n case false:\n nextVisibility = false;\n break;\n case 'legendonly':\n nextVisibility = true;\n break;\n }\n\n if(hasLegendgroup) {\n for(i = 0; i < fullData.length; i++) {\n if(fullData[i].visible !== false && fullData[i].legendgroup === legendgroup) {\n setVisibility(fullData[i], nextVisibility);\n }\n }\n } else {\n setVisibility(fullTrace, nextVisibility);\n }\n } else if(mode === 'toggleothers') {\n // Compute the clicked index. expandedIndex does what we want for expanded traces\n // but also culls hidden traces. That means we have some work to do.\n var isClicked, isInGroup, notInLegend, otherState;\n var isIsolated = true;\n for(i = 0; i < fullData.length; i++) {\n isClicked = fullData[i] === fullTrace;\n notInLegend = fullData[i].showlegend !== true;\n if(isClicked || notInLegend) continue;\n\n isInGroup = (hasLegendgroup && fullData[i].legendgroup === legendgroup);\n\n if(!isInGroup && fullData[i].visible === true && !Registry.traceIs(fullData[i], 'notLegendIsolatable')) {\n isIsolated = false;\n break;\n }\n }\n\n for(i = 0; i < fullData.length; i++) {\n // False is sticky; we don't change it.\n if(fullData[i].visible === false) continue;\n\n if(Registry.traceIs(fullData[i], 'notLegendIsolatable')) {\n continue;\n }\n\n switch(fullTrace.visible) {\n case 'legendonly':\n setVisibility(fullData[i], true);\n break;\n case true:\n otherState = isIsolated ? true : 'legendonly';\n isClicked = fullData[i] === fullTrace;\n // N.B. consider traces that have a set legendgroup as toggleable\n notInLegend = (fullData[i].showlegend !== true && !fullData[i].legendgroup);\n isInGroup = isClicked || (hasLegendgroup && fullData[i].legendgroup === legendgroup);\n setVisibility(fullData[i], (isInGroup || notInLegend) ? true : otherState);\n break;\n }\n }\n }\n\n for(i = 0; i < carrs.length; i++) {\n kcont = carrs[i];\n if(!kcont) continue;\n var update = kcont.constructUpdate();\n\n var updateKeys = Object.keys(update);\n for(j = 0; j < updateKeys.length; j++) {\n key = updateKeys[j];\n val = attrUpdate[key] = attrUpdate[key] || [];\n val[carrIdx[i]] = update[key];\n }\n }\n\n // The length of the value arrays should be equal and any unspecified\n // values should be explicitly undefined for them to get properly culled\n // as updates and not accidentally reset to the default value. This fills\n // out sparse arrays with the required number of undefined values:\n keys = Object.keys(attrUpdate);\n for(i = 0; i < keys.length; i++) {\n key = keys[i];\n for(j = 0; j < attrIndices.length; j++) {\n // Use hasOwnPropety to protect against falsey values:\n if(!attrUpdate[key].hasOwnProperty(j)) {\n attrUpdate[key][j] = undefined;\n }\n }\n }\n\n Registry.call('_guiRestyle', gd, attrUpdate, attrIndices);\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nmodule.exports = function eventData(out, pt) {\n out.lon = pt.lon;\n out.lat = pt.lat;\n out.z = pt.z;\n return out;\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Events = require('../../lib/events');\nvar throttle = require('../../lib/throttle');\nvar getGraphDiv = require('../../lib/dom').getGraphDiv;\n\nvar hoverConstants = require('../fx/constants');\n\nvar unhover = module.exports = {};\n\nunhover.wrapped = function(gd, evt, subplot) {\n gd = getGraphDiv(gd);\n\n // Important, clear any queued hovers\n if(gd._fullLayout) {\n throttle.clear(gd._fullLayout._uid + hoverConstants.HOVERID);\n }\n\n unhover.raw(gd, evt, subplot);\n};\n\n\n// remove hover effects on mouse out, and emit unhover event\nunhover.raw = function raw(gd, evt) {\n var fullLayout = gd._fullLayout;\n var oldhoverdata = gd._hoverdata;\n\n if(!evt) evt = {};\n if(evt.target &&\n Events.triggerHandler(gd, 'plotly_beforehover', evt) === false) {\n return;\n }\n\n fullLayout._hoverlayer.selectAll('g').remove();\n fullLayout._hoverlayer.selectAll('line').remove();\n fullLayout._hoverlayer.selectAll('circle').remove();\n gd._hoverdata = undefined;\n\n if(evt.target && oldhoverdata) {\n gd.emit('plotly_unhover', {\n event: evt,\n points: oldhoverdata\n });\n }\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar Lib = require('../../lib');\nvar Axes = require('../../plots/cartesian/axes');\n\nvar calcCommon = require('../ohlc/calc').calcCommon;\n\nmodule.exports = function(gd, trace) {\n var fullLayout = gd._fullLayout;\n var xa = Axes.getFromId(gd, trace.xaxis);\n var ya = Axes.getFromId(gd, trace.yaxis);\n\n var x = xa.makeCalcdata(trace, 'x');\n\n var cd = calcCommon(gd, trace, x, ya, ptFunc);\n\n if(cd.length) {\n Lib.extendFlat(cd[0].t, {\n num: fullLayout._numBoxes,\n dPos: Lib.distinctVals(x).minDiff / 2,\n posLetter: 'x',\n valLetter: 'y',\n });\n\n fullLayout._numBoxes++;\n return cd;\n } else {\n return [{t: {empty: true}}];\n }\n};\n\nfunction ptFunc(o, h, l, c) {\n return {\n min: l,\n q1: Math.min(o, c),\n med: c,\n q3: Math.max(o, c),\n max: h,\n };\n}\n","module.exports = tokenize\r\n\r\nvar literals100 = require('./lib/literals')\r\n , operators = require('./lib/operators')\r\n , builtins100 = require('./lib/builtins')\r\n , literals300es = require('./lib/literals-300es')\r\n , builtins300es = require('./lib/builtins-300es')\r\n\r\nvar NORMAL = 999 // <-- never emitted\r\n , TOKEN = 9999 // <-- never emitted\r\n , BLOCK_COMMENT = 0\r\n , LINE_COMMENT = 1\r\n , PREPROCESSOR = 2\r\n , OPERATOR = 3\r\n , INTEGER = 4\r\n , FLOAT = 5\r\n , IDENT = 6\r\n , BUILTIN = 7\r\n , KEYWORD = 8\r\n , WHITESPACE = 9\r\n , EOF = 10\r\n , HEX = 11\r\n\r\nvar map = [\r\n 'block-comment'\r\n , 'line-comment'\r\n , 'preprocessor'\r\n , 'operator'\r\n , 'integer'\r\n , 'float'\r\n , 'ident'\r\n , 'builtin'\r\n , 'keyword'\r\n , 'whitespace'\r\n , 'eof'\r\n , 'integer'\r\n]\r\n\r\nfunction tokenize(opt) {\r\n var i = 0\r\n , total = 0\r\n , mode = NORMAL\r\n , c\r\n , last\r\n , content = []\r\n , tokens = []\r\n , token_idx = 0\r\n , token_offs = 0\r\n , line = 1\r\n , col = 0\r\n , start = 0\r\n , isnum = false\r\n , isoperator = false\r\n , input = ''\r\n , len\r\n\r\n opt = opt || {}\r\n var allBuiltins = builtins100\r\n var allLiterals = literals100\r\n if (opt.version === '300 es') {\r\n allBuiltins = builtins300es\r\n allLiterals = literals300es\r\n }\r\n\r\n // cache by name\r\n var builtinsDict = {}, literalsDict = {}\r\n for (var i = 0; i < allBuiltins.length; i++) {\r\n builtinsDict[allBuiltins[i]] = true\r\n }\r\n for (var i = 0; i < allLiterals.length; i++) {\r\n literalsDict[allLiterals[i]] = true\r\n }\r\n\r\n return function(data) {\r\n tokens = []\r\n if (data !== null) return write(data)\r\n return end()\r\n }\r\n\r\n function token(data) {\r\n if (data.length) {\r\n tokens.push({\r\n type: map[mode]\r\n , data: data\r\n , position: start\r\n , line: line\r\n , column: col\r\n })\r\n }\r\n }\r\n\r\n function write(chunk) {\r\n i = 0\r\n\r\n if (chunk.toString) chunk = chunk.toString()\r\n\r\n input += chunk.replace(/\\r\\n/g, '\\n')\r\n len = input.length\r\n\r\n\r\n var last\r\n\r\n while(c = input[i], i < len) {\r\n last = i\r\n\r\n switch(mode) {\r\n case BLOCK_COMMENT: i = block_comment(); break\r\n case LINE_COMMENT: i = line_comment(); break\r\n case PREPROCESSOR: i = preprocessor(); break\r\n case OPERATOR: i = operator(); break\r\n case INTEGER: i = integer(); break\r\n case HEX: i = hex(); break\r\n case FLOAT: i = decimal(); break\r\n case TOKEN: i = readtoken(); break\r\n case WHITESPACE: i = whitespace(); break\r\n case NORMAL: i = normal(); break\r\n }\r\n\r\n if(last !== i) {\r\n switch(input[last]) {\r\n case '\\n': col = 0; ++line; break\r\n default: ++col; break\r\n }\r\n }\r\n }\r\n\r\n total += i\r\n input = input.slice(i)\r\n return tokens\r\n }\r\n\r\n function end(chunk) {\r\n if(content.length) {\r\n token(content.join(''))\r\n }\r\n\r\n mode = EOF\r\n token('(eof)')\r\n return tokens\r\n }\r\n\r\n function normal() {\r\n content = content.length ? [] : content\r\n\r\n if(last === '/' && c === '*') {\r\n start = total + i - 1\r\n mode = BLOCK_COMMENT\r\n last = c\r\n return i + 1\r\n }\r\n\r\n if(last === '/' && c === '/') {\r\n start = total + i - 1\r\n mode = LINE_COMMENT\r\n last = c\r\n return i + 1\r\n }\r\n\r\n if(c === '#') {\r\n mode = PREPROCESSOR\r\n start = total + i\r\n return i\r\n }\r\n\r\n if(/\\s/.test(c)) {\r\n mode = WHITESPACE\r\n start = total + i\r\n return i\r\n }\r\n\r\n isnum = /\\d/.test(c)\r\n isoperator = /[^\\w_]/.test(c)\r\n\r\n start = total + i\r\n mode = isnum ? INTEGER : isoperator ? OPERATOR : TOKEN\r\n return i\r\n }\r\n\r\n function whitespace() {\r\n if(/[^\\s]/g.test(c)) {\r\n token(content.join(''))\r\n mode = NORMAL\r\n return i\r\n }\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n function preprocessor() {\r\n if((c === '\\r' || c === '\\n') && last !== '\\\\') {\r\n token(content.join(''))\r\n mode = NORMAL\r\n return i\r\n }\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n function line_comment() {\r\n return preprocessor()\r\n }\r\n\r\n function block_comment() {\r\n if(c === '/' && last === '*') {\r\n content.push(c)\r\n token(content.join(''))\r\n mode = NORMAL\r\n return i + 1\r\n }\r\n\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n function operator() {\r\n if(last === '.' && /\\d/.test(c)) {\r\n mode = FLOAT\r\n return i\r\n }\r\n\r\n if(last === '/' && c === '*') {\r\n mode = BLOCK_COMMENT\r\n return i\r\n }\r\n\r\n if(last === '/' && c === '/') {\r\n mode = LINE_COMMENT\r\n return i\r\n }\r\n\r\n if(c === '.' && content.length) {\r\n while(determine_operator(content));\r\n\r\n mode = FLOAT\r\n return i\r\n }\r\n\r\n if(c === ';' || c === ')' || c === '(') {\r\n if(content.length) while(determine_operator(content));\r\n token(c)\r\n mode = NORMAL\r\n return i + 1\r\n }\r\n\r\n var is_composite_operator = content.length === 2 && c !== '='\r\n if(/[\\w_\\d\\s]/.test(c) || is_composite_operator) {\r\n while(determine_operator(content));\r\n mode = NORMAL\r\n return i\r\n }\r\n\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n function determine_operator(buf) {\r\n var j = 0\r\n , idx\r\n , res\r\n\r\n do {\r\n idx = operators.indexOf(buf.slice(0, buf.length + j).join(''))\r\n res = operators[idx]\r\n\r\n if(idx === -1) {\r\n if(j-- + buf.length > 0) continue\r\n res = buf.slice(0, 1).join('')\r\n }\r\n\r\n token(res)\r\n\r\n start += res.length\r\n content = content.slice(res.length)\r\n return content.length\r\n } while(1)\r\n }\r\n\r\n function hex() {\r\n if(/[^a-fA-F0-9]/.test(c)) {\r\n token(content.join(''))\r\n mode = NORMAL\r\n return i\r\n }\r\n\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n function integer() {\r\n if(c === '.') {\r\n content.push(c)\r\n mode = FLOAT\r\n last = c\r\n return i + 1\r\n }\r\n\r\n if(/[eE]/.test(c)) {\r\n content.push(c)\r\n mode = FLOAT\r\n last = c\r\n return i + 1\r\n }\r\n\r\n if(c === 'x' && content.length === 1 && content[0] === '0') {\r\n mode = HEX\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n if(/[^\\d]/.test(c)) {\r\n token(content.join(''))\r\n mode = NORMAL\r\n return i\r\n }\r\n\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n function decimal() {\r\n if(c === 'f') {\r\n content.push(c)\r\n last = c\r\n i += 1\r\n }\r\n\r\n if(/[eE]/.test(c)) {\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n if ((c === '-' || c === '+') && /[eE]/.test(last)) {\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n if(/[^\\d]/.test(c)) {\r\n token(content.join(''))\r\n mode = NORMAL\r\n return i\r\n }\r\n\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n function readtoken() {\r\n if(/[^\\d\\w_]/.test(c)) {\r\n var contentstr = content.join('')\r\n if(literalsDict[contentstr]) {\r\n mode = KEYWORD\r\n } else if(builtinsDict[contentstr]) {\r\n mode = BUILTIN\r\n } else {\r\n mode = IDENT\r\n }\r\n token(content.join(''))\r\n mode = NORMAL\r\n return i\r\n }\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n}\r\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar mapboxgl = require('mapbox-gl');\n\nvar Lib = require('../../lib');\nvar getSubplotCalcData = require('../../plots/get_data').getSubplotCalcData;\nvar xmlnsNamespaces = require('../../constants/xmlns_namespaces');\nvar d3 = require('d3');\nvar Drawing = require('../../components/drawing');\nvar svgTextUtils = require('../../lib/svg_text_utils');\n\nvar Mapbox = require('./mapbox');\n\nvar MAPBOX = 'mapbox';\n\nvar constants = exports.constants = require('./constants');\n\nexports.name = MAPBOX;\n\nexports.attr = 'subplot';\n\nexports.idRoot = MAPBOX;\n\nexports.idRegex = exports.attrRegex = Lib.counterRegex(MAPBOX);\n\nexports.attributes = {\n subplot: {\n valType: 'subplotid',\n \n dflt: 'mapbox',\n editType: 'calc',\n \n }\n};\n\nexports.layoutAttributes = require('./layout_attributes');\n\nexports.supplyLayoutDefaults = require('./layout_defaults');\n\nexports.plot = function plot(gd) {\n var fullLayout = gd._fullLayout;\n var calcData = gd.calcdata;\n var mapboxIds = fullLayout._subplots[MAPBOX];\n\n if(mapboxgl.version !== constants.requiredVersion) {\n throw new Error(constants.wrongVersionErrorMsg);\n }\n\n var accessToken = findAccessToken(gd, mapboxIds);\n mapboxgl.accessToken = accessToken;\n\n for(var i = 0; i < mapboxIds.length; i++) {\n var id = mapboxIds[i];\n var subplotCalcData = getSubplotCalcData(calcData, MAPBOX, id);\n var opts = fullLayout[id];\n var mapbox = opts._subplot;\n\n if(!mapbox) {\n mapbox = new Mapbox(gd, id);\n fullLayout[id]._subplot = mapbox;\n }\n\n if(!mapbox.viewInitial) {\n mapbox.viewInitial = {\n center: Lib.extendFlat({}, opts.center),\n zoom: opts.zoom,\n bearing: opts.bearing,\n pitch: opts.pitch\n };\n }\n\n mapbox.plot(subplotCalcData, fullLayout, gd._promises);\n }\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldMapboxKeys = oldFullLayout._subplots[MAPBOX] || [];\n\n for(var i = 0; i < oldMapboxKeys.length; i++) {\n var oldMapboxKey = oldMapboxKeys[i];\n\n if(!newFullLayout[oldMapboxKey] && !!oldFullLayout[oldMapboxKey]._subplot) {\n oldFullLayout[oldMapboxKey]._subplot.destroy();\n }\n }\n};\n\nexports.toSVG = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[MAPBOX];\n var size = fullLayout._size;\n\n for(var i = 0; i < subplotIds.length; i++) {\n var opts = fullLayout[subplotIds[i]];\n var domain = opts.domain;\n var mapbox = opts._subplot;\n\n var imageData = mapbox.toImage('png');\n var image = fullLayout._glimages.append('svg:image');\n\n image.attr({\n xmlns: xmlnsNamespaces.svg,\n 'xlink:href': imageData,\n x: size.l + size.w * domain.x[0],\n y: size.t + size.h * (1 - domain.y[1]),\n width: size.w * (domain.x[1] - domain.x[0]),\n height: size.h * (domain.y[1] - domain.y[0]),\n preserveAspectRatio: 'none'\n });\n\n var subplotDiv = d3.select(opts._subplot.div);\n\n // Append logo if visible\n var hidden = subplotDiv.select('.mapboxgl-ctrl-logo').node().offsetParent === null;\n if(!hidden) {\n var logo = fullLayout._glimages.append('g');\n logo.attr('transform', 'translate(' + (size.l + size.w * domain.x[0] + 10) + ', ' + (size.t + size.h * (1 - domain.y[0]) - 31) + ')');\n logo.append('path')\n .attr('d', constants.mapboxLogo.path0)\n .style({\n opacity: 0.9,\n fill: '#ffffff',\n 'enable-background': 'new'\n });\n\n logo.append('path')\n .attr('d', constants.mapboxLogo.path1)\n .style('opacity', 0.35)\n .style('enable-background', 'new');\n\n logo.append('path')\n .attr('d', constants.mapboxLogo.path2)\n .style('opacity', 0.35)\n .style('enable-background', 'new');\n\n logo.append('polygon')\n .attr('points', constants.mapboxLogo.polygon)\n .style({\n opacity: 0.9,\n fill: '#ffffff',\n 'enable-background': 'new'\n });\n }\n\n // Add attributions\n var attributions = subplotDiv\n .select('.mapboxgl-ctrl-attrib').text()\n .replace('Improve this map', '');\n\n var attributionGroup = fullLayout._glimages.append('g');\n\n var attributionText = attributionGroup.append('text');\n attributionText\n .text(attributions)\n .classed('static-attribution', true)\n .attr({\n 'font-size': 12,\n 'font-family': 'Arial',\n 'color': 'rgba(0, 0, 0, 0.75)',\n 'text-anchor': 'end',\n 'data-unformatted': attributions\n });\n\n var bBox = Drawing.bBox(attributionText.node());\n\n // Break into multiple lines twice larger than domain\n var maxWidth = size.w * (domain.x[1] - domain.x[0]);\n if((bBox.width > maxWidth / 2)) {\n var multilineAttributions = attributions.split('|').join('
');\n attributionText\n .text(multilineAttributions)\n .attr('data-unformatted', multilineAttributions)\n .call(svgTextUtils.convertToTspans, gd);\n\n bBox = Drawing.bBox(attributionText.node());\n }\n attributionText.attr('transform', 'translate(-3, ' + (-bBox.height + 8) + ')');\n\n // Draw white rectangle behind text\n attributionGroup\n .insert('rect', '.static-attribution')\n .attr({\n x: -bBox.width - 6,\n y: -bBox.height - 3,\n width: bBox.width + 6,\n height: bBox.height + 3,\n fill: 'rgba(255, 255, 255, 0.75)'\n });\n\n // Scale down if larger than domain\n var scaleRatio = 1;\n if((bBox.width + 6) > maxWidth) scaleRatio = maxWidth / (bBox.width + 6);\n\n var offset = [(size.l + size.w * domain.x[1]), (size.t + size.h * (1 - domain.y[0]))];\n attributionGroup.attr('transform', 'translate(' + offset[0] + ',' + offset[1] + ') scale(' + scaleRatio + ')');\n }\n};\n\n// N.B. mapbox-gl only allows one accessToken to be set per page:\n// https://github.com/mapbox/mapbox-gl-js/issues/6331\nfunction findAccessToken(gd, mapboxIds) {\n var fullLayout = gd._fullLayout;\n var context = gd._context;\n\n // special case for Mapbox Atlas users\n if(context.mapboxAccessToken === '') return '';\n\n var tokensUseful = [];\n var tokensListed = [];\n var hasOneSetMapboxStyle = false;\n var wontWork = false;\n\n // Take the first token we find in a mapbox subplot.\n // These default to the context value but may be overridden.\n for(var i = 0; i < mapboxIds.length; i++) {\n var opts = fullLayout[mapboxIds[i]];\n var token = opts.accesstoken;\n\n if(isMapboxStyle(opts.style)) {\n if(token) {\n Lib.pushUnique(tokensUseful, token);\n } else {\n if(isMapboxStyle(opts._input.style)) {\n Lib.error('Uses Mapbox map style, but did not set an access token.');\n hasOneSetMapboxStyle = true;\n }\n wontWork = true;\n }\n }\n\n if(token) {\n Lib.pushUnique(tokensListed, token);\n }\n }\n\n if(wontWork) {\n var msg = hasOneSetMapboxStyle ?\n constants.noAccessTokenErrorMsg :\n constants.missingStyleErrorMsg;\n Lib.error(msg);\n throw new Error(msg);\n }\n\n if(tokensUseful.length) {\n if(tokensUseful.length > 1) {\n Lib.warn(constants.multipleTokensErrorMsg);\n }\n return tokensUseful[0];\n } else {\n if(tokensListed.length) {\n Lib.log([\n 'Listed mapbox access token(s)', tokensListed.join(','),\n 'but did not use a Mapbox map style, ignoring token(s).'\n ].join(' '));\n }\n return '';\n }\n}\n\nfunction isMapboxStyle(s) {\n return typeof s === 'string' && (\n constants.styleValuesMapbox.indexOf(s) !== -1 ||\n s.indexOf('mapbox://') === 0\n );\n}\n\nexports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[MAPBOX];\n\n for(var i = 0; i < subplotIds.length; i++) {\n var subplotObj = fullLayout[subplotIds[i]]._subplot;\n subplotObj.updateFx(fullLayout);\n }\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n'use strict';\n\nvar overrideAll = require('../../plot_api/edit_types').overrideAll;\nvar getModuleCalcData = require('../../plots/get_data').getModuleCalcData;\nvar plot = require('./plot');\nvar fxAttrs = require('../../components/fx/layout_attributes');\n\nvar setCursor = require('../../lib/setcursor');\nvar dragElement = require('../../components/dragelement');\nvar prepSelect = require('../../plots/cartesian/select').prepSelect;\nvar Lib = require('../../lib');\nvar Registry = require('../../registry');\n\nvar SANKEY = 'sankey';\n\nexports.name = SANKEY;\n\nexports.baseLayoutAttrOverrides = overrideAll({\n hoverlabel: fxAttrs.hoverlabel\n}, 'plot', 'nested');\n\nexports.plot = function(gd) {\n var calcData = getModuleCalcData(gd.calcdata, SANKEY)[0];\n plot(gd, calcData);\n exports.updateFx(gd);\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var hadPlot = (oldFullLayout._has && oldFullLayout._has(SANKEY));\n var hasPlot = (newFullLayout._has && newFullLayout._has(SANKEY));\n\n if(hadPlot && !hasPlot) {\n oldFullLayout._paperdiv.selectAll('.sankey').remove();\n oldFullLayout._paperdiv.selectAll('.bgsankey').remove();\n }\n};\n\nexports.updateFx = function(gd) {\n for(var i = 0; i < gd._fullData.length; i++) {\n subplotUpdateFx(gd, i);\n }\n};\n\nfunction subplotUpdateFx(gd, index) {\n var trace = gd._fullData[index];\n var fullLayout = gd._fullLayout;\n\n var dragMode = fullLayout.dragmode;\n var cursor = fullLayout.dragmode === 'pan' ? 'move' : 'crosshair';\n var bgRect = trace._bgRect;\n\n if(dragMode === 'pan' || dragMode === 'zoom') return;\n\n setCursor(bgRect, cursor);\n\n var xaxis = {\n _id: 'x',\n c2p: Lib.identity,\n _offset: trace._sankey.translateX,\n _length: trace._sankey.width\n };\n var yaxis = {\n _id: 'y',\n c2p: Lib.identity,\n _offset: trace._sankey.translateY,\n _length: trace._sankey.height\n };\n\n // Note: dragOptions is needed to be declared for all dragmodes because\n // it's the object that holds persistent selection state.\n var dragOptions = {\n gd: gd,\n element: bgRect.node(),\n plotinfo: {\n id: index,\n xaxis: xaxis,\n yaxis: yaxis,\n fillRangeItems: Lib.noop\n },\n subplot: index,\n // create mock x/y axes for hover routine\n xaxes: [xaxis],\n yaxes: [yaxis],\n doneFnCompleted: function(selection) {\n var traceNow = gd._fullData[index];\n var newGroups;\n var oldGroups = traceNow.node.groups.slice();\n var newGroup = [];\n\n function findNode(pt) {\n var nodes = traceNow._sankey.graph.nodes;\n for(var i = 0; i < nodes.length; i++) {\n if(nodes[i].pointNumber === pt) return nodes[i];\n }\n }\n\n for(var j = 0; j < selection.length; j++) {\n var node = findNode(selection[j].pointNumber);\n if(!node) continue;\n\n // If the node represents a group\n if(node.group) {\n // Add all its children to the current selection\n for(var k = 0; k < node.childrenNodes.length; k++) {\n newGroup.push(node.childrenNodes[k].pointNumber);\n }\n // Flag group for removal from existing list of groups\n oldGroups[node.pointNumber - traceNow.node._count] = false;\n } else {\n newGroup.push(node.pointNumber);\n }\n }\n\n newGroups = oldGroups\n .filter(Boolean)\n .concat([newGroup]);\n\n Registry.call('_guiRestyle', gd, {\n 'node.groups': [ newGroups ]\n }, index);\n }\n };\n\n dragOptions.prepFn = function(e, startX, startY) {\n prepSelect(e, startX, startY, dragOptions, dragMode);\n };\n\n dragElement.init(dragOptions);\n}\n","module.exports = circumradius\n\nvar circumcenter = require('circumcenter')\n\nfunction circumradius(points) {\n var center = circumcenter(points)\n var avgDist = 0.0\n for(var i=0; i