diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index ea6bdad11..27a9f9543 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -121,6 +121,12 @@ jobs: # if: false # Temporarily disabled to speed up the docs build run: pixi run notebook-exec-ci + # Sync the canonical Three.js snapshot into the docs assets so + # MkDocs can serve it (belt-and-braces; docs-build also depends on + # this task). + - name: Sync vendored JS into docs assets + run: pixi run docs-sync-vendored-js + # Build the static files for the documentation site for local inspection # Input: docs/ directory containing the Markdown files # Output: site/ directory containing the generated HTML files diff --git a/.gitignore b/.gitignore index cb7130005..22e2be679 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,10 @@ build/ # MkDocs docs/site/ +# Generated docs-serving copy of the canonical Three.js (synced from +# src/ by `pixi run docs-sync-vendored-js`; the source of truth is src/) +docs/docs/assets/javascripts/vendor/threejs/ + # Jupyter Notebooks .ipynb_checkpoints diff --git a/docs/dev/adrs/suggestions/plotting-docs-performance.md b/docs/dev/adrs/accepted/plotting-docs-performance.md similarity index 89% rename from docs/dev/adrs/suggestions/plotting-docs-performance.md rename to docs/dev/adrs/accepted/plotting-docs-performance.md index 99d2cf528..3d68101a4 100644 --- a/docs/dev/adrs/suggestions/plotting-docs-performance.md +++ b/docs/dev/adrs/accepted/plotting-docs-performance.md @@ -1,6 +1,6 @@ # ADR: Plotting & Docs Performance for Interactive Figures -**Status:** Proposed **Date:** 2026-06-02 +**Status:** Accepted **Date:** 2026-06-02 ## Group @@ -9,8 +9,8 @@ Documentation. > This ADR follows [`AGENTS.md`](../../../../AGENTS.md). It spans the > documentation build (MkDocs) and the display serialization contract, > so it also relates to the User-facing API ADRs -> [`display-ux.md`](../accepted/display-ux.md) and -> [`crysview-structure-visualization.md`](../accepted/crysview-structure-visualization.md). +> [`display-ux.md`](display-ux.md) and +> [`crysview-structure-visualization.md`](crysview-structure-visualization.md). > No public Python API change is intended; the change is in how figure > HTML and its JavaScript runtime are delivered. @@ -29,8 +29,8 @@ appear progressively. 1. Tutorial sources are `docs/docs/tutorials/ed-*.py`; notebooks are generated artifacts (per - [`notebook-generation.md`](../accepted/notebook-generation.md)) and - are committed with **outputs stripped** (`notebook-strip`). + [`notebook-generation.md`](notebook-generation.md)) and are committed + with **outputs stripped** (`notebook-strip`). 2. The docs CI ([`.github/workflows/docs.yml`](../../../../.github/workflows/docs.yml)) runs `notebook-exec-ci` to **execute** every notebook, baking the @@ -76,11 +76,11 @@ appear progressively. The same serialization paths feed three contexts with **conflicting** runtime needs, which is the crux of any robust fix: -| Target | Who | Runtime requirement | -| --------------------- | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Live notebook** | `_show_figure` in Jupyter | Runtime must be reachable from the running kernel/browser (today: Plotly via CDN; Three.js inlined). | -| **MkDocs site** | executed-notebook HTML embedded by `mkdocs-jupyter` | Wants the runtime loaded **once per page** and figures rendered **lazily**. | -| **Standalone report** | `report/html_renderer.py` → `PlotlyPlotter.serialize_html` / Three.js `render(offline=...)` | Delivery set by the existing `offline` flag — embedded/self-contained when `offline=True`, CDN when `offline=False` (default). Authoritative per [`project-summary-rendering.md`](../accepted/project-summary-rendering.md). | +| Target | Who | Runtime requirement | +| --------------------- | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Live notebook** | `_show_figure` in Jupyter | Runtime must be reachable from the running kernel/browser (today: Plotly via CDN; Three.js inlined). | +| **MkDocs site** | executed-notebook HTML embedded by `mkdocs-jupyter` | Wants the runtime loaded **once per page** and figures rendered **lazily**. | +| **Standalone report** | `report/html_renderer.py` → `PlotlyPlotter.serialize_html` / Three.js `render(offline=...)` | Delivery set by the existing `offline` flag — embedded/self-contained when `offline=True`, CDN when `offline=False` (default). Authoritative per [`project-summary-rendering.md`](project-summary-rendering.md). | A useful precedent already lives in the report renderer ([`src/easydiffraction/report/html_renderer.py`](../../../../src/easydiffraction/report/html_renderer.py)): @@ -157,7 +157,7 @@ delivered together** in one change. Concretely: `include_requirejs` if verification confirms it is no longer needed. 2. **Introduce a figure _embedding mode_** (a `(str, Enum)` per - [`enum-backed-closed-values.md`](../accepted/enum-backed-closed-values.md)) + [`enum-backed-closed-values.md`](enum-backed-closed-values.md)) threaded through `serialize_html` and the Three.js `render`: - `INLINE` — live Jupyter: render eagerly with the runtime reachable as today. **Default.** @@ -196,7 +196,7 @@ delivered together** in one change. Concretely: 4. **Reports keep their existing `offline` contract, authoritative and unchanged.** Per - [`project-summary-rendering.md`](../accepted/project-summary-rendering.md), + [`project-summary-rendering.md`](project-summary-rendering.md), `render_html_report(offline=...)` already decides runtime delivery: `offline=True` embeds a self-contained runtime; `offline=False` (the default) links the CDN, embedding Plotly in the first figure and @@ -261,6 +261,31 @@ delivered together** in one change. Concretely: scene consumes it (the tiny JSON is inert), keeping the override simple. +7. **SHARED figures downcast bulk float64 arrays to float32 (a bounded, + display-only precision decision).** In `SHARED` mode only, the + serializer transcodes the figure spec's float64 typed arrays to + float32 (~7 significant figures) before embedding, roughly halving + the payload (measured: ed-6 5.5 MB → 3.4 MB; 2.2 → 1.4 MB gzipped). + This is an explicit **display** decision, not a change to stored + data, and it is bounded: + - It operates on a **copy** of the serialized figure + (`fig.to_plotly_json()`), never the source parameters, CIF, or any + computation. + - It applies **only** to docs `SHARED` figures. Live notebooks + (`INLINE`), reports (`STANDALONE`), and every CIF/state file keep + full float64. + - It is **visually lossless**: screens resolve ~3 significant + figures, and the tutorials' hover templates format to a few + decimals (e.g. `:,.2f`), so float32 changes no displayed or + hover-visible value at the precision actually shown. + + Storage-side numeric precision is a separate, deliberate decision, + proposed in a `cif-numeric-precision` ADR suggestion (out of scope + for this change, not committed on this branch). Phase 2 adds coverage + for the `f8`→`f4` transcode (shape preserved, round-trips through + Plotly) and a representative hover/range-sensitive figure whose + formatted values are unchanged. + This pays the network bill once per page from the same origin, removes the per-figure JS duplication, and turns first paint from "render every figure" into "render nothing until seen" — addressing both bottlenecks @@ -366,7 +391,7 @@ inject one shared runtime, and add the lazy loader globally. the resolver with a unit test asserting both the default and the docs-build override. - **Report `offline` contract.** Keep - [`project-summary-rendering.md`](../accepted/project-summary-rendering.md) + [`project-summary-rendering.md`](project-summary-rendering.md) authoritative (Decision 4); the existing `offline=True` / `offline=False` report tests must stay green and gain no `SHARED` behavior. @@ -414,17 +439,24 @@ Settled in discussion on 2026-06-02: - Static-image-first placeholders (kaleido) if skeletons prove insufficient on the heaviest pages. +- Lazy on-scroll download of the Three.js runtime. The docs `SHARED` + three.js view self-hosts (page-level import map) and shows a loading + skeleton but renders **eagerly** — P1.8 was scoped to this low-risk + path. Deferring the runtime download behind an `IntersectionObserver` + (dynamic `import('three')`) is a follow-up; Plotly already loads + lazily and structure views are rare, so the win is small relative to + the module-rewrite risk. - Trace downsampling for very dense series in the docs view (smaller payload + faster draw) — a separate, data-side optimization. - A docs CI budget check (page weight / figure count) to catch regressions, aligning with - [`documentation-ci-build.md`](suggestions/documentation-ci-build.md). + [`documentation-ci-build.md`](../suggestions/documentation-ci-build.md). - Hoist a single importmap into the **report** template `
` for standalone reports that render multiple Three.js scenes (the same per-scene-importmap bug as docs, but governed by - [`project-summary-rendering.md`](../accepted/project-summary-rendering.md)). - Out of scope here since it touches the report contract; flagged so it - is not lost. + [`project-summary-rendering.md`](project-summary-rendering.md)). Out + of scope here since it touches the report contract; flagged so it is + not lost. ## Alternatives considered diff --git a/docs/dev/adrs/suggestions/space-group-database.md b/docs/dev/adrs/accepted/space-group-database.md similarity index 95% rename from docs/dev/adrs/suggestions/space-group-database.md rename to docs/dev/adrs/accepted/space-group-database.md index cc1cf3566..74083fd76 100644 --- a/docs/dev/adrs/suggestions/space-group-database.md +++ b/docs/dev/adrs/accepted/space-group-database.md @@ -1,16 +1,17 @@ # ADR: Complete Space-Group Reference Database -**Status:** Proposed **Date:** 2026-06-01 +**Status:** Accepted **Date:** 2026-06-01 ## Group Structure model. -> This ADR follows [`AGENTS.md`](../../../../AGENTS.md). It is a +> This ADR follows [`AGENTS.md`](../../../../AGENTS.md). It was a > prerequisite for -> [`wyckoff-letter-detection.md`](wyckoff-letter-detection.md): Wyckoff -> detection can only resolve letters for space groups present in the -> bundled table, and that table is currently incomplete. +> [`wyckoff-letter-detection.md`](../suggestions/wyckoff-letter-detection.md): +> Wyckoff detection can only resolve letters for space groups present in +> the bundled table, which this ADR's implementation completed for all +> 230 groups. ## Context @@ -102,7 +103,8 @@ Coordinates and operators stay **strings** (e.g. `'(x,1/2,0)'`, `sympify`) in `crystallography.py` and to keep the file JSON-native (§2). Triclinic no-setting groups keep the `None` coordinate code, as today (see the `''`→`None` normalisation in -[`wyckoff-letter-detection.md`](wyckoff-letter-detection.md) §2). +[`wyckoff-letter-detection.md`](../suggestions/wyckoff-letter-detection.md) +§2). **Query surface preserved.** On disk the JSON is a list of setting records, each carrying the canonical `IT_number` and @@ -225,7 +227,7 @@ containing: The maintainer inspects the report and **selects** the authoritative value per case. Selections are recorded in a checked-in **YAML overrides file**, -`docs/dev/adrs/suggestions/space-group-database/space_groups_overrides.yaml` +`docs/dev/adrs/accepted/space-group-database/space_groups_overrides.yaml` while the ADR is proposed. If this ADR is accepted, move that companion file with the ADR to the accepted ADR area. YAML lets each selection carry an inline comment recording its rationale. The generator consumes @@ -284,9 +286,10 @@ coordinate-system code": EasyDiffraction's `SpaceGroup` category uses the empty string `''`, while the table key uses `None`. The database keeps `(1, None)` and `(2, None)`; callers normalise `''` to `None` at lookup boundaries, as specified in -[`wyckoff-letter-detection.md`](wyckoff-letter-detection.md). This is -the least surprising solution because it keeps "no setting" distinct -from any real coordinate-code string without inventing a sentinel value. +[`wyckoff-letter-detection.md`](../suggestions/wyckoff-letter-detection.md). +This is the least surprising solution because it keeps "no setting" +distinct from any real coordinate-code string without inventing a +sentinel value. ### 8. The database file is generated, not hand-edited @@ -343,9 +346,9 @@ and the documented decisions in sync. early when `coord_code is None` and `_get_general_position_ops()` indexes the raw key, so they need the `''`→`None` normalisation defined in - [`wyckoff-letter-detection.md`](wyckoff-letter-detection.md) §2 (which - also updates these call sites). This ADR delivers the data; that ADR - delivers the `None`-code consumer handling. + [`wyckoff-letter-detection.md`](../suggestions/wyckoff-letter-detection.md) + §2 (which also updates these call sites). This ADR delivers the data; + that ADR delivers the `None`-code consumer handling. ## Alternatives Considered @@ -424,7 +427,7 @@ Generated and curation artifacts: `30f0051c669712ab34d991e60223c5e29264fc033b2ab03392cc01465ceba926` - `tmp/space-groups/helper-tools/generate_space_groups.py`: `bf10dcfbcf9e60485037ddabc65425e61f746ad9649cd3ccc67376dd6aae241a` -- `docs/dev/adrs/suggestions/space-group-database/space_groups_overrides.yaml`: +- `docs/dev/adrs/accepted/space-group-database/space_groups_overrides.yaml`: `7077eec25d0f3b852dd7096a24dc7ac438467f9cb594f91a65ce10cda0e0722a` - `tmp/space-groups/extracted-comparison/disagreements.md`: `dda940fbf75862516411685c9b9bdf7170fa4a116f90eeeff93bd068b8acda4c` @@ -508,8 +511,8 @@ respectively. ## Related ADRs -- [`wyckoff-letter-detection.md`](wyckoff-letter-detection.md) — the - dependent feature; its `''`→`None` coordinate-code normalisation and - its "unsupported group" handling both build on this database. +- [`wyckoff-letter-detection.md`](../suggestions/wyckoff-letter-detection.md) + — the dependent feature; its `''`→`None` coordinate-code normalisation + and its "unsupported group" handling both build on this database. - [`iucr-cif-tag-alignment.md`](../accepted/iucr-cif-tag-alignment.md) — consumes space-group and Wyckoff data on export. diff --git a/docs/dev/adrs/suggestions/space-group-database/space_groups_overrides.yaml b/docs/dev/adrs/accepted/space-group-database/space_groups_overrides.yaml similarity index 100% rename from docs/dev/adrs/suggestions/space-group-database/space_groups_overrides.yaml rename to docs/dev/adrs/accepted/space-group-database/space_groups_overrides.yaml diff --git a/docs/dev/adrs/index.md b/docs/dev/adrs/index.md index fe759d3ee..f14cb0be0 100644 --- a/docs/dev/adrs/index.md +++ b/docs/dev/adrs/index.md @@ -13,46 +13,47 @@ folders. ## ADR Index -| Group | Status | Title | Short description | Link | -| -------------------- | ---------- | -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | -| Analysis and fitting | Accepted | Fit Mode Categories and Fit Execution API | Splits fitting configuration from execution and defines active sibling fit-mode categories. | [`fit-mode-categories.md`](accepted/fit-mode-categories.md) | -| Analysis and fitting | Accepted | Runtime Fit Results | Keeps full fit outputs runtime-only in the current design unless a narrower persistence ADR is accepted. | [`runtime-fit-results.md`](accepted/runtime-fit-results.md) | -| Analysis and fitting | Accepted | Analysis CIF Fit State | Defines the persisted fit-state projection in `analysis/analysis.cif` and `analysis/results.h5`. | [`analysis-cif-fit-state.md`](accepted/analysis-cif-fit-state.md) | -| Analysis and fitting | Accepted | Parameter Correlation Persistence | Persists deterministic and posterior correlation summaries in `_fit_parameter_correlation` | [`parameter-correlation-persistence.md`](accepted/parameter-correlation-persistence.md) | -| Analysis and fitting | Suggestion | Fit Output Files and Data Exports | Narrows remaining archive/export questions after adopting `results.csv` and `results.h5`. | [`fit-output-files-and-data-exports.md`](suggestions/fit-output-files-and-data-exports.md) | -| Analysis and fitting | Accepted | Minimizer Category Consolidation | Collapses the seven Bayesian categories into one owner-level switchable `minimizer` category with HDF5 sidecar. | [`minimizer-category-consolidation.md`](accepted/minimizer-category-consolidation.md) | -| Analysis and fitting | Accepted | Minimizer Input/Output Split | Keeps `analysis.minimizer` input-only and moves scalar fit outputs to paired `analysis.fit_result` classes. | [`minimizer-input-output-split.md`](accepted/minimizer-input-output-split.md) | -| Analysis and fitting | Superseded | Parameter-Level Posterior Projection | Superseded by minimizer-category consolidation; kept as historical context for `parameter.posterior`. | [`parameter-posterior-summary.md`](suggestions/parameter-posterior-summary.md) | -| Analysis and fitting | Accepted | Undo Fit | Builds rollback semantics and CLI behavior on already-persisted pre-fit scalar snapshots. | [`undo-fit.md`](accepted/undo-fit.md) | -| Core model | Accepted | Category Owners and Real Datablocks | Introduces `CategoryOwner` so singleton sections do not pretend to be real CIF datablocks. | [`category-owner-sections.md`](accepted/category-owner-sections.md) | -| Core model | Accepted | Enum-Backed Closed Value Sets | Requires finite option sets to use `(str, Enum)` classes for validation and dispatch. | [`enum-backed-closed-values.md`](accepted/enum-backed-closed-values.md) | -| Core model | Accepted | Guarded Public Properties | Uses property setters as the public writability contract for guarded objects. | [`guarded-public-properties.md`](accepted/guarded-public-properties.md) | -| Core model | Accepted | Two-Level Category Parameter Access | Keeps parameter access to `datablock.category.parameter` or `datablock.collection[id].parameter`. | [`category-parameter-access.md`](accepted/category-parameter-access.md) | -| Documentation | Accepted | Descriptor Property Docstring Template | Makes descriptor metadata the source of truth for public property docstrings and annotations. | [`property-docstring-template.md`](accepted/property-docstring-template.md) | -| Documentation | Accepted | Development Documentation Structure | Defines the `docs/dev` layout for ADRs, issues, plans, package structure, and roadmap. | [`development-docs-structure.md`](accepted/development-docs-structure.md) | -| Documentation | Accepted | Help Method Discoverability | Requires primary public objects and facades to expose consistent `help()` output. | [`help-discoverability.md`](accepted/help-discoverability.md) | -| Documentation | Accepted | Notebook Generation Source of Truth | Treats tutorial `.py` files as editable sources and notebooks as generated artifacts. | [`notebook-generation.md`](accepted/notebook-generation.md) | -| Documentation | Suggestion | Documentation CI and Build Verification | Proposes strict MkDocs builds, API-derived docs, snippet smoke tests, link checks, and prose/spelling checks. | [`documentation-ci-build.md`](suggestions/documentation-ci-build.md) | -| Experiment model | Accepted | Immutable Experiment Type | Makes experiment type axes creation-time state rather than mutable runtime state. | [`immutable-experiment-type.md`](accepted/immutable-experiment-type.md) | -| Experiment model | Suggestion | Automatic Line-Segment Background Estimation | Detects line-segment background control points from the measured pattern, peak-insensitive and editable. | [`background-auto-estimate.md`](suggestions/background-auto-estimate.md) | -| Factories | Accepted | Factory Contracts and Metadata | Standardizes factory construction, metadata, compatibility, and registration behavior. | [`factory-contracts.md`](accepted/factory-contracts.md) | -| Naming | Accepted | Factory Tag Naming | Defines canonical factory tag style and standard abbreviations. | [`factory-tag-naming.md`](accepted/factory-tag-naming.md) | -| Persistence | Accepted | Free-Flag CIF Encoding | Encodes fit free/fixed state through CIF uncertainty syntax instead of a separate free list. | [`free-flag-cif-encoding.md`](accepted/free-flag-cif-encoding.md) | -| Persistence | Accepted | Loop Category Keys and Identity Naming | Documents loop collection keys and naming rules aligned with CIF category keys. | [`loop-category-key-identity.md`](accepted/loop-category-key-identity.md) | -| Persistence | Accepted | Project Facade and Persistence Layout | Documents the current `Project` facade and saved directory layout. | [`project-facade-and-persistence.md`](accepted/project-facade-and-persistence.md) | -| Persistence | Accepted | IUCr CIF Tag Alignment | Aligns default CIF tags with IUCr dictionaries and adds a clean IUCr-aligned report export. | [`iucr-cif-tag-alignment.md`](accepted/iucr-cif-tag-alignment.md) | -| Persistence | Accepted | Python and CIF Category Correspondence | Compares current Python paths and CIF tags, then records scoped one-to-one mapping for project-level categories. | [`python-cif-category-correspondence.md`](accepted/python-cif-category-correspondence.md) | -| Quality | Accepted | Lint Complexity Thresholds | Treats ruff PLR complexity limits as design guardrails that should not be bypassed. | [`lint-complexity-thresholds.md`](accepted/lint-complexity-thresholds.md) | -| Quality | Accepted | Test Strategy | Defines layered unit, functional, integration, script, and notebook testing. | [`test-strategy.md`](accepted/test-strategy.md) | -| Structure model | Accepted | Type-Neutral ADP Parameters | Keeps ADP parameter object identities stable across B/U and iso/ani switches. | [`type-neutral-adp-parameters.md`](accepted/type-neutral-adp-parameters.md) | -| Structure model | Suggestion | Automatic Wyckoff Position Detection | Detects Wyckoff letter, multiplicity, and site symmetry from space group and coordinates; calculators consume them. | [`wyckoff-letter-detection.md`](suggestions/wyckoff-letter-detection.md) | -| Structure model | Suggestion | Complete Space-Group Reference Database | One-time build of a complete space_groups.json.gz (all 230 groups) from cctbx, verified against multiple sources. | [`space-group-database.md`](suggestions/space-group-database.md) | -| User-facing API | Accepted | Crystal Structure 3D Visualization | Adds a renderer-neutral scene model drawn by ASCII and interactive Three.js engines for viewing crystal structures. | [`crysview-structure-visualization.md`](accepted/crysview-structure-visualization.md) | -| User-facing API | Accepted | Display UX Facade | Defines `project.display` and `project.rendering` responsibilities and display method names. | [`display-ux.md`](accepted/display-ux.md) | -| User-facing API | Accepted | Fit Results Display Naming | Short, IUCr/GUM-aligned column headers (`s.u.`, `value`, `95% CI`) with a footnote glossary on every fit table. | [`fit-results-display-naming.md`](accepted/fit-results-display-naming.md) | -| User-facing API | Accepted | Project Summary Rendering | Defines project report configuration plus terminal, HTML, TeX, PDF, and clean report-CIF metadata policy. | [`project-summary-rendering.md`](accepted/project-summary-rendering.md) | -| User-facing API | Accepted | Selector Families | Distinguishes backend selectors, switchable-category selectors, and active-sibling selectors. | [`selector-families.md`](accepted/selector-families.md) | -| User-facing API | Accepted | String Paths and Live Descriptors | Separates persisted field selectors from references to live model parameters. | [`string-paths-and-live-descriptors.md`](accepted/string-paths-and-live-descriptors.md) | -| User-facing API | Accepted | Switchable Category API | Places multi-type category selectors on the owner and omits public selectors for fixed or single-type categories. | [`switchable-category-api.md`](accepted/switchable-category-api.md) | -| User-facing API | Accepted | Switchable Category Owned Selectors | Moves the writable `type` selector and `show_supported()` onto the category itself; collapses the CIF duplication. | [`switchable-category-owned-selectors.md`](accepted/switchable-category-owned-selectors.md) | -| User-facing API | Accepted | Value-Selector Discovery | Gives enumerated value fields a per-descriptor `show_supported()`, beside the three category-level selector families. | [`value-selector-discovery.md`](accepted/value-selector-discovery.md) | +| Group | Status | Title | Short description | Link | +| -------------------- | ---------- | --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | +| Analysis and fitting | Accepted | Fit Mode Categories and Fit Execution API | Splits fitting configuration from execution and defines active sibling fit-mode categories. | [`fit-mode-categories.md`](accepted/fit-mode-categories.md) | +| Analysis and fitting | Accepted | Runtime Fit Results | Keeps full fit outputs runtime-only in the current design unless a narrower persistence ADR is accepted. | [`runtime-fit-results.md`](accepted/runtime-fit-results.md) | +| Analysis and fitting | Accepted | Analysis CIF Fit State | Defines the persisted fit-state projection in `analysis/analysis.cif` and `analysis/results.h5`. | [`analysis-cif-fit-state.md`](accepted/analysis-cif-fit-state.md) | +| Analysis and fitting | Accepted | Parameter Correlation Persistence | Persists deterministic and posterior correlation summaries in `_fit_parameter_correlation` | [`parameter-correlation-persistence.md`](accepted/parameter-correlation-persistence.md) | +| Analysis and fitting | Suggestion | Fit Output Files and Data Exports | Narrows remaining archive/export questions after adopting `results.csv` and `results.h5`. | [`fit-output-files-and-data-exports.md`](suggestions/fit-output-files-and-data-exports.md) | +| Analysis and fitting | Accepted | Minimizer Category Consolidation | Collapses the seven Bayesian categories into one owner-level switchable `minimizer` category with HDF5 sidecar. | [`minimizer-category-consolidation.md`](accepted/minimizer-category-consolidation.md) | +| Analysis and fitting | Accepted | Minimizer Input/Output Split | Keeps `analysis.minimizer` input-only and moves scalar fit outputs to paired `analysis.fit_result` classes. | [`minimizer-input-output-split.md`](accepted/minimizer-input-output-split.md) | +| Analysis and fitting | Superseded | Parameter-Level Posterior Projection | Superseded by minimizer-category consolidation; kept as historical context for `parameter.posterior`. | [`parameter-posterior-summary.md`](suggestions/parameter-posterior-summary.md) | +| Analysis and fitting | Accepted | Undo Fit | Builds rollback semantics and CLI behavior on already-persisted pre-fit scalar snapshots. | [`undo-fit.md`](accepted/undo-fit.md) | +| Core model | Accepted | Category Owners and Real Datablocks | Introduces `CategoryOwner` so singleton sections do not pretend to be real CIF datablocks. | [`category-owner-sections.md`](accepted/category-owner-sections.md) | +| Core model | Accepted | Enum-Backed Closed Value Sets | Requires finite option sets to use `(str, Enum)` classes for validation and dispatch. | [`enum-backed-closed-values.md`](accepted/enum-backed-closed-values.md) | +| Core model | Accepted | Guarded Public Properties | Uses property setters as the public writability contract for guarded objects. | [`guarded-public-properties.md`](accepted/guarded-public-properties.md) | +| Core model | Accepted | Two-Level Category Parameter Access | Keeps parameter access to `datablock.category.parameter` or `datablock.collection[id].parameter`. | [`category-parameter-access.md`](accepted/category-parameter-access.md) | +| Documentation | Accepted | Descriptor Property Docstring Template | Makes descriptor metadata the source of truth for public property docstrings and annotations. | [`property-docstring-template.md`](accepted/property-docstring-template.md) | +| Documentation | Accepted | Development Documentation Structure | Defines the `docs/dev` layout for ADRs, issues, plans, package structure, and roadmap. | [`development-docs-structure.md`](accepted/development-docs-structure.md) | +| Documentation | Accepted | Help Method Discoverability | Requires primary public objects and facades to expose consistent `help()` output. | [`help-discoverability.md`](accepted/help-discoverability.md) | +| Documentation | Accepted | Notebook Generation Source of Truth | Treats tutorial `.py` files as editable sources and notebooks as generated artifacts. | [`notebook-generation.md`](accepted/notebook-generation.md) | +| Documentation | Accepted | Plotting & Docs Performance for Interactive Figures | Self-hosts a lazy, shared figure runtime so docs pages load fast and progressively while staying interactive. | [`plotting-docs-performance.md`](accepted/plotting-docs-performance.md) | +| Documentation | Suggestion | Documentation CI and Build Verification | Proposes strict MkDocs builds, API-derived docs, snippet smoke tests, link checks, and prose/spelling checks. | [`documentation-ci-build.md`](suggestions/documentation-ci-build.md) | +| Experiment model | Accepted | Immutable Experiment Type | Makes experiment type axes creation-time state rather than mutable runtime state. | [`immutable-experiment-type.md`](accepted/immutable-experiment-type.md) | +| Experiment model | Suggestion | Automatic Line-Segment Background Estimation | Detects line-segment background control points from the measured pattern, peak-insensitive and editable. | [`background-auto-estimate.md`](suggestions/background-auto-estimate.md) | +| Factories | Accepted | Factory Contracts and Metadata | Standardizes factory construction, metadata, compatibility, and registration behavior. | [`factory-contracts.md`](accepted/factory-contracts.md) | +| Naming | Accepted | Factory Tag Naming | Defines canonical factory tag style and standard abbreviations. | [`factory-tag-naming.md`](accepted/factory-tag-naming.md) | +| Persistence | Accepted | Free-Flag CIF Encoding | Encodes fit free/fixed state through CIF uncertainty syntax instead of a separate free list. | [`free-flag-cif-encoding.md`](accepted/free-flag-cif-encoding.md) | +| Persistence | Accepted | Loop Category Keys and Identity Naming | Documents loop collection keys and naming rules aligned with CIF category keys. | [`loop-category-key-identity.md`](accepted/loop-category-key-identity.md) | +| Persistence | Accepted | Project Facade and Persistence Layout | Documents the current `Project` facade and saved directory layout. | [`project-facade-and-persistence.md`](accepted/project-facade-and-persistence.md) | +| Persistence | Accepted | IUCr CIF Tag Alignment | Aligns default CIF tags with IUCr dictionaries and adds a clean IUCr-aligned report export. | [`iucr-cif-tag-alignment.md`](accepted/iucr-cif-tag-alignment.md) | +| Persistence | Accepted | Python and CIF Category Correspondence | Compares current Python paths and CIF tags, then records scoped one-to-one mapping for project-level categories. | [`python-cif-category-correspondence.md`](accepted/python-cif-category-correspondence.md) | +| Quality | Accepted | Lint Complexity Thresholds | Treats ruff PLR complexity limits as design guardrails that should not be bypassed. | [`lint-complexity-thresholds.md`](accepted/lint-complexity-thresholds.md) | +| Quality | Accepted | Test Strategy | Defines layered unit, functional, integration, script, and notebook testing. | [`test-strategy.md`](accepted/test-strategy.md) | +| Structure model | Accepted | Type-Neutral ADP Parameters | Keeps ADP parameter object identities stable across B/U and iso/ani switches. | [`type-neutral-adp-parameters.md`](accepted/type-neutral-adp-parameters.md) | +| Structure model | Suggestion | Automatic Wyckoff Position Detection | Detects Wyckoff letter, multiplicity, and site symmetry from space group and coordinates; calculators consume them. | [`wyckoff-letter-detection.md`](suggestions/wyckoff-letter-detection.md) | +| Structure model | Accepted | Complete Space-Group Reference Database | One-time build of a complete space_groups.json.gz (all 230 groups) from cctbx, verified against multiple sources. | [`space-group-database.md`](accepted/space-group-database.md) | +| User-facing API | Accepted | Crystal Structure 3D Visualization | Adds a renderer-neutral scene model drawn by ASCII and interactive Three.js engines for viewing crystal structures. | [`crysview-structure-visualization.md`](accepted/crysview-structure-visualization.md) | +| User-facing API | Accepted | Display UX Facade | Defines `project.display` and `project.rendering` responsibilities and display method names. | [`display-ux.md`](accepted/display-ux.md) | +| User-facing API | Accepted | Fit Results Display Naming | Short, IUCr/GUM-aligned column headers (`s.u.`, `value`, `95% CI`) with a footnote glossary on every fit table. | [`fit-results-display-naming.md`](accepted/fit-results-display-naming.md) | +| User-facing API | Accepted | Project Summary Rendering | Defines project report configuration plus terminal, HTML, TeX, PDF, and clean report-CIF metadata policy. | [`project-summary-rendering.md`](accepted/project-summary-rendering.md) | +| User-facing API | Accepted | Selector Families | Distinguishes backend selectors, switchable-category selectors, and active-sibling selectors. | [`selector-families.md`](accepted/selector-families.md) | +| User-facing API | Accepted | String Paths and Live Descriptors | Separates persisted field selectors from references to live model parameters. | [`string-paths-and-live-descriptors.md`](accepted/string-paths-and-live-descriptors.md) | +| User-facing API | Accepted | Switchable Category API | Places multi-type category selectors on the owner and omits public selectors for fixed or single-type categories. | [`switchable-category-api.md`](accepted/switchable-category-api.md) | +| User-facing API | Accepted | Switchable Category Owned Selectors | Moves the writable `type` selector and `show_supported()` onto the category itself; collapses the CIF duplication. | [`switchable-category-owned-selectors.md`](accepted/switchable-category-owned-selectors.md) | +| User-facing API | Accepted | Value-Selector Discovery | Gives enumerated value fields a per-descriptor `show_supported()`, beside the three category-level selector families. | [`value-selector-discovery.md`](accepted/value-selector-discovery.md) | diff --git a/docs/dev/adrs/suggestions/cif-numeric-precision.md b/docs/dev/adrs/suggestions/cif-numeric-precision.md new file mode 100644 index 000000000..f2d078545 --- /dev/null +++ b/docs/dev/adrs/suggestions/cif-numeric-precision.md @@ -0,0 +1,129 @@ +# ADR: Meaningful Numeric Precision in CIF Serialization + +**Status:** Proposed **Date:** 2026-06-02 + +## Group + +Core model. + +> This ADR follows [`AGENTS.md`](../../../../AGENTS.md). It is the +> data-side counterpart to +> [`plotting-docs-performance.md`](plotting-docs-performance.md), which +> handles **display** precision (downcasting plot arrays to float32). +> This ADR concerns the precision of numbers we **store and serialize** +> in CIF, which is a separate decision because CIF is a data +> source-of-truth, not a throwaway view. + +## Context + +Numbers written to CIF (and to the figure data derived from them) carry +far more digits than is meaningful. Calculated intensities, profile +points, and derived quantities are serialized at essentially full +float64 precision (~15–17 digits), even though only a few digits are +significant. Two costs follow: + +1. **File and payload bloat.** Profile arrays dominate CIF size and the + embedded plot data (a single powder pattern serialized at full + precision is hundreds of KB of digits that nobody reads). +2. **Meaningless precision.** A calculated intensity printed as + `1234.5678901234567` implies a precision the calculation does not + have, and a _fixed_ number of decimals is wrong at both ends of the + scale (it over-prints small values and under-prints large ones). + +The right notion is **relative precision** — significant figures tied to +the value's actual significance — not a fixed decimal count. For refined +parameters the significance is already known: the standard uncertainty +(s.u.). + +**Important boundary.** Precision needed to _restore fit state_ +(reload-and-continue) is not the same as precision a human or a +publication needs. Any reduction must not silently break round-tripping +of state files. See **Risks**. + +## Options considered + +| # | Option | Adapts to scale? | Best for | Notes | +| --- | ----------------------------------------------------------- | ---------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| A | Status quo — full float64 repr | n/a | nothing | Baseline; bloated, meaningless precision. | +| B | Fixed decimal places (`%.4f`) | ❌ | nothing | Wrong at both ends of the scale. | +| C | Significant figures (`%.Ng`) | ✅ | derived/calculated values without s.u. | Simple, relative precision; the elegant default. | +| D | Uncertainty-aware (IUCr/GUM): quote value to match its s.u. | ✅ | refined parameters **with** s.u. | `1.2345(12)`; the crystallographic standard. | +| E | Range/variation-based (per array) | ✅ | profile/array data (calc patterns) | Pick the quantum from the array's dynamic range so the step is below the meaningful/visual threshold. The idea raised in discussion. | +| F | Per-tag policy (dictionary-driven) | ✅ | everything, centrally | Different tags need different precision; drive defaults from the CIF dictionary (`cif_core.dic`) where it specifies a type/precision. | +| G | float32 for arrays (display only) | ✅ | the plot path | Already adopted for the docs view in the plotting ADR; not a CIF-storage change. | + +## Decision (proposed — direction, not yet locked) + +A layered policy, applied at CIF serialization: + +1. **Refined parameters with an s.u. → uncertainty-aware (D).** Print + the value to the precision implied by its s.u. (IUCr convention). + This is both correct and concise, and it is what scientists expect. +2. **Derived/calculated scalars without s.u. → significant figures + (C).** A sensible default (e.g. 6 s.f.), configurable. +3. **Profile/array data → range-aware significant figures (E).** Choose + the per-array precision from its dynamic range so the quantization is + invisible (and pair with float32 on the display side, option G). +4. **Central policy object (F).** One place defines the default s.f. and + per-category/per-tag overrides, seeded from the CIF dictionary where + it constrains a tag. No scattered `round()` calls. Aligns with the + memory that the dictionaries (`cif_core.dic`, `cif_pow.dic`) are the + spec. +5. **Two precision profiles.** A **human/published** profile (concise, + the above) and a **state-restore** profile (full precision) for files + whose job is to reproduce a fit exactly. The active profile is chosen + by the writer, not guessed. + +This keeps stored numbers meaningful and small without risking +reproducibility, and gives the docs/plots smaller inputs at the source. + +## Consequences + +### Positive + +- Smaller CIF files and smaller derived plot payloads, at the source. +- Numbers convey real significance (s.u.-matched), aiding readability + and publication. +- One precision policy instead of ad-hoc formatting. + +### Negative / cost + +- A precision policy and per-tag configuration to design and maintain. +- Tests that assert exact serialized strings must move to + tolerance-based comparisons. +- The human-vs-state-restore split must be explicit everywhere CIF is + written. + +## Risks and mitigations + +- **Round-trip / fit restart.** Reducing precision on a file used to + restore state can change results. _Mitigation:_ the state-restore + profile keeps full precision; only human/published output is reduced. + Cover with a save→load→save round-trip test on the state profile. +- **Reproducibility / regression diffs.** Existing golden-file tests and + CIF diffs assume exact digits. _Mitigation:_ update them to the policy + and tolerance comparisons in the same change. +- **Over-aggressive rounding.** Choosing too few s.f. for coordinates or + cell parameters loses science. _Mitigation:_ per-tag floors from the + dictionary; conservative defaults. + +## Open questions + +1. Default significant-figure count for the human profile (5? 6?). +2. Whether the policy is per-`CategoryItem`, per-tag, or both. +3. How to source per-tag precision from `cif_core.dic` (does it specify + enough), versus a hand-maintained table. +4. Whether to expose the active profile to users (e.g. + `project.save(..., precision='full' | 'concise')`). + +## Alternatives considered + +See **Options A–G**. A (status quo) and B (fixed decimals) are rejected. +G (float32 arrays) is display-only and already handled by the plotting +ADR; it is complementary, not a substitute, for storage precision. + +## Deferred work + +- Binary/columnar storage for large profile arrays (e.g. HDF5 datasets + with an explicit dtype) instead of text CIF, where round-tripping + exact arrays matters and text is the wrong container. diff --git a/docs/dev/adrs/suggestions/wyckoff-letter-detection.md b/docs/dev/adrs/suggestions/wyckoff-letter-detection.md index f5f671d33..a838598e1 100644 --- a/docs/dev/adrs/suggestions/wyckoff-letter-detection.md +++ b/docs/dev/adrs/suggestions/wyckoff-letter-detection.md @@ -72,11 +72,12 @@ single calculator backend. ### 1. EasyDiffraction owns the Wyckoff position The library — not a calculator — is the single source of truth for an -atom site's Wyckoff **letter**, **multiplicity**, and **site symmetry**. -Calculators consume these model values and must not re-derive them. -Deriving them model-side, from the un-normalized fractional coordinates, -is also the _correct_ place: it avoids the `[0, 1)` normalization that -forces the cryspy override to exist today. +atom site's Wyckoff **letter** and **multiplicity**, and for the +space-group Wyckoff table that exposes **site symmetry**. Calculators +consume these model values and must not re-derive them. Deriving them +model-side, from the un-normalized fractional coordinates, is also the +_correct_ place: it avoids the `[0, 1)` normalization that forces the +cryspy override to exist today. ### 2. Detection lives in the crystallography submodule @@ -88,21 +89,29 @@ Add to key normalisation below); returns `None` only when that pair is genuinely absent from `SPACE_GROUPS`, preserving today's "no letter, skip constraints" behaviour. Otherwise it tests the coordinate for - membership in each Wyckoff orbit and returns the matched position. -- `wyckoff_position_info(name_hm, coord_code, letter) -> WyckoffPosition | None` - — a plain table lookup that returns the same record for an - already-known letter (auto-detected or user-set), used to populate the - derived descriptors without re-running the matcher. + membership in each Wyckoff orbit and returns the matched position plus + the nearest matched representative template. +- `wyckoff_position_info(name_hm, coord_code, letter, fract_xyz=None, tol=...) -> WyckoffPosition | None` + — a table lookup for an already-known letter (auto-detected or + user-set). When `fract_xyz` is supplied, it selects the nearest orbit + representative for that letter before returning the record; when + `fract_xyz` is omitted, it returns the record without a selected + representative. This populates derived values and supports explicit- + letter snapping without re-running the all-letter matcher. Both return a small frozen -`WyckoffPosition(letter, multiplicity, site_symmetry)` dataclass rather -than bare tuples: the three values are always consumed together (to fill -the letter, multiplicity, and site-symmetry descriptors), named fields -read better at the call sites, and the record can later carry the -equivalent-position orbit without a breaking positional change. This -matches the project's frozen-dataclass metadata idiom (`TypeInfo`, -`Compatibility`); the bare-tuple alternative is rejected as less -readable and fragile to extension. +`WyckoffPosition(letter, multiplicity, site_symmetry, coord_template)` +dataclass rather than bare tuples: the named values are consumed +together when a position is detected or looked up (the atom site stores +the letter and multiplicity; the derived `space_group_Wyckoff` table +exposes the site-symmetry symbol), and the selected `coord_template` is +what coordinate snapping and constrained-axis flags use. +`coord_template` is `None` only for plain table lookups that do not +provide coordinates. Named fields read better at the call sites, and the +record can later carry the equivalent-position orbit without a breaking +positional change. This matches the project's frozen-dataclass metadata +idiom (`TypeInfo`, `Compatibility`); the bare-tuple alternative is +rejected as less readable and fragile to extension. **Orbit-membership test.** For a coordinate `p = (x, y, z)` and an orbit template parsed into rotation `R` and translation `b`, the point lies on @@ -123,6 +132,16 @@ Refusing to guess (raising) was rejected because it would break the and an arbitrary table-order pick was rejected as less physical than nearest-position. +**Representative selection.** The matcher also records the nearest +template inside the winning orbit. That selected `coord_template`, not +the first `coords_xyz[0]` entry in the table, drives the existing +coordinate-snap and constrained-axis logic. For example, in Pm-3m letter +`6e`, a point near `(0,x,0)` must snap and constrain according to the +`(0,x,0)` representative, not the first table representative `(x,0,0)`. +The explicit-letter path uses +`wyckoff_position_info(..., fract_xyz=current_coords)` to select the +nearest representative for the chosen letter before snapping. + **Numeric kernel.** Solve the modular linear system with NumPy least-squares and check the residual modulo 1 against `tol` (reduce `p − b` to its nearest unit cell, solve `R·v = d`, require the residual @@ -150,12 +169,13 @@ should adopt it too, since they currently miss the `None`-keyed groups. The `wyckoff_letter` descriptor holds a concrete value whenever the space group is supported — there is no persistent "auto vs explicit" mode and no marker bit. The one exception is a space group absent from -`SPACE_GROUPS` (§8), which splits in two: auto-detection is a no-op -there, so **without** an explicit letter the value stays empty, while an -explicit Python/CIF letter is stored verbatim (but carries no -multiplicity, site symmetry, or constraints — §6). §9 defines how each -of those cases serialises. For a supported group the letter changes in -three ways: +`SPACE_GROUPS` (§8), where auto-detection is a no-op. If no letter is +currently stored, the value stays empty; if any non-empty letter is +stored, whether supplied by Python/CIF input or preserved after a later +change from a supported key into an unsupported one, it is kept verbatim +but carries no Wyckoff record, derived multiplicity, or constraints +(§6). §9 defines how each of those cases serialises. For a supported +group the letter changes in three ways: - **Creation or load without a letter.** When `atom_sites.create()` is called without `wyckoff_letter`, or a CIF row has no @@ -170,15 +190,27 @@ three ways: honest as the structure is edited. The trigger is update-flow change-tracking, not a single setter (§4), so every public coordinate edit is covered. +- **User edits the space group or setting.** A change to + `structure.space_group.name_h_m` or + `structure.space_group.it_coordinate_system_code` invalidates every + atom site's Wyckoff record even when coordinates are unchanged. For a + supported new key, all sites re-detect from their current coordinates + and refresh letter, multiplicity, and selected representative. For an + unsupported new key, auto-detection is a no-op: existing letters are + preserved verbatim as unvalidated values, multiplicities become + `None`, constraints are skipped, and a warning records that the group + is untabulated. Preserving the stored letter is chosen over clearing + it because, without a persistent auto/provided marker, deleting it + could remove valid user or CIF input. - **User edits the letter** (public letter setter). The chosen letter is applied as-is and persists. Its site-symmetry constraints snap the constrained axes onto the special position (§5); if the pre-set coordinates lay beyond `tol` of that letter's orbit — they did not fit — a warning is logged that the coordinates were adjusted, but the change is still made. A user-set letter is not re-detected until the - user next edits the coordinates. (For a space group absent from the - table the letter is accepted unvalidated and carries no derived data - or constraints — §8.) + user next edits the coordinates or space-group key. (For a space group + absent from the table the letter is accepted unvalidated and carries + no derived data or constraints — §8.) Detection writes the resolved letter through a dedicated internal mutator, `_set_wyckoff_letter_detected()`, modelled on the existing @@ -190,14 +222,14 @@ next update. ### 4. Detection triggers -Both triggers live in the atom-site update flow +All triggers live in the atom-site update flow ([`default.py:674`](../../../../src/easydiffraction/datablocks/structure/categories/atom_sites/default.py)), not on any individual setter. A single setter hook would be wrong: a coordinate is a live `Parameter`, so `atom.fract_x = 0.1` and `atom.fract_x.value = 0.1` are both public edits — and the latter is the -common one — yet neither must be missed. Both mark the owner dirty and -run `_update()`, so the update flow is the single place that sees every -edit. +common one — yet neither must be missed. Both coordinate paths mark the +owner dirty and run `_update()`, so the update flow is the single place +that sees every edit. - **Fill-if-empty.** An empty letter on a site whose space group is supported is detected and stored. Idempotent — a no-op once the letter @@ -212,6 +244,13 @@ edit. (including the constraint snap that follows in the same pass) — so only a genuine _later_ coordinate change re-detects, and a freshly loaded or user-set letter is not re-detected spuriously. +- **Re-detect on a space-group key change.** The flow also records the + `(name_hm, coord_code)` key used for the last Wyckoff derivation. If + that key changes, every atom site re-runs the supported/unsupported + policy from §3 even when coordinates are unchanged. A supported new + key re-detects all letters and multiplicities; an unsupported key + preserves stored letters as unvalidated values, clears derived + multiplicity to `None`, and skips constraints. Two write paths are deliberately excluded. The minimizer runs `_update()` with `called_by_minimizer=True`, which skips re-detection @@ -220,8 +259,10 @@ varies throughout a fit while the letter stays fixed. The constraint pipeline's snap does not re-trigger detection because it writes within the same pass and its result becomes the new baseline. A user-set letter — even a deliberately less-special one — is therefore never silently -overwritten by an internal recompute; only a real change in the stored -coordinates re-detects. +overwritten by a minimizer update or by the same-pass constraint snap. +It can be re-detected only by a later user coordinate edit or a later +space-group / setting key edit, both of which are explicit model changes +tracked by the stored baselines above. ### 5. Lenient proximity matching, with transparent snapping @@ -236,32 +277,75 @@ project-level tolerance setting is intentionally deferred (see Deferred Work) until users ask for it. Once a letter is assigned, the existing constraint step snaps the constrained axes onto their exact special values. Neither the letter nor the coordinates change silently in -response to a user edit; two `log.warning` messages cover the cases (per -the project's "safe defaults, clear errors" principle): +response to a user edit; `log.warning` messages cover the cases (per the +project's "safe defaults, clear errors" principle): -- a user coordinate edit that changes the detected letter → _"coordinate - change moved the Wyckoff letter of0&&(D=0);break}return D>0?M.slice(0,D)+M.slice(P+1):M}var f;function c(M,q){var E=t(M,q);if(!E)return M+"";var D=E[0],P=E[1],R=P-(f=Math.max(-8,Math.min(8,Math.floor(P/3)))*3)+1,z=D.length;return R===z?D:R>z?D+new Array(R-z+1).join("0"):R>0?D.slice(0,R)+"."+D.slice(R):"0."+new Array(1-R).join("0")+t(M,Math.max(0,q+R-1))[0]}function v(M,q){var E=t(M,q);if(!E)return M+"";var D=E[0],P=E[1];return P<0?"0."+new Array(-P).join("0")+D:D.length>P+1?D.slice(0,P+1)+"."+D.slice(P+1):D+new Array(P-D.length+2).join("0")}var d={"%":function(M,q){return(M*100).toFixed(q)},b:function(M){return Math.round(M).toString(2)},c:function(M){return M+""},d:r,e:function(M,q){return M.toExponential(q)},f:function(M,q){return M.toFixed(q)},g:function(M,q){return M.toPrecision(q)},o:function(M){return Math.round(M).toString(8)},p:function(M,q){return v(M*100,q)},r:v,s:c,X:function(M){return Math.round(M).toString(16).toUpperCase()},x:function(M){return Math.round(M).toString(16)}};function p(M){return M}var y=Array.prototype.map,m=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function x(M){var q=M.grouping===void 0||M.thousands===void 0?p:n(y.call(M.grouping,Number),M.thousands+""),E=M.currency===void 0?"":M.currency[0]+"",D=M.currency===void 0?"":M.currency[1]+"",P=M.decimal===void 0?".":M.decimal+"",R=M.numerals===void 0?p:i(y.call(M.numerals,String)),z=M.percent===void 0?"%":M.percent+"",I=M.minus===void 0?"-":M.minus+"",B=M.nan===void 0?"NaN":M.nan+"";function G(V){V=l(V);var H=V.fill,X=V.align,j=V.sign,ee=V.symbol,fe=V.zero,ie=V.width,ue=V.comma,K=V.precision,we=V.trim,se=V.type;se==="n"?(ue=!0,se="g"):d[se]||(K===void 0&&(K=12),we=!0,se="g"),(fe||H==="0"&&X==="=")&&(fe=!0,H="0",X="=");var ce=ee==="$"?E:ee==="#"&&/[boxX]/.test(se)?"0"+se.toLowerCase():"",he=ee==="$"?D:/[%p]/.test(se)?z:"",ye=d[se],W=/[defgprs%]/.test(se);K=K===void 0?6:/[gprs]/.test(se)?Math.max(1,Math.min(21,K)):Math.max(0,Math.min(20,K));function Q(Z){var le=ce,ve=he,me,Ce,Pe;if(se==="c")ve=ye(Z)+ve,Z="";else{Z=+Z;var Le=Z<0||1/Z<0;if(Z=isNaN(Z)?B:ye(Math.abs(Z),K),we&&(Z=u(Z)),Le&&+Z==0&&j!=="+"&&(Le=!1),le=(Le?j==="("?j:I:j==="-"||j==="("?"":j)+le,ve=(se==="s"?m[8+f/3]:"")+ve+(Le&&j==="("?")":""),W){for(me=-1,Ce=Z.length;++mePe||Pe>57){ve=(Pe===46?P+Z.slice(me+1):Z.slice(me))+ve,Z=Z.slice(0,me);break}}}ue&&!fe&&(Z=q(Z,1/0));var ze=le.length+Z.length+ve.length,Be=ze >1)+le+Z+ve+Be.slice(ze);break;default:Z=Be+le+Z+ve;break}return R(Z)}return Q.toString=function(){return V+""},Q}function Y(V,H){var X=G((V=l(V),V.type="f",V)),j=Math.max(-8,Math.min(8,Math.floor(a(H)/3)))*3,ee=Math.pow(10,-j),fe=m[8+j/3];return function(ie){return X(ee*ie)+fe}}return{format:G,formatPrefix:Y}}var T;_({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function _(M){return T=x(M),e.format=T.format,e.formatPrefix=T.formatPrefix,T}function b(M){return Math.max(0,-a(Math.abs(M)))}function w(M,q){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(a(q)/3)))*3-a(Math.abs(M)))}function k(M,q){return M=Math.abs(M),q=Math.abs(q)-M,Math.max(0,a(q)-a(M))+1}e.FormatSpecifier=s,e.formatDefaultLocale=_,e.formatLocale=x,e.formatSpecifier=l,e.precisionFixed=b,e.precisionPrefix=w,e.precisionRound=k,Object.defineProperty(e,"__esModule",{value:!0})})});var iM=N((ECe,nM)=>{"use strict";nM.exports=function(e){for(var r=e.length,t,a=0;a 13)&&t!==32&&t!==133&&t!==160&&t!==5760&&t!==6158&&(t<8192||t>8205)&&t!==8232&&t!==8233&&t!==8239&&t!==8287&&t!==8288&&t!==12288&&t!==65279)return!1;return!0}});var Rr=N((DCe,oM)=>{"use strict";var coe=iM();oM.exports=function(e){var r=typeof e;if(r==="string"){var t=e;if(e=+e,e===0&&coe(t))return!1}else if(r!=="number")return!1;return e-e<1}});var Ft=N((RCe,lM)=>{"use strict";lM.exports={BADNUM:void 0,FP_SAFE:Number.MAX_VALUE*1e-4,ONEMAXYEAR:316224e5,ONEAVGYEAR:315576e5,ONEMINYEAR:31536e6,ONEMAXQUARTER:79488e5,ONEAVGQUARTER:78894e5,ONEMINQUARTER:76896e5,ONEMAXMONTH:26784e5,ONEAVGMONTH:26298e5,ONEMINMONTH:24192e5,ONEWEEK:6048e5,ONEDAY:864e5,ONEHOUR:36e5,ONEMIN:6e4,ONESEC:1e3,ONEMILLI:1,ONEMICROSEC:.001,EPOCHJD:24405875e-1,ALMOST_EQUAL:1-1e-6,LOG_CLIP:10,MINUS_SIGN:"\u2212"}});var sb=N((Tp,sM)=>{(function(e,r){typeof Tp=="object"&&typeof sM!="undefined"?r(Tp):(e=typeof globalThis!="undefined"?globalThis:e||self,r(e["base64-arraybuffer"]={}))})(Tp,function(e){"use strict";for(var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=typeof Uint8Array=="undefined"?[]:new Uint8Array(256),a=0;a >2],f+=r[(l[s]&3)<<4|l[s+1]>>4],f+=r[(l[s+1]&15)<<2|l[s+2]>>6],f+=r[l[s+2]&63];return u%3===2?f=f.substring(0,f.length-1)+"=":u%3===1&&(f=f.substring(0,f.length-2)+"=="),f},i=function(o){var l=o.length*.75,s=o.length,u,f=0,c,v,d,p;o[o.length-1]==="="&&(l--,o[o.length-2]==="="&&l--);var y=new ArrayBuffer(l),m=new Uint8Array(y);for(u=0;u >4,m[f++]=(v&15)<<4|d>>2,m[f++]=(d&3)<<6|p&63;return y};e.decode=i,e.encode=n,Object.defineProperty(e,"__esModule",{value:!0})})});var Vl=N((PCe,uM)=>{"use strict";uM.exports=function(r){return window&&window.process&&window.process.versions?Object.prototype.toString.call(r)==="[object Object]":Object.prototype.toString.call(r)==="[object Object]"&&Object.getPrototypeOf(r).hasOwnProperty("hasOwnProperty")}});var Yn=N(Ki=>{"use strict";var voe=sb().decode,hoe=Vl(),ub=Array.isArray,doe=ArrayBuffer,poe=DataView;function fM(e){return doe.isView(e)&&!(e instanceof poe)}Ki.isTypedArray=fM;function Ap(e){return ub(e)||fM(e)}Ki.isArrayOrTypedArray=Ap;function yoe(e){return!Ap(e[0])}Ki.isArray1D=yoe;Ki.ensureArray=function(e,r){return ub(e)||(e=[]),e.length=r,e};var Da={u1c:typeof Uint8ClampedArray=="undefined"?void 0:Uint8ClampedArray,i1:typeof Int8Array=="undefined"?void 0:Int8Array,u1:typeof Uint8Array=="undefined"?void 0:Uint8Array,i2:typeof Int16Array=="undefined"?void 0:Int16Array,u2:typeof Uint16Array=="undefined"?void 0:Uint16Array,i4:typeof Int32Array=="undefined"?void 0:Int32Array,u4:typeof Uint32Array=="undefined"?void 0:Uint32Array,f4:typeof Float32Array=="undefined"?void 0:Float32Array,f8:typeof Float64Array=="undefined"?void 0:Float64Array};Da.uint8c=Da.u1c;Da.uint8=Da.u1;Da.int8=Da.i1;Da.uint16=Da.u2;Da.int16=Da.i2;Da.uint32=Da.u4;Da.int32=Da.i4;Da.float32=Da.f4;Da.float64=Da.f8;function fb(e){return e.constructor===ArrayBuffer}Ki.isArrayBuffer=fb;Ki.decodeTypedArraySpec=function(e){var r=[],t=moe(e),a=t.dtype,n=Da[a];if(!n)throw new Error('Error in dtype: "'+a+'"');var i=n.BYTES_PER_ELEMENT,o=t.bdata;fb(o)||(o=voe(o));var l=t.shape===void 0?[o.byteLength/i]:(""+t.shape).split(",");l.reverse();var s=l.length,u,f,c=+l[0],v=i*c,d=0;if(s===1)r=new n(o);else if(s===2)for(u=+l[1],f=0;f{"use strict";var vM=Rr(),vb=Yn().isArrayOrTypedArray;yM.exports=function(r,t){if(vM(t))t=String(t);else if(typeof t!="string"||t.slice(-4)==="[-1]")throw"bad property string";var a=t.split("."),n,i,o,l;for(l=0;l{"use strict";var Df=Mp(),woe=/^\w*$/,Toe=0,mM=1,kp=2,gM=3,Qs=4;bM.exports=function(r,t,a,n){a=a||"name",n=n||"value";var i,o,l,s={};t&&t.length?(l=Df(r,t),o=l.get()):o=r,t=t||"";var u={};if(o)for(i=0;i 2)return s[d]=s[d]|kp,c.set(v,null);if(f){for(i=d;i {"use strict";var Aoe=/^(.*)(\.[^\.\[\]]+|\[\d\])$/,Moe=/^[^\.\[\]]+$/;_M.exports=function(e,r){for(;r;){var t=e.match(Aoe);if(t)e=t[1];else if(e.match(Moe))e="";else throw new Error("bad relativeAttr call:"+[e,r]);if(r.charAt(0)==="^")r=r.slice(1);else break}return e&&r.charAt(0)!=="["?e+"."+r:e+r}});var Sp=N((OCe,TM)=>{"use strict";var koe=Rr();TM.exports=function(r,t){if(r>0)return Math.log(r)/Math.LN10;var a=Math.log(Math.min(t[0],t[1]))/Math.LN10;return koe(a)||(a=Math.log(Math.max(t[0],t[1]))/Math.LN10-6),a}});var kM=N((BCe,MM)=>{"use strict";var AM=Yn().isArrayOrTypedArray,Jv=Vl();MM.exports=function e(r,t){for(var a in t){var n=t[a],i=r[a];if(i!==n)if(a.charAt(0)==="_"||typeof n=="function"){if(a in r)continue;r[a]=n}else if(AM(n)&&AM(i)&&Jv(n[0])){if(a==="customdata"||a==="ids")continue;for(var o=Math.min(n.length,i.length),l=0;l {"use strict";function Soe(e,r){var t=e%r;return t<0?t+r:t}function qoe(e,r){return Math.abs(e)>r/2?e-Math.round(e/r)*r:e}SM.exports={mod:Soe,modHalf:qoe}});var qn=N((UCe,qp)=>{(function(e){var r=/^\s+/,t=/\s+$/,a=0,n=e.round,i=e.min,o=e.max,l=e.random;function s(W,Q){if(W=W||"",Q=Q||{},W instanceof s)return W;if(!(this instanceof s))return new s(W,Q);var Z=u(W);this._originalInput=W,this._r=Z.r,this._g=Z.g,this._b=Z.b,this._a=Z.a,this._roundA=n(100*this._a)/100,this._format=Q.format||Z.format,this._gradientType=Q.gradientType,this._r<1&&(this._r=n(this._r)),this._g<1&&(this._g=n(this._g)),this._b<1&&(this._b=n(this._b)),this._ok=Z.ok,this._tc_id=a++}s.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var W=this.toRgb();return(W.r*299+W.g*587+W.b*114)/1e3},getLuminance:function(){var W=this.toRgb(),Q,Z,le,ve,me,Ce;return Q=W.r/255,Z=W.g/255,le=W.b/255,Q<=.03928?ve=Q/12.92:ve=e.pow((Q+.055)/1.055,2.4),Z<=.03928?me=Z/12.92:me=e.pow((Z+.055)/1.055,2.4),le<=.03928?Ce=le/12.92:Ce=e.pow((le+.055)/1.055,2.4),.2126*ve+.7152*me+.0722*Ce},setAlpha:function(W){return this._a=V(W),this._roundA=n(100*this._a)/100,this},toHsv:function(){var W=d(this._r,this._g,this._b);return{h:W.h*360,s:W.s,v:W.v,a:this._a}},toHsvString:function(){var W=d(this._r,this._g,this._b),Q=n(W.h*360),Z=n(W.s*100),le=n(W.v*100);return this._a==1?"hsv("+Q+", "+Z+"%, "+le+"%)":"hsva("+Q+", "+Z+"%, "+le+"%, "+this._roundA+")"},toHsl:function(){var W=c(this._r,this._g,this._b);return{h:W.h*360,s:W.s,l:W.l,a:this._a}},toHslString:function(){var W=c(this._r,this._g,this._b),Q=n(W.h*360),Z=n(W.s*100),le=n(W.l*100);return this._a==1?"hsl("+Q+", "+Z+"%, "+le+"%)":"hsla("+Q+", "+Z+"%, "+le+"%, "+this._roundA+")"},toHex:function(W){return y(this._r,this._g,this._b,W)},toHexString:function(W){return"#"+this.toHex(W)},toHex8:function(W){return m(this._r,this._g,this._b,this._a,W)},toHex8String:function(W){return"#"+this.toHex8(W)},toRgb:function(){return{r:n(this._r),g:n(this._g),b:n(this._b),a:this._a}},toRgbString:function(){return this._a==1?"rgb("+n(this._r)+", "+n(this._g)+", "+n(this._b)+")":"rgba("+n(this._r)+", "+n(this._g)+", "+n(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:n(H(this._r,255)*100)+"%",g:n(H(this._g,255)*100)+"%",b:n(H(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function(){return this._a==1?"rgb("+n(H(this._r,255)*100)+"%, "+n(H(this._g,255)*100)+"%, "+n(H(this._b,255)*100)+"%)":"rgba("+n(H(this._r,255)*100)+"%, "+n(H(this._g,255)*100)+"%, "+n(H(this._b,255)*100)+"%, "+this._roundA+")"},toName:function(){return this._a===0?"transparent":this._a<1?!1:G[y(this._r,this._g,this._b,!0)]||!1},toFilter:function(W){var Q="#"+x(this._r,this._g,this._b,this._a),Z=Q,le=this._gradientType?"GradientType = 1, ":"";if(W){var ve=s(W);Z="#"+x(ve._r,ve._g,ve._b,ve._a)}return"progid:DXImageTransform.Microsoft.gradient("+le+"startColorstr="+Q+",endColorstr="+Z+")"},toString:function(W){var Q=!!W;W=W||this._format;var Z=!1,le=this._a<1&&this._a>=0,ve=!Q&&le&&(W==="hex"||W==="hex6"||W==="hex3"||W==="hex4"||W==="hex8"||W==="name");return ve?W==="name"&&this._a===0?this.toName():this.toRgbString():(W==="rgb"&&(Z=this.toRgbString()),W==="prgb"&&(Z=this.toPercentageRgbString()),(W==="hex"||W==="hex6")&&(Z=this.toHexString()),W==="hex3"&&(Z=this.toHexString(!0)),W==="hex4"&&(Z=this.toHex8String(!0)),W==="hex8"&&(Z=this.toHex8String()),W==="name"&&(Z=this.toName()),W==="hsl"&&(Z=this.toHslString()),W==="hsv"&&(Z=this.toHsvString()),Z||this.toHexString())},clone:function(){return s(this.toString())},_applyModification:function(W,Q){var Z=W.apply(null,[this].concat([].slice.call(Q)));return this._r=Z._r,this._g=Z._g,this._b=Z._b,this.setAlpha(Z._a),this},lighten:function(){return this._applyModification(w,arguments)},brighten:function(){return this._applyModification(k,arguments)},darken:function(){return this._applyModification(M,arguments)},desaturate:function(){return this._applyModification(T,arguments)},saturate:function(){return this._applyModification(_,arguments)},greyscale:function(){return this._applyModification(b,arguments)},spin:function(){return this._applyModification(q,arguments)},_applyCombination:function(W,Q){return W.apply(null,[this].concat([].slice.call(Q)))},analogous:function(){return this._applyCombination(z,arguments)},complement:function(){return this._applyCombination(E,arguments)},monochromatic:function(){return this._applyCombination(I,arguments)},splitcomplement:function(){return this._applyCombination(R,arguments)},triad:function(){return this._applyCombination(D,arguments)},tetrad:function(){return this._applyCombination(P,arguments)}},s.fromRatio=function(W,Q){if(typeof W=="object"){var Z={};for(var le in W)W.hasOwnProperty(le)&&(le==="a"?Z[le]=W[le]:Z[le]=ue(W[le]));W=Z}return s(W,Q)};function u(W){var Q={r:0,g:0,b:0},Z=1,le=null,ve=null,me=null,Ce=!1,Pe=!1;return typeof W=="string"&&(W=he(W)),typeof W=="object"&&(ce(W.r)&&ce(W.g)&&ce(W.b)?(Q=f(W.r,W.g,W.b),Ce=!0,Pe=String(W.r).substr(-1)==="%"?"prgb":"rgb"):ce(W.h)&&ce(W.s)&&ce(W.v)?(le=ue(W.s),ve=ue(W.v),Q=p(W.h,le,ve),Ce=!0,Pe="hsv"):ce(W.h)&&ce(W.s)&&ce(W.l)&&(le=ue(W.s),me=ue(W.l),Q=v(W.h,le,me),Ce=!0,Pe="hsl"),W.hasOwnProperty("a")&&(Z=W.a)),Z=V(Z),{ok:Ce,format:W.format||Pe,r:i(255,o(Q.r,0)),g:i(255,o(Q.g,0)),b:i(255,o(Q.b,0)),a:Z}}function f(W,Q,Z){return{r:H(W,255)*255,g:H(Q,255)*255,b:H(Z,255)*255}}function c(W,Q,Z){W=H(W,255),Q=H(Q,255),Z=H(Z,255);var le=o(W,Q,Z),ve=i(W,Q,Z),me,Ce,Pe=(le+ve)/2;if(le==ve)me=Ce=0;else{var Le=le-ve;switch(Ce=Pe>.5?Le/(2-le-ve):Le/(le+ve),le){case W:me=(Q-Z)/Le+(Q 1&&(Ge-=1),Ge<1/6?ze+(Be-ze)*6*Ge:Ge<1/2?Be:Ge<2/3?ze+(Be-ze)*(2/3-Ge)*6:ze}if(Q===0)le=ve=me=Z;else{var Pe=Z<.5?Z*(1+Q):Z+Q-Z*Q,Le=2*Z-Pe;le=Ce(Le,Pe,W+1/3),ve=Ce(Le,Pe,W),me=Ce(Le,Pe,W-1/3)}return{r:le*255,g:ve*255,b:me*255}}function d(W,Q,Z){W=H(W,255),Q=H(Q,255),Z=H(Z,255);var le=o(W,Q,Z),ve=i(W,Q,Z),me,Ce,Pe=le,Le=le-ve;if(Ce=le===0?0:Le/le,le==ve)me=0;else{switch(le){case W:me=(Q-Z)/Le+(Q >1)+720)%360;--Q;)le.h=(le.h+ve)%360,me.push(s(le));return me}function I(W,Q){Q=Q||6;for(var Z=s(W).toHsv(),le=Z.h,ve=Z.s,me=Z.v,Ce=[],Pe=1/Q;Q--;)Ce.push(s({h:le,s:ve,v:me})),me=(me+Pe)%1;return Ce}s.mix=function(W,Q,Z){Z=Z===0?0:Z||50;var le=s(W).toRgb(),ve=s(Q).toRgb(),me=Z/100,Ce={r:(ve.r-le.r)*me+le.r,g:(ve.g-le.g)*me+le.g,b:(ve.b-le.b)*me+le.b,a:(ve.a-le.a)*me+le.a};return s(Ce)},s.readability=function(W,Q){var Z=s(W),le=s(Q);return(e.max(Z.getLuminance(),le.getLuminance())+.05)/(e.min(Z.getLuminance(),le.getLuminance())+.05)},s.isReadable=function(W,Q,Z){var le=s.readability(W,Q),ve,me;switch(me=!1,ve=ye(Z),ve.level+ve.size){case"AAsmall":case"AAAlarge":me=le>=4.5;break;case"AAlarge":me=le>=3;break;case"AAAsmall":me=le>=7;break}return me},s.mostReadable=function(W,Q,Z){var le=null,ve=0,me,Ce,Pe,Le;Z=Z||{},Ce=Z.includeFallbackColors,Pe=Z.level,Le=Z.size;for(var ze=0;ze ve&&(ve=me,le=s(Q[ze]));return s.isReadable(W,le,{level:Pe,size:Le})||!Ce?le:(Z.includeFallbackColors=!1,s.mostReadable(W,["#fff","#000"],Z))};var B=s.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},G=s.hexNames=Y(B);function Y(W){var Q={};for(var Z in W)W.hasOwnProperty(Z)&&(Q[W[Z]]=Z);return Q}function V(W){return W=parseFloat(W),(isNaN(W)||W<0||W>1)&&(W=1),W}function H(W,Q){ee(W)&&(W="100%");var Z=fe(W);return W=i(Q,o(0,parseFloat(W))),Z&&(W=parseInt(W*Q,10)/100),e.abs(W-Q)<1e-6?1:W%Q/parseFloat(Q)}function X(W){return i(1,o(0,W))}function j(W){return parseInt(W,16)}function ee(W){return typeof W=="string"&&W.indexOf(".")!=-1&&parseFloat(W)===1}function fe(W){return typeof W=="string"&&W.indexOf("%")!=-1}function ie(W){return W.length==1?"0"+W:""+W}function ue(W){return W<=1&&(W=W*100+"%"),W}function K(W){return e.round(parseFloat(W)*255).toString(16)}function we(W){return j(W)/255}var se=function(){var W="[-\\+]?\\d+%?",Q="[-\\+]?\\d*\\.\\d+%?",Z="(?:"+Q+")|(?:"+W+")",le="[\\s|\\(]+("+Z+")[,|\\s]+("+Z+")[,|\\s]+("+Z+")\\s*\\)?",ve="[\\s|\\(]+("+Z+")[,|\\s]+("+Z+")[,|\\s]+("+Z+")[,|\\s]+("+Z+")\\s*\\)?";return{CSS_UNIT:new RegExp(Z),rgb:new RegExp("rgb"+le),rgba:new RegExp("rgba"+ve),hsl:new RegExp("hsl"+le),hsla:new RegExp("hsla"+ve),hsv:new RegExp("hsv"+le),hsva:new RegExp("hsva"+ve),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function ce(W){return!!se.CSS_UNIT.exec(W)}function he(W){W=W.replace(r,"").replace(t,"").toLowerCase();var Q=!1;if(B[W])W=B[W],Q=!0;else if(W=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var Z;return(Z=se.rgb.exec(W))?{r:Z[1],g:Z[2],b:Z[3]}:(Z=se.rgba.exec(W))?{r:Z[1],g:Z[2],b:Z[3],a:Z[4]}:(Z=se.hsl.exec(W))?{h:Z[1],s:Z[2],l:Z[3]}:(Z=se.hsla.exec(W))?{h:Z[1],s:Z[2],l:Z[3],a:Z[4]}:(Z=se.hsv.exec(W))?{h:Z[1],s:Z[2],v:Z[3]}:(Z=se.hsva.exec(W))?{h:Z[1],s:Z[2],v:Z[3],a:Z[4]}:(Z=se.hex8.exec(W))?{r:j(Z[1]),g:j(Z[2]),b:j(Z[3]),a:we(Z[4]),format:Q?"name":"hex8"}:(Z=se.hex6.exec(W))?{r:j(Z[1]),g:j(Z[2]),b:j(Z[3]),format:Q?"name":"hex"}:(Z=se.hex4.exec(W))?{r:j(Z[1]+""+Z[1]),g:j(Z[2]+""+Z[2]),b:j(Z[3]+""+Z[3]),a:we(Z[4]+""+Z[4]),format:Q?"name":"hex8"}:(Z=se.hex3.exec(W))?{r:j(Z[1]+""+Z[1]),g:j(Z[2]+""+Z[2]),b:j(Z[3]+""+Z[3]),format:Q?"name":"hex"}:!1}function ye(W){var Q,Z;return W=W||{level:"AA",size:"small"},Q=(W.level||"AA").toUpperCase(),Z=(W.size||"small").toLowerCase(),Q!=="AA"&&Q!=="AAA"&&(Q="AA"),Z!=="small"&&Z!=="large"&&(Z="small"),{level:Q,size:Z}}typeof qp!="undefined"&&qp.exports?qp.exports=s:window.tinycolor=s})(Math)});var bt=N(Qv=>{"use strict";var qM=Vl(),$v=Array.isArray;function Loe(e,r){var t,a;for(t=0;t {"use strict";LM.exports=function(e){var r=e.variantValues,t=e.editType,a=e.colorEditType;a===void 0&&(a=t);var n={editType:t,valType:"integer",min:1,max:1e3,extras:["normal","bold"],dflt:"normal"};e.noNumericWeightValues&&(n.valType="enumerated",n.values=n.extras,n.extras=void 0,n.min=void 0,n.max=void 0);var i={family:{valType:"string",noBlank:!0,strict:!0,editType:t},size:{valType:"number",min:1,editType:t},color:{valType:"color",editType:a},weight:n,style:{editType:t,valType:"enumerated",values:["normal","italic"],dflt:"normal"},variant:e.noFontVariant?void 0:{editType:t,valType:"enumerated",values:r||["normal","small-caps","all-small-caps","all-petite-caps","petite-caps","unicase"],dflt:"normal"},textcase:e.noFontTextcase?void 0:{editType:t,valType:"enumerated",values:["normal","word caps","upper","lower"],dflt:"normal"},lineposition:e.noFontLineposition?void 0:{editType:t,valType:"flaglist",flags:["under","over","through"],extras:["none"],dflt:"none"},shadow:e.noFontShadow?void 0:{editType:t,valType:"string",dflt:e.autoShadowDflt?"auto":"none"},editType:t};return e.autoSize&&(i.size.dflt="auto"),e.autoColor&&(i.color.dflt="auto"),e.arrayOk&&(i.family.arrayOk=!0,i.weight.arrayOk=!0,i.style.arrayOk=!0,e.noFontVariant||(i.variant.arrayOk=!0),e.noFontTextcase||(i.textcase.arrayOk=!0),e.noFontLineposition||(i.lineposition.arrayOk=!0),e.noFontShadow||(i.shadow.arrayOk=!0),i.size.arrayOk=!0,i.color.arrayOk=!0),i}});var eh=N((YCe,CM)=>{"use strict";CM.exports={YANGLE:60,HOVERARROWSIZE:6,HOVERTEXTPAD:3,HOVERFONTSIZE:13,HOVERFONT:"Arial, sans-serif",HOVERMINTIME:50,HOVERID:"-hover"}});var Pf=N((WCe,RM)=>{"use strict";var EM=eh(),DM=ga(),hb=DM({editType:"none"});hb.family.dflt=EM.HOVERFONT;hb.size.dflt=EM.HOVERFONTSIZE;RM.exports={clickmode:{valType:"flaglist",flags:["event","select"],dflt:"event",editType:"plot",extras:["none"]},dragmode:{valType:"enumerated",values:["zoom","pan","select","lasso","drawclosedpath","drawopenpath","drawline","drawrect","drawcircle","orbit","turntable",!1],dflt:"zoom",editType:"modebar"},hovermode:{valType:"enumerated",values:["x","y","closest",!1,"x unified","y unified"],dflt:"closest",editType:"modebar"},hoversubplots:{valType:"enumerated",values:["single","overlaying","axis"],dflt:"overlaying",editType:"none"},hoveranywhere:{valType:"boolean",dflt:!1,editType:"none"},clickanywhere:{valType:"boolean",dflt:!1,editType:"none"},hoverdistance:{valType:"integer",min:-1,dflt:20,editType:"none"},spikedistance:{valType:"integer",min:-1,dflt:-1,editType:"none"},hoverlabel:{bgcolor:{valType:"color",editType:"none"},bordercolor:{valType:"color",editType:"none"},font:hb,grouptitlefont:DM({editType:"none"}),align:{valType:"enumerated",values:["left","right","auto"],dflt:"auto",editType:"none"},namelength:{valType:"integer",min:-1,dflt:15,editType:"none"},showarrow:{valType:"boolean",dflt:!0,editType:"none"},editType:"none"},selectdirection:{valType:"enumerated",values:["h","v","d","any"],dflt:"any",editType:"none"}}});var Lp=N((jCe,PM)=>{"use strict";var Coe=ga(),rh=Pf().hoverlabel,th=bt().extendFlat;PM.exports={hoverlabel:{bgcolor:th({},rh.bgcolor,{arrayOk:!0}),bordercolor:th({},rh.bordercolor,{arrayOk:!0}),font:Coe({arrayOk:!0,editType:"none"}),align:th({},rh.align,{arrayOk:!0}),namelength:th({},rh.namelength,{arrayOk:!0}),showarrow:th({},rh.showarrow),editType:"none"}}});var gn=N((ZCe,FM)=>{"use strict";var Eoe=ga(),Doe=Lp();FM.exports={type:{valType:"enumerated",values:[],dflt:"scatter",editType:"calc+clearAxisTypes",_noTemplating:!0},visible:{valType:"enumerated",values:[!0,!1,"legendonly"],dflt:!0,editType:"calc"},showlegend:{valType:"boolean",dflt:!0,editType:"style"},legend:{valType:"subplotid",dflt:"legend",editType:"style"},legendgroup:{valType:"string",dflt:"",editType:"style"},legendgrouptitle:{text:{valType:"string",dflt:"",editType:"style"},font:Eoe({editType:"style"}),editType:"style"},legendrank:{valType:"number",dflt:1e3,editType:"style"},legendwidth:{valType:"number",min:0,editType:"style"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"style"},name:{valType:"string",editType:"style"},uid:{valType:"string",editType:"plot",anim:!0},ids:{valType:"data_array",editType:"calc",anim:!0},customdata:{valType:"data_array",editType:"calc"},meta:{valType:"any",arrayOk:!0,editType:"plot"},selectedpoints:{valType:"any",editType:"calc"},hoverinfo:{valType:"flaglist",flags:["x","y","z","text","name"],extras:["all","none","skip"],arrayOk:!0,dflt:"all",editType:"none"},hoverlabel:Doe.hoverlabel,stream:{token:{valType:"string",noBlank:!0,strict:!0,editType:"calc"},maxpoints:{valType:"number",min:0,max:1e4,dflt:500,editType:"calc"},editType:"calc"},uirevision:{valType:"any",editType:"none"}}});var eu=N((XCe,zM)=>{"use strict";var Roe=qn(),Cp={Greys:[[0,"rgb(0,0,0)"],[1,"rgb(255,255,255)"]],YlGnBu:[[0,"rgb(8,29,88)"],[.125,"rgb(37,52,148)"],[.25,"rgb(34,94,168)"],[.375,"rgb(29,145,192)"],[.5,"rgb(65,182,196)"],[.625,"rgb(127,205,187)"],[.75,"rgb(199,233,180)"],[.875,"rgb(237,248,217)"],[1,"rgb(255,255,217)"]],Greens:[[0,"rgb(0,68,27)"],[.125,"rgb(0,109,44)"],[.25,"rgb(35,139,69)"],[.375,"rgb(65,171,93)"],[.5,"rgb(116,196,118)"],[.625,"rgb(161,217,155)"],[.75,"rgb(199,233,192)"],[.875,"rgb(229,245,224)"],[1,"rgb(247,252,245)"]],YlOrRd:[[0,"rgb(128,0,38)"],[.125,"rgb(189,0,38)"],[.25,"rgb(227,26,28)"],[.375,"rgb(252,78,42)"],[.5,"rgb(253,141,60)"],[.625,"rgb(254,178,76)"],[.75,"rgb(254,217,118)"],[.875,"rgb(255,237,160)"],[1,"rgb(255,255,204)"]],Bluered:[[0,"rgb(0,0,255)"],[1,"rgb(255,0,0)"]],RdBu:[[0,"rgb(5,10,172)"],[.35,"rgb(106,137,247)"],[.5,"rgb(190,190,190)"],[.6,"rgb(220,170,132)"],[.7,"rgb(230,145,90)"],[1,"rgb(178,10,28)"]],Reds:[[0,"rgb(220,220,220)"],[.2,"rgb(245,195,157)"],[.4,"rgb(245,160,105)"],[1,"rgb(178,10,28)"]],Blues:[[0,"rgb(5,10,172)"],[.35,"rgb(40,60,190)"],[.5,"rgb(70,100,245)"],[.6,"rgb(90,120,245)"],[.7,"rgb(106,137,247)"],[1,"rgb(220,220,220)"]],Picnic:[[0,"rgb(0,0,255)"],[.1,"rgb(51,153,255)"],[.2,"rgb(102,204,255)"],[.3,"rgb(153,204,255)"],[.4,"rgb(204,204,255)"],[.5,"rgb(255,255,255)"],[.6,"rgb(255,204,255)"],[.7,"rgb(255,153,255)"],[.8,"rgb(255,102,204)"],[.9,"rgb(255,102,102)"],[1,"rgb(255,0,0)"]],Rainbow:[[0,"rgb(150,0,90)"],[.125,"rgb(0,0,200)"],[.25,"rgb(0,25,255)"],[.375,"rgb(0,152,255)"],[.5,"rgb(44,255,150)"],[.625,"rgb(151,255,0)"],[.75,"rgb(255,234,0)"],[.875,"rgb(255,111,0)"],[1,"rgb(255,0,0)"]],Portland:[[0,"rgb(12,51,131)"],[.25,"rgb(10,136,186)"],[.5,"rgb(242,211,56)"],[.75,"rgb(242,143,56)"],[1,"rgb(217,30,30)"]],Jet:[[0,"rgb(0,0,131)"],[.125,"rgb(0,60,170)"],[.375,"rgb(5,255,255)"],[.625,"rgb(255,255,0)"],[.875,"rgb(250,0,0)"],[1,"rgb(128,0,0)"]],Hot:[[0,"rgb(0,0,0)"],[.3,"rgb(230,0,0)"],[.6,"rgb(255,210,0)"],[1,"rgb(255,255,255)"]],Blackbody:[[0,"rgb(0,0,0)"],[.2,"rgb(230,0,0)"],[.4,"rgb(230,210,0)"],[.7,"rgb(255,255,255)"],[1,"rgb(160,200,255)"]],Earth:[[0,"rgb(0,0,130)"],[.1,"rgb(0,180,180)"],[.2,"rgb(40,210,40)"],[.4,"rgb(230,230,50)"],[.6,"rgb(120,70,20)"],[1,"rgb(255,255,255)"]],Electric:[[0,"rgb(0,0,0)"],[.15,"rgb(30,0,100)"],[.4,"rgb(120,0,100)"],[.6,"rgb(160,90,0)"],[.8,"rgb(230,200,0)"],[1,"rgb(255,250,220)"]],Viridis:[[0,"#440154"],[.06274509803921569,"#48186a"],[.12549019607843137,"#472d7b"],[.18823529411764706,"#424086"],[.25098039215686274,"#3b528b"],[.3137254901960784,"#33638d"],[.3764705882352941,"#2c728e"],[.4392156862745098,"#26828e"],[.5019607843137255,"#21918c"],[.5647058823529412,"#1fa088"],[.6274509803921569,"#28ae80"],[.6901960784313725,"#3fbc73"],[.7529411764705882,"#5ec962"],[.8156862745098039,"#84d44b"],[.8784313725490196,"#addc30"],[.9411764705882353,"#d8e219"],[1,"#fde725"]],Cividis:[[0,"rgb(0,32,76)"],[.058824,"rgb(0,42,102)"],[.117647,"rgb(0,52,110)"],[.176471,"rgb(39,63,108)"],[.235294,"rgb(60,74,107)"],[.294118,"rgb(76,85,107)"],[.352941,"rgb(91,95,109)"],[.411765,"rgb(104,106,112)"],[.470588,"rgb(117,117,117)"],[.529412,"rgb(131,129,120)"],[.588235,"rgb(146,140,120)"],[.647059,"rgb(161,152,118)"],[.705882,"rgb(176,165,114)"],[.764706,"rgb(192,177,109)"],[.823529,"rgb(209,191,102)"],[.882353,"rgb(225,204,92)"],[.941176,"rgb(243,219,79)"],[1,"rgb(255,233,69)"]]},NM=Cp.RdBu;function Poe(e,r){if(r||(r=NM),!e)return r;function t(){try{e=Cp[e]||JSON.parse(e)}catch(a){e=r}}return typeof e=="string"&&(t(),typeof e=="string"&&t()),IM(e)?e:r}function IM(e){var r=0;if(!Array.isArray(e)||e.length<2||!e[0]||!e[e.length-1]||+e[0][0]!=0||+e[e.length-1][0]!=1)return!1;for(var t=0;t {"use strict";ru.defaults=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"];ru.defaultLine="#444";ru.lightLine="#eee";ru.background="#fff";ru.borderLine="#BEC8D9";ru.lightFraction=100*10/11});var Tr=N(($Ce,OM)=>{"use strict";var Ln=qn(),Noe=Rr(),Ioe=Yn().isTypedArray,Ta=OM.exports={},Ep=fi();Ta.defaults=Ep.defaults;var zoe=Ta.defaultLine=Ep.defaultLine;Ta.lightLine=Ep.lightLine;var pb=Ta.background=Ep.background;Ta.tinyRGB=function(e){var r=e.toRgb();return"rgb("+Math.round(r.r)+", "+Math.round(r.g)+", "+Math.round(r.b)+")"};Ta.rgb=function(e){return Ta.tinyRGB(Ln(e))};Ta.opacity=function(e){return e?Ln(e).getAlpha():0};Ta.addOpacity=function(e,r){var t=Ln(e).toRgb();return"rgba("+Math.round(t.r)+", "+Math.round(t.g)+", "+Math.round(t.b)+", "+r+")"};Ta.combine=function(e,r){var t=Ln(e).toRgb();if(t.a===1)return Ln(e).toRgbString();var a=Ln(r||pb).toRgb(),n=a.a===1?a:{r:255*(1-a.a)+a.r*a.a,g:255*(1-a.a)+a.g*a.a,b:255*(1-a.a)+a.b*a.a},i={r:n.r*(1-t.a)+t.r*t.a,g:n.g*(1-t.a)+t.g*t.a,b:n.b*(1-t.a)+t.b*t.a};return Ln(i).toRgbString()};Ta.interpolate=function(e,r,t){var a=Ln(e).toRgb(),n=Ln(r).toRgb(),i={r:t*a.r+(1-t)*n.r,g:t*a.g+(1-t)*n.g,b:t*a.b+(1-t)*n.b};return Ln(i).toRgbString()};Ta.contrast=function(e,r,t){var a=Ln(e);a.getAlpha()!==1&&(a=Ln(Ta.combine(e,pb)));var n=a.isDark()?r?a.lighten(r):pb:t?a.darken(t):zoe;return n.toString()};Ta.stroke=function(e,r){var t=Ln(r);e.style({stroke:Ta.tinyRGB(t),"stroke-opacity":t.getAlpha()})};Ta.fill=function(e,r){var t=Ln(r);e.style({fill:Ta.tinyRGB(t),"fill-opacity":t.getAlpha()})};Ta.clean=function(e){if(!(!e||typeof e!="object")){var r=Object.keys(e),t,a,n,i;for(t=0;t =0)))return e;if(i===3)a[i]>1&&(a[i]=1);else if(a[i]>=1)return e}var o=Math.round(a[0]*255)+", "+Math.round(a[1]*255)+", "+Math.round(a[2]*255);return n?"rgba("+o+", "+a[3]+")":"rgb("+o+")"}});var Dp=N((KCe,BM)=>{"use strict";BM.exports={SHOW_PLACEHOLDER:100,HIDE_PLACEHOLDER:1e3,DESELECTDIM:.2}});var Ff=N(HM=>{"use strict";HM.counter=function(e,r,t,a){var n=(r||"")+(t?"":"$"),i=a===!1?"":"^";return e==="xy"?new RegExp(i+"x([2-9]|[1-9][0-9]+)?y([2-9]|[1-9][0-9]+)?"+n):new RegExp(i+e+"([2-9]|[1-9][0-9]+)?"+n)}});var YM=N(Cn=>{"use strict";var yb=Rr(),UM=qn(),GM=bt().extendFlat,Ooe=gn(),Boe=eu(),Hoe=Tr(),Uoe=Dp().DESELECTDIM,Nf=Mp(),VM=Ff().counter,Goe=Rf().modHalf,Qi=Yn().isArrayOrTypedArray,Yl=Yn().isTypedArraySpec,Wl=Yn().decodeTypedArraySpec;Cn.valObjectMeta={data_array:{coerceFunction:function(e,r,t){r.set(Qi(e)?e:Yl(e)?Wl(e):t)}},enumerated:{coerceFunction:function(e,r,t,a){a.coerceNumber&&(e=+e),a.values.indexOf(e)===-1?r.set(t):r.set(e)},validateFunction:function(e,r){r.coerceNumber&&(e=+e);for(var t=r.values,a=0;a i===!0||i===!1;n(e)||a.arrayOk&&Array.isArray(e)&&e.length>0&&e.every(n)?r.set(e):r.set(t)}},number:{coerceFunction:function(e,r,t,a){Yl(e)&&(e=Wl(e)),!yb(e)||a.min!==void 0&&e a.max?r.set(t):r.set(+e)}},integer:{coerceFunction:function(e,r,t,a){if((a.extras||[]).indexOf(e)!==-1){r.set(e);return}Yl(e)&&(e=Wl(e)),e%1||!yb(e)||a.min!==void 0&&e a.max?r.set(t):r.set(+e)}},string:{coerceFunction:function(e,r,t,a){if(typeof e!="string"){var n=typeof e=="number";a.strict===!0||!n?r.set(t):r.set(String(e))}else a.noBlank&&!e?r.set(t):r.set(e)}},color:{coerceFunction:function(e,r,t){Yl(e)&&(e=Wl(e)),UM(e).isValid()?r.set(e):r.set(t)}},colorlist:{coerceFunction:function(e,r,t){function a(n){return UM(n).isValid()}!Array.isArray(e)||!e.length?r.set(t):e.every(a)?r.set(e):r.set(t)}},colorscale:{coerceFunction:function(e,r,t){r.set(Boe.get(e,t))}},angle:{coerceFunction:function(e,r,t){Yl(e)&&(e=Wl(e)),e==="auto"?r.set("auto"):yb(e)?r.set(Goe(+e,360)):r.set(t)}},subplotid:{coerceFunction:function(e,r,t,a){var n=a.regex||VM(t);let i=o=>typeof o=="string"&&n.test(o);i(e)||a.arrayOk&&Qi(e)&&e.length>0&&e.every(i)?r.set(e):r.set(t)},validateFunction:function(e,r){var t=r.dflt;return e===t?!0:typeof e!="string"?!1:!!VM(t).test(e)}},flaglist:{coerceFunction:function(e,r,t,a){if((a.extras||[]).indexOf(e)!==-1){r.set(e);return}if(typeof e!="string"){r.set(t);return}for(var n=e.split("+"),i=0;i {"use strict";var WM={staticPlot:{valType:"boolean",dflt:!1},typesetMath:{valType:"boolean",dflt:!0},plotlyServerURL:{valType:"string",dflt:""},editable:{valType:"boolean",dflt:!1},edits:{annotationPosition:{valType:"boolean",dflt:!1},annotationTail:{valType:"boolean",dflt:!1},annotationText:{valType:"boolean",dflt:!1},axisTitleText:{valType:"boolean",dflt:!1},colorbarPosition:{valType:"boolean",dflt:!1},colorbarTitleText:{valType:"boolean",dflt:!1},legendPosition:{valType:"boolean",dflt:!1},legendText:{valType:"boolean",dflt:!1},shapePosition:{valType:"boolean",dflt:!1},titleText:{valType:"boolean",dflt:!1}},editSelection:{valType:"boolean",dflt:!0},autosizable:{valType:"boolean",dflt:!1},responsive:{valType:"boolean",dflt:!1},fillFrame:{valType:"boolean",dflt:!1},frameMargins:{valType:"number",dflt:0,min:0,max:.5},scrollZoom:{valType:"flaglist",flags:["cartesian","gl3d","geo","mapbox","map"],extras:[!0,!1],dflt:"gl3d+geo+map"},doubleClick:{valType:"enumerated",values:[!1,"reset","autosize","reset+autosize"],dflt:"reset+autosize"},doubleClickDelay:{valType:"number",dflt:300,min:0},showAxisDragHandles:{valType:"boolean",dflt:!0},showAxisRangeEntryBoxes:{valType:"boolean",dflt:!0},showTips:{valType:"boolean",dflt:!0},displayNotifier:{valType:"boolean",dflt:!0},showLink:{valType:"boolean",dflt:!1},linkText:{valType:"string",dflt:"Edit chart",noBlank:!0},sendData:{valType:"boolean",dflt:!0},showSources:{valType:"any",dflt:!1},displayModeBar:{valType:"enumerated",values:["hover",!0,!1],dflt:"hover"},showSendToCloud:{valType:"boolean",dflt:!1},showEditInChartStudio:{valType:"boolean",dflt:!1},modeBarButtonsToRemove:{valType:"any",dflt:[]},modeBarButtonsToAdd:{valType:"any",dflt:[]},modeBarButtons:{valType:"any",dflt:!1},toImageButtonOptions:{valType:"any",dflt:{}},displaylogo:{valType:"boolean",dflt:!0},watermark:{valType:"boolean",dflt:!1},plotGlPixelRatio:{valType:"number",dflt:2,min:1,max:4},setBackground:{valType:"any",dflt:"transparent"},topojsonURL:{valType:"string",noBlank:!0,dflt:"https://cdn.plot.ly/un/"},mapboxAccessToken:{valType:"string",dflt:null},logging:{valType:"integer",min:0,max:2,dflt:1},notifyOnLogging:{valType:"integer",min:0,max:2,dflt:0},queueLength:{valType:"integer",min:0,dflt:0},locale:{valType:"string",dflt:"en-US"},locales:{valType:"any",dflt:{}}},jM={};function ZM(e,r){for(var t in e){var a=e[t];a.valType?r[t]=a.dflt:(r[t]||(r[t]={}),ZM(a,r[t]))}}ZM(WM,jM);XM.exports={configAttributes:WM,dfltConfig:jM}});var gb=N((tEe,JM)=>{"use strict";var mb=Sr(),Voe=Rr(),ah=[];JM.exports=function(e,r,t){var l;if(((l=t==null?void 0:t._context)==null?void 0:l.displayNotifier)===!1||ah.indexOf(e)!==-1)return;ah.push(e);var a=1e3;Voe(r)?a=r:r==="long"&&(a=3e3);var n=mb.select("body").selectAll(".plotly-notifier").data([0]);n.enter().append("div").classed("plotly-notifier",!0);var i=n.selectAll(".notifier-note").data(ah);function o(s){s.duration(700).style("opacity",0).each("end",function(u){var f=ah.indexOf(u);f!==-1&&ah.splice(f,1),mb.select(this).remove()})}i.enter().append("div").classed("notifier-note",!0).style("opacity",0).each(function(s){var u=mb.select(this);u.append("button").classed("notifier-close",!0).html("×").on("click",function(){u.transition().call(o)});for(var f=u.append("p"),c=s.split(/
/g),v=0;v{"use strict";var If=tu().dfltConfig,bb=gb(),xb=$M.exports={};xb.log=function(){var e;if(If.logging>1){var r=["LOG:"];for(e=0;e 1){var t=[];for(e=0;e "),"long")}};xb.warn=function(){var e;if(If.logging>0){var r=["WARN:"];for(e=0;e 0){var t=[];for(e=0;e "),"stick")}};xb.error=function(){var e;if(If.logging>0){var r=["ERROR:"];for(e=0;e 0){var t=[];for(e=0;e "),"stick")}}});var Pp=N((nEe,KM)=>{"use strict";KM.exports=function(){}});var _b=N((iEe,QM)=>{"use strict";QM.exports=function(r,t){if(t instanceof RegExp){for(var a=t.toString(),n=0;n {e9.exports=Yoe;function Yoe(){var e=new Float32Array(16);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}});var a9=N((lEe,t9)=>{t9.exports=Woe;function Woe(e){var r=new Float32Array(16);return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r}});var i9=N((sEe,n9)=>{n9.exports=joe;function joe(e,r){return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[4]=r[4],e[5]=r[5],e[6]=r[6],e[7]=r[7],e[8]=r[8],e[9]=r[9],e[10]=r[10],e[11]=r[11],e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15],e}});var wb=N((uEe,o9)=>{o9.exports=Zoe;function Zoe(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}});var s9=N((fEe,l9)=>{l9.exports=Xoe;function Xoe(e,r){if(e===r){var t=r[1],a=r[2],n=r[3],i=r[6],o=r[7],l=r[11];e[1]=r[4],e[2]=r[8],e[3]=r[12],e[4]=t,e[6]=r[9],e[7]=r[13],e[8]=a,e[9]=i,e[11]=r[14],e[12]=n,e[13]=o,e[14]=l}else e[0]=r[0],e[1]=r[4],e[2]=r[8],e[3]=r[12],e[4]=r[1],e[5]=r[5],e[6]=r[9],e[7]=r[13],e[8]=r[2],e[9]=r[6],e[10]=r[10],e[11]=r[14],e[12]=r[3],e[13]=r[7],e[14]=r[11],e[15]=r[15];return e}});var f9=N((cEe,u9)=>{u9.exports=Joe;function Joe(e,r){var t=r[0],a=r[1],n=r[2],i=r[3],o=r[4],l=r[5],s=r[6],u=r[7],f=r[8],c=r[9],v=r[10],d=r[11],p=r[12],y=r[13],m=r[14],x=r[15],T=t*l-a*o,_=t*s-n*o,b=t*u-i*o,w=a*s-n*l,k=a*u-i*l,M=n*u-i*s,q=f*y-c*p,E=f*m-v*p,D=f*x-d*p,P=c*m-v*y,R=c*x-d*y,z=v*x-d*m,I=T*z-_*R+b*P+w*D-k*E+M*q;return I?(I=1/I,e[0]=(l*z-s*R+u*P)*I,e[1]=(n*R-a*z-i*P)*I,e[2]=(y*M-m*k+x*w)*I,e[3]=(v*k-c*M-d*w)*I,e[4]=(s*D-o*z-u*E)*I,e[5]=(t*z-n*D+i*E)*I,e[6]=(m*b-p*M-x*_)*I,e[7]=(f*M-v*b+d*_)*I,e[8]=(o*R-l*D+u*q)*I,e[9]=(a*D-t*R-i*q)*I,e[10]=(p*k-y*b+x*T)*I,e[11]=(c*b-f*k-d*T)*I,e[12]=(l*E-o*P-s*q)*I,e[13]=(t*P-a*E+n*q)*I,e[14]=(y*_-p*w-m*T)*I,e[15]=(f*w-c*_+v*T)*I,e):null}});var v9=N((vEe,c9)=>{c9.exports=$oe;function $oe(e,r){var t=r[0],a=r[1],n=r[2],i=r[3],o=r[4],l=r[5],s=r[6],u=r[7],f=r[8],c=r[9],v=r[10],d=r[11],p=r[12],y=r[13],m=r[14],x=r[15];return e[0]=l*(v*x-d*m)-c*(s*x-u*m)+y*(s*d-u*v),e[1]=-(a*(v*x-d*m)-c*(n*x-i*m)+y*(n*d-i*v)),e[2]=a*(s*x-u*m)-l*(n*x-i*m)+y*(n*u-i*s),e[3]=-(a*(s*d-u*v)-l*(n*d-i*v)+c*(n*u-i*s)),e[4]=-(o*(v*x-d*m)-f*(s*x-u*m)+p*(s*d-u*v)),e[5]=t*(v*x-d*m)-f*(n*x-i*m)+p*(n*d-i*v),e[6]=-(t*(s*x-u*m)-o*(n*x-i*m)+p*(n*u-i*s)),e[7]=t*(s*d-u*v)-o*(n*d-i*v)+f*(n*u-i*s),e[8]=o*(c*x-d*y)-f*(l*x-u*y)+p*(l*d-u*c),e[9]=-(t*(c*x-d*y)-f*(a*x-i*y)+p*(a*d-i*c)),e[10]=t*(l*x-u*y)-o*(a*x-i*y)+p*(a*u-i*l),e[11]=-(t*(l*d-u*c)-o*(a*d-i*c)+f*(a*u-i*l)),e[12]=-(o*(c*m-v*y)-f*(l*m-s*y)+p*(l*v-s*c)),e[13]=t*(c*m-v*y)-f*(a*m-n*y)+p*(a*v-n*c),e[14]=-(t*(l*m-s*y)-o*(a*m-n*y)+p*(a*s-n*l)),e[15]=t*(l*v-s*c)-o*(a*v-n*c)+f*(a*s-n*l),e}});var d9=N((hEe,h9)=>{h9.exports=Koe;function Koe(e){var r=e[0],t=e[1],a=e[2],n=e[3],i=e[4],o=e[5],l=e[6],s=e[7],u=e[8],f=e[9],c=e[10],v=e[11],d=e[12],p=e[13],y=e[14],m=e[15],x=r*o-t*i,T=r*l-a*i,_=r*s-n*i,b=t*l-a*o,w=t*s-n*o,k=a*s-n*l,M=u*p-f*d,q=u*y-c*d,E=u*m-v*d,D=f*y-c*p,P=f*m-v*p,R=c*m-v*y;return x*R-T*P+_*D+b*E-w*q+k*M}});var y9=N((dEe,p9)=>{p9.exports=Qoe;function Qoe(e,r,t){var a=r[0],n=r[1],i=r[2],o=r[3],l=r[4],s=r[5],u=r[6],f=r[7],c=r[8],v=r[9],d=r[10],p=r[11],y=r[12],m=r[13],x=r[14],T=r[15],_=t[0],b=t[1],w=t[2],k=t[3];return e[0]=_*a+b*l+w*c+k*y,e[1]=_*n+b*s+w*v+k*m,e[2]=_*i+b*u+w*d+k*x,e[3]=_*o+b*f+w*p+k*T,_=t[4],b=t[5],w=t[6],k=t[7],e[4]=_*a+b*l+w*c+k*y,e[5]=_*n+b*s+w*v+k*m,e[6]=_*i+b*u+w*d+k*x,e[7]=_*o+b*f+w*p+k*T,_=t[8],b=t[9],w=t[10],k=t[11],e[8]=_*a+b*l+w*c+k*y,e[9]=_*n+b*s+w*v+k*m,e[10]=_*i+b*u+w*d+k*x,e[11]=_*o+b*f+w*p+k*T,_=t[12],b=t[13],w=t[14],k=t[15],e[12]=_*a+b*l+w*c+k*y,e[13]=_*n+b*s+w*v+k*m,e[14]=_*i+b*u+w*d+k*x,e[15]=_*o+b*f+w*p+k*T,e}});var g9=N((pEe,m9)=>{m9.exports=ele;function ele(e,r,t){var a=t[0],n=t[1],i=t[2],o,l,s,u,f,c,v,d,p,y,m,x;return r===e?(e[12]=r[0]*a+r[4]*n+r[8]*i+r[12],e[13]=r[1]*a+r[5]*n+r[9]*i+r[13],e[14]=r[2]*a+r[6]*n+r[10]*i+r[14],e[15]=r[3]*a+r[7]*n+r[11]*i+r[15]):(o=r[0],l=r[1],s=r[2],u=r[3],f=r[4],c=r[5],v=r[6],d=r[7],p=r[8],y=r[9],m=r[10],x=r[11],e[0]=o,e[1]=l,e[2]=s,e[3]=u,e[4]=f,e[5]=c,e[6]=v,e[7]=d,e[8]=p,e[9]=y,e[10]=m,e[11]=x,e[12]=o*a+f*n+p*i+r[12],e[13]=l*a+c*n+y*i+r[13],e[14]=s*a+v*n+m*i+r[14],e[15]=u*a+d*n+x*i+r[15]),e}});var x9=N((yEe,b9)=>{b9.exports=rle;function rle(e,r,t){var a=t[0],n=t[1],i=t[2];return e[0]=r[0]*a,e[1]=r[1]*a,e[2]=r[2]*a,e[3]=r[3]*a,e[4]=r[4]*n,e[5]=r[5]*n,e[6]=r[6]*n,e[7]=r[7]*n,e[8]=r[8]*i,e[9]=r[9]*i,e[10]=r[10]*i,e[11]=r[11]*i,e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15],e}});var w9=N((mEe,_9)=>{_9.exports=tle;function tle(e,r,t,a){var n=a[0],i=a[1],o=a[2],l=Math.sqrt(n*n+i*i+o*o),s,u,f,c,v,d,p,y,m,x,T,_,b,w,k,M,q,E,D,P,R,z,I,B;return Math.abs(l)<1e-6?null:(l=1/l,n*=l,i*=l,o*=l,s=Math.sin(t),u=Math.cos(t),f=1-u,c=r[0],v=r[1],d=r[2],p=r[3],y=r[4],m=r[5],x=r[6],T=r[7],_=r[8],b=r[9],w=r[10],k=r[11],M=n*n*f+u,q=i*n*f+o*s,E=o*n*f-i*s,D=n*i*f-o*s,P=i*i*f+u,R=o*i*f+n*s,z=n*o*f+i*s,I=i*o*f-n*s,B=o*o*f+u,e[0]=c*M+y*q+_*E,e[1]=v*M+m*q+b*E,e[2]=d*M+x*q+w*E,e[3]=p*M+T*q+k*E,e[4]=c*D+y*P+_*R,e[5]=v*D+m*P+b*R,e[6]=d*D+x*P+w*R,e[7]=p*D+T*P+k*R,e[8]=c*z+y*I+_*B,e[9]=v*z+m*I+b*B,e[10]=d*z+x*I+w*B,e[11]=p*z+T*I+k*B,r!==e&&(e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15]),e)}});var A9=N((gEe,T9)=>{T9.exports=ale;function ale(e,r,t){var a=Math.sin(t),n=Math.cos(t),i=r[4],o=r[5],l=r[6],s=r[7],u=r[8],f=r[9],c=r[10],v=r[11];return r!==e&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15]),e[4]=i*n+u*a,e[5]=o*n+f*a,e[6]=l*n+c*a,e[7]=s*n+v*a,e[8]=u*n-i*a,e[9]=f*n-o*a,e[10]=c*n-l*a,e[11]=v*n-s*a,e}});var k9=N((bEe,M9)=>{M9.exports=nle;function nle(e,r,t){var a=Math.sin(t),n=Math.cos(t),i=r[0],o=r[1],l=r[2],s=r[3],u=r[8],f=r[9],c=r[10],v=r[11];return r!==e&&(e[4]=r[4],e[5]=r[5],e[6]=r[6],e[7]=r[7],e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15]),e[0]=i*n-u*a,e[1]=o*n-f*a,e[2]=l*n-c*a,e[3]=s*n-v*a,e[8]=i*a+u*n,e[9]=o*a+f*n,e[10]=l*a+c*n,e[11]=s*a+v*n,e}});var q9=N((xEe,S9)=>{S9.exports=ile;function ile(e,r,t){var a=Math.sin(t),n=Math.cos(t),i=r[0],o=r[1],l=r[2],s=r[3],u=r[4],f=r[5],c=r[6],v=r[7];return r!==e&&(e[8]=r[8],e[9]=r[9],e[10]=r[10],e[11]=r[11],e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15]),e[0]=i*n+u*a,e[1]=o*n+f*a,e[2]=l*n+c*a,e[3]=s*n+v*a,e[4]=u*n-i*a,e[5]=f*n-o*a,e[6]=c*n-l*a,e[7]=v*n-s*a,e}});var C9=N((_Ee,L9)=>{L9.exports=ole;function ole(e,r,t){var a,n,i,o=t[0],l=t[1],s=t[2],u=Math.sqrt(o*o+l*l+s*s);return Math.abs(u)<1e-6?null:(u=1/u,o*=u,l*=u,s*=u,a=Math.sin(r),n=Math.cos(r),i=1-n,e[0]=o*o*i+n,e[1]=l*o*i+s*a,e[2]=s*o*i-l*a,e[3]=0,e[4]=o*l*i-s*a,e[5]=l*l*i+n,e[6]=s*l*i+o*a,e[7]=0,e[8]=o*s*i+l*a,e[9]=l*s*i-o*a,e[10]=s*s*i+n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)}});var D9=N((wEe,E9)=>{E9.exports=lle;function lle(e,r,t){var a=r[0],n=r[1],i=r[2],o=r[3],l=a+a,s=n+n,u=i+i,f=a*l,c=a*s,v=a*u,d=n*s,p=n*u,y=i*u,m=o*l,x=o*s,T=o*u;return e[0]=1-(d+y),e[1]=c+T,e[2]=v-x,e[3]=0,e[4]=c-T,e[5]=1-(f+y),e[6]=p+m,e[7]=0,e[8]=v+x,e[9]=p-m,e[10]=1-(f+d),e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e}});var P9=N((TEe,R9)=>{R9.exports=sle;function sle(e,r){return e[0]=r[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=r[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=r[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}});var N9=N((AEe,F9)=>{F9.exports=ule;function ule(e,r){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}});var z9=N((MEe,I9)=>{I9.exports=fle;function fle(e,r){var t=Math.sin(r),a=Math.cos(r);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=t,e[7]=0,e[8]=0,e[9]=-t,e[10]=a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}});var B9=N((kEe,O9)=>{O9.exports=cle;function cle(e,r){var t=Math.sin(r),a=Math.cos(r);return e[0]=a,e[1]=0,e[2]=-t,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=t,e[9]=0,e[10]=a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}});var U9=N((SEe,H9)=>{H9.exports=vle;function vle(e,r){var t=Math.sin(r),a=Math.cos(r);return e[0]=a,e[1]=t,e[2]=0,e[3]=0,e[4]=-t,e[5]=a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}});var V9=N((qEe,G9)=>{G9.exports=hle;function hle(e,r){var t=r[0],a=r[1],n=r[2],i=r[3],o=t+t,l=a+a,s=n+n,u=t*o,f=a*o,c=a*l,v=n*o,d=n*l,p=n*s,y=i*o,m=i*l,x=i*s;return e[0]=1-c-p,e[1]=f+x,e[2]=v-m,e[3]=0,e[4]=f-x,e[5]=1-u-p,e[6]=d+y,e[7]=0,e[8]=v+m,e[9]=d-y,e[10]=1-u-c,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}});var W9=N((LEe,Y9)=>{Y9.exports=dle;function dle(e,r,t,a,n,i,o){var l=1/(t-r),s=1/(n-a),u=1/(i-o);return e[0]=i*2*l,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i*2*s,e[6]=0,e[7]=0,e[8]=(t+r)*l,e[9]=(n+a)*s,e[10]=(o+i)*u,e[11]=-1,e[12]=0,e[13]=0,e[14]=o*i*2*u,e[15]=0,e}});var Z9=N((CEe,j9)=>{j9.exports=ple;function ple(e,r,t,a,n){var i=1/Math.tan(r/2),o=1/(a-n);return e[0]=i/t,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=(n+a)*o,e[11]=-1,e[12]=0,e[13]=0,e[14]=2*n*a*o,e[15]=0,e}});var J9=N((EEe,X9)=>{X9.exports=yle;function yle(e,r,t,a){var n=Math.tan(r.upDegrees*Math.PI/180),i=Math.tan(r.downDegrees*Math.PI/180),o=Math.tan(r.leftDegrees*Math.PI/180),l=Math.tan(r.rightDegrees*Math.PI/180),s=2/(o+l),u=2/(n+i);return e[0]=s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=u,e[6]=0,e[7]=0,e[8]=-((o-l)*s*.5),e[9]=(n-i)*u*.5,e[10]=a/(t-a),e[11]=-1,e[12]=0,e[13]=0,e[14]=a*t/(t-a),e[15]=0,e}});var K9=N((DEe,$9)=>{$9.exports=mle;function mle(e,r,t,a,n,i,o){var l=1/(r-t),s=1/(a-n),u=1/(i-o);return e[0]=-2*l,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*s,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*u,e[11]=0,e[12]=(r+t)*l,e[13]=(n+a)*s,e[14]=(o+i)*u,e[15]=1,e}});var ek=N((REe,Q9)=>{var gle=wb();Q9.exports=ble;function ble(e,r,t,a){var n,i,o,l,s,u,f,c,v,d,p=r[0],y=r[1],m=r[2],x=a[0],T=a[1],_=a[2],b=t[0],w=t[1],k=t[2];return Math.abs(p-b)<1e-6&&Math.abs(y-w)<1e-6&&Math.abs(m-k)<1e-6?gle(e):(f=p-b,c=y-w,v=m-k,d=1/Math.sqrt(f*f+c*c+v*v),f*=d,c*=d,v*=d,n=T*v-_*c,i=_*f-x*v,o=x*c-T*f,d=Math.sqrt(n*n+i*i+o*o),d?(d=1/d,n*=d,i*=d,o*=d):(n=0,i=0,o=0),l=c*o-v*i,s=v*n-f*o,u=f*i-c*n,d=Math.sqrt(l*l+s*s+u*u),d?(d=1/d,l*=d,s*=d,u*=d):(l=0,s=0,u=0),e[0]=n,e[1]=l,e[2]=f,e[3]=0,e[4]=i,e[5]=s,e[6]=c,e[7]=0,e[8]=o,e[9]=u,e[10]=v,e[11]=0,e[12]=-(n*p+i*y+o*m),e[13]=-(l*p+s*y+u*m),e[14]=-(f*p+c*y+v*m),e[15]=1,e)}});var tk=N((PEe,rk)=>{rk.exports=xle;function xle(e){return"mat4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+", "+e[9]+", "+e[10]+", "+e[11]+", "+e[12]+", "+e[13]+", "+e[14]+", "+e[15]+")"}});var Tb=N((FEe,ak)=>{ak.exports={create:r9(),clone:a9(),copy:i9(),identity:wb(),transpose:s9(),invert:f9(),adjoint:v9(),determinant:d9(),multiply:y9(),translate:g9(),scale:x9(),rotate:w9(),rotateX:A9(),rotateY:k9(),rotateZ:q9(),fromRotation:C9(),fromRotationTranslation:D9(),fromScaling:P9(),fromTranslation:N9(),fromXRotation:z9(),fromYRotation:B9(),fromZRotation:U9(),fromQuat:V9(),frustum:W9(),perspective:Z9(),perspectiveFromFieldOfView:J9(),ortho:K9(),lookAt:ek(),str:tk()}});var Fp=N(ea=>{"use strict";var _le=Tb();ea.init2dArray=function(e,r){for(var t=new Array(e),a=0;a {"use strict";var wle=Sr(),nk=au(),Tle=Fp(),Ale=Tb();function Mle(e){var r;if(typeof e=="string"){if(r=document.getElementById(e),r===null)throw new Error("No DOM element with id '"+e+"' exists on the page.");return r}else if(e==null)throw new Error("DOM element provided is null or undefined");return e}function kle(e){var r=wle.select(e);return r.node()instanceof HTMLElement&&r.size()&&r.classed("js-plotly-plot")}function ik(e){var r=e&&e.parentNode;r&&r.removeChild(e)}function Sle(e,r){ok("global",e,r)}function ok(e,r,t){var a="plotly.js-style-"+e,n=document.getElementById(a);if(!(n&&n.matches(".no-inline-styles"))){n||(n=document.createElement("style"),n.setAttribute("id",a),n.appendChild(document.createTextNode("")),document.head.appendChild(n));var i=n.sheet;i?i.insertRule?i.insertRule(r+"{"+t+"}",0):i.addRule?i.addRule(r,t,0):nk.warn("addStyleRule failed"):nk.warn("Cannot addRelatedStyleRule, probably due to strict CSP...")}}function qle(e){var r="plotly.js-style-"+e,t=document.getElementById(r);t&&ik(t)}function Lle(e,r,t,a,n,i){var o=a.split(":"),l=n.split(":"),s="data-btn-style-event-added";i||(i=document),i.querySelectorAll(e).forEach(function(u){u.getAttribute(s)||(u.addEventListener("mouseenter",function(){var f=this.querySelector(t);f&&(f.style[o[0]]=o[1])}),u.addEventListener("mouseleave",function(){var f=this.querySelector(t);f&&(r&&this.matches(r)?f.style[o[0]]=o[1]:f.style[l[0]]=l[1])}),u.setAttribute(s,!0))})}function Cle(e){var r=sk(e),t=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];return r.forEach(function(a){var n=lk(a);if(n){var i=Tle.convertCssMatrix(n);t=Ale.multiply(t,t,i)}}),t}function lk(e){var r=window.getComputedStyle(e,null),t=r.getPropertyValue("-webkit-transform")||r.getPropertyValue("-moz-transform")||r.getPropertyValue("-ms-transform")||r.getPropertyValue("-o-transform")||r.getPropertyValue("transform");return t==="none"?null:t.replace("matrix","").replace("3d","").slice(1,-1).split(",").map(function(a){return+a})}function sk(e){for(var r=[];Ele(e);)r.push(e),e=e.parentNode,typeof ShadowRoot=="function"&&e instanceof ShadowRoot&&(e=e.host);return r}function Ele(e){return e&&(e instanceof Element||e instanceof HTMLElement)}function Dle(e,r){return e&&r&&e.top===r.top&&e.left===r.left&&e.right===r.right&&e.bottom===r.bottom}uk.exports={getGraphDiv:Mle,isPlotDiv:kle,removeElement:ik,addStyleRule:Sle,addRelatedStyleRule:ok,deleteRelatedStyleRule:qle,setStyleOnHover:Lle,getFullTransformMatrix:Cle,getElementTransformMatrix:lk,getElementAndAncestors:sk,equalDomRects:Dle}});var ih=N((zEe,fk)=>{"use strict";fk.exports={mode:{valType:"enumerated",dflt:"afterall",values:["immediate","next","afterall"]},direction:{valType:"enumerated",values:["forward","reverse"],dflt:"forward"},fromcurrent:{valType:"boolean",dflt:!1},frame:{duration:{valType:"number",min:0,dflt:500},redraw:{valType:"boolean",dflt:!0}},transition:{duration:{valType:"number",min:0,dflt:500,editType:"none"},easing:{valType:"enumerated",dflt:"cubic-in-out",values:["linear","quad","cubic","sin","exp","circle","elastic","back","bounce","linear-in","quad-in","cubic-in","sin-in","exp-in","circle-in","elastic-in","back-in","bounce-in","linear-out","quad-out","cubic-out","sin-out","exp-out","circle-out","elastic-out","back-out","bounce-out","linear-in-out","quad-in-out","cubic-in-out","sin-in-out","exp-in-out","circle-in-out","elastic-in-out","back-in-out","bounce-in-out"],editType:"none"},ordering:{valType:"enumerated",values:["layout first","traces first"],dflt:"layout first",editType:"none"}}}});var eo=N((OEe,mk)=>{"use strict";var vk=bt().extendFlat,Rle=Vl(),hk={valType:"flaglist",extras:["none"],flags:["calc","clearAxisTypes","plot","style","markerSize","colorbars"]},dk={valType:"flaglist",extras:["none"],flags:["calc","plot","legend","ticks","axrange","layoutstyle","modebar","camera","arraydraw","colorbars"]},Ple=hk.flags.slice().concat(["fullReplot"]),Fle=dk.flags.slice().concat("layoutReplot");mk.exports={traces:hk,layout:dk,traceFlags:function(){return ck(Ple)},layoutFlags:function(){return ck(Fle)},update:function(e,r){var t=r.editType;if(t&&t!=="none")for(var a=t.split("+"),n=0;n {"use strict";Ab.dash={valType:"string",values:["solid","dot","dash","longdash","dashdot","longdashdot"],dflt:"solid",editType:"style"};Ab.pattern={shape:{valType:"enumerated",values:["","/","\\","x","-","|","+","."],dflt:"",arrayOk:!0,editType:"style"},path:{valType:"string",arrayOk:!0,editType:"style"},fillmode:{valType:"enumerated",values:["replace","overlay"],dflt:"replace",editType:"style"},bgcolor:{valType:"color",arrayOk:!0,editType:"style"},fgcolor:{valType:"color",arrayOk:!0,editType:"style"},fgopacity:{valType:"number",editType:"style",min:0,max:1},size:{valType:"number",min:0,dflt:8,arrayOk:!0,editType:"style"},solidity:{valType:"number",min:0,max:1,dflt:.3,arrayOk:!0,editType:"style"},editType:"style"}});var Mb=N((HEe,gk)=>{"use strict";gk.exports={FORMAT_LINK:"https://github.com/d3/d3-format/tree/v1.4.5#d3-format",DATE_FORMAT_LINK:"https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format"}});var Wn=N(zf=>{"use strict";var{DATE_FORMAT_LINK:Nle,FORMAT_LINK:Ile}=Mb(),zle=["Variables that can't be found will be replaced with the specifier.",'For example, a template of "data: %{x}, %{y}" will result in a value of "data: 1, %{y}" if x is 1 and y is missing.',"Variables with an undefined value will be replaced with the fallback value."].join(" ");function Ole({supportOther:e}={}){return["Variables are inserted using %{variable},",'for example "y: %{y}"'+(e?" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown.":"."),`Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example "Price: %{y:$.2f}".`,Ile,"for details on the formatting syntax.",`Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example "Day: %{2019-01-01|%A}".`,Nle,"for details on the date formatting syntax.",zle].join(" ")}zf.templateFormatStringDescription=Ole;zf.hovertemplateAttrs=({editType:e="none",arrayOk:r}={},t={})=>Ks({valType:"string",dflt:"",editType:e},r!==!1?{arrayOk:!0}:{});zf.texttemplateAttrs=({editType:e="calc",arrayOk:r}={},t={})=>Ks({valType:"string",dflt:"",editType:e},r!==!1?{arrayOk:!0}:{});zf.shapeTexttemplateAttrs=({editType:e="arraydraw",newshape:r}={},t={})=>({valType:"string",dflt:"",editType:e});zf.templatefallbackAttrs=({editType:e="none"}={})=>({valType:"any",dflt:"-",editType:e})});var zp=N((VEe,Ak)=>{"use strict";function jl(e,r){return r?r.d2l(e):e}function bk(e,r){return r?r.l2d(e):e}function Ble(e){return e.x0}function Hle(e){return e.x1}function Ule(e){return e.y0}function Gle(e){return e.y1}function xk(e){return e.x0shift||0}function _k(e){return e.x1shift||0}function wk(e){return e.y0shift||0}function Tk(e){return e.y1shift||0}function Np(e,r){return jl(e.x1,r)+_k(e)-jl(e.x0,r)-xk(e)}function Ip(e,r,t){return jl(e.y1,t)+Tk(e)-jl(e.y0,t)-wk(e)}function Vle(e,r){return Math.abs(Np(e,r))}function Yle(e,r,t){return Math.abs(Ip(e,r,t))}function Wle(e,r,t){return e.type!=="line"?void 0:Math.sqrt(Math.pow(Np(e,r),2)+Math.pow(Ip(e,r,t),2))}function jle(e,r){return bk((jl(e.x1,r)+_k(e)+jl(e.x0,r)+xk(e))/2,r)}function Zle(e,r,t){return bk((jl(e.y1,t)+Tk(e)+jl(e.y0,t)+wk(e))/2,t)}function Xle(e,r,t){return e.type!=="line"?void 0:Ip(e,r,t)/Np(e,r)}var Jle=["x0","x1","y0","y1","dy","height","ycenter"],$le=["x0","x1","y0","y1","dx","width","xcenter"];Ak.exports={x0:Ble,x1:Hle,y0:Ule,y1:Gle,slope:Xle,dx:Np,dy:Ip,width:Vle,height:Yle,length:Wle,xcenter:jle,ycenter:Zle,simpleXVariables:Jle,simpleYVariables:$le}});var Sk=N((YEe,kk)=>{"use strict";var Kle=eo().overrideAll,nu=gn(),Mk=ga(),Qle=ci().dash,Zl=bt().extendFlat,{shapeTexttemplateAttrs:ese,templatefallbackAttrs:rse}=Wn(),tse=zp();kk.exports=Kle({newshape:{visible:Zl({},nu.visible,{}),showlegend:{valType:"boolean",dflt:!1},legend:Zl({},nu.legend,{}),legendgroup:Zl({},nu.legendgroup,{}),legendgrouptitle:{text:Zl({},nu.legendgrouptitle.text,{}),font:Mk({})},legendrank:Zl({},nu.legendrank,{}),legendwidth:Zl({},nu.legendwidth,{}),line:{color:{valType:"color"},width:{valType:"number",min:0,dflt:4},dash:Zl({},Qle,{dflt:"solid"})},fillcolor:{valType:"color",dflt:"rgba(0,0,0,0)"},fillrule:{valType:"enumerated",values:["evenodd","nonzero"],dflt:"evenodd"},opacity:{valType:"number",min:0,max:1,dflt:1},layer:{valType:"enumerated",values:["below","above","between"],dflt:"above"},drawdirection:{valType:"enumerated",values:["ortho","horizontal","vertical","diagonal"],dflt:"diagonal"},name:Zl({},nu.name,{}),label:{text:{valType:"string",dflt:""},texttemplate:ese({newshape:!0},{keys:Object.keys(tse)}),texttemplatefallback:rse({editType:"arraydraw"}),font:Mk({}),textposition:{valType:"enumerated",values:["top left","top center","top right","middle left","middle center","middle right","bottom left","bottom center","bottom right","start","middle","end"]},textangle:{valType:"angle",dflt:"auto"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"auto"},yanchor:{valType:"enumerated",values:["top","middle","bottom"]},padding:{valType:"number",dflt:3,min:0}}},activeshape:{fillcolor:{valType:"color",dflt:"rgb(255,0,255)",description:"Sets the color filling the active shape' interior."},opacity:{valType:"number",min:0,max:1,dflt:.5}}},"none","from-root")});var Lk=N((WEe,qk)=>{"use strict";var ase=ci().dash,nse=bt().extendFlat;qk.exports={newselection:{mode:{valType:"enumerated",values:["immediate","gradual"],dflt:"immediate",editType:"none"},line:{color:{valType:"color",editType:"none"},width:{valType:"number",min:1,dflt:1,editType:"none"},dash:nse({},ase,{dflt:"dot",editType:"none"}),editType:"none"},editType:"none"},activeselection:{fillcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"none"},opacity:{valType:"number",min:0,max:1,dflt:.5,editType:"none"},editType:"none"}}});var Op=N((jEe,Ck)=>{"use strict";Ck.exports=function(e){var r=e.editType;return{t:{valType:"number",dflt:0,editType:r},r:{valType:"number",dflt:0,editType:r},b:{valType:"number",dflt:0,editType:r},l:{valType:"number",dflt:0,editType:r},editType:r}}});var Of=N((ZEe,Pk)=>{"use strict";var kb=ga(),ise=ih(),Bp=fi(),Ek=Sk(),Dk=Lk(),ose=Op(),Rk=bt().extendFlat,Hp=kb({editType:"calc"});Hp.family.dflt='"Open Sans", verdana, arial, sans-serif';Hp.size.dflt=12;Hp.color.dflt=Bp.defaultLine;Pk.exports={font:Hp,title:{text:{valType:"string",editType:"layoutstyle"},font:kb({editType:"layoutstyle"}),subtitle:{text:{valType:"string",editType:"layoutstyle"},font:kb({editType:"layoutstyle"}),editType:"layoutstyle"},xref:{valType:"enumerated",dflt:"container",values:["container","paper"],editType:"layoutstyle"},yref:{valType:"enumerated",dflt:"container",values:["container","paper"],editType:"layoutstyle"},x:{valType:"number",min:0,max:1,dflt:.5,editType:"layoutstyle"},y:{valType:"number",min:0,max:1,dflt:"auto",editType:"layoutstyle"},xanchor:{valType:"enumerated",dflt:"auto",values:["auto","left","center","right"],editType:"layoutstyle"},yanchor:{valType:"enumerated",dflt:"auto",values:["auto","top","middle","bottom"],editType:"layoutstyle"},pad:Rk(ose({editType:"layoutstyle"}),{}),automargin:{valType:"boolean",dflt:!1,editType:"plot"},editType:"layoutstyle"},uniformtext:{mode:{valType:"enumerated",values:[!1,"hide","show"],dflt:!1,editType:"plot"},minsize:{valType:"number",min:0,dflt:0,editType:"plot"},editType:"plot"},autosize:{valType:"boolean",dflt:!1,editType:"none"},width:{valType:"number",min:10,dflt:700,editType:"plot"},height:{valType:"number",min:10,dflt:450,editType:"plot"},minreducedwidth:{valType:"number",min:2,dflt:64,editType:"plot"},minreducedheight:{valType:"number",min:2,dflt:64,editType:"plot"},margin:{l:{valType:"number",min:0,dflt:80,editType:"plot"},r:{valType:"number",min:0,dflt:80,editType:"plot"},t:{valType:"number",min:0,dflt:100,editType:"plot"},b:{valType:"number",min:0,dflt:80,editType:"plot"},pad:{valType:"number",min:0,dflt:0,editType:"plot"},autoexpand:{valType:"boolean",dflt:!0,editType:"plot"},editType:"plot"},computed:{valType:"any",editType:"none"},paper_bgcolor:{valType:"color",dflt:Bp.background,editType:"plot"},plot_bgcolor:{valType:"color",dflt:Bp.background,editType:"layoutstyle"},autotypenumbers:{valType:"enumerated",values:["convert types","strict"],dflt:"convert types",editType:"calc"},separators:{valType:"string",editType:"plot"},hidesources:{valType:"boolean",dflt:!1,editType:"plot"},showlegend:{valType:"boolean",editType:"legend"},colorway:{valType:"colorlist",dflt:Bp.defaults,editType:"calc"},datarevision:{valType:"any",editType:"calc"},uirevision:{valType:"any",editType:"none"},editrevision:{valType:"any",editType:"none"},selectionrevision:{valType:"any",editType:"none"},template:{valType:"any",editType:"calc"},newshape:Ek.newshape,activeshape:Ek.activeshape,newselection:Dk.newselection,activeselection:Dk.activeselection,meta:{valType:"any",arrayOk:!0,editType:"plot"},transition:Rk({},ise.transition,{editType:"none"})}});var Fk=N(()=>{(function(){if(!document.getElementById("8431bff7cc77ea8693f8122c6e0981316b936a0a4930625e08b1512d134062bc")){var e=document.createElement("style");e.id="8431bff7cc77ea8693f8122c6e0981316b936a0a4930625e08b1512d134062bc",e.textContent=`.maplibregl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgb(0 0 0/0)}.maplibregl-canvas{left:0;position:absolute;top:0}.maplibregl-map:fullscreen{height:100%;width:100%}.maplibregl-ctrl-group button.maplibregl-ctrl-compass{touch-action:none}.maplibregl-canvas-container.maplibregl-interactive,.maplibregl-ctrl-group button.maplibregl-ctrl-compass{cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.maplibregl-canvas-container.maplibregl-interactive.maplibregl-track-pointer{cursor:pointer}.maplibregl-canvas-container.maplibregl-interactive:active,.maplibregl-ctrl-group button.maplibregl-ctrl-compass:active{cursor:grabbing}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-canvas-container.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:pinch-zoom}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:none}.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures,.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-top-left,.maplibregl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.maplibregl-ctrl-top-left{left:0;top:0}.maplibregl-ctrl-top-right{right:0;top:0}.maplibregl-ctrl-bottom-left{bottom:0;left:0}.maplibregl-ctrl-bottom-right{bottom:0;right:0}.maplibregl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.maplibregl-ctrl-top-left .maplibregl-ctrl{float:left;margin:10px 0 0 10px}.maplibregl-ctrl-top-right .maplibregl-ctrl{float:right;margin:10px 10px 0 0}.maplibregl-ctrl-bottom-left .maplibregl-ctrl{float:left;margin:0 0 10px 10px}.maplibregl-ctrl-bottom-right .maplibregl-ctrl{float:right;margin:0 10px 10px 0}.maplibregl-ctrl-group{background:#fff;border-radius:4px}.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px rgba(0,0,0,.1)}@media (forced-colors:active){.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.maplibregl-ctrl-group button{background-color:transparent;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:none;padding:0;width:29px}.maplibregl-ctrl-group button+button{border-top:1px solid #ddd}.maplibregl-ctrl button .maplibregl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}@media (forced-colors:active){.maplibregl-ctrl-icon{background-color:transparent}.maplibregl-ctrl-group button+button{border-top:1px solid ButtonText}}.maplibregl-ctrl button::-moz-focus-inner{border:0;padding:0}.maplibregl-ctrl-attrib-button:focus,.maplibregl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl button:disabled{cursor:not-allowed}.maplibregl-ctrl button:disabled .maplibregl-ctrl-icon{opacity:.25}.maplibregl-ctrl button:not(:disabled):hover{background-color:rgb(0 0 0/5%)}.maplibregl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.maplibregl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.maplibregl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.maplibregl-ctrl-group button:focus:only-child{border-radius:inherit}.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-terrain .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%23333' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-terrain-enabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%2333b5e5' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23aaa' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-waiting .maplibregl-ctrl-icon{animation:maplibregl-spin 2s linear infinite}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23999' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23666' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}}@keyframes maplibregl-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.maplibregl-ctrl-logo.maplibregl-compact{width:14px}@media (forced-colors:active){a.maplibregl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}.maplibregl-ctrl.maplibregl-ctrl-attrib{background-color:hsla(0,0%,100%,.5);margin:0;padding:0 5px}@media screen{.maplibregl-ctrl-attrib.maplibregl-compact{background-color:#fff;border-radius:12px;box-sizing:content-box;color:#000;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.maplibregl-ctrl-attrib.maplibregl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact-show,.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-inner{display:none}.maplibregl-ctrl-attrib-button{background-color:hsla(0,0%,100%,.5);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:none;position:absolute;right:0;top:0;width:24px}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;list-style:none}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button::-webkit-details-marker{display:none}.maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-top-left .maplibregl-ctrl-attrib-button{left:0}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner{display:block}.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button{background-color:rgb(0 0 0/5%)}.maplibregl-ctrl-bottom-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;right:0}.maplibregl-ctrl-top-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{right:0;top:0}.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{left:0;top:0}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;left:0}}@media screen and (forced-colors:active){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23fff' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.maplibregl-ctrl-attrib a{color:rgba(0,0,0,.75);text-decoration:none}.maplibregl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.maplibregl-attrib-empty{display:none}.maplibregl-ctrl-scale{background-color:hsla(0,0%,100%,.75);border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px}.maplibregl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.maplibregl-popup-anchor-top,.maplibregl-popup-anchor-top-left,.maplibregl-popup-anchor-top-right{flex-direction:column}.maplibregl-popup-anchor-bottom,.maplibregl-popup-anchor-bottom-left,.maplibregl-popup-anchor-bottom-right{flex-direction:column-reverse}.maplibregl-popup-anchor-left{flex-direction:row}.maplibregl-popup-anchor-right{flex-direction:row-reverse}.maplibregl-popup-tip{border:10px solid transparent;height:0;width:0;z-index:1}.maplibregl-popup-anchor-top .maplibregl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.maplibregl-popup-anchor-top-left .maplibregl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.maplibregl-popup-anchor-top-right .maplibregl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.maplibregl-popup-anchor-left .maplibregl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.maplibregl-popup-anchor-right .maplibregl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.maplibregl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.maplibregl-popup-close-button:hover{background-color:rgb(0 0 0/5%)}.maplibregl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.1);padding:15px 10px;pointer-events:auto;position:relative}.maplibregl-popup-anchor-top-left .maplibregl-popup-content{border-top-left-radius:0}.maplibregl-popup-anchor-top-right .maplibregl-popup-content{border-top-right-radius:0}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-content{border-bottom-left-radius:0}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-content{border-bottom-right-radius:0}.maplibregl-popup-track-pointer{display:none}.maplibregl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.maplibregl-map:hover .maplibregl-popup-track-pointer{display:flex}.maplibregl-map:active .maplibregl-popup-track-pointer{display:none}.maplibregl-marker{left:0;position:absolute;top:0;transition:opacity .2s;will-change:transform}.maplibregl-user-location-dot,.maplibregl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.maplibregl-user-location-dot:before{animation:maplibregl-user-location-dot-pulse 2s infinite;content:"";position:absolute}.maplibregl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px rgba(0,0,0,.35);box-sizing:border-box;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px}@keyframes maplibregl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.maplibregl-user-location-dot-stale{background-color:#aaa}.maplibregl-user-location-dot-stale:after{display:none}.maplibregl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;height:1px;width:1px}.maplibregl-crosshair,.maplibregl-crosshair .maplibregl-interactive,.maplibregl-crosshair .maplibregl-interactive:active{cursor:crosshair}.maplibregl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}.maplibregl-cooperative-gesture-screen{align-items:center;background:rgba(0,0,0,.4);color:#fff;display:flex;font-size:1.4em;inset:0;justify-content:center;line-height:1.2;opacity:0;padding:1rem;pointer-events:none;position:absolute;transition:opacity 1s ease 1s;z-index:99999}.maplibregl-cooperative-gesture-screen.maplibregl-show{opacity:1;transition:opacity .05s}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:none}@media (hover:none),(width <= 480px){.maplibregl-cooperative-gesture-screen .maplibregl-desktop-message{display:none}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:block}}.maplibregl-pseudo-fullscreen{height:100%!important;left:0!important;position:fixed!important;top:0!important;width:100%!important;z-index:99999}`,document.head.appendChild(e)}})()});var br=N(Br=>{"use strict";var Bf=au(),Nk=Pp(),Ik=_b(),lse=Vl(),sse=nh().addStyleRule,zk=bt(),use=gn(),fse=Of(),cse=zk.extendFlat,Sb=zk.extendDeepAll;Br.modules={};Br.allCategories={};Br.allTypes=[];Br.subplotsRegistry={};Br.componentsRegistry={};Br.layoutArrayContainers=[];Br.layoutArrayRegexes=[];Br.traceLayoutAttributes={};Br.localeRegistry={};Br.apiMethodRegistry={};Br.collectableSubplotTypes=null;Br.register=function(r){if(Br.collectableSubplotTypes=null,r)r&&!Array.isArray(r)&&(r=[r]);else throw new Error("No argument passed to Plotly.register.");for(var t=0;t {"use strict";var mse=Ef().timeFormat,Xk=Rr(),qb=au(),Jl=Rf().mod,Gf=Ft(),vi=Gf.BADNUM,En=Gf.ONEDAY,oh=Gf.ONEHOUR,Xl=Gf.ONEMIN,Uf=Gf.ONESEC,lh=Gf.EPOCHJD,sl=br(),Gk=Ef().utcFormat,gse=/^\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,bse=/^\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,Vk=new Date().getFullYear()-70;function ul(e){return e&&sl.componentsRegistry.calendars&&typeof e=="string"&&e!=="gregorian"}ra.dateTick0=function(e,r){var t=xse(e,!!r);if(r<2)return t;var a=ra.dateTime2ms(t,e);return a+=En*(r-1),ra.ms2DateTime(a,0,e)};function xse(e,r){return ul(e)?r?sl.getComponentMethod("calendars","CANONICAL_SUNDAY")[e]:sl.getComponentMethod("calendars","CANONICAL_TICK")[e]:r?"2000-01-02":"2000-01-01"}ra.dfltRange=function(e){return ul(e)?sl.getComponentMethod("calendars","DFLTRANGE")[e]:["2000-01-01","2001-01-01"]};ra.isJSDate=function(e){return typeof e=="object"&&e!==null&&typeof e.getTime=="function"};var Gp,Vp;ra.dateTime2ms=function(e,r){if(ra.isJSDate(e)){var t=e.getTimezoneOffset()*Xl,a=(e.getUTCMinutes()-e.getMinutes())*Xl+(e.getUTCSeconds()-e.getSeconds())*Uf+(e.getUTCMilliseconds()-e.getMilliseconds());if(a){var n=3*Xl;t=t-n/2+Jl(a-t+n/2,n)}return e=Number(e)-t,e>=Gp&&e<=Vp?e:vi}if(typeof e!="string"&&typeof e!="number")return vi;e=String(e);var i=ul(r),o=e.charAt(0);i&&(o==="G"||o==="g")&&(e=e.slice(1),r="");var l=i&&r.slice(0,7)==="chinese",s=e.match(l?bse:gse);if(!s)return vi;var u=s[1],f=s[3]||"1",c=Number(s[5]||1),v=Number(s[7]||0),d=Number(s[9]||0),p=Number(s[11]||0);if(i){if(u.length===2)return vi;u=Number(u);var y;try{var m=sl.getComponentMethod("calendars","getCal")(r);if(l){var x=f.charAt(f.length-1)==="i";f=parseInt(f,10),y=m.newDate(u,m.toMonthIndex(u,f,x),c)}else y=m.newDate(u,Number(f),c)}catch(_){return vi}return y?(y.toJD()-lh)*En+v*oh+d*Xl+p*Uf:vi}u.length===2?u=(Number(u)+2e3-Vk)%100+Vk:u=Number(u),f-=1;var T=new Date(Date.UTC(2e3,f,c,v,d));return T.setUTCFullYear(u),T.getUTCMonth()!==f||T.getUTCDate()!==c?vi:T.getTime()+p*Uf};Gp=ra.MIN_MS=ra.dateTime2ms("-9999");Vp=ra.MAX_MS=ra.dateTime2ms("9999-12-31 23:59:59.9999");ra.isDateTime=function(e,r){return ra.dateTime2ms(e,r)!==vi};function Hf(e,r){return String(e+Math.pow(10,r)).slice(1)}var Up=90*En,Yk=3*oh,Wk=5*Xl;ra.ms2DateTime=function(e,r,t){if(typeof e!="number"||!(e>=Gp&&e<=Vp))return vi;r||(r=0);var a=Math.floor(Jl(e+.05,1)*10),n=Math.round(e-a/10),i,o,l,s,u,f;if(ul(t)){var c=Math.floor(n/En)+lh,v=Math.floor(Jl(e,En));try{i=sl.getComponentMethod("calendars","getCal")(t).fromJD(c).formatDate("yyyy-mm-dd")}catch(d){i=Gk("G%Y-%m-%d")(new Date(n))}if(i.charAt(0)==="-")for(;i.length<11;)i="-0"+i.slice(1);else for(;i.length<10;)i="0"+i;o=r =Gp+En&&e<=Vp-En))return vi;var r=Math.floor(Jl(e+.05,1)*10),t=new Date(Math.round(e-r/10)),a=mse("%Y-%m-%d")(t),n=t.getHours(),i=t.getMinutes(),o=t.getSeconds(),l=t.getUTCMilliseconds()*10+r;return Jk(a,n,i,o,l)};function Jk(e,r,t,a,n){if((r||t||a||n)&&(e+=" "+Hf(r,2)+":"+Hf(t,2),(a||n)&&(e+=":"+Hf(a,2),n))){for(var i=4;n%10===0;)i-=1,n/=10;e+="."+Hf(n,i)}return e}ra.cleanDate=function(e,r,t){if(e===vi)return r;if(ra.isJSDate(e)||typeof e=="number"&&isFinite(e)){if(ul(t))return qb.error("JS Dates and milliseconds are incompatible with world calendars",e),r;if(e=ra.ms2DateTimeLocal(+e),!e&&r!==void 0)return r}else if(!ra.isDateTime(e,t))return qb.error("unrecognized date",e),r;return e};var _se=/%\d?f/g,wse=/%h/g,Tse={1:"1",2:"1",3:"2",4:"2"};function jk(e,r,t,a){e=e.replace(_se,function(i){var o=Math.min(+i.charAt(1)||6,6),l=(r/1e3%1+2).toFixed(o).slice(2).replace(/0+$/,"")||"0";return l});var n=new Date(Math.floor(r+.05));if(e=e.replace(wse,function(){return Tse[t("%q")(n)]}),ul(a))try{e=sl.getComponentMethod("calendars","worldCalFmt")(e,r,a)}catch(i){return"Invalid"}return t(e)(n)}var Ase=[59,59.9,59.99,59.999,59.9999];function Mse(e,r){var t=Jl(e+.05,En),a=Hf(Math.floor(t/oh),2)+":"+Hf(Jl(Math.floor(t/Xl),60),2);if(r!=="M"){Xk(r)||(r=0);var n=Math.min(Jl(e/Uf,60),Ase[r]),i=(100+n).toFixed(r).slice(1);r>0&&(i=i.replace(/0+$/,"").replace(/[\.]$/,"")),a+=":"+i}return a}ra.formatDate=function(e,r,t,a,n,i){if(n=ul(n)&&n,!r)if(t==="y")r=i.year;else if(t==="m")r=i.month;else if(t==="d")r=i.dayMonth+` +`+i.year;else return Mse(e,t)+` +`+jk(i.dayMonthYear,e,a,n);return jk(r,e,a,n)};var Zk=3*En;ra.incrementMonth=function(e,r,t){t=ul(t)&&t;var a=Jl(e,En);if(e=Math.round(e-a),t)try{var n=Math.round(e/En)+lh,i=sl.getComponentMethod("calendars","getCal")(t),o=i.fromJD(n);return r%12?i.add(o,r,"m"):i.add(o,r/12,"y"),(o.toJD()-lh)*En+a}catch(s){qb.error("invalid ms "+e+" in calendar "+t)}var l=new Date(e+Zk);return l.setUTCMonth(l.getUTCMonth()+r)+a-Zk};ra.findExactDates=function(e,r){for(var t=0,a=0,n=0,i=0,o,l,s=ul(r)&&sl.getComponentMethod("calendars","getCal")(r),u=0;u {"use strict";Kk.exports=function(r){return r}});var Eb=N(fl=>{"use strict";var kse=Rr(),Sse=au(),qse=Lb(),Lse=Ft().BADNUM,Cb=1e-9;fl.findBin=function(e,r,t){if(kse(r.start))return t?Math.ceil((e-r.start)/r.size-Cb)-1:Math.floor((e-r.start)/r.size+Cb);var a=0,n=r.length,i=0,o=n>1?(r[n-1]-r[0])/(n-1):1,l,s;for(o>=0?s=t?Cse:Ese:s=t?Rse:Dse,e+=o*Cb*(t?-1:1)*(o>=0?1:-1);a 90&&Sse.log("Long binary search..."),a-1};function Cse(e,r){return e r}function Rse(e,r){return e>=r}fl.sorterAsc=function(e,r){return e-r};fl.sorterDes=function(e,r){return r-e};fl.distinctVals=function(e){var r=e.slice();r.sort(fl.sorterAsc);var t;for(t=r.length-1;t>-1&&r[t]===Lse;t--);for(var a=r[t]-r[0]||1,n=a/(t||1)/1e4,i=[],o,l=0;l<=t;l++){var s=r[l],u=s-o;o===void 0?(i.push(s),o=s):u>n&&(a=Math.min(a,u),i.push(s),o=s)}return{vals:i,minDiff:a}};fl.roundUp=function(e,r,t){for(var a=0,n=r.length-1,i,o=0,l=t?0:1,s=t?1:0,u=t?Math.ceil:Math.floor;a 0&&(a=1),t&&a)return e.sort(r)}return a?e:e.reverse()};fl.findIndexOfMin=function(e,r){r=r||qse;for(var t=1/0,a,n=0;n {"use strict";Qk.exports=function(r){return Object.keys(r).sort()}});var eS=N(ta=>{"use strict";var sh=Rr(),Pse=Yn().isArrayOrTypedArray;ta.aggNums=function(e,r,t,a){var n,i;if((!a||a>t.length)&&(a=t.length),sh(r)||(r=!1),Pse(t[0])){for(i=new Array(a),n=0;ne.length-1)return e[e.length-1];var t=r%1;return t*e[Math.ceil(r)]+(1-t)*e[Math.floor(r)]}});var iS=N((aDe,nS)=>{"use strict";var rS=Rf(),Rb=rS.mod,Fse=rS.modHalf,uh=Math.PI,$l=2*uh;function Nse(e){return e/180*uh}function Ise(e){return e/uh*180}function Pb(e){return Math.abs(e[1]-e[0])>$l-1e-14}function tS(e,r){return Fse(r-e,$l)}function zse(e,r){return Math.abs(tS(e,r))}function aS(e,r){if(Pb(r))return!0;var t,a;r[0] a&&(a+=$l);var n=Rb(e,$l),i=n+$l;return n>=t&&n<=a||i>=t&&i<=a}function Ose(e,r,t,a){if(!aS(r,a))return!1;var n,i;return t[0] =n&&e<=i}function Fb(e,r,t,a,n,i,o){n=n||0,i=i||0;var l=Pb([t,a]),s,u,f,c,v;l?(s=0,u=uh,f=$l):t{"use strict";iu.isLeftAnchor=function(r){return r.xanchor==="left"||r.xanchor==="auto"&&r.x<=1/3};iu.isCenterAnchor=function(r){return r.xanchor==="center"||r.xanchor==="auto"&&r.x>1/3&&r.x<2/3};iu.isRightAnchor=function(r){return r.xanchor==="right"||r.xanchor==="auto"&&r.x>=2/3};iu.isTopAnchor=function(r){return r.yanchor==="top"||r.yanchor==="auto"&&r.y>=2/3};iu.isMiddleAnchor=function(r){return r.yanchor==="middle"||r.yanchor==="auto"&&r.y>1/3&&r.y<2/3};iu.isBottomAnchor=function(r){return r.yanchor==="bottom"||r.yanchor==="auto"&&r.y<=1/3}});var uS=N(ou=>{"use strict";var Nb=Rf().mod;ou.segmentsIntersect=sS;function sS(e,r,t,a,n,i,o,l){var s=t-e,u=n-e,f=o-n,c=a-r,v=i-r,d=l-i,p=s*d-f*c;if(p===0)return null;var y=(u*d-f*v)/p,m=(u*c-s*v)/p;return m<0||m>1||y<0||y>1?null:{x:e+s*y,y:r+c*y}}ou.segmentDistance=function(r,t,a,n,i,o,l,s){if(sS(r,t,a,n,i,o,l,s))return 0;var u=a-r,f=n-t,c=l-i,v=s-o,d=u*u+f*f,p=c*c+v*v,y=Math.min(Yp(u,f,d,i-r,o-t),Yp(u,f,d,l-r,s-t),Yp(c,v,p,r-i,t-o),Yp(c,v,p,a-i,n-o));return Math.sqrt(y)};function Yp(e,r,t,a,n){var i=a*e+n*r;if(i<0)return a*a+n*n;if(i>t){var o=a-e,l=n-r;return o*o+l*l}else{var s=a*r-n*e;return s*s/t}}var Wp,Ib,lS;ou.getTextLocation=function(r,t,a,n){if((r!==Ib||n!==lS)&&(Wp={},Ib=r,lS=n),Wp[a])return Wp[a];var i=r.getPointAtLength(Nb(a-n/2,t)),o=r.getPointAtLength(Nb(a+n/2,t)),l=Math.atan((o.y-i.y)/(o.x-i.x)),s=r.getPointAtLength(Nb(a,t)),u=(s.x*4+i.x+o.x)/6,f=(s.y*4+i.y+o.y)/6,c={x:u,y:f,theta:l};return Wp[a]=c,c};ou.clearLocationCache=function(){Ib=null};ou.getVisibleSegment=function(r,t,a){var n=t.left,i=t.right,o=t.top,l=t.bottom,s=0,u=r.getTotalLength(),f=u,c,v;function d(y){var m=r.getPointAtLength(y);y===0?c=m:y===u&&(v=m);var x=m.x i?m.x-i:0,T=m.y l?m.y-l:0;return Math.sqrt(x*x+T*T)}for(var p=d(s);p;){if(s+=p+a,s>f)return;p=d(s)}for(p=d(f);p;){if(f-=p+a,s>f)return;p=d(f)}return{min:s,max:f,len:f-s,total:u,isClosed:s===0&&f===u&&Math.abs(c.x-v.x)<.1&&Math.abs(c.y-v.y)<.1}};ou.findPointOnPath=function(r,t,a,n){n=n||{};for(var i=n.pathLength||r.getTotalLength(),o=n.tolerance||.001,l=n.iterationLimit||30,s=r.getPointAtLength(0)[a]>r.getPointAtLength(i)[a]?-1:1,u=0,f=0,c=i,v,d,p;u 0?c=v:f=v,u++}return d}});var jp=N(fh=>{"use strict";var cl={};fh.throttle=function(r,t,a){var n=cl[r],i=Date.now();if(!n){for(var o in cl)cl[o].ts n.ts+t){l();return}n.timer=setTimeout(function(){l(),n.timer=null},t)};fh.done=function(e){var r=cl[e];return!r||!r.timer?Promise.resolve():new Promise(function(t){var a=r.onDone;r.onDone=function(){a&&a(),t(),r.onDone=null}})};fh.clear=function(e){if(e)fS(cl[e]),delete cl[e];else for(var r in cl)fh.clear(r)};function fS(e){e&&e.timer!==null&&(clearTimeout(e.timer),e.timer=null)}});var vS=N((lDe,cS)=>{"use strict";cS.exports=function(r){r._responsiveChartHandler&&(window.removeEventListener("resize",r._responsiveChartHandler),delete r._responsiveChartHandler)}});var hS=N((sDe,Zp)=>{"use strict";Zp.exports=zb;Zp.exports.isMobile=zb;Zp.exports.default=zb;var Gse=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|samsungbrowser.*mobile|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,Vse=/CrOS/,Yse=/android|ipad|playbook|silk/i;function zb(e){e||(e={});let r=e.ua;if(!r&&typeof navigator!="undefined"&&(r=navigator.userAgent),r&&r.headers&&typeof r.headers["user-agent"]=="string"&&(r=r.headers["user-agent"]),typeof r!="string")return!1;let t=Gse.test(r)&&!Vse.test(r)||!!e.tablet&&Yse.test(r);return!t&&e.tablet&&e.featureDetect&&navigator&&navigator.maxTouchPoints>1&&r.indexOf("Macintosh")!==-1&&r.indexOf("Safari")!==-1&&(t=!0),t}});var pS=N((uDe,dS)=>{"use strict";var Wse=Rr(),jse=hS();dS.exports=function(r){var t;if(r&&r.hasOwnProperty("userAgent")?t=r.userAgent:t=Zse(),typeof t!="string")return!0;var a=jse({ua:{headers:{"user-agent":t}},tablet:!0,featureDetect:!1});if(!a)for(var n=t.split(" "),i=1;i -1;l--){var s=n[l];if(s.slice(0,8)==="Version/"){var u=s.slice(8).split(".")[0];if(Wse(u)&&(u=+u),u>=13)return!0}}}return a};function Zse(){var e;return typeof navigator!="undefined"&&(e=navigator.userAgent),e&&e.headers&&typeof e.headers["user-agent"]=="string"&&(e=e.headers["user-agent"]),e}});var mS=N((fDe,yS)=>{"use strict";var Xse=Sr();yS.exports=function(r,t,a){var n=r.selectAll("g."+a.replace(/\s/g,".")).data(t,function(o){return o[0].trace.uid});n.exit().remove(),n.enter().append("g").attr("class",a),n.order();var i=r.classed("rangeplot")?"nodeRangePlot3":"node3";return n.each(function(o){o[0][i]=Xse.select(this)}),n}});var bS=N((cDe,gS)=>{"use strict";var Jse=br();gS.exports=function(r,t){for(var a=r._context.locale,n=0;n<2;n++){for(var i=r._context.locales,o=0;o<2;o++){var l=(i[a]||{}).dictionary;if(l){var s=l[t];if(s)return s}i=Jse.localeRegistry}var u=a.split("-")[0];if(u===a)break;a=u}return t}});var _S=N((vDe,xS)=>{"use strict";xS.exports=function(r){for(var t={},a=[],n=0,i=0;i {"use strict";wS.exports=function(r){for(var t=Qse(r)?Kse:$se,a=[],n=0;n {"use strict";AS.exports=function(r,t){if(!t)return r;var a=1/Math.abs(t),n=a>1?(a*r+a*t)/a:r+t,i=String(n).length;if(i>16){var o=String(t).length,l=String(r).length;if(i>=l+o){var s=parseFloat(n).toPrecision(12);s.indexOf("e+")===-1&&(n=+s)}}return n}});var SS=N((pDe,kS)=>{"use strict";var eue=Rr(),rue=Ft().BADNUM,tue=/^['"%,$#\s']+|[, ]|['"%,$#\s']+$/g;kS.exports=function(r){return typeof r=="string"&&(r=r.replace(tue,"")),eue(r)?Number(r):rue}});var Ee=N((yDe,BS)=>{"use strict";var ch=Sr(),aue=Ef().utcFormat,nue=lb().format,RS=Rr(),PS=Ft(),FS=PS.FP_SAFE,iue=-FS,qS=PS.BADNUM,be=BS.exports={};be.adjustFormat=function(r){return!r||/^\d[.]\df/.test(r)||/[.]\d%/.test(r)?r:r==="0.f"?"~f":/^\d%/.test(r)?"~%":/^\ds/.test(r)?"~s":!/^[~,.0$]/.test(r)&&/[&fps]/.test(r)?"~"+r:r};var LS={};be.warnBadFormat=function(e){var r=String(e);LS[r]||(LS[r]=1,be.warn('encountered bad format: "'+r+'"'))};be.noFormat=function(e){return String(e)};be.numberFormat=function(e){var r;try{r=nue(be.adjustFormat(e))}catch(t){return be.warnBadFormat(e),be.noFormat}return r};be.nestedProperty=Mp();be.keyedContainer=xM();be.relativeAttr=wM();be.isPlainObject=Vl();be.toLogRange=Sp();be.relinkPrivateKeys=kM();var Kl=Yn();be.isArrayBuffer=Kl.isArrayBuffer;be.isTypedArray=Kl.isTypedArray;be.isArrayOrTypedArray=Kl.isArrayOrTypedArray;be.isArray1D=Kl.isArray1D;be.ensureArray=Kl.ensureArray;be.concat=Kl.concat;be.maxRowLength=Kl.maxRowLength;be.minRowLength=Kl.minRowLength;var NS=Rf();be.mod=NS.mod;be.modHalf=NS.modHalf;var Ql=YM();be.valObjectMeta=Ql.valObjectMeta;be.coerce=Ql.coerce;be.coerce2=Ql.coerce2;be.coerceFont=Ql.coerceFont;be.coercePattern=Ql.coercePattern;be.coerceHoverinfo=Ql.coerceHoverinfo;be.coerceSelectionMarkerOpacity=Ql.coerceSelectionMarkerOpacity;be.validate=Ql.validate;var jn=$k();be.dateTime2ms=jn.dateTime2ms;be.isDateTime=jn.isDateTime;be.ms2DateTime=jn.ms2DateTime;be.ms2DateTimeLocal=jn.ms2DateTimeLocal;be.cleanDate=jn.cleanDate;be.isJSDate=jn.isJSDate;be.formatDate=jn.formatDate;be.incrementMonth=jn.incrementMonth;be.dateTick0=jn.dateTick0;be.dfltRange=jn.dfltRange;be.findExactDates=jn.findExactDates;be.MIN_MS=jn.MIN_MS;be.MAX_MS=jn.MAX_MS;var lu=Eb();be.findBin=lu.findBin;be.sorterAsc=lu.sorterAsc;be.sorterDes=lu.sorterDes;be.distinctVals=lu.distinctVals;be.roundUp=lu.roundUp;be.sort=lu.sort;be.findIndexOfMin=lu.findIndexOfMin;be.sortObjectKeys=Db();var vl=eS();be.aggNums=vl.aggNums;be.len=vl.len;be.mean=vl.mean;be.geometricMean=vl.geometricMean;be.median=vl.median;be.midRange=vl.midRange;be.variance=vl.variance;be.stdev=vl.stdev;be.interp=vl.interp;var ro=Fp();be.init2dArray=ro.init2dArray;be.transposeRagged=ro.transposeRagged;be.dot=ro.dot;be.translationMatrix=ro.translationMatrix;be.rotationMatrix=ro.rotationMatrix;be.rotationXYMatrix=ro.rotationXYMatrix;be.apply3DTransform=ro.apply3DTransform;be.apply2DTransform=ro.apply2DTransform;be.apply2DTransform2=ro.apply2DTransform2;be.convertCssMatrix=ro.convertCssMatrix;be.inverseTransformMatrix=ro.inverseTransformMatrix;var So=iS();be.deg2rad=So.deg2rad;be.rad2deg=So.rad2deg;be.angleDelta=So.angleDelta;be.angleDist=So.angleDist;be.isFullCircle=So.isFullCircle;be.isAngleInsideSector=So.isAngleInsideSector;be.isPtInsideSector=So.isPtInsideSector;be.pathArc=So.pathArc;be.pathSector=So.pathSector;be.pathAnnulus=So.pathAnnulus;var Yf=oS();be.isLeftAnchor=Yf.isLeftAnchor;be.isCenterAnchor=Yf.isCenterAnchor;be.isRightAnchor=Yf.isRightAnchor;be.isTopAnchor=Yf.isTopAnchor;be.isMiddleAnchor=Yf.isMiddleAnchor;be.isBottomAnchor=Yf.isBottomAnchor;var Wf=uS();be.segmentsIntersect=Wf.segmentsIntersect;be.segmentDistance=Wf.segmentDistance;be.getTextLocation=Wf.getTextLocation;be.clearLocationCache=Wf.clearLocationCache;be.getVisibleSegment=Wf.getVisibleSegment;be.findPointOnPath=Wf.findPointOnPath;var $p=bt();be.extendFlat=$p.extendFlat;be.extendDeep=$p.extendDeep;be.extendDeepAll=$p.extendDeepAll;be.extendDeepNoArrays=$p.extendDeepNoArrays;var Ob=au();be.log=Ob.log;be.warn=Ob.warn;be.error=Ob.error;var oue=Ff();be.counterRegex=oue.counter;var Bb=jp();be.throttle=Bb.throttle;be.throttleDone=Bb.done;be.clearThrottle=Bb.clear;var to=nh();be.getGraphDiv=to.getGraphDiv;be.isPlotDiv=to.isPlotDiv;be.removeElement=to.removeElement;be.addStyleRule=to.addStyleRule;be.addRelatedStyleRule=to.addRelatedStyleRule;be.deleteRelatedStyleRule=to.deleteRelatedStyleRule;be.setStyleOnHover=to.setStyleOnHover;be.getFullTransformMatrix=to.getFullTransformMatrix;be.getElementTransformMatrix=to.getElementTransformMatrix;be.getElementAndAncestors=to.getElementAndAncestors;be.equalDomRects=to.equalDomRects;be.clearResponsive=vS();be.preserveDrawingBuffer=pS();be.makeTraceGroups=mS();be._=bS();be.notifier=gb();be.filterUnique=_S();be.filterVisible=TS();be.pushUnique=_b();be.increment=MS();be.cleanNumber=SS();be.ensureNumber=function(r){return RS(r)?(r=Number(r),r>FS||r =r?!1:RS(e)&&e>=0&&e%1===0};be.noop=Pp();be.identity=Lb();be.repeat=function(e,r){for(var t=new Array(r),a=0;a t?Math.max(t,Math.min(r,e)):Math.max(r,Math.min(t,e))};be.bBoxIntersect=function(e,r,t){return t=t||0,e.left<=r.right+t&&r.left<=e.right+t&&e.top<=r.bottom+t&&r.top<=e.bottom+t};be.simpleMap=function(e,r,t,a,n){for(var i=e.length,o=new Array(i),l=0;l=Math.pow(2,t)?n>10?(be.warn("randstr failed uniqueness"),o):e(r,t,a,(n||0)+1):o};be.OptionControl=function(e,r){e||(e={}),r||(r="opt");var t={};return t.optionList=[],t._newoption=function(a){a[r]=e,t[a.name]=a,t.optionList.push(a)},t["_"+r]=e,t};be.smooth=function(e,r){if(r=Math.round(r)||0,r<2)return e;var t=e.length,a=2*t,n=2*r-1,i=new Array(n),o=new Array(t),l,s,u,f;for(l=0;l =a&&(u-=a*Math.floor(u/a)),u<0?u=-1-u:u>=t&&(u=a-1-u),f+=e[u]*i[s];o[l]=f}return o};be.syncOrAsync=function(e,r,t){var a,n;function i(){return be.syncOrAsync(e,r,t)}for(;e.length;)if(n=e.splice(0,1)[0],a=n(r),a&&a.then)return a.then(i);return t&&t(r)};be.stripTrailingSlash=function(e){return e.slice(-1)==="/"?e.slice(0,-1):e};be.noneOrAll=function(e,r,t){if(e){var a=!1,n=!0,i,o;for(i=0;i 0?n:0})};be.fillArray=function(e,r,t,a){if(a=a||be.identity,be.isArrayOrTypedArray(e))for(var n=0;n uue.test(window.navigator.userAgent);var fue=/Firefox\/(\d+)\.\d+/;be.getFirefoxVersion=function(){var e=fue.exec(window.navigator.userAgent);if(e&&e.length===2){var r=parseInt(e[1]);if(!isNaN(r))return r}return null};be.isD3Selection=function(e){return e instanceof ch.selection};be.ensureSingle=function(e,r,t,a){var n=e.select(r+(t?"."+t:""));if(n.size())return n;var i=e.append(r);return t&&i.classed(t,!0),a&&i.call(a),i};be.ensureSingleById=function(e,r,t,a){var n=e.select(r+"#"+t);if(n.size())return n;var i=e.append(r).attr("id",t);return a&&i.call(a),i};be.objectFromPath=function(e,r){for(var t=e.split("."),a,n=a={},i=0;i 1?n+o[1]:"";if(i&&(o.length>1||l.length>4||t))for(;a.test(l);)l=l.replace(a,"$1"+i+"$2");return l+s};be.TEMPLATE_STRING_REGEX=/%{([^\s%{}:]*)([:|\|][^}]*)?}/g;var OS=/^\w*$/;be.templateString=function(e,r){var t={};return e.replace(be.TEMPLATE_STRING_REGEX,function(a,n){var i;return OS.test(n)?i=r[n]:(t[n]=t[n]||be.nestedProperty(r,n).get,i=t[n](!0)),i!==void 0?i:""})};var hue={max:10,count:0,name:"hovertemplate"};be.hovertemplateString=e=>Hb(yp(Ks({},e),{opts:hue}));var due={max:10,count:0,name:"texttemplate"};be.texttemplateString=e=>Hb(yp(Ks({},e),{opts:due}));var pue=/^(\S+)([\*\/])(-?\d+(\.\d+)?)$/;function yue(e){var r=e.match(pue);return r?{key:r[1],op:r[2],number:Number(r[3])}:{key:e,op:null,number:null}}var mue={max:10,count:0,name:"texttemplate",parseMultDiv:!0};be.texttemplateStringForShapes=e=>Hb(yp(Ks({},e),{opts:mue}));var CS=/^[:|\|]/;function Hb({data:e=[],locale:r,fallback:t,labels:a={},opts:n,template:i}){return i.replace(be.TEMPLATE_STRING_REGEX,(o,l,s)=>{let u=["xother","yother"].includes(l),f=["_xother","_yother"].includes(l),c=["_xother_","_yother_"].includes(l),v=["xother_","yother_"].includes(l),d=u||f||v||c;(f||c)&&(l=l.substring(1)),(v||c)&&(l=l.substring(0,l.length-1));let p=null,y=null;if(n.parseMultDiv){var m=yue(l);l=m.key,p=m.op,y=m.number}let x;if(d){if(a[l]===void 0)return"";x=a[l]}else for(let w of e)if(w){if(w.hasOwnProperty(l)){x=w[l];break}if(OS.test(l)||(x=be.nestedProperty(w,l).get(!0)),x!==void 0)break}if(x===void 0){let{count:w,max:k,name:M}=n,q=t===!1?o:t;return w =Jp&&o<=ES,u=l>=Jp&&l<=ES;if(s&&(a=10*a+o-Jp),u&&(n=10*n+l-Jp),!s||!u){if(a!==n)return a-n;if(o!==l)return o-l}}return n-a};var Vf=2e9;be.seedPseudoRandom=function(){Vf=2e9};be.pseudoRandom=function(){var e=Vf;return Vf=(69069*Vf+1)%4294967296,Math.abs(Vf-e)<429496729?be.pseudoRandom():Vf/4294967296};be.fillText=function(e,r,t){var a=Array.isArray(t)?function(o){t.push(o)}:function(o){t.text=o},n=be.extractOption(e,r,"htx","hovertext");if(be.isValidTextValue(n))return a(n);var i=be.extractOption(e,r,"tx","text");if(be.isValidTextValue(i))return a(i)};be.isValidTextValue=function(e){return e||e===0};be.formatPercent=function(e,r){r=r||0;for(var t=(Math.round(100*e*Math.pow(10,r))*Math.pow(.1,r)).toFixed(r)+"%",a=0;a 1&&(u=1):u=0,be.strTranslate(n-u*(t+o),i-u*(a+l))+be.strScale(u)+(s?"rotate("+s+(r?"":" "+t+" "+a)+")":"")};be.setTransormAndDisplay=function(e,r){e.attr("transform",be.getTextTransform(r)),e.style("display",r.scale?null:"none")};be.ensureUniformFontSize=function(e,r){var t=be.extendFlat({},r);return t.size=Math.max(r.size,e._fullLayout.uniformtext.minsize||0),t};be.join2=function(e,r,t){var a=e.length;return a>1?e.slice(0,-1).join(r)+t+e[a-1]:e.join(r)};be.bigFont=function(e){return Math.round(1.2*e)};var DS=be.getFirefoxVersion(),gue=DS!==null&&DS<86;be.getPositionFromD3Event=function(){return gue?[ch.event.layerX,ch.event.layerY]:[ch.event.offsetX,ch.event.offsetY]}});var GS=N(()=>{"use strict";var bue=Ee(),HS={"X,X div":'direction:ltr;font-family:"Open Sans",verdana,arial,sans-serif;margin:0;padding:0;border:0;',"X input,X button":'font-family:"Open Sans",verdana,arial,sans-serif;',"X input:focus,X button:focus":"outline:none;","X a":"text-decoration:none;","X a:hover":"text-decoration:none;","X .crisp":"shape-rendering:crispEdges;","X .user-select-none":"-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;","X svg a":"fill:#447adb;","X svg a:hover":"fill:#3c6dc5;","X .main-svg":"position:absolute;top:0;left:0;pointer-events:none;","X .main-svg .draglayer":"pointer-events:all;","X .cursor-default":"cursor:default;","X .cursor-pointer":"cursor:pointer;","X .cursor-crosshair":"cursor:crosshair;","X .cursor-move":"cursor:move;","X .cursor-col-resize":"cursor:col-resize;","X .cursor-row-resize":"cursor:row-resize;","X .cursor-ns-resize":"cursor:ns-resize;","X .cursor-ew-resize":"cursor:ew-resize;","X .cursor-sw-resize":"cursor:sw-resize;","X .cursor-s-resize":"cursor:s-resize;","X .cursor-se-resize":"cursor:se-resize;","X .cursor-w-resize":"cursor:w-resize;","X .cursor-e-resize":"cursor:e-resize;","X .cursor-nw-resize":"cursor:nw-resize;","X .cursor-n-resize":"cursor:n-resize;","X .cursor-ne-resize":"cursor:ne-resize;","X .cursor-grab":"cursor:-webkit-grab;cursor:grab;","X .modebar":"position:absolute;top:2px;right:2px;","X .ease-bg":"-webkit-transition:background-color .3s ease 0s;-moz-transition:background-color .3s ease 0s;-ms-transition:background-color .3s ease 0s;-o-transition:background-color .3s ease 0s;transition:background-color .3s ease 0s;","X .modebar--hover>:not(.watermark)":"opacity:0;-webkit-transition:opacity .3s ease 0s;-moz-transition:opacity .3s ease 0s;-ms-transition:opacity .3s ease 0s;-o-transition:opacity .3s ease 0s;transition:opacity .3s ease 0s;","X:hover .modebar--hover .modebar-group":"opacity:1;","X:focus-within .modebar--hover .modebar-group":"opacity:1;","X .modebar-group":"float:left;display:inline-block;box-sizing:border-box;padding-left:8px;position:relative;vertical-align:middle;white-space:nowrap;","X .modebar-group a":"display:grid;place-content:center;","X .modebar-btn":"position:relative;font-size:16px;padding:3px 4px;height:22px;cursor:pointer;line-height:normal;box-sizing:border-box;border:none;background:rgba(0,0,0,0);","X .modebar-btn svg":"position:relative;","X .modebar-btn:focus-visible":"outline:1px solid #000;outline-offset:1px;border-radius:3px;","X .modebar.vertical":"display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-end;max-height:100%;","X .modebar.vertical svg":"top:-1px;","X .modebar.vertical .modebar-group":"display:block;float:none;padding-left:0px;padding-bottom:8px;","X .modebar.vertical .modebar-group .modebar-btn":"display:block;text-align:center;","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%;","X [data-title]:hover:before,X [data-title]:hover:after":"display:block;opacity:1;","X [data-title]:before":'content:"";position:absolute;background:rgba(0,0,0,0);border:6px solid rgba(0,0,0,0);z-index:1002;margin-top:-12px;border-bottom-color:#69738a;margin-right:-6px;',"X [data-title]:after":"content:attr(data-title);background:#69738a;color:#fff;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap;margin-right:-18px;border-radius:2px;","X .vertical [data-title]:before,X .vertical [data-title]:after":"top:0%;right:200%;","X .vertical [data-title]:before":"border:6px solid rgba(0,0,0,0);border-left-color:#69738a;margin-top:8px;margin-right:-30px;",Y:'font-family:"Open Sans",verdana,arial,sans-serif;position:fixed;top:50px;right:20px;z-index:10000;font-size:10pt;max-width:180px;',"Y p":"margin:0;","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,.9);color:#fff;padding:10px;overflow-wrap:break-word;word-wrap:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;","Y .notifier-close":"color:#fff;opacity:.8;float:right;padding:0 5px;background:none;border:none;font-size:20px;font-weight:bold;line-height:20px;","Y .notifier-close:hover":"color:#444;text-decoration:none;cursor:pointer;"};for(Ub in HS)US=Ub.replace(/^,/," ,").replace(/X/g,".js-plotly-plot .plotly").replace(/Y/g,".plotly-notifier"),bue.addStyleRule(US,HS[Ub]);var US,Ub});var Gb=N((xDe,VS)=>{VS.exports=!0});var Yb=N((_De,YS)=>{"use strict";var xue=Gb(),Vb;typeof window.matchMedia=="function"?Vb=!window.matchMedia("(hover: none)").matches:Vb=xue;YS.exports=Vb});var su=N((wDe,Wb)=>{"use strict";var jf=typeof Reflect=="object"?Reflect:null,WS=jf&&typeof jf.apply=="function"?jf.apply:function(r,t,a){return Function.prototype.apply.call(r,t,a)},Kp;jf&&typeof jf.ownKeys=="function"?Kp=jf.ownKeys:Object.getOwnPropertySymbols?Kp=function(r){return Object.getOwnPropertyNames(r).concat(Object.getOwnPropertySymbols(r))}:Kp=function(r){return Object.getOwnPropertyNames(r)};function _ue(e){console&&console.warn&&console.warn(e)}var ZS=Number.isNaN||function(r){return r!==r};function Lt(){Lt.init.call(this)}Wb.exports=Lt;Wb.exports.once=Mue;Lt.EventEmitter=Lt;Lt.prototype._events=void 0;Lt.prototype._eventsCount=0;Lt.prototype._maxListeners=void 0;var jS=10;function Qp(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(Lt,"defaultMaxListeners",{enumerable:!0,get:function(){return jS},set:function(e){if(typeof e!="number"||e<0||ZS(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");jS=e}});Lt.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};Lt.prototype.setMaxListeners=function(r){if(typeof r!="number"||r<0||ZS(r))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+r+".");return this._maxListeners=r,this};function XS(e){return e._maxListeners===void 0?Lt.defaultMaxListeners:e._maxListeners}Lt.prototype.getMaxListeners=function(){return XS(this)};Lt.prototype.emit=function(r){for(var t=[],a=1;a 0&&(o=t[0]),o instanceof Error)throw o;var l=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw l.context=o,l}var s=i[r];if(s===void 0)return!1;if(typeof s=="function")WS(s,this,t);else for(var u=s.length,f=eq(s,u),a=0;a0&&o.length>n&&!o.warned){o.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(r)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=r,l.count=o.length,_ue(l)}return e}Lt.prototype.addListener=function(r,t){return JS(this,r,t,!1)};Lt.prototype.on=Lt.prototype.addListener;Lt.prototype.prependListener=function(r,t){return JS(this,r,t,!0)};function wue(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function $S(e,r,t){var a={fired:!1,wrapFn:void 0,target:e,type:r,listener:t},n=wue.bind(a);return n.listener=t,a.wrapFn=n,n}Lt.prototype.once=function(r,t){return Qp(t),this.on(r,$S(this,r,t)),this};Lt.prototype.prependOnceListener=function(r,t){return Qp(t),this.prependListener(r,$S(this,r,t)),this};Lt.prototype.removeListener=function(r,t){var a,n,i,o,l;if(Qp(t),n=this._events,n===void 0)return this;if(a=n[r],a===void 0)return this;if(a===t||a.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete n[r],n.removeListener&&this.emit("removeListener",r,a.listener||t));else if(typeof a!="function"){for(i=-1,o=a.length-1;o>=0;o--)if(a[o]===t||a[o].listener===t){l=a[o].listener,i=o;break}if(i<0)return this;i===0?a.shift():Tue(a,i),a.length===1&&(n[r]=a[0]),n.removeListener!==void 0&&this.emit("removeListener",r,l||t)}return this};Lt.prototype.off=Lt.prototype.removeListener;Lt.prototype.removeAllListeners=function(r){var t,a,n;if(a=this._events,a===void 0)return this;if(a.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):a[r]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete a[r]),this;if(arguments.length===0){var i=Object.keys(a),o;for(n=0;n =0;n--)this.removeListener(r,t[n]);return this};function KS(e,r,t){var a=e._events;if(a===void 0)return[];var n=a[r];return n===void 0?[]:typeof n=="function"?t?[n.listener||n]:[n]:t?Aue(n):eq(n,n.length)}Lt.prototype.listeners=function(r){return KS(this,r,!0)};Lt.prototype.rawListeners=function(r){return KS(this,r,!1)};Lt.listenerCount=function(e,r){return typeof e.listenerCount=="function"?e.listenerCount(r):QS.call(e,r)};Lt.prototype.listenerCount=QS;function QS(e){var r=this._events;if(r!==void 0){var t=r[e];if(typeof t=="function")return 1;if(t!==void 0)return t.length}return 0}Lt.prototype.eventNames=function(){return this._eventsCount>0?Kp(this._events):[]};function eq(e,r){for(var t=new Array(r),a=0;a {"use strict";var jb=su().EventEmitter,Sue={init:function(e){if(e._ev instanceof jb)return e;var r=new jb,t=new jb;return e._ev=r,e._internalEv=t,e.on=r.on.bind(r),e.once=r.once.bind(r),e.removeListener=r.removeListener.bind(r),e.removeAllListeners=r.removeAllListeners.bind(r),e._internalOn=t.on.bind(t),e._internalOnce=t.once.bind(t),e._removeInternalListener=t.removeListener.bind(t),e._removeAllInternalListeners=t.removeAllListeners.bind(t),e.emit=function(a,n){r.emit(a,n),t.emit(a,n)},typeof e.addEventListener=="function"&&e.addEventListener("wheel",()=>{},{passive:!0}),e},triggerHandler:function(e,r,t){var a,n=e._ev;if(!n)return;var i=n._events[r];if(!i)return;function o(s){if(s.listener){if(n.removeListener(r,s.listener),!s.fired)return s.fired=!0,s.listener.apply(n,[t])}else return s.apply(n,[t])}i=Array.isArray(i)?i:[i];var l;for(l=0;l {"use strict";var aq=Ee(),que=tu().dfltConfig;function Lue(e,r){for(var t=[],a,n=0;n que.queueLength&&(e.undoQueue.queue.shift(),e.undoQueue.index--)};hl.startSequence=function(e){e.undoQueue=e.undoQueue||{index:0,queue:[],sequence:!1},e.undoQueue.sequence=!0,e.undoQueue.beginSequence=!0};hl.stopSequence=function(e){e.undoQueue=e.undoQueue||{index:0,queue:[],sequence:!1},e.undoQueue.sequence=!1,e.undoQueue.beginSequence=!1};hl.undo=function(r){var t,a;if(!(r.undoQueue===void 0||isNaN(r.undoQueue.index)||r.undoQueue.index<=0)){for(r.undoQueue.index--,t=r.undoQueue.queue[r.undoQueue.index],r.undoQueue.inSequence=!0,a=0;a =r.undoQueue.queue.length)){for(t=r.undoQueue.queue[r.undoQueue.index],r.undoQueue.inSequence=!0,a=0;a {"use strict";oq.exports={_isLinkedToArray:"frames_entry",group:{valType:"string"},name:{valType:"string"},traces:{valType:"any"},baseframe:{valType:"string"},data:{valType:"any"},layout:{valType:"any"}}});var Jf=N(ba=>{"use strict";var hi=br(),hh=Ee(),r1=gn(),Xb=Of(),Cue=Zb(),Eue=ih(),Due=tu().configAttributes,lq=eo(),ao=hh.extendDeepAll,Zf=hh.isPlainObject,Rue=hh.isArrayOrTypedArray,t1=hh.nestedProperty,Pue=hh.valObjectMeta,Jb="_isSubplotObj",a1="_isLinkedToArray",Fue="_arrayAttrRegexps",uq="_deprecated",$b=[Jb,a1,Fue,uq];ba.IS_SUBPLOT_OBJ=Jb;ba.IS_LINKED_TO_ARRAY=a1;ba.DEPRECATED=uq;ba.UNDERSCORE_ATTRS=$b;ba.get=function(){var e={};return hi.allTypes.forEach(function(r){e[r]=Iue(r)}),{defs:{valObjects:Pue,metaKeys:$b.concat(["description","role","editType","impliedEdits"]),editType:{traces:lq.traces,layout:lq.layout},impliedEdits:{}},traces:e,layout:zue(),frames:Oue(),animation:Xf(Eue),config:Xf(Due)}};ba.crawl=function(e,r,t,a){var n=t||0;a=a||"",Object.keys(e).forEach(function(i){var o=e[i];if($b.indexOf(i)===-1){var l=(a?a+".":"")+i;r(o,i,e,n,l),!ba.isValObject(o)&&Zf(o)&&i!=="impliedEdits"&&ba.crawl(o,r,n+1,l)}})};ba.isValObject=function(e){return e&&e.valType!==void 0};ba.findArrayAttributes=function(e){var r=[],t=[],a=[],n,i;function o(s,u,f,c){t=t.slice(0,c).concat([u]),a=a.slice(0,c).concat([s&&s._isLinkedToArray]);var v=s&&(s.valType==="data_array"||s.arrayOk===!0)&&!(t[c-1]==="colorbar"&&(u==="ticktext"||u==="tickvals"));v&&l(n,0,"")}function l(s,u,f){var c=s[t[u]],v=f+t[u];if(u===t.length-1)Rue(c)&&r.push(i+v);else if(a[u]){if(Array.isArray(c))for(var d=0;d =i.length)return!1;if(e.dimensions===2){if(t++,r.length===t)return e;var o=r[t];if(!e1(o))return!1;e=i[n][o]}else e=i[n]}else e=i}}return e}function e1(e){return e===Math.round(e)&&e>=0}function Iue(e){var r,t;r=hi.modules[e]._module,t=r.basePlotModule;var a={};a.type=null;var n=ao({},r1),i=ao({},r.attributes);ba.crawl(i,function(s,u,f,c,v){t1(n,v).set(void 0),s===void 0&&t1(i,v).set(void 0)}),ao(a,n),hi.traceIs(e,"noOpacity")&&delete a.opacity,hi.traceIs(e,"showLegend")||(delete a.showlegend,delete a.legendgroup),hi.traceIs(e,"noHover")&&(delete a.hoverinfo,delete a.hoverlabel),r.selectPoints||delete a.selectedpoints,ao(a,i),t.attributes&&ao(a,t.attributes),a.type=e;var o={meta:r.meta||{},categories:r.categories||{},animatable:!!r.animatable,type:e,attributes:Xf(a)};if(r.layoutAttributes){var l={};ao(l,r.layoutAttributes),o.layoutAttributes=Xf(l)}return r.animatable||ba.crawl(o,function(s){ba.isValObject(s)&&"anim"in s&&delete s.anim}),o}function zue(){var e={},r,t;ao(e,Xb);for(r in hi.subplotsRegistry)if(t=hi.subplotsRegistry[r],!!t.layoutAttributes)if(Array.isArray(t.attr))for(var a=0;a {"use strict";var $f=Ee(),Vue=gn(),es="templateitemname",Kb={name:{valType:"string",editType:"none"}};Kb[es]={valType:"string",editType:"calc"};uu.templatedArray=function(e,r){return r._isLinkedToArray=e,r.name=Kb.name,r[es]=Kb[es],r};uu.traceTemplater=function(e){var r={},t,a;for(t in e)a=e[t],Array.isArray(a)&&a.length&&(r[t]=0);function n(i){t=$f.coerce(i,{},Vue,"type");var o={type:t,_template:null};if(t in r){a=e[t];var l=r[t]%a.length;r[t]++,o._template=a[l]}return o}return{newTrace:n}};uu.newContainer=function(e,r,t){var a=e._template,n=a&&(a[r]||t&&a[t]);$f.isPlainObject(n)||(n=null);var i=e[r]={_template:n};return i};uu.arrayTemplater=function(e,r,t){var a=e._template,n=a&&a[vq(r)],i=a&&a[r];(!Array.isArray(i)||!i.length)&&(i=[]);var o={};function l(u){var f={name:u.name,_input:u},c=f[es]=u[es];if(!cq(c))return f._template=n,f;for(var v=0;v =a&&(t._input||{})._templateitemname;i&&(n=a);var o=r+"["+n+"]",l;function s(){l={},i&&(l[o]={},l[o][es]=i)}s();function u(d,p){l[d]=p}function f(d,p){i?$f.nestedProperty(l[o],d).set(p):l[o+"."+d]=p}function c(){var d=l;return s(),d}function v(d,p){d&&f(d,p);var y=c();for(var m in y)$f.nestedProperty(e,m).set(y[m])}return{modifyBase:u,modifyItem:f,getUpdateObj:c,applyUpdate:v}}});var xa=N((qDe,hq)=>{"use strict";var dh=Ff().counter;hq.exports={idRegex:{x:dh("x","( domain)?"),y:dh("y","( domain)?")},attrRegex:dh("[xy]axis"),xAxisMatch:dh("xaxis"),yAxisMatch:dh("yaxis"),AX_ID_PATTERN:/^[xyz][0-9]*( domain)?$/,AX_NAME_PATTERN:/^[xyz]axis[0-9]*$/,SUBPLOT_PATTERN:/^x([0-9]*)y([0-9]*)$/,HOUR_PATTERN:"hour",WEEKDAY_PATTERN:"day of week",MINDRAG:8,MINZOOM:20,DRAGGERSIZE:20,REDRAWDELAY:50,DFLTRANGEX:[-1,6],DFLTRANGEY:[-1,4],traceLayerClasses:["imagelayer","heatmaplayer","contourcarpetlayer","contourlayer","funnellayer","waterfalllayer","barlayer","carpetlayer","violinlayer","boxlayer","ohlclayer","scattercarpetlayer","scatterlayer"],clipOnAxisFalseQuery:[".scatterlayer",".barlayer",".funnellayer",".waterfalllayer"],layerValue2layerClass:{"above traces":"above","below traces":"below"},zindexSeparator:"z"}});var fa=N(Dn=>{"use strict";var Yue=br(),Qb=xa();Dn.id2name=function(r){if(!(typeof r!="string"||!r.match(Qb.AX_ID_PATTERN))){var t=r.split(" ")[0].slice(1);return t==="1"&&(t=""),r.charAt(0)+"axis"+t}};Dn.name2id=function(r){if(r.match(Qb.AX_NAME_PATTERN)){var t=r.slice(5);return t==="1"&&(t=""),r.charAt(0)+t}};Dn.cleanId=function(r,t,a){var n=/( domain)$/.test(r);if(!(typeof r!="string"||!r.match(Qb.AX_ID_PATTERN))&&!(t&&r.charAt(0)!==t)&&!(n&&!a)){var i=r.split(" ")[0].slice(1).replace(/^0+/,"");return i==="1"&&(i=""),r.charAt(0)+i+(n&&a?" domain":"")}};Dn.list=function(e,r,t){var a=e._fullLayout;if(!a)return[];var n=Dn.listIds(e,r),i=new Array(n.length),o;for(o=0;o a?1:-1:+(e.slice(1)||1)-+(r.slice(1)||1)};Dn.ref2id=function(e){return/^[xyz]/.test(e)?e.split(" ")[0]:!1};function dq(e,r){if(r&&r.length){for(var t=0;t {"use strict";function Wue(e){var r=e._fullLayout._zoomlayer;r&&r.selectAll(".outline-controllers").remove()}function jue(e){var r=e._fullLayout._zoomlayer;r&&r.selectAll(".select-outline").remove(),e._fullLayout._outlining=!1}pq.exports={clearOutlineControllers:Wue,clearOutline:jue}});var n1=N((EDe,yq)=>{"use strict";yq.exports={scattermode:{valType:"enumerated",values:["group","overlay"],dflt:"overlay",editType:"calc"},scattergap:{valType:"number",min:0,max:1,editType:"calc"}}});var l1=N(o1=>{"use strict";var i1=br(),DDe=xa().SUBPLOT_PATTERN;o1.getSubplotCalcData=function(e,r,t){var a=i1.subplotsRegistry[r];if(!a)return[];for(var n=a.attr,i=[],o=0;o {"use strict";var Zue=br(),Kf=Ee();fu.manageCommandObserver=function(e,r,t,a){var n={},i=!0;r&&r._commandObserver&&(n=r._commandObserver),n.cache||(n.cache={}),n.lookupTable={};var o=fu.hasSimpleAPICommandBindings(e,t,n.lookupTable);if(r&&r._commandObserver){if(o)return n;if(r._commandObserver.remove)return r._commandObserver.remove(),r._commandObserver=null,n}if(o){mq(e,o,n.cache),n.check=function(){if(i){var f=mq(e,o,n.cache);return f.changed&&a&&n.lookupTable[f.value]!==void 0&&(n.disable(),Promise.resolve(a({value:f.value,type:o.type,prop:o.prop,traces:o.traces,index:n.lookupTable[f.value]})).then(n.enable,n.enable)),f.changed}};for(var l=["plotly_relayout","plotly_redraw","plotly_restyle","plotly_update","plotly_animatingframe","plotly_afterplot"],s=0;s 0?".":"")+n;Kf.isPlainObject(i)?ex(i,r,o,a+1):r(o,n,i)}})}});var aa=N((FDe,Pq)=>{"use strict";var Sq=Sr(),Jue=Ef().timeFormatLocale,$ue=lb().formatLocale,ph=Rr(),Kue=sb(),Qr=br(),qq=Jf(),Que=wt(),hr=Ee(),Lq=Tr(),_q=Ft().BADNUM,Rn=fa(),efe=rs().clearOutline,rfe=n1(),rx=ih(),tfe=Zb(),afe=l1().getModuleCalcData,wq=hr.relinkPrivateKeys,cu=hr._,Qe=Pq.exports={};hr.extendFlat(Qe,Qr);Qe.attributes=gn();Qe.attributes.type.values=Qe.allTypes;Qe.fontAttrs=ga();Qe.layoutAttributes=Of();var u1=xq();Qe.executeAPICommand=u1.executeAPICommand;Qe.computeAPICommandBindings=u1.computeAPICommandBindings;Qe.manageCommandObserver=u1.manageCommandObserver;Qe.hasSimpleAPICommandBindings=u1.hasSimpleAPICommandBindings;Qe.redrawText=function(e){return e=hr.getGraphDiv(e),new Promise(function(r){setTimeout(function(){e._fullLayout&&(Qr.getComponentMethod("annotations","draw")(e),Qr.getComponentMethod("legend","draw")(e),Qr.getComponentMethod("colorbar","draw")(e),r(Qe.previousPromises(e)))},300)})};Qe.resize=function(e){e=hr.getGraphDiv(e);var r,t=new Promise(function(a,n){(!e||hr.isHidden(e))&&n(new Error("Resize must be passed a displayed plot div element.")),e._redrawTimer&&clearTimeout(e._redrawTimer),e._resolveResize&&(r=e._resolveResize),e._resolveResize=a,e._redrawTimer=setTimeout(function(){if(!e.layout||e.layout.width&&e.layout.height||hr.isHidden(e)){a(e);return}delete e.layout.width,delete e.layout.height;var i=e.changed;e.autoplay=!0,Qr.call("relayout",e,{autosize:!0}).then(function(){e.changed=i,e._resolveResize===a&&(delete e._resolveResize,a(e))})},100)});return r&&r(t),t};Qe.previousPromises=function(e){if((e._promises||[]).length)return Promise.all(e._promises).then(function(){e._promises=[]})};Qe.addLinks=function(e){if(!(!e._context.showLink&&!e._context.showSources)){var r=e._fullLayout,t=hr.ensureSingle(r._paper,"text","js-plot-link-container",function(s){s.style({"font-family":'"Open Sans", Arial, sans-serif',"font-size":"12px",fill:Lq.defaultLine,"pointer-events":"all"}).each(function(){var u=Sq.select(this);u.append("tspan").classed("js-link-to-tool",!0),u.append("tspan").classed("js-link-spacer",!0),u.append("tspan").classed("js-sourcelinks",!0)})}),a=t.node(),n={y:r._paper.attr("height")-9};document.body.contains(a)&&a.getComputedTextLength()>=r.width-20?(n["text-anchor"]="start",n.x=5):(n["text-anchor"]="end",n.x=r._paper.attr("width")-7),t.attr(n);var i=t.select(".js-link-to-tool"),o=t.select(".js-link-spacer"),l=t.select(".js-sourcelinks");e._context.showSources&&e._context.showSources(e),e._context.showLink&&nfe(e,i),o.text(i.text()&&l.text()?" - ":"")}};function nfe(e,r){r.text("");var t=r.append("a").attr({"xlink:xlink:href":"#",class:"link--impt link--embedview","font-weight":"bold"}).text(e._context.linkText+" \xBB");if(e._context.sendData)t.on("click",function(){Qe.sendDataToCloud(e)});else{var a=window.location.pathname.split("/"),n=window.location.search;t.attr({"xlink:xlink:show":"new","xlink:xlink:href":"/"+a[2].split(".")[0]+"/"+a[1]+n})}}Qe.sendDataToCloud=function(e){var r=(window.PLOTLYENV||{}).BASE_URL||e._context.plotlyServerURL;if(r){e.emit("plotly_beforeexport");var t=Sq.select(e).append("div").attr("id","hiddenform").style("display","none"),a=t.append("form").attr({action:r+"/external",method:"post",target:"_blank"}),n=a.append("input").attr({type:"text",name:"data"});return n.node().value=Qe.graphJson(e,!1,"keepdata"),a.node().submit(),t.remove(),e.emit("plotly_afterexport"),!1}};var ife=["days","shortDays","months","shortMonths","periods","dateTime","date","time","decimal","thousands","grouping","currency"],ofe=["year","month","dayMonth","dayMonthYear"];Qe.supplyDefaults=function(e,r){var t=r&&r.skipUpdateCalc,a=e._fullLayout||{};if(a._skipDefaults){delete a._skipDefaults;return}var n=e._fullLayout={},i=e.layout||{},o=e._fullData||[],l=e._fullData=[],s=e.data||[],u=e.calcdata||[],f=e._context||{},c;e._transitionData||Qe.createTransitionData(e),n._dfltTitle={plot:cu(e,"Click to enter Plot title"),subtitle:cu(e,"Click to enter Plot subtitle"),x:cu(e,"Click to enter X axis title"),y:cu(e,"Click to enter Y axis title"),colorbar:cu(e,"Click to enter Colorscale title"),annotation:cu(e,"new text")},n._traceWord=cu(e,"trace");var v=Tq(e,ife);if(n._mapboxAccessToken=f.mapboxAccessToken,a._initialAutoSizeIsDone){var d=a.width,p=a.height;Qe.supplyLayoutGlobalDefaults(i,n,v),i.width||(n.width=d),i.height||(n.height=p),Qe.sanitizeMargins(n)}else{Qe.supplyLayoutGlobalDefaults(i,n,v);var y=!i.width||!i.height,m=n.autosize,x=f.autosizable,T=y&&(m||x);T?Qe.plotAutoSize(e,i,n):y&&Qe.sanitizeMargins(n),!m&&y&&(i.width=n.width,i.height=n.height)}n._d3locale=ufe(v,n.separators),n._extraFormat=Tq(e,ofe),n._initialAutoSizeIsDone=!0,n._dataLength=s.length,n._modules=[],n._visibleModules=[],n._basePlotModules=[];var _=n._subplots=sfe(),b=n._splomAxes={x:{},y:{}},w=n._splomSubplots={};n._splomGridDflt={},n._scatterStackOpts={},n._firstScatter={},n._alignmentOpts={},n._colorAxes={},n._requestRangeslider={},n._traceUids=lfe(o,s),Qe.supplyDataDefaults(s,l,i,n);var k=Object.keys(b.x),M=Object.keys(b.y);if(k.length>1&&M.length>1){for(Qr.getComponentMethod("grid","sizeDefaults")(i,n),c=0;c 15&&M.length>15&&n.shapes.length===0&&n.images.length===0,Qe.linkSubplots(l,n,o,a),Qe.cleanPlot(l,n,o,a);var R=!!(a._has&&a._has("cartesian")),z=!!(n._has&&n._has("cartesian")),I=R,B=z;I&&!B?a._bgLayer.remove():B&&!I&&(n._shouldCreateBgLayer=!0),a._zoomlayer&&!e._dragging&&efe({_fullLayout:a}),ffe(l,n),wq(n,a),Qr.getComponentMethod("colorscale","crossTraceDefaults")(l,n),n._preGUI||(n._preGUI={}),n._tracePreGUI||(n._tracePreGUI={});var G=n._tracePreGUI,Y={},V;for(V in G)Y[V]="old";for(c=0;c 0){var f=1-2*i;o=Math.round(f*o),l=Math.round(f*l)}}var c=Qe.layoutAttributes.width.min,v=Qe.layoutAttributes.height.min;o 1,p=!t.height&&Math.abs(a.height-l)>1;(p||d)&&(d&&(a.width=o),p&&(a.height=l)),r._initialAutoSize||(r._initialAutoSize={width:o,height:l}),Qe.sanitizeMargins(a)};Qe.supplyLayoutModuleDefaults=function(e,r,t,a){var n=Qr.componentsRegistry,i=r._basePlotModules,o,l,s,u=Qr.subplotsRegistry.cartesian;for(o in n)s=n[o],s.includeBasePlot&&s.includeBasePlot(e,r);i.length||i.push(u),r._has("cartesian")&&(Qr.getComponentMethod("grid","contentDefaults")(e,r),u.finalizeSubplots(e,r));for(var f in r._subplots)r._subplots[f].sort(hr.subplotSort);for(l=0;l 1&&(t.l/=m,t.r/=m)}if(v){var x=(t.t+t.b)/v;x>1&&(t.t/=x,t.b/=x)}var T=t.xl!==void 0?t.xl:t.x,_=t.xr!==void 0?t.xr:t.x,b=t.yt!==void 0?t.yt:t.y,w=t.yb!==void 0?t.yb:t.y;d[r]={l:{val:T,size:t.l+y},r:{val:_,size:t.r+y},b:{val:w,size:t.b+y},t:{val:b,size:t.t+y}},p[r]=1}if(!a._replotting)return Qe.doAutoMargin(e)}};function vfe(e){if("_redrawFromAutoMarginCount"in e._fullLayout)return!1;var r=Rn.list(e,"",!0);for(var t in r)if(r[t].autoshift||r[t].shift)return!0;return!1}Qe.doAutoMargin=function(e){var r=e._fullLayout,t=r.width,a=r.height;r._size||(r._size={}),Cq(r);var n=r._size,i=r.margin,o={t:0,b:0,l:0,r:0},l=hr.extendFlat({},n),s=i.l,u=i.r,f=i.t,c=i.b,v=r._pushmargin,d=r._pushmarginIds,p=r.minreducedwidth,y=r.minreducedheight;if(i.autoexpand!==!1){for(var m in v)d[m]||delete v[m];var x=e._fullLayout._reservedMargin;for(var T in x)for(var _ in x[T]){var b=x[T][_];o[_]=Math.max(o[_],b)}v.base={l:{val:0,size:s},r:{val:1,size:u},t:{val:1,size:f},b:{val:0,size:c}};for(var w in o){var k=0;for(var M in v)M!=="base"&&ph(v[M][w].size)&&(k=v[M][w].size>k?v[M][w].size:k);var q=Math.max(0,i[w]-k);o[w]=Math.max(0,o[w]-q)}for(var E in v){var D=v[E].l||{},P=v[E].b||{},R=D.val,z=D.size,I=P.val,B=P.size,G=t-o.r-o.l,Y=a-o.t-o.b;for(var V in v){if(ph(z)&&v[V].r){var H=v[V].r.val,X=v[V].r.size;if(H>R){var j=(z*H+(X-G)*R)/(H-R),ee=(X*(1-R)+(z-G)*(1-H))/(H-R);j+ee>s+u&&(s=j,u=ee)}}if(ph(B)&&v[V].t){var fe=v[V].t.val,ie=v[V].t.size;if(fe>I){var ue=(B*fe+(ie-Y)*I)/(fe-I),K=(ie*(1-I)+(B-Y)*(1-fe))/(fe-I);ue+K>c+f&&(c=ue,f=K)}}}}}var we=hr.constrain(t-i.l-i.r,Eq,p),se=hr.constrain(a-i.t-i.b,Dq,y),ce=Math.max(0,t-we),he=Math.max(0,a-se);if(ce){var ye=(s+u)/ce;ye>1&&(s/=ye,u/=ye)}if(he){var W=(c+f)/he;W>1&&(c/=W,f/=W)}if(n.l=Math.round(s)+o.l,n.r=Math.round(u)+o.r,n.t=Math.round(f)+o.t,n.b=Math.round(c)+o.b,n.p=Math.round(i.pad),n.w=Math.round(t)-n.l-n.r,n.h=Math.round(a)-n.t-n.b,!r._replotting&&(Qe.didMarginChange(l,n)||vfe(e))){"_redrawFromAutoMarginCount"in r?r._redrawFromAutoMarginCount++:r._redrawFromAutoMarginCount=1;var Q=3*(1+Object.keys(d).length);if(r._redrawFromAutoMarginCount 1)return!0}return!1};Qe.graphJson=function(e,r,t,a,n,i){(n&&r&&!e._fullData||n&&!r&&!e._fullLayout)&&Qe.supplyDefaults(e);var o=n?e._fullData:e.data,l=n?e._fullLayout:e.layout,s=(e._transitionData||{})._frames;function u(v,d){if(typeof v=="function")return d?"_function_":null;if(hr.isPlainObject(v)){var p={},y;return Object.keys(v).sort().forEach(function(_){if(["_","["].indexOf(_.charAt(0))===-1){if(typeof v[_]=="function"){d&&(p[_]="_function");return}if(t==="keepdata"){if(_.slice(-3)==="src")return}else if(t==="keepstream"){if(y=v[_+"src"],typeof y=="string"&&y.indexOf(":")>0&&!hr.isPlainObject(v.stream))return}else if(t!=="keepall"&&(y=v[_+"src"],typeof y=="string"&&y.indexOf(":")>0))return;p[_]=u(v[_],d)}}),p}var m=Array.isArray(v),x=hr.isTypedArray(v);if((m||x)&&v.dtype&&v.shape){var T=v.bdata;return u({dtype:v.dtype,shape:v.shape,bdata:hr.isArrayBuffer(T)?Kue.encode(T):T},d)}return m?v.map(function(_){return u(_,d)}):x?hr.simpleMap(v,hr.identity):hr.isJSDate(v)?hr.ms2DateTimeLocal(+v):v}var f={data:(o||[]).map(function(v){var d=u(v);return r&&delete d.fit,d})};if(!r&&(f.layout=u(l),n)){var c=l._size;f.layout.computed={margin:{b:c.b,l:c.l,r:c.r,t:c.t}}}return s&&(f.frames=u(s)),i&&(f.config=u(e._context,!0)),a==="object"?f:JSON.stringify(f)};Qe.modifyFrames=function(e,r){var t,a,n,i=e._transitionData._frames,o=e._transitionData._frameHash;for(t=0;t0&&(e._transitioningWithDuration=!0),e._transitionData._interruptCallbacks.push(function(){a=!0}),t.redraw&&e._transitionData._interruptCallbacks.push(function(){return Qr.call("redraw",e)}),e._transitionData._interruptCallbacks.push(function(){e.emit("plotly_transitioninterrupted",[])});var v=0,d=0;function p(){return v++,function(){d++,!a&&d===v&&l(c)}}t.runFn(p),setTimeout(p())})}function l(c){if(e._transitionData)return i(e._transitionData._interruptCallbacks),Promise.resolve().then(function(){if(t.redraw)return Qr.call("redraw",e)}).then(function(){e._transitioning=!1,e._transitioningWithDuration=!1,e.emit("plotly_transitioned",[])}).then(c)}function s(){if(e._transitionData)return e._transitioning=!1,n(e._transitionData._interruptCallbacks)}var u=[Qe.previousPromises,s,t.prepareFn,Qe.rehover,Qe.reselect,o],f=hr.syncOrAsync(u,e);return(!f||!f.then)&&(f=Promise.resolve()),f.then(function(){return e})}Qe.doCalcdata=function(e,r){var t=Rn.list(e),a=e._fullData,n=e._fullLayout,i,o,l,s,u=new Array(a.length),f=(e.calcdata||[]).slice();for(e.calcdata=u,n._numBoxes=0,n._numViolins=0,n._violinScaleGroupStats={},e._hmpixcount=0,e._hmlumcount=0,n._piecolormap={},n._sunburstcolormap={},n._treemapcolormap={},n._iciclecolormap={},n._funnelareacolormap={},l=0;l =0;s--)if(w[s].enabled){i._indexToPoints=w[s]._indexToPoints;break}o&&o.calc&&(b=o.calc(e,i))}(!Array.isArray(b)||!b[0])&&(b=[{x:_q,y:_q}]),b[0].t||(b[0].t={}),b[0].trace=i,u[T]=b}}for(Mq(t,a,n),l=0;l {"use strict";vu.xmlns="http://www.w3.org/2000/xmlns/";vu.svg="http://www.w3.org/2000/svg";vu.xlink="http://www.w3.org/1999/xlink";vu.svgAttrs={xmlns:vu.svg,"xmlns:xlink":vu.xlink}});var Ha=N((IDe,Fq)=>{"use strict";Fq.exports={FROM_BL:{left:0,center:.5,right:1,bottom:0,middle:.5,top:1},FROM_TL:{left:0,center:.5,right:1,bottom:1,middle:.5,top:0},FROM_BR:{left:1,center:.5,right:0,bottom:0,middle:.5,top:1},LINE_SPACING:1.3,CAP_SHIFT:.7,MID_SHIFT:.35,OPPOSITE_SIDE:{left:"right",right:"left",top:"bottom",bottom:"top"}}});var Aa=N(di=>{"use strict";var ca=Sr(),pl=Ee(),yfe=pl.strTranslate,tx=dl(),mfe=Ha().LINE_SPACING,gfe=/([^$]*)([$]+[^$]*[$]+)([^$]*)/;di.convertToTspans=function(e,r,t){var a=e.text(),n=!e.attr("data-notex")&&r&&r._context.typesetMath&&typeof MathJax!="undefined"&&a.match(gfe),i=ca.select(e.node().parentNode);if(i.empty())return;var o=e.attr("class")?e.attr("class").split(" ")[0]:"text";o+="-math",i.selectAll("svg."+o).remove(),i.selectAll("g."+o+"-group").remove(),e.style("display",null).attr({"data-unformatted":a,"data-math":"N"});function l(){i.empty()||(o=e.attr("class")+"-math",i.select("svg."+o).remove()),e.text("").style("white-space","pre");var s=Efe(e.node(),a);s&&e.style("pointer-events","all"),di.positionText(e),t&&t.call(e)}return n?(r&&r._promises||[]).push(new Promise(function(s){e.style("display","none");var u=parseInt(e.node().style.fontSize,10),f={fontSize:u};wfe(n[2],f,function(c,v,d){i.selectAll("svg."+o).remove(),i.selectAll("g."+o+"-group").remove();var p=c&&c.select("svg");if(!p||!p.node()){l(),s();return}var y=i.append("g").classed(o+"-group",!0).attr({"pointer-events":"none","data-unformatted":a,"data-math":"Y"});y.node().appendChild(p.node()),v&&v.node()&&p.node().insertBefore(v.node().cloneNode(!0),p.node().firstChild);var m=d.width,x=d.height;p.attr({class:o,height:x,preserveAspectRatio:"xMinYMin meet"}).style({overflow:"visible","pointer-events":"none"});var T=e.node().style.fill||"black",_=p.select("g");_.attr({fill:T,stroke:T});var b=_.node().getBoundingClientRect(),w=b.width,k=b.height;(w>m||k>x)&&(p.style("overflow","hidden"),b=p.node().getBoundingClientRect(),w=b.width,k=b.height);var M=+e.attr("x"),q=+e.attr("y"),E=u||e.node().getBoundingClientRect().height,D=-E/4;if(o[0]==="y")y.attr({transform:"rotate("+[-90,M,q]+")"+yfe(-w/2,D-k/2)});else if(o[0]==="l")q=D-k/2;else if(o[0]==="a"&&o.indexOf("atitle")!==0)M=0,q=D;else{var P=e.attr("text-anchor");M=M-w*(P==="middle"?.5:P==="end"?1:0),q=q+D-k/2}p.attr({x:M,y:q}),t&&t.call(e,y),s(y)})})):l(),e};var bfe=/(<|<|<)/g,xfe=/(>|>|>)/g;function _fe(e){return e.replace(bfe,"\\lt ").replace(xfe,"\\gt ")}var Nq=[["$","$"],["\\(","\\)"]];function wfe(e,r,t){var a=parseInt((MathJax.version||"").split(".")[0]);if(a!==2&&a!==3){pl.warn("No MathJax version:",MathJax.version);return}var n,i,o,l,s=function(){return i=pl.extendDeepAll({},MathJax.Hub.config),o=MathJax.Hub.processSectionDelay,MathJax.Hub.processSectionDelay!==void 0&&(MathJax.Hub.processSectionDelay=0),MathJax.Hub.Config({messageStyle:"none",tex2jax:{inlineMath:Nq},displayAlign:"left"})},u=function(){i=pl.extendDeepAll({},MathJax.config),MathJax.config.tex||(MathJax.config.tex={}),MathJax.config.tex.inlineMath=Nq},f=function(){if(n=MathJax.Hub.config.menuSettings.renderer,n!=="SVG")return MathJax.Hub.setRenderer("SVG")},c=function(){n=MathJax.config.startup.output,n!=="svg"&&(MathJax.config.startup.output="svg")},v=function(){var T="math-output-"+pl.randstr({},64);l=ca.select("body").append("div").attr({id:T}).style({visibility:"hidden",position:"absolute","font-size":r.fontSize+"px"}).text(_fe(e));var _=l.node();return a===2?MathJax.Hub.Typeset(_):MathJax.typeset([_])},d=function(){var T=l.select(a===2?".MathJax_SVG":".MathJax"),_=!T.empty()&&l.select("svg").node();if(!_)pl.log("There was an error in the tex syntax.",e),t();else{var b=_.getBoundingClientRect(),w;a===2?w=ca.select("body").select("#MathJax_SVG_glyphs"):w=T.select("defs"),t(T,w,b)}l.remove()},p=function(){if(n!=="SVG")return MathJax.Hub.setRenderer(n)},y=function(){n!=="svg"&&(MathJax.config.startup.output=n)},m=function(){return o!==void 0&&(MathJax.Hub.processSectionDelay=o),MathJax.Hub.Config(i)},x=function(){MathJax.config=i};a===2?MathJax.Hub.Queue(s,f,v,d,p,m):a===3&&(u(),c(),MathJax.startup.defaultReady(),MathJax.startup.promise.then(function(){v(),d(),y(),x()}))}var Bq={sup:"font-size:70%",sub:"font-size:70%",s:"text-decoration:line-through",u:"text-decoration:underline",b:"font-weight:bold",i:"font-style:italic",a:"cursor:pointer",span:"",em:"font-style:italic;font-weight:bold"},Tfe={sub:"0.3em",sup:"-0.6em"},Afe={sub:"-0.21em",sup:"0.42em"},Iq="\u200B",zq=["http:","https:","mailto:","",void 0,":"],Hq=di.NEWLINES=/(\r\n?|\n)/g,nx=/(<[^<>]*>)/,ix=/<(\/?)([^ >]*)(\s+(.*))?>/i,Mfe=/
/i;di.BR_TAG_ALL=/
/gi;var Uq=/(^|[\s"'])style\s*=\s*("([^"]*);?"|'([^']*);?')/i,Gq=/(^|[\s"'])href\s*=\s*("([^"]*)"|'([^']*)')/i,Vq=/(^|[\s"'])target\s*=\s*("([^"\s]*)"|'([^'\s]*)')/i,kfe=/(^|[\s"'])popup\s*=\s*("([\w=,]*)"|'([\w=,]*)')/i;function hu(e,r){if(!e)return null;var t=e.match(r),a=t&&(t[3]||t[4]);return a&&f1(a)}var Sfe=/(^|;)\s*color:/;di.plainText=function(e,r){r=r||{};for(var t=r.len!==void 0&&r.len!==-1?r.len:1/0,a=r.allowedTags!==void 0?r.allowedTags:["br"],n="...",i=n.length,o=e.split(nx),l=[],s="",u=0,f=0;fi?l.push(c.slice(0,Math.max(0,y-i))+n):l.push(c.slice(0,y));break}s=""}}return l.join("")};var qfe={mu:"\u03BC",amp:"&",lt:"<",gt:">",nbsp:"\xA0",times:"\xD7",plusmn:"\xB1",deg:"\xB0"},Lfe=/&(#\d+|#x[\da-fA-F]+|[a-z]+);/g;function f1(e){return e.replace(Lfe,function(r,t){var a;return t.charAt(0)==="#"?a=Cfe(t.charAt(1)==="x"?parseInt(t.slice(2),16):parseInt(t.slice(1),10)):a=qfe[t],a||r})}di.convertEntities=f1;function Cfe(e){if(!(e>1114111)){var r=String.fromCodePoint;if(r)return r(e);var t=String.fromCharCode;return e<=65535?t(e):t((e>>10)+55232,e%1024+56320)}}function Efe(e,r){r=r.replace(Hq," ");var t=!1,a=[],n,i=-1;function o(){i++;var k=document.createElementNS(tx.svg,"tspan");ca.select(k).attr({class:"line",dy:i*mfe+"em"}),e.appendChild(k),n=k;var M=a;if(a=[{node:k}],M.length>1)for(var q=1;q .",r);return}var M=a.pop();k!==M.type&&pl.log("Start tag <"+M.type+"> doesnt match end tag <"+k+">. Pretending it did match.",r),n=a[a.length-1].node}var f=Mfe.test(r);f?o():(n=e,a=[{node:e}]);for(var c=r.split(nx),v=0;v {"use strict";var Dfe=Sr(),v1=qn(),mh=Rr(),c1=Ee(),Wq=Tr(),Rfe=eu().isValid;function Pfe(e,r,t){var a=r?c1.nestedProperty(e,r).get()||{}:e,n=a[t||"color"];n&&n._inputArray&&(n=n._inputArray);var i=!1;if(c1.isArrayOrTypedArray(n)){for(var o=0;o =0;a--,n++){var i=e[a];t[n]=[1-i[0],i[1]]}return t}function Kq(e,r){r=r||{};for(var t=e.domain,a=e.range,n=a.length,i=new Array(n),o=0;o {"use strict";var eL=Mb(),Nfe=eL.FORMAT_LINK,Ife=eL.DATE_FORMAT_LINK;function zfe(e,r){return{valType:"string",dflt:"",editType:"none",description:(r?ox:rL)("hover text",e)+["By default the values are formatted using "+(r?"generic number format":"`"+e+"axis.hoverformat`")+"."].join(" ")}}function ox(e,r){return["Sets the "+e+" formatting rule"+(r?"for `"+r+"` ":""),"using d3 formatting mini-languages","which are very similar to those in Python. For numbers, see: "+Nfe+"."].join(" ")}function rL(e,r){return ox(e,r)+[" And for dates see: "+Ife+".","We add two items to d3's date formatter:","*%h* for half of the year as a decimal number as well as","*%{n}f* for fractional seconds","with n digits. For example, *2016-10-13 09:15:23.456* with tickformat","*%H~%M~%S.%2f* would display *09~15~23.46*"].join(" ")}tL.exports={axisHoverFormat:zfe,descriptionOnlyNumbers:ox,descriptionWithDates:rL}});var pi=N((UDe,bL)=>{"use strict";var aL=ga(),Qf=fi(),gL=ci().dash,sx=bt().extendFlat,nL=wt().templatedArray,HDe=Wn().templateFormatStringDescription,iL=no().descriptionWithDates,Ofe=Ft().ONEDAY,qo=xa(),Bfe=qo.HOUR_PATTERN,Hfe=qo.WEEKDAY_PATTERN,lx={valType:"enumerated",values:["auto","linear","array"],editType:"ticks",impliedEdits:{tick0:void 0,dtick:void 0}},Ufe=sx({},lx,{values:lx.values.slice().concat(["sync"])});function oL(e){return{valType:"integer",min:0,dflt:e?5:0,editType:"ticks"}}var lL={valType:"any",editType:"ticks",impliedEdits:{tickmode:"linear"}},sL={valType:"any",editType:"ticks",impliedEdits:{tickmode:"linear"}},uL={valType:"data_array",editType:"ticks"},fL={valType:"enumerated",values:["outside","inside",""],editType:"ticks"};function cL(e){var r={valType:"number",min:0,editType:"ticks"};return e||(r.dflt=5),r}function vL(e){var r={valType:"number",min:0,editType:"ticks"};return e||(r.dflt=1),r}var hL={valType:"color",dflt:Qf.defaultLine,editType:"ticks"},dL={valType:"color",dflt:Qf.lightLine,editType:"ticks"};function pL(e){var r={valType:"number",min:0,editType:"ticks"};return e||(r.dflt=1),r}var yL=sx({},gL,{editType:"ticks"}),mL={valType:"boolean",editType:"ticks"};bL.exports={visible:{valType:"boolean",editType:"plot"},color:{valType:"color",dflt:Qf.defaultLine,editType:"ticks"},title:{text:{valType:"string",editType:"ticks"},font:aL({editType:"ticks"}),standoff:{valType:"number",min:0,editType:"ticks"},editType:"ticks"},type:{valType:"enumerated",values:["-","linear","log","date","category","multicategory"],dflt:"-",editType:"calc",_noTemplating:!0},autotypenumbers:{valType:"enumerated",values:["convert types","strict"],dflt:"convert types",editType:"calc"},autorange:{valType:"enumerated",values:[!0,!1,"reversed","min reversed","max reversed","min","max"],dflt:!0,editType:"axrange",impliedEdits:{"range[0]":void 0,"range[1]":void 0}},autorangeoptions:{minallowed:{valType:"any",editType:"plot",impliedEdits:{"range[0]":void 0,"range[1]":void 0}},maxallowed:{valType:"any",editType:"plot",impliedEdits:{"range[0]":void 0,"range[1]":void 0}},clipmin:{valType:"any",editType:"plot",impliedEdits:{"range[0]":void 0,"range[1]":void 0}},clipmax:{valType:"any",editType:"plot",impliedEdits:{"range[0]":void 0,"range[1]":void 0}},include:{valType:"any",arrayOk:!0,editType:"plot",impliedEdits:{"range[0]":void 0,"range[1]":void 0}},editType:"plot"},rangemode:{valType:"enumerated",values:["normal","tozero","nonnegative"],dflt:"normal",editType:"plot"},range:{valType:"info_array",items:[{valType:"any",editType:"axrange",impliedEdits:{"^autorange":!1},anim:!0},{valType:"any",editType:"axrange",impliedEdits:{"^autorange":!1},anim:!0}],editType:"axrange",impliedEdits:{autorange:!1},anim:!0},minallowed:{valType:"any",editType:"plot",impliedEdits:{"^autorange":!1}},maxallowed:{valType:"any",editType:"plot",impliedEdits:{"^autorange":!1}},fixedrange:{valType:"boolean",dflt:!1,editType:"calc"},modebardisable:{valType:"flaglist",flags:["autoscale","zoominout"],extras:["none"],dflt:"none",editType:"modebar"},insiderange:{valType:"info_array",items:[{valType:"any",editType:"plot"},{valType:"any",editType:"plot"}],editType:"plot"},scaleanchor:{valType:"enumerated",values:[qo.idRegex.x.toString(),qo.idRegex.y.toString(),!1],editType:"plot"},scaleratio:{valType:"number",min:0,dflt:1,editType:"plot"},constrain:{valType:"enumerated",values:["range","domain"],editType:"plot"},constraintoward:{valType:"enumerated",values:["left","center","right","top","middle","bottom"],editType:"plot"},matches:{valType:"enumerated",values:[qo.idRegex.x.toString(),qo.idRegex.y.toString()],editType:"calc"},rangebreaks:nL("rangebreak",{enabled:{valType:"boolean",dflt:!0,editType:"calc"},bounds:{valType:"info_array",items:[{valType:"any",editType:"calc"},{valType:"any",editType:"calc"}],editType:"calc"},pattern:{valType:"enumerated",values:[Hfe,Bfe,""],editType:"calc"},values:{valType:"info_array",freeLength:!0,editType:"calc",items:{valType:"any",editType:"calc"}},dvalue:{valType:"number",editType:"calc",min:0,dflt:Ofe},editType:"calc"}),tickmode:Ufe,nticks:oL(),tick0:lL,dtick:sL,ticklabelstep:{valType:"integer",min:1,dflt:1,editType:"ticks"},tickvals:uL,ticktext:{valType:"data_array",editType:"ticks"},ticks:fL,tickson:{valType:"enumerated",values:["labels","boundaries"],dflt:"labels",editType:"ticks"},ticklabelmode:{valType:"enumerated",values:["instant","period"],dflt:"instant",editType:"ticks"},ticklabelposition:{valType:"enumerated",values:["outside","inside","outside top","inside top","outside left","inside left","outside right","inside right","outside bottom","inside bottom"],dflt:"outside",editType:"calc"},ticklabeloverflow:{valType:"enumerated",values:["allow","hide past div","hide past domain"],editType:"calc"},ticklabelshift:{valType:"integer",dflt:0,editType:"ticks"},ticklabelstandoff:{valType:"integer",dflt:0,editType:"ticks"},ticklabelindex:{valType:"integer",arrayOk:!0,editType:"calc"},mirror:{valType:"enumerated",values:[!0,"ticks",!1,"all","allticks"],dflt:!1,editType:"ticks+layoutstyle"},ticklen:cL(),tickwidth:vL(),tickcolor:hL,showticklabels:{valType:"boolean",dflt:!0,editType:"ticks"},labelalias:{valType:"any",dflt:!1,editType:"ticks"},automargin:{valType:"flaglist",flags:["height","width","left","right","top","bottom"],extras:[!0,!1],dflt:!1,editType:"ticks"},showspikes:{valType:"boolean",dflt:!1,editType:"modebar"},spikecolor:{valType:"color",dflt:null,editType:"none"},spikethickness:{valType:"number",dflt:3,editType:"none"},spikedash:sx({},gL,{dflt:"dash",editType:"none"}),spikemode:{valType:"flaglist",flags:["toaxis","across","marker"],dflt:"toaxis",editType:"none"},spikesnap:{valType:"enumerated",values:["data","cursor","hovered data"],dflt:"hovered data",editType:"none"},tickfont:aL({editType:"ticks"}),tickangle:{valType:"angle",dflt:"auto",editType:"ticks"},autotickangles:{valType:"info_array",freeLength:!0,items:{valType:"angle"},dflt:[0,30,90],editType:"ticks"},tickprefix:{valType:"string",dflt:"",editType:"ticks"},showtickprefix:{valType:"enumerated",values:["all","first","last","none"],dflt:"all",editType:"ticks"},ticksuffix:{valType:"string",dflt:"",editType:"ticks"},showticksuffix:{valType:"enumerated",values:["all","first","last","none"],dflt:"all",editType:"ticks"},showexponent:{valType:"enumerated",values:["all","first","last","none"],dflt:"all",editType:"ticks"},exponentformat:{valType:"enumerated",values:["none","e","E","power","SI","B","SI extended"],dflt:"B",editType:"ticks"},minexponent:{valType:"number",dflt:3,min:0,editType:"ticks"},separatethousands:{valType:"boolean",dflt:!1,editType:"ticks"},tickformat:{valType:"string",dflt:"",editType:"ticks",description:iL("tick label")},tickformatstops:nL("tickformatstop",{enabled:{valType:"boolean",dflt:!0,editType:"ticks"},dtickrange:{valType:"info_array",items:[{valType:"any",editType:"ticks"},{valType:"any",editType:"ticks"}],editType:"ticks"},value:{valType:"string",dflt:"",editType:"ticks"},editType:"ticks"}),hoverformat:{valType:"string",dflt:"",editType:"none",description:iL("hover text")},unifiedhovertitle:{text:{valType:"string",dflt:"",editType:"none"},editType:"none"},showline:{valType:"boolean",dflt:!1,editType:"ticks+layoutstyle"},linecolor:{valType:"color",dflt:Qf.defaultLine,editType:"layoutstyle"},linewidth:{valType:"number",min:0,dflt:1,editType:"ticks+layoutstyle"},showgrid:mL,gridcolor:dL,gridwidth:pL(),griddash:yL,zeroline:{valType:"boolean",editType:"ticks"},zerolinecolor:{valType:"color",dflt:Qf.defaultLine,editType:"ticks"},zerolinelayer:{valType:"enumerated",values:["above traces","below traces"],dflt:"below traces",editType:"plot"},zerolinewidth:{valType:"number",dflt:1,editType:"ticks"},showdividers:{valType:"boolean",dflt:!0,editType:"ticks"},dividercolor:{valType:"color",dflt:Qf.defaultLine,editType:"ticks"},dividerwidth:{valType:"number",dflt:1,editType:"ticks"},anchor:{valType:"enumerated",values:["free",qo.idRegex.x.toString(),qo.idRegex.y.toString()],editType:"plot"},side:{valType:"enumerated",values:["top","bottom","left","right"],editType:"plot"},overlaying:{valType:"enumerated",values:["free",qo.idRegex.x.toString(),qo.idRegex.y.toString()],editType:"plot"},minor:{tickmode:lx,nticks:oL("minor"),tick0:lL,dtick:sL,tickvals:uL,ticks:fL,ticklen:cL("minor"),tickwidth:vL("minor"),tickcolor:hL,gridcolor:dL,gridwidth:pL("minor"),griddash:yL,showgrid:mL,editType:"ticks"},minorloglabels:{valType:"enumerated",values:["small digits","complete","none"],dflt:"small digits",editType:"calc"},layer:{valType:"enumerated",values:["above traces","below traces"],dflt:"above traces",editType:"plot"},domain:{valType:"info_array",items:[{valType:"number",min:0,max:1,editType:"plot"},{valType:"number",min:0,max:1,editType:"plot"}],dflt:[0,1],editType:"plot"},position:{valType:"number",min:0,max:1,dflt:0,editType:"plot"},autoshift:{valType:"boolean",dflt:!1,editType:"plot"},shift:{valType:"number",editType:"plot"},categoryorder:{valType:"enumerated",values:["trace","category ascending","category descending","array","total ascending","total descending","min ascending","min descending","max ascending","max descending","sum ascending","sum descending","mean ascending","mean descending","geometric mean ascending","geometric mean descending","median ascending","median descending"],dflt:"trace",editType:"calc"},categoryarray:{valType:"data_array",editType:"calc"},uirevision:{valType:"any",editType:"none"},editType:"calc"}});var h1=N((GDe,wL)=>{"use strict";var Ct=pi(),xL=ga(),_L=bt().extendFlat,Gfe=eo().overrideAll;wL.exports=Gfe({orientation:{valType:"enumerated",values:["h","v"],dflt:"v"},thicknessmode:{valType:"enumerated",values:["fraction","pixels"],dflt:"pixels"},thickness:{valType:"number",min:0,dflt:30},lenmode:{valType:"enumerated",values:["fraction","pixels"],dflt:"fraction"},len:{valType:"number",min:0,dflt:1},x:{valType:"number"},xref:{valType:"enumerated",dflt:"paper",values:["container","paper"],editType:"layoutstyle"},xanchor:{valType:"enumerated",values:["left","center","right"]},xpad:{valType:"number",min:0,dflt:10},y:{valType:"number"},yref:{valType:"enumerated",dflt:"paper",values:["container","paper"],editType:"layoutstyle"},yanchor:{valType:"enumerated",values:["top","middle","bottom"]},ypad:{valType:"number",min:0,dflt:10},outlinecolor:Ct.linecolor,outlinewidth:Ct.linewidth,bordercolor:Ct.linecolor,borderwidth:{valType:"number",min:0,dflt:0},bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)"},tickmode:Ct.minor.tickmode,nticks:Ct.nticks,tick0:Ct.tick0,dtick:Ct.dtick,tickvals:Ct.tickvals,ticktext:Ct.ticktext,ticks:_L({},Ct.ticks,{dflt:""}),ticklabeloverflow:_L({},Ct.ticklabeloverflow,{}),ticklabelposition:{valType:"enumerated",values:["outside","inside","outside top","inside top","outside left","inside left","outside right","inside right","outside bottom","inside bottom"],dflt:"outside"},ticklen:Ct.ticklen,tickwidth:Ct.tickwidth,tickcolor:Ct.tickcolor,ticklabelstep:Ct.ticklabelstep,showticklabels:Ct.showticklabels,labelalias:Ct.labelalias,tickfont:xL({}),tickangle:Ct.tickangle,tickformat:Ct.tickformat,tickformatstops:Ct.tickformatstops,tickprefix:Ct.tickprefix,showtickprefix:Ct.showtickprefix,ticksuffix:Ct.ticksuffix,showticksuffix:Ct.showticksuffix,separatethousands:Ct.separatethousands,exponentformat:Ct.exponentformat,minexponent:Ct.minexponent,showexponent:Ct.showexponent,title:{text:{valType:"string"},font:xL({}),side:{valType:"enumerated",values:["right","top","bottom"]}}},"colorbars","from-root")});var Lo=N((YDe,AL)=>{"use strict";var Vfe=h1(),Yfe=Ff().counter,Wfe=Db(),TL=eu().scales,VDe=Wfe(TL);function d1(e){return"`"+e+"`"}AL.exports=function(r,t){r=r||"",t=t||{};var a=t.cLetter||"c",n="onlyIfNumerical"in t?t.onlyIfNumerical:!!r,i="noScale"in t?t.noScale:r==="marker.line",o="showScaleDflt"in t?t.showScaleDflt:a==="z",l=typeof t.colorscaleDflt=="string"?TL[t.colorscaleDflt]:null,s=t.editTypeOverride||"",u=r?r+".":"",f,c;"colorAttr"in t?(f=t.colorAttr,c=t.colorAttr):(f={z:"z",c:"color"}[a],c="in "+d1(u+f));var v=n?" Has an effect only if "+c+" is set to a numerical array.":"",d=a+"auto",p=a+"min",y=a+"max",m=a+"mid",x=d1(u+d),T=d1(u+p),_=d1(u+y),b=T+" and "+_,w={};w[p]=w[y]=void 0;var k={};k[d]=!1;var M={};return f==="color"&&(M.color={valType:"color",arrayOk:!0,editType:s||"style"},t.anim&&(M.color.anim=!0)),M[d]={valType:"boolean",dflt:!0,editType:"calc",impliedEdits:w},M[p]={valType:"number",dflt:null,editType:s||"plot",impliedEdits:k},M[y]={valType:"number",dflt:null,editType:s||"plot",impliedEdits:k},M[m]={valType:"number",dflt:null,editType:"calc",impliedEdits:w},M.colorscale={valType:"colorscale",editType:"calc",dflt:l,impliedEdits:{autocolorscale:!1}},M.autocolorscale={valType:"boolean",dflt:t.autoColorDflt!==!1,editType:"calc",impliedEdits:{colorscale:void 0}},M.reversescale={valType:"boolean",dflt:!1,editType:"plot"},i||(M.showscale={valType:"boolean",dflt:o,editType:"calc"},M.colorbar=Vfe),t.noColorAxis||(M.coloraxis={valType:"subplotid",regex:Yfe("coloraxis"),dflt:null,editType:"calc"}),M}});var fx=N((WDe,ML)=>{"use strict";var jfe=bt().extendFlat,Zfe=Lo(),ux=eu().scales;ML.exports={editType:"calc",colorscale:{editType:"calc",sequential:{valType:"colorscale",dflt:ux.Reds,editType:"calc"},sequentialminus:{valType:"colorscale",dflt:ux.Blues,editType:"calc"},diverging:{valType:"colorscale",dflt:ux.RdBu,editType:"calc"}},coloraxis:jfe({_isSubplotObj:!0,editType:"calc"},Zfe("",{colorAttr:"corresponding trace color array(s)",noColorAxis:!0,showScaleDflt:!0}))}});var cx=N((jDe,kL)=>{"use strict";var Xfe=Ee();kL.exports=function(r){return Xfe.isPlainObject(r.colorbar)}});var dx=N(hx=>{"use strict";var vx=Rr(),SL=Ee(),qL=Ft(),Jfe=qL.ONEDAY,$fe=qL.ONEWEEK;hx.dtick=function(e,r){var t=r==="log",a=r==="date",n=r==="category",i=a?Jfe:1;if(!e)return i;if(vx(e))return e=Number(e),e<=0?i:n?Math.max(1,Math.round(e)):a?Math.max(.1,e):e;if(typeof e!="string"||!(a||t))return i;var o=e.charAt(0),l=e.slice(1);return l=vx(l)?Number(l):0,l<=0||!(a&&o==="M"&&l===Math.round(l)||t&&o==="L"||t&&o==="D"&&(l===1||l===2))?i:e};hx.tick0=function(e,r,t,a){if(r==="date")return SL.cleanDate(e,SL.dateTick0(t,a%$fe===0?1:0));if(!(a==="D1"||a==="D2"))return vx(e)?Number(e):0}});var p1=N((XDe,CL)=>{"use strict";var LL=dx(),Kfe=Ee().isArrayOrTypedArray,Qfe=Yn().isTypedArraySpec,ece=Yn().decodeTypedArraySpec;CL.exports=function(r,t,a,n,i){i||(i={});var o=i.isMinor,l=o?r.minor||{}:r,s=o?t.minor:t,u=o?"minor.":"";function f(T){var _=l[T];return Qfe(_)&&(_=ece(_)),_!==void 0?_:(s._template||{})[T]}var c=f("tick0"),v=f("dtick"),d=f("tickvals"),p=Kfe(d)?"array":v?"linear":"auto",y=a(u+"tickmode",p);if(y==="auto"||y==="sync")a(u+"nticks");else if(y==="linear"){var m=s.dtick=LL.dtick(v,n);s.tick0=LL.tick0(c,n,t.calendar,m)}else if(n!=="multicategory"){var x=a(u+"tickvals");x===void 0?s.tickmode="auto":o||a("ticktext")}}});var y1=N((JDe,DL)=>{"use strict";var px=Ee(),EL=pi();DL.exports=function(r,t,a,n){var i=n.isMinor,o=i?r.minor||{}:r,l=i?t.minor:t,s=i?EL.minor:EL,u=i?"minor.":"",f=px.coerce2(o,l,s,"ticklen",i?(t.ticklen||5)*.6:void 0),c=px.coerce2(o,l,s,"tickwidth",i?t.tickwidth||1:void 0),v=px.coerce2(o,l,s,"tickcolor",(i?t.tickcolor:void 0)||l.color),d=a(u+"ticks",!i&&n.outerTicks||f||c||v?"outside":"");d||(delete l.ticklen,delete l.tickwidth,delete l.tickcolor)}});var yx=N(($De,RL)=>{"use strict";RL.exports=function(r){var t=["showexponent","showtickprefix","showticksuffix"],a=t.filter(function(i){return r[i]!==void 0}),n=function(i){return r[i]===r[a[0]]};if(a.every(n)||a.length===1)return r[a[0]]}});var io=N((KDe,PL)=>{"use strict";var m1=Ee(),rce=wt();PL.exports=function(r,t,a){var n=a.name,i=a.inclusionAttr||"visible",o=t[n],l=m1.isArrayOrTypedArray(r[n])?r[n]:[],s=t[n]=[],u=rce.arrayTemplater(t,n,i),f,c;for(f=0;f {"use strict";var mx=Ee(),tce=Tr().contrast,FL=pi(),ace=yx(),nce=io();NL.exports=function(r,t,a,n,i){i||(i={});var o=a("labelalias");mx.isPlainObject(o)||delete t.labelalias;var l=ace(r),s=a("showticklabels");if(s){i.noTicklabelshift||a("ticklabelshift"),i.noTicklabelstandoff||a("ticklabelstandoff");var u=i.font||{},f=t.color,c=t.ticklabelposition||"",v=c.indexOf("inside")!==-1?tce(i.bgColor):f&&f!==FL.color.dflt?f:u.color;if(mx.coerceFont(a,"tickfont",u,{overrideDflt:{color:v}}),!i.noTicklabelstep&&n!=="multicategory"&&n!=="log"&&a("ticklabelstep"),!i.noAng){var d=a("tickangle");!i.noAutotickangles&&d==="auto"&&a("autotickangles")}if(n!=="category"){var p=a("tickformat");nce(r,t,{name:"tickformatstops",inclusionAttr:"enabled",handleItemDefaults:ice}),t.tickformatstops.length||delete t.tickformatstops,!i.noExp&&!p&&n!=="date"&&(a("showexponent",l),a("exponentformat"),a("minexponent"),a("separatethousands"))}!i.noMinorloglabels&&n==="log"&&a("minorloglabels")}};function ice(e,r){function t(n,i){return mx.coerce(e,r,FL.tickformatstops,n,i)}var a=t("enabled");a&&(t("dtickrange"),t("value"))}});var b1=N((eRe,IL)=>{"use strict";var oce=yx();IL.exports=function(r,t,a,n,i){i||(i={});var o=i.tickSuffixDflt,l=oce(r),s=a("tickprefix");s&&a("showtickprefix",l);var u=a("ticksuffix",o);u&&a("showticksuffix",l)}});var gx=N((rRe,zL)=>{"use strict";var ts=Ee(),lce=wt(),sce=p1(),uce=y1(),fce=g1(),cce=b1(),vce=h1();zL.exports=function(r,t,a){var n=lce.newContainer(t,"colorbar"),i=r.colorbar||{};function o(P,R){return ts.coerce(i,n,vce,P,R)}var l=a.margin||{t:0,b:0,l:0,r:0},s=a.width-l.l-l.r,u=a.height-l.t-l.b,f=o("orientation"),c=f==="v",v=o("thicknessmode");o("thickness",v==="fraction"?30/(c?s:u):30);var d=o("lenmode");o("len",d==="fraction"?1:c?u:s);var p=o("yref"),y=o("xref"),m=p==="paper",x=y==="paper",T,_,b,w="left";c?(b="middle",w=x?"left":"right",T=x?1.02:1,_=.5):(b=m?"bottom":"top",w="center",T=.5,_=m?1.02:1),ts.coerce(i,n,{x:{valType:"number",min:x?-2:0,max:x?3:1,dflt:T}},"x"),ts.coerce(i,n,{y:{valType:"number",min:m?-2:0,max:m?3:1,dflt:_}},"y"),o("xanchor",w),o("xpad"),o("yanchor",b),o("ypad"),ts.noneOrAll(i,n,["x","y"]),o("outlinecolor"),o("outlinewidth"),o("bordercolor"),o("borderwidth"),o("bgcolor");var k=ts.coerce(i,n,{ticklabelposition:{valType:"enumerated",dflt:"outside",values:c?["outside","inside","outside top","inside top","outside bottom","inside bottom"]:["outside","inside","outside left","inside left","outside right","inside right"]}},"ticklabelposition");o("ticklabeloverflow",k.indexOf("inside")!==-1?"hide past domain":"hide past div"),sce(i,n,o,"linear");var M=a.font,q={noAutotickangles:!0,noTicklabelshift:!0,noTicklabelstandoff:!0,outerTicks:!1,font:M};k.indexOf("inside")!==-1&&(q.bgColor="black"),cce(i,n,o,"linear",q),fce(i,n,o,"linear",q),uce(i,n,o,"linear",q),o("title.text",a._dfltTitle.colorbar);var E=n.showticklabels?n.tickfont:M,D=ts.extendFlat({},M,{family:E.family,size:ts.bigFont(E.size)});ts.coerceFont(o,"title.font",D),o("title.side",c?"top":"right")}});var yl=N((tRe,HL)=>{"use strict";var OL=Rr(),xx=Ee(),hce=cx(),dce=gx(),BL=eu().isValid,pce=br().traceIs;function bx(e,r){var t=r.slice(0,r.length-1);return r?xx.nestedProperty(e,t).get()||{}:e}HL.exports=function e(r,t,a,n,i){var o=i.prefix,l=i.cLetter,s="_module"in t,u=bx(r,o),f=bx(t,o),c=bx(t._template||{},o)||{},v=function(){return delete r.coloraxis,delete t.coloraxis,e(r,t,a,n,i)};if(s){var d=a._colorAxes||{},p=n(o+"coloraxis");if(p){var y=pce(t,"contour")&&xx.nestedProperty(t,"contours.coloring").get()||"heatmap",m=d[p];m?(m[2].push(v),m[0]!==y&&(m[0]=!1,xx.warn(["Ignoring coloraxis:",p,"setting","as it is linked to incompatible colorscales."].join(" ")))):d[p]=[y,t,[v]];return}}var x=u[l+"min"],T=u[l+"max"],_=OL(x)&&OL(T)&&x {"use strict";var UL=Ee(),yce=wt(),GL=fx(),mce=yl();VL.exports=function(r,t){function a(c,v){return UL.coerce(r,t,GL,c,v)}a("colorscale.sequential"),a("colorscale.sequentialminus"),a("colorscale.diverging");var n=t._colorAxes,i,o;function l(c,v){return UL.coerce(i,o,GL.coloraxis,c,v)}for(var s in n){var u=n[s];if(u[0])i=r[s]||{},o=yce.newContainer(t,s,"coloraxis"),o._name=s,mce(i,o,t,l,{prefix:"",cLetter:"c"});else{for(var f=0;f{"use strict";var gce=Ee(),bce=Zn().hasColorscale,xce=Zn().extractOpts;WL.exports=function(r,t){function a(f,c){var v=f["_"+c];v!==void 0&&(f[c]=v)}function n(f,c){var v=c.container?gce.nestedProperty(f,c.container).get():f;if(v)if(v.coloraxis)v._colorAx=t[v.coloraxis];else{var d=xce(v),p=d.auto;(p||d.min===void 0)&&a(v,c.min),(p||d.max===void 0)&&a(v,c.max),d.autocolorscale&&a(v,"colorscale")}}for(var i=0;i {"use strict";var ZL=Rr(),_x=Ee(),_ce=Zn().extractOpts;XL.exports=function(r,t,a){var n=r._fullLayout,i=a.vals,o=a.containerStr,l=o?_x.nestedProperty(t,o).get():t,s=_ce(l),u=s.auto!==!1,f=s.min,c=s.max,v=s.mid,d=function(){return _x.aggNums(Math.min,null,i)},p=function(){return _x.aggNums(Math.max,null,i)};if(f===void 0?f=d():u&&(l._colorAx&&ZL(f)?f=Math.min(f,d()):f=d()),c===void 0?c=p():u&&(l._colorAx&&ZL(c)?c=Math.max(c,p()):c=p()),u&&v!==void 0&&(c-v>v-f?f=v-(c-v):c-v =0?y=n.colorscale.sequential:y=n.colorscale.sequentialminus,s._sync("colorscale",y)}}});var Co=N((oRe,JL)=>{"use strict";var x1=eu(),rc=Zn();JL.exports={moduleType:"component",name:"colorscale",attributes:Lo(),layoutAttributes:fx(),supplyLayoutDefaults:YL(),handleDefaults:yl(),crossTraceDefaults:jL(),calc:ec(),scales:x1.scales,defaultScale:x1.defaultScale,getScale:x1.get,isValidScale:x1.isValid,hasColorscale:rc.hasColorscale,extractOpts:rc.extractOpts,extractScale:rc.extractScale,flipScale:rc.flipScale,makeColorScaleFunc:rc.makeColorScaleFunc,makeColorScaleFuncFromTrace:rc.makeColorScaleFuncFromTrace}});var Pn=N((lRe,KL)=>{"use strict";var $L=Ee(),wce=Yn().isTypedArraySpec;KL.exports={hasLines:function(e){return e.visible&&e.mode&&e.mode.indexOf("lines")!==-1},hasMarkers:function(e){return e.visible&&(e.mode&&e.mode.indexOf("markers")!==-1||e.type==="splom")},hasText:function(e){return e.visible&&e.mode&&e.mode.indexOf("text")!==-1},isBubble:function(e){var r=e.marker;return $L.isPlainObject(r)&&($L.isArrayOrTypedArray(r.size)||wce(r.size))}}});var eC=N((sRe,QL)=>{"use strict";var Tce=Rr();QL.exports=function(r,t){t||(t=2);var a=r.marker,n=a.sizeref||1,i=a.sizemin||0,o=a.sizemode==="area"?function(l){return Math.sqrt(l/n)}:function(l){return l/n};return function(l){var s=o(l/t);return Tce(s)&&s>0?Math.max(s,i):0}}});var Eo=N($a=>{"use strict";var _1=Ee();$a.getSubplot=function(e){return e.subplot||e.xaxis+e.yaxis||e.geo};$a.isTraceInSubplots=function(e,r){if(e.type==="splom"){for(var t=e.xaxes||[],a=e.yaxes||[],n=0;n =0&&t.index {aC.exports=qce;var wx={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},Sce=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function qce(e){var r=[];return e.replace(Sce,function(t,a,n){var i=a.toLowerCase();for(n=Cce(n),i=="m"&&n.length>2&&(r.push([a].concat(n.splice(0,2))),i="l",a=a=="m"?"l":"L");;){if(n.length==wx[i])return n.unshift(a),r.push(n);if(n.length {"use strict";var Ece=Tx(),$e=function(e,r){return r?Math.round(e*(r=Math.pow(10,r)))/r:Math.round(e)},qr="M0,0Z",nC=Math.sqrt(2),as=Math.sqrt(3),Ax=Math.PI,Mx=Math.cos,kx=Math.sin;uC.exports={circle:{n:0,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e,2),n="M"+a+",0A"+a+","+a+" 0 1,1 0,-"+a+"A"+a+","+a+" 0 0,1 "+a+",0Z";return t?Cr(r,t,n):n}},square:{n:1,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e,2);return Cr(r,t,"M"+a+","+a+"H-"+a+"V-"+a+"H"+a+"Z")}},diamond:{n:2,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*1.3,2);return Cr(r,t,"M"+a+",0L0,"+a+"L-"+a+",0L0,-"+a+"Z")}},cross:{n:3,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*.4,2),n=$e(e*1.2,2);return Cr(r,t,"M"+n+","+a+"H"+a+"V"+n+"H-"+a+"V"+a+"H-"+n+"V-"+a+"H-"+a+"V-"+n+"H"+a+"V-"+a+"H"+n+"Z")}},x:{n:4,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*.8/nC,2),n="l"+a+","+a,i="l"+a+",-"+a,o="l-"+a+",-"+a,l="l-"+a+","+a;return Cr(r,t,"M0,"+a+n+i+o+i+o+l+o+l+n+l+n+"Z")}},"triangle-up":{n:5,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*2/as,2),n=$e(e/2,2),i=$e(e,2);return Cr(r,t,"M-"+a+","+n+"H"+a+"L0,-"+i+"Z")}},"triangle-down":{n:6,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*2/as,2),n=$e(e/2,2),i=$e(e,2);return Cr(r,t,"M-"+a+",-"+n+"H"+a+"L0,"+i+"Z")}},"triangle-left":{n:7,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*2/as,2),n=$e(e/2,2),i=$e(e,2);return Cr(r,t,"M"+n+",-"+a+"V"+a+"L-"+i+",0Z")}},"triangle-right":{n:8,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*2/as,2),n=$e(e/2,2),i=$e(e,2);return Cr(r,t,"M-"+n+",-"+a+"V"+a+"L"+i+",0Z")}},"triangle-ne":{n:9,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*.6,2),n=$e(e*1.2,2);return Cr(r,t,"M-"+n+",-"+a+"H"+a+"V"+n+"Z")}},"triangle-se":{n:10,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*.6,2),n=$e(e*1.2,2);return Cr(r,t,"M"+a+",-"+n+"V"+a+"H-"+n+"Z")}},"triangle-sw":{n:11,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*.6,2),n=$e(e*1.2,2);return Cr(r,t,"M"+n+","+a+"H-"+a+"V-"+n+"Z")}},"triangle-nw":{n:12,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*.6,2),n=$e(e*1.2,2);return Cr(r,t,"M-"+a+","+n+"V-"+a+"H"+n+"Z")}},pentagon:{n:13,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*.951,2),n=$e(e*.588,2),i=$e(-e,2),o=$e(e*-.309,2),l=$e(e*.809,2);return Cr(r,t,"M"+a+","+o+"L"+n+","+l+"H-"+n+"L-"+a+","+o+"L0,"+i+"Z")}},hexagon:{n:14,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e,2),n=$e(e/2,2),i=$e(e*as/2,2);return Cr(r,t,"M"+i+",-"+n+"V"+n+"L0,"+a+"L-"+i+","+n+"V-"+n+"L0,-"+a+"Z")}},hexagon2:{n:15,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e,2),n=$e(e/2,2),i=$e(e*as/2,2);return Cr(r,t,"M-"+n+","+i+"H"+n+"L"+a+",0L"+n+",-"+i+"H-"+n+"L-"+a+",0Z")}},octagon:{n:16,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*.924,2),n=$e(e*.383,2);return Cr(r,t,"M-"+n+",-"+a+"H"+n+"L"+a+",-"+n+"V"+n+"L"+n+","+a+"H-"+n+"L-"+a+","+n+"V-"+n+"Z")}},star:{n:17,f:function(e,r,t){if(Lr(r))return qr;var a=e*1.4,n=$e(a*.225,2),i=$e(a*.951,2),o=$e(a*.363,2),l=$e(a*.588,2),s=$e(-a,2),u=$e(a*-.309,2),f=$e(a*.118,2),c=$e(a*.809,2),v=$e(a*.382,2);return Cr(r,t,"M"+n+","+u+"H"+i+"L"+o+","+f+"L"+l+","+c+"L0,"+v+"L-"+l+","+c+"L-"+o+","+f+"L-"+i+","+u+"H-"+n+"L0,"+s+"Z")}},hexagram:{n:18,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*.66,2),n=$e(e*.38,2),i=$e(e*.76,2);return Cr(r,t,"M-"+i+",0l-"+n+",-"+a+"h"+i+"l"+n+",-"+a+"l"+n+","+a+"h"+i+"l-"+n+","+a+"l"+n+","+a+"h-"+i+"l-"+n+","+a+"l-"+n+",-"+a+"h-"+i+"Z")}},"star-triangle-up":{n:19,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*as*.8,2),n=$e(e*.8,2),i=$e(e*1.6,2),o=$e(e*4,2),l="A "+o+","+o+" 0 0 1 ";return Cr(r,t,"M-"+a+","+n+l+a+","+n+l+"0,-"+i+l+"-"+a+","+n+"Z")}},"star-triangle-down":{n:20,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*as*.8,2),n=$e(e*.8,2),i=$e(e*1.6,2),o=$e(e*4,2),l="A "+o+","+o+" 0 0 1 ";return Cr(r,t,"M"+a+",-"+n+l+"-"+a+",-"+n+l+"0,"+i+l+a+",-"+n+"Z")}},"star-square":{n:21,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*1.1,2),n=$e(e*2,2),i="A "+n+","+n+" 0 0 1 ";return Cr(r,t,"M-"+a+",-"+a+i+"-"+a+","+a+i+a+","+a+i+a+",-"+a+i+"-"+a+",-"+a+"Z")}},"star-diamond":{n:22,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*1.4,2),n=$e(e*1.9,2),i="A "+n+","+n+" 0 0 1 ";return Cr(r,t,"M-"+a+",0"+i+"0,"+a+i+a+",0"+i+"0,-"+a+i+"-"+a+",0Z")}},"diamond-tall":{n:23,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*.7,2),n=$e(e*1.4,2);return Cr(r,t,"M0,"+n+"L"+a+",0L0,-"+n+"L-"+a+",0Z")}},"diamond-wide":{n:24,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*1.4,2),n=$e(e*.7,2);return Cr(r,t,"M0,"+n+"L"+a+",0L0,-"+n+"L-"+a+",0Z")}},hourglass:{n:25,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e,2);return Cr(r,t,"M"+a+","+a+"H-"+a+"L"+a+",-"+a+"H-"+a+"Z")},noDot:!0},bowtie:{n:26,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e,2);return Cr(r,t,"M"+a+","+a+"V-"+a+"L-"+a+","+a+"V-"+a+"Z")},noDot:!0},"circle-cross":{n:27,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e,2);return Cr(r,t,"M0,"+a+"V-"+a+"M"+a+",0H-"+a+"M"+a+",0A"+a+","+a+" 0 1,1 0,-"+a+"A"+a+","+a+" 0 0,1 "+a+",0Z")},needLine:!0,noDot:!0},"circle-x":{n:28,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e,2),n=$e(e/nC,2);return Cr(r,t,"M"+n+","+n+"L-"+n+",-"+n+"M"+n+",-"+n+"L-"+n+","+n+"M"+a+",0A"+a+","+a+" 0 1,1 0,-"+a+"A"+a+","+a+" 0 0,1 "+a+",0Z")},needLine:!0,noDot:!0},"square-cross":{n:29,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e,2);return Cr(r,t,"M0,"+a+"V-"+a+"M"+a+",0H-"+a+"M"+a+","+a+"H-"+a+"V-"+a+"H"+a+"Z")},needLine:!0,noDot:!0},"square-x":{n:30,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e,2);return Cr(r,t,"M"+a+","+a+"L-"+a+",-"+a+"M"+a+",-"+a+"L-"+a+","+a+"M"+a+","+a+"H-"+a+"V-"+a+"H"+a+"Z")},needLine:!0,noDot:!0},"diamond-cross":{n:31,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*1.3,2);return Cr(r,t,"M"+a+",0L0,"+a+"L-"+a+",0L0,-"+a+"ZM0,-"+a+"V"+a+"M-"+a+",0H"+a)},needLine:!0,noDot:!0},"diamond-x":{n:32,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*1.3,2),n=$e(e*.65,2);return Cr(r,t,"M"+a+",0L0,"+a+"L-"+a+",0L0,-"+a+"ZM-"+n+",-"+n+"L"+n+","+n+"M-"+n+","+n+"L"+n+",-"+n)},needLine:!0,noDot:!0},"cross-thin":{n:33,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*1.4,2);return Cr(r,t,"M0,"+a+"V-"+a+"M"+a+",0H-"+a)},needLine:!0,noDot:!0,noFill:!0},"x-thin":{n:34,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e,2);return Cr(r,t,"M"+a+","+a+"L-"+a+",-"+a+"M"+a+",-"+a+"L-"+a+","+a)},needLine:!0,noDot:!0,noFill:!0},asterisk:{n:35,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*1.2,2),n=$e(e*.85,2);return Cr(r,t,"M0,"+a+"V-"+a+"M"+a+",0H-"+a+"M"+n+","+n+"L-"+n+",-"+n+"M"+n+",-"+n+"L-"+n+","+n)},needLine:!0,noDot:!0,noFill:!0},hash:{n:36,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e/2,2),n=$e(e,2);return Cr(r,t,"M"+a+","+n+"V-"+n+"M"+(a-n)+",-"+n+"V"+n+"M"+n+","+a+"H-"+n+"M-"+n+","+(a-n)+"H"+n)},needLine:!0,noFill:!0},"y-up":{n:37,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*1.2,2),n=$e(e*1.6,2),i=$e(e*.8,2);return Cr(r,t,"M-"+a+","+i+"L0,0M"+a+","+i+"L0,0M0,-"+n+"L0,0")},needLine:!0,noDot:!0,noFill:!0},"y-down":{n:38,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*1.2,2),n=$e(e*1.6,2),i=$e(e*.8,2);return Cr(r,t,"M-"+a+",-"+i+"L0,0M"+a+",-"+i+"L0,0M0,"+n+"L0,0")},needLine:!0,noDot:!0,noFill:!0},"y-left":{n:39,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*1.2,2),n=$e(e*1.6,2),i=$e(e*.8,2);return Cr(r,t,"M"+i+","+a+"L0,0M"+i+",-"+a+"L0,0M-"+n+",0L0,0")},needLine:!0,noDot:!0,noFill:!0},"y-right":{n:40,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*1.2,2),n=$e(e*1.6,2),i=$e(e*.8,2);return Cr(r,t,"M-"+i+","+a+"L0,0M-"+i+",-"+a+"L0,0M"+n+",0L0,0")},needLine:!0,noDot:!0,noFill:!0},"line-ew":{n:41,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*1.4,2);return Cr(r,t,"M"+a+",0H-"+a)},needLine:!0,noDot:!0,noFill:!0},"line-ns":{n:42,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*1.4,2);return Cr(r,t,"M0,"+a+"V-"+a)},needLine:!0,noDot:!0,noFill:!0},"line-ne":{n:43,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e,2);return Cr(r,t,"M"+a+",-"+a+"L-"+a+","+a)},needLine:!0,noDot:!0,noFill:!0},"line-nw":{n:44,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e,2);return Cr(r,t,"M"+a+","+a+"L-"+a+",-"+a)},needLine:!0,noDot:!0,noFill:!0},"arrow-up":{n:45,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e,2),n=$e(e*2,2);return Cr(r,t,"M0,0L-"+a+","+n+"H"+a+"Z")},backoff:1,noDot:!0},"arrow-down":{n:46,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e,2),n=$e(e*2,2);return Cr(r,t,"M0,0L-"+a+",-"+n+"H"+a+"Z")},noDot:!0},"arrow-left":{n:47,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*2,2),n=$e(e,2);return Cr(r,t,"M0,0L"+a+",-"+n+"V"+n+"Z")},noDot:!0},"arrow-right":{n:48,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*2,2),n=$e(e,2);return Cr(r,t,"M0,0L-"+a+",-"+n+"V"+n+"Z")},noDot:!0},"arrow-bar-up":{n:49,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e,2),n=$e(e*2,2);return Cr(r,t,"M-"+a+",0H"+a+"M0,0L-"+a+","+n+"H"+a+"Z")},backoff:1,needLine:!0,noDot:!0},"arrow-bar-down":{n:50,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e,2),n=$e(e*2,2);return Cr(r,t,"M-"+a+",0H"+a+"M0,0L-"+a+",-"+n+"H"+a+"Z")},needLine:!0,noDot:!0},"arrow-bar-left":{n:51,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*2,2),n=$e(e,2);return Cr(r,t,"M0,-"+n+"V"+n+"M0,0L"+a+",-"+n+"V"+n+"Z")},needLine:!0,noDot:!0},"arrow-bar-right":{n:52,f:function(e,r,t){if(Lr(r))return qr;var a=$e(e*2,2),n=$e(e,2);return Cr(r,t,"M0,-"+n+"V"+n+"M0,0L-"+a+",-"+n+"V"+n+"Z")},needLine:!0,noDot:!0},arrow:{n:53,f:function(e,r,t){if(Lr(r))return qr;var a=Ax/2.5,n=2*e*Mx(a),i=2*e*kx(a);return Cr(r,t,"M0,0L"+-n+","+i+"L"+n+","+i+"Z")},backoff:.9,noDot:!0},"arrow-wide":{n:54,f:function(e,r,t){if(Lr(r))return qr;var a=Ax/4,n=2*e*Mx(a),i=2*e*kx(a);return Cr(r,t,"M0,0L"+-n+","+i+"A "+2*e+","+2*e+" 0 0 1 "+n+","+i+"Z")},backoff:.4,noDot:!0}};function Lr(e){return e===null}var iC,oC,lC,sC;function Cr(e,r,t){if((!e||e%360===0)&&!r)return t;if(lC===e&&sC===r&&iC===t)return oC;lC=e,sC=r,iC=t;function a(m,x){var T=Mx(m),_=kx(m),b=x[0],w=x[1]+(r||0);return[b*T-w*_,b*_+w*T]}for(var n=e/180*Ax,i=0,o=0,l=Ece(t),s="",u=0;u {"use strict";var Ma=Sr(),yt=Ee(),Dce=yt.numberFormat,mu=Rr(),Dx=qn(),T1=br(),Ua=Tr(),Rce=Co(),bh=yt.strTranslate,A1=Aa(),Pce=dl(),Fce=Ha(),Nce=Fce.LINE_SPACING,xC=Dp().DESELECTDIM,Ice=Pn(),zce=eC(),Oce=Eo().appendArrayPointValue,tr=CC.exports={};tr.font=function(e,r){var t=r.variant,a=r.style,n=r.weight,i=r.color,o=r.size,l=r.family,s=r.shadow,u=r.lineposition,f=r.textcase;l&&e.style("font-family",l),o+1&&e.style("font-size",o+"px"),i&&e.call(Ua.fill,i),n&&e.style("font-weight",n),a&&e.style("font-style",a),t&&e.style("font-variant",t),f&&e.style("text-transform",Sx(Hce(f))),s&&e.style("text-shadow",s==="auto"?A1.makeTextShadow(Ua.contrast(i)):Sx(s)),u&&e.style("text-decoration-line",Sx(Uce(u)))};function Sx(e){return e==="none"?void 0:e}var Bce={normal:"none",lower:"lowercase",upper:"uppercase","word caps":"capitalize"};function Hce(e){return Bce[e]}function Uce(e){return e.replace("under","underline").replace("over","overline").replace("through","line-through").split("+").join(" ")}tr.setPosition=function(e,r,t){e.attr("x",r).attr("y",t)};tr.setSize=function(e,r,t){e.attr("width",r).attr("height",t)};tr.setRect=function(e,r,t,a,n){e.call(tr.setPosition,r,t).call(tr.setSize,a,n)};tr.translatePoint=function(e,r,t,a){var n=t.c2p(e.x),i=a.c2p(e.y);if(mu(n)&&mu(i)&&r.node())r.node().nodeName==="text"?r.attr("x",n).attr("y",i):r.attr("transform",bh(n,i));else return!1;return!0};tr.translatePoints=function(e,r,t){e.each(function(a){var n=Ma.select(this);tr.translatePoint(a,n,r,t)})};tr.hideOutsideRangePoint=function(e,r,t,a,n,i){r.attr("display",t.isPtWithinRange(e,n)&&a.isPtWithinRange(e,i)?null:"none")};tr.hideOutsideRangePoints=function(e,r){if(r._hasClipOnAxisFalse){var t=r.xaxis,a=r.yaxis;e.each(function(n){var i=n[0].trace,o=i.xcalendar,l=i.ycalendar,s=T1.traceIs(i,"bar-like")?".bartext":".point,.textpoint";e.selectAll(s).each(function(u){tr.hideOutsideRangePoint(u,Ma.select(this),t,a,o,l)})})}};tr.crispRound=function(e,r,t){return!r||!mu(r)?t||0:e._context.staticPlot?r:r<1?1:Math.round(r)};tr.singleLineStyle=function(e,r,t,a,n){r.style("fill","none");var i=(((e||[])[0]||{}).trace||{}).line||{},o=t||i.width||0,l=n||i.dash||"";Ua.stroke(r,a||i.color),tr.dashLine(r,l,o)};tr.lineGroupStyle=function(e,r,t,a){e.style("fill","none").each(function(n){var i=(((n||[])[0]||{}).trace||{}).line||{},o=r||i.width||0,l=a||i.dash||"";Ma.select(this).call(Ua.stroke,t||i.color).call(tr.dashLine,l,o)})};tr.dashLine=function(e,r,t){t=+t||0,r=tr.dashStyle(r,t),e.style({"stroke-dasharray":r,"stroke-width":t+"px"})};tr.dashStyle=function(e,r){r=+r||1;var t=Math.max(r,3);return e==="solid"?e="":e==="dot"?e=t+"px,"+t+"px":e==="dash"?e=3*t+"px,"+3*t+"px":e==="longdash"?e=5*t+"px,"+5*t+"px":e==="dashdot"?e=3*t+"px,"+t+"px,"+t+"px,"+t+"px":e==="longdashdot"&&(e=5*t+"px,"+2*t+"px,"+t+"px,"+2*t+"px"),e};function _C(e,r,t,a){var n=r.fillpattern,i=r.fillgradient,o=tr.getPatternAttr,l=n&&(o(n.shape,0,"")||o(n.path,0,""));if(l){var s=o(n.bgcolor,0,null),u=o(n.fgcolor,0,null),f=n.fgopacity,c=o(n.size,0,8),v=o(n.solidity,0,.3),d=r.uid;tr.pattern(e,"point",t,d,l,c,v,void 0,n.fillmode,s,u,f)}else if(i&&i.type!=="none"){var p=i.type,y="scatterfill-"+r.uid;if(a&&(y="legendfill-"+r.uid),!a&&(i.start!==void 0||i.stop!==void 0)){var m,x;p==="horizontal"?(m={x:i.start,y:0},x={x:i.stop,y:0}):p==="vertical"&&(m={x:0,y:i.start},x={x:0,y:i.stop}),m.x=r._xA.c2p(m.x===void 0?r._extremes.x.min[0].val:m.x,!0),m.y=r._yA.c2p(m.y===void 0?r._extremes.y.min[0].val:m.y,!0),x.x=r._xA.c2p(x.x===void 0?r._extremes.x.max[0].val:x.x,!0),x.y=r._yA.c2p(x.y===void 0?r._extremes.y.max[0].val:x.y,!0),e.call(AC,t,y,"linear",i.colorscale,"fill",m,x,!0,!1)}else p==="horizontal"&&(p=p+"reversed"),e.call(tr.gradient,t,y,p,i.colorscale,"fill")}else r.fillcolor&&e.call(Ua.fill,r.fillcolor)}tr.singleFillStyle=function(e,r){var t=Ma.select(e.node()),a=t.data(),n=((a[0]||[])[0]||{}).trace||{};_C(e,n,r,!1)};tr.fillGroupStyle=function(e,r,t){e.style("stroke-width",0).each(function(a){var n=Ma.select(this);a[0].trace&&_C(n,a[0].trace,r,t)})};var cC=fC();tr.symbolNames=[];tr.symbolFuncs=[];tr.symbolBackOffs=[];tr.symbolNeedLines={};tr.symbolNoDot={};tr.symbolNoFill={};tr.symbolList=[];Object.keys(cC).forEach(function(e){var r=cC[e],t=r.n;tr.symbolList.push(t,String(t),e,t+100,String(t+100),e+"-open"),tr.symbolNames[t]=e,tr.symbolFuncs[t]=r.f,tr.symbolBackOffs[t]=r.backoff||0,r.needLine&&(tr.symbolNeedLines[t]=!0),r.noDot?tr.symbolNoDot[t]=!0:tr.symbolList.push(t+200,String(t+200),e+"-dot",t+300,String(t+300),e+"-open-dot"),r.noFill&&(tr.symbolNoFill[t]=!0)});var Gce=tr.symbolNames.length,Vce="M0,0.5L0.5,0L0,-0.5L-0.5,0Z";tr.symbolNumber=function(e){if(mu(e))e=+e;else if(typeof e=="string"){var r=0;e.indexOf("-open")>0&&(r=100,e=e.replace("-open","")),e.indexOf("-dot")>0&&(r+=200,e=e.replace("-dot","")),e=tr.symbolNames.indexOf(e),e>=0&&(e+=r)}return e%100>=Gce||e>=400?0:Math.floor(Math.max(e,0))};function wC(e,r,t,a){var n=e%100;return tr.symbolFuncs[n](r,t,a)+(e>=200?Vce:"")}var vC=Dce("~f"),TC={radial:{type:"radial"},radialreversed:{type:"radial",reversed:!0},horizontal:{type:"linear",start:{x:1,y:0},stop:{x:0,y:0}},horizontalreversed:{type:"linear",start:{x:1,y:0},stop:{x:0,y:0},reversed:!0},vertical:{type:"linear",start:{x:0,y:1},stop:{x:0,y:0}},verticalreversed:{type:"linear",start:{x:0,y:1},stop:{x:0,y:0},reversed:!0}};tr.gradient=function(e,r,t,a,n,i){var o=TC[a];return AC(e,r,t,o.type,n,i,o.start,o.stop,!1,o.reversed)};function AC(e,r,t,a,n,i,o,l,s,u){var f=n.length,c;a==="linear"?c={node:"linearGradient",attrs:{x1:o.x,y1:o.y,x2:l.x,y2:l.y,gradientUnits:s?"userSpaceOnUse":"objectBoundingBox"},reversed:u}:a==="radial"&&(c={node:"radialGradient",reversed:u});for(var v=new Array(f),d=0;d =0&&e.i===void 0&&(e.i=i.i),r.style("opacity",a.selectedOpacityFn?a.selectedOpacityFn(e):e.mo===void 0?o.opacity:e.mo),a.ms2mrc){var s;e.ms==="various"||o.size==="various"?s=3:s=a.ms2mrc(e.ms),e.mrc=s,a.selectedSizeFn&&(s=e.mrc=a.selectedSizeFn(e));var u=tr.symbolNumber(e.mx||o.symbol)||0;e.om=u%200>=100;var f=Fx(e,t),c=Px(e,t);r.attr("d",wC(u,s,f,c))}var v=!1,d,p,y;if(e.so)y=l.outlierwidth,p=l.outliercolor,d=o.outliercolor;else{var m=(l||{}).width;y=(e.mlw+1||m+1||(e.trace?(e.trace.marker.line||{}).width:0)+1)-1||0,"mlc"in e?p=e.mlcc=a.lineScale(e.mlc):yt.isArrayOrTypedArray(l.color)?p=Ua.defaultLine:p=l.color,yt.isArrayOrTypedArray(o.color)&&(d=Ua.defaultLine,v=!0),"mc"in e?d=e.mcc=a.markerScale(e.mc):d=o.color||o.colors||"rgba(0,0,0,0)",a.selectedColorFn&&(d=a.selectedColorFn(e))}let x=e.mld||(l||{}).dash;if(x&&tr.dashLine(r,x,y),e.om)r.call(Ua.stroke,d).style({"stroke-width":(y||1)+"px",fill:"none"});else{r.style("stroke-width",(e.isBlank?0:y)+"px");var T=o.gradient,_=e.mgt;_?v=!0:_=T&&T.type,yt.isArrayOrTypedArray(_)&&(_=_[0],TC[_]||(_=0));var b=o.pattern,w=tr.getPatternAttr,k=b&&(w(b.shape,e.i,"")||w(b.path,e.i,""));if(_&&_!=="none"){var M=e.mgc;M?v=!0:M=T.color;var q=t.uid;v&&(q+="-"+e.i),tr.gradient(r,n,q,_,[[0,M],[1,d]],"fill")}else if(k){var E=!1,D=b.fgcolor;!D&&i&&i.color&&(D=i.color,E=!0);var P=w(D,e.i,i&&i.color||null),R=w(b.bgcolor,e.i,null),z=b.fgopacity,I=w(b.size,e.i,8),B=w(b.solidity,e.i,.3);E=E||e.mcc||yt.isArrayOrTypedArray(b.shape)||yt.isArrayOrTypedArray(b.path)||yt.isArrayOrTypedArray(b.bgcolor)||yt.isArrayOrTypedArray(b.fgcolor)||yt.isArrayOrTypedArray(b.size)||yt.isArrayOrTypedArray(b.solidity);var G=t.uid;E&&(G+="-"+e.i),tr.pattern(r,"point",n,G,k,I,B,e.mcc,b.fillmode,R,P,z)}else yt.isArrayOrTypedArray(d)?Ua.fill(r,d[e.i]):Ua.fill(r,d);y&&Ua.stroke(r,p)}};tr.makePointStyleFns=function(e){var r={},t=e.marker;return r.markerScale=tr.tryColorscale(t,""),r.lineScale=tr.tryColorscale(t,"line"),T1.traceIs(e,"symbols")&&(r.ms2mrc=Ice.isBubble(e)?zce(e):function(){return(t.size||6)/2}),e.selectedpoints&&yt.extendFlat(r,tr.makeSelectedPointStyleFns(e)),r};tr.makeSelectedPointStyleFns=function(e){var r={},t=e.selected||{},a=e.unselected||{},n=e.marker||{},i=t.marker||{},o=a.marker||{},l=n.opacity,s=i.opacity,u=o.opacity,f=s!==void 0,c=u!==void 0;(yt.isArrayOrTypedArray(l)||f||c)&&(r.selectedOpacityFn=function(b){var w=b.mo===void 0?n.opacity:b.mo;return b.selected?f?s:w:c?u:xC*w});var v=n.color,d=i.color,p=o.color;(d||p)&&(r.selectedColorFn=function(b){var w=b.mcc||v;return b.selected?d||w:p||w});var y=n.size,m=i.size,x=o.size,T=m!==void 0,_=x!==void 0;return T1.traceIs(e,"symbols")&&(T||_)&&(r.selectedSizeFn=function(b){var w=b.mrc||y/2;return b.selected?T?m/2:w:_?x/2:w}),r};tr.makeSelectedTextStyleFns=function(e){var r={},t=e.selected||{},a=e.unselected||{},n=e.textfont||{},i=t.textfont||{},o=a.textfont||{},l=n.color,s=i.color,u=o.color;return r.selectedTextColorFn=function(f){var c=f.tc||l;return f.selected?s||c:u||(s?c:Ua.addOpacity(c,xC))},r};tr.selectedPointStyle=function(e,r){if(!(!e.size()||!r.selectedpoints)){var t=tr.makeSelectedPointStyleFns(r),a=r.marker||{},n=[];t.selectedOpacityFn&&n.push(function(i,o){i.style("opacity",t.selectedOpacityFn(o))}),t.selectedColorFn&&n.push(function(i,o){Ua.fill(i,t.selectedColorFn(o))}),t.selectedSizeFn&&n.push(function(i,o){var l=o.mx||a.symbol||0,s=t.selectedSizeFn(o);i.attr("d",wC(tr.symbolNumber(l),s,Fx(o,r),Px(o,r))),o.mrc2=s}),n.length&&e.each(function(i){for(var o=Ma.select(this),l=0;l 0?t:0}tr.textPointStyle=function(e,r,t){if(e.size()){var a;if(r.selectedpoints){var n=tr.makeSelectedTextStyleFns(r);a=n.selectedTextColorFn}var i=r.texttemplate,o=t._fullLayout;e.each(function(l){var s=Ma.select(this),u=i?yt.extractOption(l,r,"txt","texttemplate"):yt.extractOption(l,r,"tx","text");if(!u&&u!==0){s.remove();return}if(i){var f=r._module.formatLabels,c=f?f(l,r,o):{},v={};Oce(v,r,l.i),u=yt.texttemplateString({data:[v,l,r._meta],fallback:r.texttemplatefallback,labels:c,locale:o._d3locale,template:u})}var d=l.tp||r.textposition,p=kC(l,r),y=a?a(l):l.tc||r.textfont.color;s.call(tr.font,{family:l.tf||r.textfont.family,weight:l.tw||r.textfont.weight,style:l.ty||r.textfont.style,variant:l.tv||r.textfont.variant,textcase:l.tC||r.textfont.textcase,lineposition:l.tE||r.textfont.lineposition,shadow:l.tS||r.textfont.shadow,size:p,color:y}).text(u).call(A1.convertToTspans,t).call(MC,d,p,l.mrc)})}};tr.selectedTextStyle=function(e,r){if(!(!e.size()||!r.selectedpoints)){var t=tr.makeSelectedTextStyleFns(r);e.each(function(a){var n=Ma.select(this),i=t.selectedTextColorFn(a),o=a.tp||r.textposition,l=kC(a,r);Ua.fill(n,i);var s=T1.traceIs(r,"bar-like");MC(n,o,l,a.mrc2||a.mrc,s)})}};var hC=.5;tr.smoothopen=function(e,r){if(e.length<3)return"M"+e.join("L");var t="M"+e[0],a=[],n;for(n=1;n =s||b>=f&&b<=s)&&(w<=c&&w>=u||w>=c&&w<=u)&&(e=[b,w])}return e}tr.applyBackoff=LC;tr.makeTester=function(){var e=yt.ensureSingleById(Ma.select("body"),"svg","js-plotly-tester",function(t){t.attr(Pce.svgAttrs).style({position:"absolute",left:"-10000px",top:"-10000px",width:"9000px",height:"9000px","z-index":"1"})}),r=yt.ensureSingle(e,"path","js-reference-point",function(t){t.attr("d","M0,0H1V1H0Z").style({"stroke-width":0,fill:"black"})});tr.tester=e,tr.testref=r};tr.savedBBoxes={};var Lx=0,jce=1e4;tr.bBox=function(e,r,t){t||(t=dC(e));var a;if(t){if(a=tr.savedBBoxes[t],a)return yt.extendFlat({},a)}else if(e.childNodes.length===1){var n=e.childNodes[0];if(t=dC(n),t){var i=+n.getAttribute("x")||0,o=+n.getAttribute("y")||0,l=n.getAttribute("transform");if(!l){var s=tr.bBox(n,!1,t);return i&&(s.left+=i,s.right+=i),o&&(s.top+=o,s.bottom+=o),s}if(t+="~"+i+"~"+o+"~"+l,a=tr.savedBBoxes[t],a)return yt.extendFlat({},a)}}var u,f;r?u=e:(f=tr.tester.node(),u=e.cloneNode(!0),f.appendChild(u)),Ma.select(u).attr("transform",null).call(A1.positionText,0,0);var c=u.getBoundingClientRect(),v=tr.testref.node().getBoundingClientRect();r||f.removeChild(u);var d={height:c.height,width:c.width,left:c.left-v.left,top:c.top-v.top,right:c.right-v.left,bottom:c.bottom-v.top};return Lx>=jce&&(tr.savedBBoxes={},Lx=0),t&&(tr.savedBBoxes[t]=d),Lx++,yt.extendFlat({},d)};function dC(e){var r=e.getAttribute("data-unformatted");if(r!==null)return r+e.getAttribute("data-math")+e.getAttribute("text-anchor")+e.getAttribute("style")}tr.setClipUrl=function(e,r,t){e.attr("clip-path",Rx(r,t))};function Rx(e,r){if(!e)return null;var t=r._context,a=t._exportedPlot?"":t._baseUrl||"";return a?"url('"+a+"#"+e+"')":"url(#"+e+")"}tr.getTranslate=function(e){var r=/.*\btranslate\((-?\d*\.?\d*)[^-\d]*(-?\d*\.?\d*)[^\d].*/,t=e.attr?"attr":"getAttribute",a=e[t]("transform")||"",n=a.replace(r,function(i,o,l){return[o,l].join(" ")}).split(" ");return{x:+n[0]||0,y:+n[1]||0}};tr.setTranslate=function(e,r,t){var a=/(\btranslate\(.*?\);?)/,n=e.attr?"attr":"getAttribute",i=e.attr?"attr":"setAttribute",o=e[n]("transform")||"";return r=r||0,t=t||0,o=o.replace(a,"").trim(),o+=bh(r,t),o=o.trim(),e[i]("transform",o),o};tr.getScale=function(e){var r=/.*\bscale\((\d*\.?\d*)[^\d]*(\d*\.?\d*)[^\d].*/,t=e.attr?"attr":"getAttribute",a=e[t]("transform")||"",n=a.replace(r,function(i,o,l){return[o,l].join(" ")}).split(" ");return{x:+n[0]||1,y:+n[1]||1}};tr.setScale=function(e,r,t){var a=/(\bscale\(.*?\);?)/,n=e.attr?"attr":"getAttribute",i=e.attr?"attr":"setAttribute",o=e[n]("transform")||"";return r=r||1,t=t||1,o=o.replace(a,"").trim(),o+="scale("+r+","+t+")",o=o.trim(),e[i]("transform",o),o};var Zce=/\s*sc.*/;tr.setPointGroupScale=function(e,r,t){if(r=r||1,t=t||1,!!e){var a=r===1&&t===1?"":"scale("+r+","+t+")";e.each(function(){var n=(this.getAttribute("transform")||"").replace(Zce,"");n+=a,n=n.trim(),this.setAttribute("transform",n)})}};var Xce=/translate\([^)]*\)\s*$/;tr.setTextPointsScale=function(e,r,t){e&&e.each(function(){var a,n=Ma.select(this),i=n.select("text");if(i.node()){var o=parseFloat(i.attr("x")||0),l=parseFloat(i.attr("y")||0),s=(n.attr("transform")||"").match(Xce);r===1&&t===1?a=[]:a=[bh(o,l),"scale("+r+","+t+")",bh(-o,-l)],s&&a.push(s),n.attr("transform",a.join(""))}})};function Px(e,r){var t;return e&&(t=e.mf),t===void 0&&(t=r.marker&&r.marker.standoff||0),!r._geo&&!r._xA?-t:t}tr.getMarkerStandoff=Px;var gh=Math.atan2,du=Math.cos,ac=Math.sin;function pC(e,r){var t=r[0],a=r[1];return[t*du(e)-a*ac(e),t*ac(e)+a*du(e)]}var yC,mC,gC,bC,Cx,Ex;function Fx(e,r){var t=e.ma;t===void 0&&(t=r.marker.angle,(!t||yt.isArrayOrTypedArray(t))&&(t=0));var a,n,i=r.marker.angleref;if(i==="previous"||i==="north"){if(r._geo){var o=r._geo.project(e.lonlat);a=o[0],n=o[1]}else{var l=r._xA,s=r._yA;if(l&&s)a=l.c2p(e.x),n=s.c2p(e.y);else return 90}if(r._geo){var u=e.lonlat[0],f=e.lonlat[1],c=r._geo.project([u,f+1e-5]),v=r._geo.project([u+1e-5,f]),d=gh(v[1]-n,v[0]-a),p=gh(c[1]-n,c[0]-a),y;if(i==="north")y=t/180*Math.PI;else if(i==="previous"){var m=u/180*Math.PI,x=f/180*Math.PI,T=yC/180*Math.PI,_=mC/180*Math.PI,b=T-m,w=du(_)*ac(b),k=ac(_)*du(x)-du(_)*ac(x)*du(b);y=-gh(w,k)-Math.PI,yC=u,mC=f}var M=pC(d,[du(y),0]),q=pC(p,[ac(y),0]);t=gh(M[1]+q[1],M[0]+q[0])/Math.PI*180,i==="previous"&&!(Ex===r.uid&&e.i===Cx+1)&&(t=null)}if(i==="previous"&&!r._geo)if(Ex===r.uid&&e.i===Cx+1&&mu(a)&&mu(n)){var E=a-gC,D=n-bC,P=r.line&&r.line.shape||"",R=P.slice(P.length-1);R==="h"&&(D=0),R==="v"&&(E=0),t+=gh(D,E)/Math.PI*180+90}else t=null}return gC=a,bC=n,Cx=e.i,Ex=r.uid,t}tr.getMarkerAngle=Fx});var oc=N((hRe,PC)=>{"use strict";var nc=Sr(),Jce=Rr(),$ce=aa(),Nx=br(),gu=Ee(),EC=gu.strTranslate,M1=Yr(),k1=Tr(),ic=Aa(),DC=Dp(),Kce=Ha().OPPOSITE_SIDE,RC=/ [XY][0-9]* /,Ix=1.6,zx=1.6;function Qce(e,r,t){var a=e._fullLayout,n=t.propContainer,i=t.propName,o=t.placeholder,l=t.traceIndex,s=t.avoid||{},u=t.attributes,f=t.transform,c=t.containerGroup,v=1,d=n.title,p=(d&&d.text?d.text:"").trim(),y=!1,m=d&&d.font?d.font:{},x=m.family,T=m.size,_=m.color,b=m.weight,w=m.style,k=m.variant,M=m.textcase,q=m.lineposition,E=m.shadow,D=t.subtitlePropName,P=!!D,R=t.subtitlePlaceholder,z=(n.title||{}).subtitle||{text:"",font:{}},I=(z.text||"").trim(),B=!1,G=1,Y=z.font,V=Y.family,H=Y.size,X=Y.color,j=Y.weight,ee=Y.style,fe=Y.variant,ie=Y.textcase,ue=Y.lineposition,K=Y.shadow,we;i==="title.text"?we="titleText":i.indexOf("axis")!==-1?we="axisTitleText":i.indexOf("colorbar")!==-1&&(we="colorbarTitleText");var se=e._context.edits[we];function ce(Be,Ge){return Be===void 0||Ge===void 0?!1:Be.replace(RC," % ")===Ge.replace(RC," % ")}p===""?v=0:ce(p,o)&&(se||(p=""),v=.2,y=!0),P&&(I===""?G=0:ce(I,R)&&(se||(I=""),G=.2,B=!0)),t._meta?p=gu.templateString(p,t._meta):a._meta&&(p=gu.templateString(p,a._meta));var he=p||I||se,ye;c||(c=gu.ensureSingle(a._infolayer,"g","g-"+r),ye=a._hColorbarMoveTitle);var W=c.selectAll("text."+r).data(he?[0]:[]);W.enter().append("text"),W.text(p).attr("class",r),W.exit().remove();var Q=null,Z=r+"-subtitle",le=I||se;if(P&&(Q=c.selectAll("text."+Z).data(le?[0]:[]),Q.enter().append("text"),Q.text(I).attr("class",Z),Q.exit().remove()),!he)return c;function ve(Be,Ge){gu.syncOrAsync([me,Ce],{title:Be,subtitle:Ge})}function me(Be){var Ge=Be.title,De=Be.subtitle,Oe;!f&&ye&&(f={}),f?(Oe="",f.rotate&&(Oe+="rotate("+[f.rotate,u.x,u.y]+")"),(f.offset||ye)&&(Oe+=EC(0,(f.offset||0)-(ye||0)))):Oe=null,Ge.attr("transform",Oe);function Ue(Te){if(Te){var qe=nc.select(Te.node().parentNode).select("."+Z);if(!qe.empty()){var He=Te.node().getBBox();if(He.height){var Je=He.y+He.height+Ix*H;qe.attr("y",Je)}}}}if(Ge.style("opacity",v*k1.opacity(_)).call(M1.font,{color:k1.rgb(_),size:nc.round(T,2),family:x,weight:b,style:w,variant:k,textcase:M,shadow:E,lineposition:q}).attr(u).call(ic.convertToTspans,e,Ue),De&&!De.empty()){var oe=c.select("."+r+"-math-group"),Ae=Ge.node().getBBox(),Xe=oe.node()?oe.node().getBBox():void 0,dr=Xe?Xe.y+Xe.height+Ix*H:Ae.y+Ae.height+zx*H,Ne=gu.extendFlat({},u,{y:dr});De.attr("transform",Oe),De.style("opacity",G*k1.opacity(X)).call(M1.font,{color:k1.rgb(X),size:nc.round(H,2),family:V,weight:j,style:ee,variant:fe,textcase:ie,shadow:K,lineposition:ue}).attr(Ne).call(ic.convertToTspans,e)}return $ce.previousPromises(e)}function Ce(Be){var Ge=Be.title,De=nc.select(Ge.node().parentNode);if(s&&s.selection&&s.side&&p){De.attr("transform",null);var Oe=Kce[s.side],Ue=s.side==="left"||s.side==="top"?-1:1,oe=Jce(s.pad)?s.pad:2,Ae=M1.bBox(De.node()),Xe={t:0,b:0,l:0,r:0},dr=e._fullLayout._reservedMargin;for(var Ne in dr)for(var Te in dr[Ne]){var qe=dr[Ne][Te];Xe[Te]=Math.max(Xe[Te],qe)}var He={left:Xe.l,top:Xe.t,right:a.width-Xe.r,bottom:a.height-Xe.b},Je=s.maxShift||Ue*(He[s.side]-Ae[s.side]),We=0;if(Je<0)We=Je;else{var Ze=s.offsetLeft||0,lr=s.offsetTop||0;Ae.left-=Ze,Ae.right-=Ze,Ae.top-=lr,Ae.bottom-=lr,s.selection.each(function(){var er=M1.bBox(this);gu.bBoxIntersect(Ae,er,oe)&&(We=Math.max(We,Ue*(er[s.side]-Ae[Oe])+oe))}),We=Math.min(Je,We),n._titleScoot=Math.abs(We)}if(We>0||Je<0){var rr={left:[-We,0],right:[We,0],top:[0,-We],bottom:[0,We]}[s.side];De.attr("transform",EC(rr[0],rr[1]))}}}W.call(ve,Q);function Pe(Be,Ge){Be.text(Ge).on("mouseover.opacity",function(){nc.select(this).transition().duration(DC.SHOW_PLACEHOLDER).style("opacity",1)}).on("mouseout.opacity",function(){nc.select(this).transition().duration(DC.HIDE_PLACEHOLDER).style("opacity",0)})}if(se&&(p?W.on(".opacity",null):(Pe(W,o),y=!0),W.call(ic.makeEditable,{gd:e}).on("edit",function(Be){l!==void 0?Nx.call("_guiRestyle",e,i,Be,l):Nx.call("_guiRelayout",e,i,Be)}).on("cancel",function(){this.text(this.attr("data-unformatted")).call(ve)}).on("input",function(Be){this.text(Be||" ").call(ic.positionText,u.x,u.y)}),P)){if(P&&!p){var Le=W.node().getBBox(),ze=Le.y+Le.height+zx*H;Q.attr("y",ze)}I?Q.on(".opacity",null):(Pe(Q,R),B=!0),Q.call(ic.makeEditable,{gd:e}).on("edit",function(Be){Nx.call("_guiRelayout",e,"title.subtitle.text",Be)}).on("cancel",function(){this.text(this.attr("data-unformatted")).call(ve)}).on("input",function(Be){this.text(Be||" ").call(ic.positionText,Q.attr("x"),Q.attr("y"))})}return W.classed("js-placeholder",y),Q&&!Q.empty()&&Q.classed("js-placeholder",B),c}PC.exports={draw:Qce,SUBTITLE_PADDING_EM:zx,SUBTITLE_PADDING_MATHJAX_EM:Ix}});var lc=N((dRe,OC)=>{"use strict";var eve=Sr(),rve=Ef().utcFormat,Tt=Ee(),tve=Tt.numberFormat,Do=Rr(),ns=Tt.cleanNumber,ave=Tt.ms2DateTime,FC=Tt.dateTime2ms,Ro=Tt.ensureNumber,NC=Tt.isArrayOrTypedArray,is=Ft(),S1=is.FP_SAFE,oo=is.BADNUM,nve=is.LOG_CLIP,ive=is.ONEWEEK,q1=is.ONEDAY,L1=is.ONEHOUR,IC=is.ONEMIN,zC=is.ONESEC,C1=fa(),R1=xa(),E1=R1.HOUR_PATTERN,D1=R1.WEEKDAY_PATTERN;function xh(e){return Math.pow(10,e)}function Ox(e){return e!=null}OC.exports=function(r,t){t=t||{};var a=r._id||"x",n=a.charAt(0);function i(b,w){if(b>0)return Math.log(b)/Math.LN10;if(b<=0&&w&&r.range&&r.range.length===2){var k=r.range[0],M=r.range[1];return .5*(k+M-2*nve*Math.abs(k-M))}else return oo}function o(b,w,k,M){if((M||{}).msUTC&&Do(b))return+b;var q=FC(b,k||r.calendar);if(q===oo)if(Do(b)){b=+b;var E=Math.floor(Tt.mod(b+.05,1)*10),D=Math.round(b-E/10);q=FC(new Date(D))+E/10}else return oo;return q}function l(b,w,k){return ave(b,w,k||r.calendar)}function s(b){return r._categories[Math.round(b)]}function u(b){if(Ox(b)){if(r._categoriesMap===void 0&&(r._categoriesMap={}),r._categoriesMap[b]!==void 0)return r._categoriesMap[b];r._categories.push(typeof b=="number"?String(b):b);var w=r._categories.length-1;return r._categoriesMap[b]=w,w}return oo}function f(b,w){for(var k=new Array(w),M=0;M r.range[1]&&(k=!k);for(var M=k?-1:1,q=M*b,E=0,D=0;D R)E=D+1;else{E=q<(P+R)/2?D:D+1;break}}var z=r._B[E]||0;return isFinite(z)?p(b,r._m2,z):0},x=function(b){var w=r._rangebreaks.length;if(!w)return y(b,r._m,r._b);for(var k=0,M=0;M r._rangebreaks[M].pmax&&(k=M+1);return y(b,r._m2,r._B[k])}}r.c2l=r.type==="log"?i:Ro,r.l2c=r.type==="log"?xh:Ro,r.l2p=m,r.p2l=x,r.c2p=r.type==="log"?function(b,w){return m(i(b,w))}:m,r.p2c=r.type==="log"?function(b){return xh(x(b))}:x,["linear","-"].indexOf(r.type)!==-1?(r.d2r=r.r2d=r.d2c=r.r2c=r.d2l=r.r2l=ns,r.c2d=r.c2r=r.l2d=r.l2r=Ro,r.d2p=r.r2p=function(b){return r.l2p(ns(b))},r.p2d=r.p2r=x,r.cleanPos=Ro):r.type==="log"?(r.d2r=r.d2l=function(b,w){return i(ns(b),w)},r.r2d=r.r2c=function(b){return xh(ns(b))},r.d2c=r.r2l=ns,r.c2d=r.l2r=Ro,r.c2r=i,r.l2d=xh,r.d2p=function(b,w){return r.l2p(r.d2r(b,w))},r.p2d=function(b){return xh(x(b))},r.r2p=function(b){return r.l2p(ns(b))},r.p2r=x,r.cleanPos=Ro):r.type==="date"?(r.d2r=r.r2d=Tt.identity,r.d2c=r.r2c=r.d2l=r.r2l=o,r.c2d=r.c2r=r.l2d=r.l2r=l,r.d2p=r.r2p=function(b,w,k){return r.l2p(o(b,0,k))},r.p2d=r.p2r=function(b,w,k){return l(x(b),w,k)},r.cleanPos=function(b){return Tt.cleanDate(b,oo,r.calendar)}):r.type==="category"?(r.d2c=r.d2l=u,r.r2d=r.c2d=r.l2d=s,r.d2r=r.d2l_noadd=v,r.r2c=function(b){var w=d(b);return w!==void 0?w:r.fraction2r(.5)},r.l2r=r.c2r=Ro,r.r2l=d,r.d2p=function(b){return r.l2p(r.r2c(b))},r.p2d=function(b){return s(x(b))},r.r2p=r.d2p,r.p2r=x,r.cleanPos=function(b){return typeof b=="string"&&b!==""?b:Ro(b)}):r.type==="multicategory"&&(r.r2d=r.c2d=r.l2d=s,r.d2r=r.d2l_noadd=v,r.r2c=function(b){var w=v(b);return w!==void 0?w:r.fraction2r(.5)},r.r2c_just_indices=c,r.l2r=r.c2r=Ro,r.r2l=v,r.d2p=function(b){return r.l2p(r.r2c(b))},r.p2d=function(b){return s(x(b))},r.r2p=r.d2p,r.p2r=x,r.cleanPos=function(b){return Array.isArray(b)||typeof b=="string"&&b!==""?b:Ro(b)},r.setupMultiCategory=function(b){var w=r._traceIndices,k,M,q=r._matchGroup;if(q&&r._categories.length===0){for(var E in q)if(E!==a){var D=t[C1.id2name(E)];w=w.concat(D._traceIndices)}}var P=[[0,{}],[0,{}]],R=[];for(k=0;k D[1]&&(M[E?0:1]=k),M[0]===M[1]){var P=r.l2r(w),R=r.l2r(k);if(w!==void 0){var z=P+1;k!==void 0&&(z=Math.min(z,R)),M[E?1:0]=z}if(k!==void 0){var I=R+1;w!==void 0&&(I=Math.max(I,P)),M[E?0:1]=I}}}},r.cleanRange=function(b,w){r._cleanRange(b,w),r.limitRange(b)},r._cleanRange=function(b,w){w||(w={}),b||(b="range");var k=Tt.nestedProperty(r,b).get(),M,q;if(r.type==="date"?q=Tt.dfltRange(r.calendar):n==="y"?q=R1.DFLTRANGEY:r._name==="realaxis"?q=[0,1]:q=w.dfltRange||R1.DFLTRANGEX,q=q.slice(),(r.rangemode==="tozero"||r.rangemode==="nonnegative")&&(q[0]=0),!k||k.length!==2){Tt.nestedProperty(r,b).set(q);return}var E=k[0]===null,D=k[1]===null;for(r.type==="date"&&!r.autorange&&(k[0]=Tt.cleanDate(k[0],oo,r.calendar),k[1]=Tt.cleanDate(k[1],oo,r.calendar)),M=0;M<2;M++)if(r.type==="date"){if(!Tt.isDateTime(k[M],r.calendar)){r[b]=q;break}if(r.r2l(k[0])===r.r2l(k[1])){var P=Tt.constrain(r.r2l(k[0]),Tt.MIN_MS+1e3,Tt.MAX_MS-1e3);k[0]=r.l2r(P-1e3),k[1]=r.l2r(P+1e3);break}}else{if(!Do(k[M]))if(!(E||D)&&Do(k[1-M]))k[M]=k[1-M]*(M?10:.1);else{r[b]=q;break}if(k[M]<-S1?k[M]=-S1:k[M]>S1&&(k[M]=S1),k[0]===k[1]){var R=Math.max(1,Math.abs(k[0]*1e-6));k[0]-=R,k[1]+=R}}},r.setScale=function(b){var w=t._size;if(r.overlaying){var k=C1.getFromId({_fullLayout:t},r.overlaying);r.domain=k.domain}var M=b&&r._r?"_r":"range",q=r.calendar;r.cleanRange(M);var E=r.r2l(r[M][0],q),D=r.r2l(r[M][1],q),P=n==="y";if(P?(r._offset=w.t+(1-r.domain[1])*w.h,r._length=w.h*(r.domain[1]-r.domain[0]),r._m=r._length/(E-D),r._b=-r._m*D):(r._offset=w.l+r.domain[0]*w.w,r._length=w.w*(r.domain[1]-r.domain[0]),r._m=r._length/(D-E),r._b=-r._m*E),r._rangebreaks=[],r._lBreaks=0,r._m2=0,r._B=[],r.rangebreaks){var R,z;if(r._rangebreaks=r.locateBreaks(Math.min(E,D),Math.max(E,D)),r._rangebreaks.length){for(R=0;R D&&(I=!I),I&&r._rangebreaks.reverse();var B=I?-1:1;for(r._m2=B*r._length/(Math.abs(D-E)-r._lBreaks),r._B.push(-r._m2*(P?D:E)),R=0;R q&&(q+=7,E q&&(q+=24,E =M&&E =M&&b=K.min&&(eeK.max&&(K.max=fe),ie=!1)}ie&&D.push({min:ee,max:fe})}};for(k=0;k {"use strict";var BC=Rr(),Bx=Ee(),ove=Ft().BADNUM,P1=Bx.isArrayOrTypedArray,lve=Bx.isDateTime,sve=Bx.cleanNumber,HC=Math.round;GC.exports=function(r,t,a){var n=r,i=a.noMultiCategory;if(P1(n)&&!n.length)return"-";if(!i&&hve(n))return"multicategory";if(i&&Array.isArray(n[0])){for(var o=[],l=0;l i*2}function UC(e){return Math.max(1,(e-1)/1e3)}function vve(e,r){for(var t=e.length,a=UC(t),n=0,i=0,o={},l=0;l n*2}function hve(e){return P1(e[0])&&P1(e[1])}});var _h=N((yRe,$C)=>{"use strict";var dve=Sr(),jC=Rr(),os=Ee(),N1=Ft().FP_SAFE,pve=br(),yve=Yr(),ZC=fa(),mve=ZC.getFromId,gve=ZC.isLinked;$C.exports={applyAutorangeOptions:JC,getAutoRange:Hx,makePadFn:Ux,doAutoRange:xve,findExtremes:_ve,concatExtremes:Yx};function Hx(e,r){var t,a,n=[],i=e._fullLayout,o=Ux(i,r,0),l=Ux(i,r,1),s=Yx(e,r),u=s.min,f=s.max;if(u.length===0||f.length===0)return os.simpleMap(r.range,r.r2l);var c=u[0].val,v=f[0].val;for(t=1;t 0&&(D=_-o(k)-l(M),D>b?P/D>w&&(q=k,E=M,w=P/D):P/_>w&&(q={val:k.val,nopad:1},E={val:M.val,nopad:1},w=P/_));function R(Y,V){return Math.max(Y,l(V))}if(c===v){var z=c-1,I=c+1;if(x)if(c===0)n=[0,1];else{var B=(c>0?f:u).reduce(R,0),G=c/(1-Math.min(.5,B/_));n=c>0?[0,G]:[G,0]}else T?n=[Math.max(0,z),Math.max(1,I)]:n=[z,I]}else x?(q.val>=0&&(q={val:0,nopad:1}),E.val<=0&&(E={val:0,nopad:1})):T&&(q.val-w*o(q)<0&&(q={val:0,nopad:1}),E.val<=0&&(E={val:1,nopad:1})),w=(E.val-q.val-VC(r,k.val,M.val))/(_-o(q)-l(E)),n=[q.val-w*o(q),E.val+w*l(E)];return n=JC(n,r),r.limitRange&&r.limitRange(),p&&n.reverse(),os.simpleMap(n,r.l2r||Number)}function VC(e,r,t){var a=0;if(e.rangebreaks)for(var n=e.locateBreaks(r,t),i=0;i 0?t.ppadplus:t.ppadminus)||t.ppad||0),k=b((e._m>0?t.ppadminus:t.ppadplus)||t.ppad||0),M=b(t.vpadplus||t.vpad),q=b(t.vpadminus||t.vpad);if(!u){if(T=1/0,_=-1/0,s)for(c=0;c0&&(T=v),v>_&&v -N1&&(T=v),v>_&&v =P;c--)D(c);return{min:a,max:n,opts:t}}function Gx(e,r,t,a){XC(e,r,t,a,wve)}function Vx(e,r,t,a){XC(e,r,t,a,Tve)}function XC(e,r,t,a,n){for(var i=a.tozero,o=a.extrapad,l=!0,s=0;s =t&&(u.extrapad||!o)){l=!1;break}else n(r,u.val)&&u.pad<=t&&(o||!u.extrapad)&&(e.splice(s,1),s--)}if(l){var f=i&&r===0;e.push({val:r,pad:f?0:t,extrapad:f?!1:o})}}function WC(e){return jC(e)&&Math.abs(e) =r}function Ave(e,r){var t=r.autorangeoptions;return t&&t.minallowed!==void 0&&I1(r,t.minallowed,t.maxallowed)?t.minallowed:t&&t.clipmin!==void 0&&I1(r,t.clipmin,t.clipmax)?Math.max(e,r.d2l(t.clipmin)):e}function Mve(e,r){var t=r.autorangeoptions;return t&&t.maxallowed!==void 0&&I1(r,t.minallowed,t.maxallowed)?t.maxallowed:t&&t.clipmax!==void 0&&I1(r,t.clipmin,t.clipmax)?Math.min(e,r.d2l(t.clipmax)):e}function I1(e,r,t){return r!==void 0&&t!==void 0?(r=e.d2l(r),t=e.d2l(t),r =s&&(i=s,t=s),o<=s&&(o=s,a=s)}}return t=Ave(t,r),a=Mve(a,r),[t,a]}});var zr=N((gRe,xE)=>{"use strict";var yi=Sr(),va=Rr(),sc=aa(),Th=br(),xr=Ee(),uc=xr.strTranslate,bu=Aa(),kve=oc(),Ah=Tr(),Xn=Yr(),Sve=pi(),KC=dx(),mRe=xa(),Ga=Ft(),qve=Ga.ONEMAXYEAR,B1=Ga.ONEAVGYEAR,H1=Ga.ONEMINYEAR,Lve=Ga.ONEMAXQUARTER,Xx=Ga.ONEAVGQUARTER,U1=Ga.ONEMINQUARTER,Cve=Ga.ONEMAXMONTH,fc=Ga.ONEAVGMONTH,G1=Ga.ONEMINMONTH,Jn=Ga.ONEWEEK,ln=Ga.ONEDAY,ls=ln/2,Fo=Ga.ONEHOUR,Mh=Ga.ONEMIN,V1=Ga.ONESEC,Eve=Ga.ONEMILLI,Dve=Ga.ONEMICROSEC,xu=Ga.MINUS_SIGN,W1=Ga.BADNUM,Jx={K:"zeroline"},$x={K:"gridline",L:"path"},Kx={K:"minor-gridline",L:"path"},uE={K:"tick",L:"path"},QC={K:"tick",L:"text"},eE={width:["x","r","l","xl","xr"],height:["y","t","b","yt","yb"],right:["r","xr"],left:["l","xl"],top:["t","yt"],bottom:["b","yb"]},j1=Ha(),wh=j1.MID_SHIFT,_u=j1.CAP_SHIFT,kh=j1.LINE_SPACING,Rve=j1.OPPOSITE_SIDE,Y1=3,Ve=xE.exports={};Ve.setConvert=lc();var Pve=F1(),No=fa(),Fve=No.idSort,Nve=No.isLinked;Ve.id2name=No.id2name;Ve.name2id=No.name2id;Ve.cleanId=No.cleanId;Ve.list=No.list;Ve.listIds=No.listIds;Ve.getFromId=No.getFromId;Ve.getFromTrace=No.getFromTrace;var fE=_h();Ve.getAutoRange=fE.getAutoRange;Ve.findExtremes=fE.findExtremes;var Ive=1e-4;function t5(e){var r=(e[1]-e[0])*Ive;return[e[0]-r,e[1]+r]}Ve.coerceRef=function(e,r,t,a,n,i){var o=a.charAt(a.length-1),l=t._fullLayout._subplots[o+"axis"],s=a+"ref",u={};return n||(n=l[0]||(typeof i=="string"?i:i[0])),i||(i=n),l=l.concat(l.map(function(f){return f+" domain"})),u[s]={valType:"enumerated",values:l.concat(i?typeof i=="string"?[i]:i:[]),dflt:n},xr.coerce(e,r,u,s)};Ve.coerceRefArray=function(e,r,t,a,n,i,o){let l=a.charAt(a.length-1);var s=t._fullLayout._subplots[l+"axis"];let u=a+"ref";var f=e[u];n||(n=s[0]||(typeof i=="string"?i:i[0])),s=s.concat(s.map(v=>v+" domain")),s=s.concat(i||[]),f.length>o?(xr.warn("Array attribute "+u+" has more entries than expected, truncating to "+o),f=f.slice(0,o)):f.length 2e-6||((t-e._forceTick0)/e._minDtick%1+1.000001)%1>2e-6)&&(e._minDtick=0))};Ve.saveRangeInitial=function(e,r){for(var t=Ve.list(e,"",!0),a=!1,n=0;n c*.3||u(a)||u(n))){var v=t.dtick/2;e+=e+vo){var l=Number(t.slice(1));i.exactYears>o&&l%12===0?e=Ve.tickIncrement(e,"M6","reverse")+ln*1.5:i.exactMonths>o?e=Ve.tickIncrement(e,"M1","reverse")+ln*15.5:e-=ls;var s=Ve.tickIncrement(e,t);if(s<=a)return s}return e}Ve.prepMinorTicks=function(e,r,t){if(!r.minor.dtick){delete e.dtick;var a=r.dtick&&va(r._tmin),n;if(a){var i=Ve.tickIncrement(r._tmin,r.dtick,!0);n=[r._tmin,i*.99+r._tmin*.01]}else{var o=xr.simpleMap(r.range,r.r2l);n=[o[0],.8*o[0]+.2*o[1]]}if(e.range=xr.simpleMap(n,r.l2r),e._isMinor=!0,Ve.prepTicks(e,t),a){var l=va(r.dtick),s=va(e.dtick),u=l?r.dtick:+r.dtick.substring(1),f=s?e.dtick:+e.dtick.substring(1);l&&s?Wx(u,f)?u===2*Jn&&f===2*ln&&(e.dtick=Jn):u===2*Jn&&f===3*ln?e.dtick=Jn:u===Jn&&!(r._input.minor||{}).nticks?e.dtick=ln:aE(u/f,2.5)?e.dtick=u/2:e.dtick=u:String(r.dtick).charAt(0)==="M"?s?e.dtick="M1":Wx(u,f)?u>=12&&f===2&&(e.dtick="M3"):e.dtick=r.dtick:String(e.dtick).charAt(0)==="L"?String(r.dtick).charAt(0)==="L"?Wx(u,f)||(e.dtick=aE(u/f,2.5)?r.dtick/2:r.dtick):e.dtick="D1":e.dtick==="D2"&&+r.dtick>1&&(e.dtick=1)}e.range=r.range}r.minor._tick0Init===void 0&&(e.tick0=r.tick0)};function Wx(e,r){return Math.abs((e/r+.5)%1-.5)<.001}function aE(e,r){return Math.abs(e/r-1)<.001}Ve.prepTicks=function(e,r){var t=xr.simpleMap(e.range,e.r2l,void 0,void 0,r);if(e.tickmode==="auto"||!e.dtick){var a=e.nticks,n;a||(e.type==="category"||e.type==="multicategory"?(n=e.tickfont?xr.bigFont(e.tickfont.size||12):15,a=e._length/n):(n=e._id.charAt(0)==="y"?40:80,a=xr.constrain(e._length/n,4,9)+1),e._name==="radialaxis"&&(a*=2)),e.minor&&e.minor.tickmode!=="array"||e.tickmode==="array"&&(a*=100),e._roughDTick=Math.abs(t[1]-t[0])/a,Ve.autoTicks(e,e._roughDTick),e._minDtick>0&&e.dtick 0?(i=a-1,o=a):(i=a,o=a);var l=e[i].value,s=e[o].value,u=Math.abs(s-l),f=t||u,c=0;f>=H1?u>=H1&&u<=qve?c=u:c=B1:t===Xx&&f>=U1?u>=U1&&u<=Lve?c=u:c=Xx:f>=G1?u>=G1&&u<=Cve?c=u:c=fc:t===Jn&&f>=Jn?c=Jn:f>=ln?c=ln:t===ls&&f>=ls?c=ls:t===Fo&&f>=Fo&&(c=Fo);var v;c>=u&&(c=u,v=!0);var d=n+c;if(r.rangebreaks&&c>0){for(var p=84,y=0,m=0;m Jn&&(c=u)}(c>0||a===0)&&(e[a].periodX=n+c/2)}}Ve.calcTicks=function(r,t){for(var a=r.type,n=r.calendar,i=r.ticklabelstep,o=r.ticklabelmode==="period",l=r.range[0]>r.range[1],s=!r.ticklabelindex||xr.isArrayOrTypedArray(r.ticklabelindex)?r.ticklabelindex:[r.ticklabelindex],u=xr.simpleMap(r.range,r.r2l,void 0,void 0,t),f=u[1]=(_?0:1);b--){var w=!b;b?(r._dtickInit=r.dtick,r._tick0Init=r.tick0):(r.minor._dtickInit=r.minor.dtick,r.minor._tick0Init=r.minor.tick0);var k=b?r:xr.extendFlat({},r,r.minor);if(w?Ve.prepMinorTicks(k,r,t):Ve.prepTicks(k,t),k.tickmode==="array"){b?(m=[],p=nE(r,!w)):(x=[],y=nE(r,!w));continue}if(k.tickmode==="sync"){m=[],p=Gve(r);continue}var M=t5(u),q=M[0],E=M[1],D=va(k.dtick),P=a==="log"&&!(D||k.dtick.charAt(0)==="L"),R=Ve.tickFirst(k,t);if(b){if(r._tmin=R,R
=E:I<=E;I=Ve.tickIncrement(I,Y,f,n)){if(b&&B++,k.rangebreaks&&!f){if(I=v)break}if(m.length>d||I===z)break;z=I;var V={value:I};b?(P&&I!==(I|0)&&(V.simpleLabel=!0),i>1&&B%i&&(V.skipLabel=!0),m.push(V)):(V.minor=!0,x.push(V))}}if(!x||x.length<2)s=!1;else{var H=(x[1].value-x[0].value)*(l?-1:1);dhe(H,r.tickformat)||(s=!1)}if(!s)T=m;else{var X=m.concat(x);o&&m.length&&(X=X.slice(1)),X=X.sort(function(ze,Be){return ze.value-Be.value}).filter(function(ze,Be,Ge){return Be===0||ze.value!==Ge[Be-1].value});var j=X.map(function(ze,Be){return ze.minor===void 0&&!ze.skipLabel?Be:null}).filter(function(ze){return ze!==null});j.forEach(function(ze){s.map(function(Be){var Ge=ze+Be;Ge>=0&&Ge-1;he--){if(m[he].drop){m.splice(he,1);continue}m[he].value=Zx(m[he].value,r);var Z=r.c2p(m[he].value);(ye?Q>Z-W:Q v||De v&&(Ge.periodX=v),De n&&vB1)r/=B1,a=n(10),e.dtick="M"+12*Po(r,a,z1);else if(i>fc)r/=fc,e.dtick="M"+Po(r,1,iE);else if(i>ln){if(e.dtick=Po(r,ln,e._hasDayOfWeekBreaks?[1,2,7,14]:Vve),!t){var o=Ve.getTickFormat(e),l=e.ticklabelmode==="period";l&&(e._rawTick0=e.tick0),/%[uVW]/.test(o)?e.tick0=xr.dateTick0(e.calendar,2):e.tick0=xr.dateTick0(e.calendar,1),l&&(e._dowTick0=e.tick0)}}else i>Fo?e.dtick=Po(r,Fo,iE):i>Mh?e.dtick=Po(r,Mh,oE):i>V1?e.dtick=Po(r,V1,oE):(a=n(10),e.dtick=Po(r,a,z1))}else if(e.type==="log"){e.tick0=0;var s=xr.simpleMap(e.range,e.r2l);if(e._isMinor&&(r*=1.5),r>.7)e.dtick=Math.ceil(r);else if(Math.abs(s[1]-s[0])<1){var u=1.5*Math.abs((s[1]-s[0])/r);r=Math.abs(Math.pow(10,s[1])-Math.pow(10,s[0]))/u,a=n(10),e.dtick="L"+Po(r,a,z1)}else e.dtick=r>.3?"D2":"D1"}else e.type==="category"||e.type==="multicategory"?(e.tick0=0,e.dtick=Math.ceil(Math.max(r,1))):o5(e)?(e.tick0=0,a=1,e.dtick=Po(r,a,Yve)):(e.tick0=0,a=n(10),e.dtick=Po(r,a,z1));if(e.dtick===0&&(e.dtick=1),!va(e.dtick)&&typeof e.dtick!="string"){var f=e.dtick;throw e.dtick=1,"ax.dtick error: "+String(f)}};function dE(e){var r=e.dtick;if(e._tickexponent=0,!va(r)&&typeof r!="string"&&(r=1),(e.type==="category"||e.type==="multicategory")&&(e._tickround=null),e.type==="date"){var t=e.r2l(e.tick0),a=e.l2r(t).replace(/(^-|i)/g,""),n=a.length;if(String(r).charAt(0)==="M")n>10||a.slice(5)!=="01-01"?e._tickround="d":e._tickround=+r.slice(1)%12===0?"y":"m";else if(r>=ln&&n<=10||r>=ln*15)e._tickround="d";else if(r>=Mh&&n<=16||r>=Fo)e._tickround="M";else if(r>=V1&&n<=19||r>=Mh)e._tickround="S";else{var i=e.l2r(t+r).replace(/^-/,"").length;e._tickround=Math.max(n,i)-20,e._tickround<0&&(e._tickround=4)}}else if(va(r)||r.charAt(0)==="L"){var o=e.range.map(e.r2d||Number);va(r)||(r=Number(r.slice(1))),e._tickround=2-Math.floor(Math.log(r)/Math.LN10+.01);var l=Math.max(Math.abs(o[0]),Math.abs(o[1])),s=Math.floor(Math.log(l)/Math.LN10+.01),u=e.minexponent===void 0?3:e.minexponent;Math.abs(s)>u&&(cc(e.exponentformat)&&e.exponentformat!=="SI extended"&&!a5(s)||cc(e.exponentformat)&&e.exponentformat==="SI extended"&&!n5(s)?e._tickexponent=3*Math.round((s-1)/3):e._tickexponent=s)}else e._tickround=null}Ve.tickIncrement=function(e,r,t,a){var n=t?-1:1;if(va(r))return xr.increment(e,n*r);var i=r.charAt(0),o=n*Number(r.slice(1));if(i==="M")return xr.incrementMonth(e,o,a);if(i==="L")return Math.log(Math.pow(10,e)+o)/Math.LN10;if(i==="D"){var l=r==="D2"?hE:vE,s=e+n*.01,u=xr.roundUp(xr.mod(s,1),l,t);return Math.floor(s)+Math.log(yi.round(Math.pow(10,u),1))/Math.LN10}throw"unrecognized dtick "+String(r)};Ve.tickFirst=function(e,r){var t=e.r2l||Number,a=xr.simpleMap(e.range,t,void 0,void 0,r),n=a[1]=0&&x<=e._length?m:null};if(i&&xr.isArrayOrTypedArray(e.ticktext)){var c=xr.simpleMap(e.range,e.r2l),v=(Math.abs(c[1]-c[0])-(e._lBreaks||0))/1e4;for(u=0;u "+l;else{var u=qh(e),f=e._trueSide||e.side;(!u&&f==="top"||u&&f==="bottom")&&(o+="
")}r.text=o}function jve(e,r,t,a,n){var i=e.dtick,o=r.x,l=e.tickformat,s=typeof i=="string"&&i.charAt(0);if(n==="never"&&(n=""),a&&s!=="L"&&(i="L3",s="L"),l||s==="L")r.text=Sh(Math.pow(10,o),e,n,a);else if(va(i)||s==="D"&&(e.minorloglabels==="complete"||xr.mod(o+.01,1)<.1)){var u;e.minorloglabels==="complete"&&!(xr.mod(o+.01,1)<.1)&&(u=!0,r.fontSize*=.75);var f=Math.pow(10,o).toExponential(0),c=f.split("e"),v=+c[1],d=Math.abs(v),p=e.exponentformat;p==="power"||cc(p)&&p!=="SI extended"&&a5(v)||cc(p)&&p==="SI extended"&&n5(v)?(r.text=c[0],d>0&&(r.text+="x10"),r.text==="1x10"&&(r.text="10"),v!==0&&v!==1&&(r.text+=""+(v>0?"":xu)+d+""),r.fontSize*=1.25):(p==="e"||p==="E")&&d>2?r.text=c[0]+p+(v>0?"+":xu)+d:(r.text=Sh(Math.pow(10,o),e,"","fakehover"),i==="D1"&&e._id.charAt(0)==="y"&&(r.dy-=r.fontSize/6))}else if(s==="D")r.text=e.minorloglabels==="none"?"":String(Math.round(Math.pow(10,xr.mod(o,1)))),r.fontSize*=.75;else throw"unrecognized dtick "+String(i);if(e.dtick==="D1"){var y=String(r.text).charAt(0);(y==="0"||y==="1")&&(e._id.charAt(0)==="y"?r.dx-=r.fontSize/4:(r.dy+=r.fontSize/2,r.dx+=(e.range[1]>e.range[0]?1:-1)*r.fontSize*(o<0?.5:.25)))}}function Zve(e,r){var t=e._categories[Math.round(r.x)];t===void 0&&(t=""),r.text=String(t)}function Xve(e,r,t){var a=Math.round(r.x),n=e._categories[a]||[],i=n[1]===void 0?"":String(n[1]),o=n[0]===void 0?"":String(n[0]);t?r.text=o+" - "+i:(r.text=i,r.text2=o)}function Jve(e,r,t,a,n){n==="never"?n="":e.showexponent==="all"&&Math.abs(r.x/e.dtick)<1e-6&&(n="hide"),r.text=Sh(r.x,e,n,a)}function $ve(e,r,t,a,n){if(e.thetaunit==="radians"&&!t){var i=r.x/180;if(i===0)r.text="0";else{var o=Kve(i);if(o[1]>=100)r.text=Sh(xr.deg2rad(r.x),e,n,a);else{var l=r.x<0;o[1]===1?o[0]===1?r.text="\u03C0":r.text=o[0]+"\u03C0":r.text=["",o[0],"","\u2044","",o[1],"","\u03C0"].join(""),l&&(r.text=xu+r.text)}}}else r.text=Sh(r.x,e,n,a)}function Kve(e){function r(l,s){return Math.abs(l-s)<=1e-6}function t(l,s){return r(s,0)?l:t(s,l%s)}function a(l){for(var s=1;!r(Math.round(l*s)/s,l);)s*=10;return s}var n=a(e),i=e*n,o=Math.abs(t(i,n));return[Math.round(i/o),Math.round(n/o)]}var yE=["f","p","n","\u03BC","m","","k","M","G","T"],Qve=["q","r","y","z","a",...yE,"P","E","Z","Y","R","Q"],cc=e=>["SI","SI extended","B"].includes(e);function a5(e){return e>14||e<-15}function n5(e){return e>32||e<-30}function ehe(e,r){return cc(r)?!!(r==="SI extended"&&n5(e)||r!=="SI extended"&&a5(e)):!1}function Sh(e,r,t,a){var n=e<0,i=r._tickround,o=t||r.exponentformat||"B",l=r._tickexponent,s=Ve.getTickFormat(r),u=r.separatethousands;if(a){var f={exponentformat:o,minexponent:r.minexponent,dtick:r.showexponent==="none"?r.dtick:va(e)&&Math.abs(e)||1,range:r.showexponent==="none"?r.range.map(r.r2d):[0,e||1]};dE(f),i=(Number(f._tickround)||0)+4,l=f._tickexponent,r.hoverformat&&(s=r.hoverformat)}if(s)return r._numFormat(s)(e).replace(/-/g,xu);var c=Math.pow(10,-i)/2;if(o==="none"&&(l=0),e=Math.abs(e),e"+p+"":o==="B"&&l===9?e+="B":cc(o)&&(e+=o==="SI extended"?Qve[l/3+10]:yE[l/3+5])}return n?xu+e:e}Ve.getTickFormat=function(e){var r;function t(s){return typeof s!="string"?s:Number(s.replace("M",""))*fc}function a(s,u){var f=["L","D"];if(typeof s==typeof u){if(typeof s=="number")return s-u;var c=f.indexOf(s.charAt(0)),v=f.indexOf(u.charAt(0));return c===v?Number(s.replace(/(L|D)/g,""))-Number(u.replace(/(L|D)/g,"")):c-v}else return typeof s=="number"?1:-1}function n(s,u,f){var c=f||function(p){return p},v=u[0],d=u[1];return(!v&&typeof v!="number"||c(v)<=c(s))&&(!d&&typeof d!="number"||c(d)>=c(s))}function i(s,u){var f=u[0]===null,c=u[1]===null,v=a(s,u[0])>=0,d=a(s,u[1])<=0;return(f||v)&&(c||d)}var o,l;if(e.tickformatstops&&e.tickformatstops.length>0)switch(e.type){case"date":case"linear":{for(r=0;r =0&&n.unshift(n.splice(f,1).shift())}});var l={false:{left:0,right:0}};return xr.syncOrAsync(n.map(function(s){return function(){if(s){var u=Ve.getFromId(e,s);t||(t={}),t.axShifts=l,t.overlayingShiftedAx=o;var f=Ve.drawOne(e,u,t);return u._shiftPusher&&r5(u,u._fullDepth||0,l,!0),u._r=u.range.slice(),u._rl=xr.simpleMap(u._r,u.r2l),f}}}))};Ve.drawOne=function(e,r,t){t=t||{};var a=t.axShifts||{},n=t.overlayingShiftedAx||[],i,o,l;r.setScale();var s=e._fullLayout,u=r._id,f=u.charAt(0),c=Ve.counterLetter(u),v=s._plots[r._mainSubplot],d=r.zerolinelayer==="above traces";if(!v)return;if(r._shiftPusher=r.autoshift||n.indexOf(r._id)!==-1||n.indexOf(r.overlaying)!==-1,r._shiftPusher&r.anchor==="free"){var p=r.linewidth/2||0;r.ticks==="inside"&&(p+=r.ticklen),r5(r,p,a,!0),r5(r,r.shift||0,a,!1)}(t.skipTitle!==!0||r._shift===void 0)&&(r._shift=hhe(r,a));var y=v[f+"axislayer"],m=r._mainLinePosition,x=m+=r._shift,T=r._mainMirrorPosition,_=r._vals=Ve.calcTicks(r),b=[r.mirror,x,T].join("_");for(i=0;i<_.length;i++)_[i].axInfo=b;r._selections={},r._tickAngles&&(r._prevTickAngles=r._tickAngles),r._tickAngles={},r._depth=null;var w={};function k(Le){var ze=u+(Le||"tick");return w[ze]||(w[ze]=nhe(r,ze,x)),w[ze]}if(r.visible){var M=Ve.makeTransTickFn(r),q=Ve.makeTransTickLabelFn(r),E,D,P=r.ticks==="inside",R=r.ticks==="outside";if(r.tickson==="boundaries"){var z=rhe(r,_);D=Ve.clipEnds(r,z),E=P?D:z}else D=Ve.clipEnds(r,_),E=P&&r.ticklabelmode!=="period"?D:_;var I=r._gridVals=D,B=ahe(r,_);if(!s._hasOnlyLargeSploms){var G=r._subplotsWith,Y={};for(i=0;i 0?De.bottom-Be:0,Ge))));var Ae=0,Xe=0;if(r._shiftPusher&&(Ae=Math.max(Ge,De.height>0?Le==="l"?Be-De.left:De.right-Be:0),r.title.text!==s._dfltTitle[f]&&(Xe=(r._titleStandoff||0)+(r._titleScoot||0),Le==="l"&&(Xe+=sE(r))),r._fullDepth=Math.max(Ae,Xe)),r.automargin){Oe={x:0,y:0,r:0,l:0,t:0,b:0};var dr=[0,1],Ne=typeof r._shift=="number"?r._shift:0;if(f==="x"){if(Le==="b"?Oe[Le]=r._depth:(Oe[Le]=r._depth=Math.max(De.width>0?Be-De.top:0,Ge),dr.reverse()),De.width>0){var Te=De.right-(r._offset+r._length);Te>0&&(Oe.xr=1,Oe.r=Te);var qe=r._offset-De.left;qe>0&&(Oe.xl=0,Oe.l=qe)}}else if(Le==="l"?(r._depth=Math.max(De.height>0?Be-De.left:0,Ge),Oe[Le]=r._depth-Ne):(r._depth=Math.max(De.height>0?De.right-Be:0,Ge),Oe[Le]=r._depth+Ne,dr.reverse()),De.height>0){var He=De.bottom-(r._offset+r._length);He>0&&(Oe.yb=0,Oe.b=He);var Je=r._offset-De.top;Je>0&&(Oe.yt=1,Oe.t=Je)}Oe[c]=r.anchor==="free"?r.position:r._anchorAxis.domain[dr[0]],r.title.text!==s._dfltTitle[f]&&(Oe[Le]+=sE(r)+(r.title.standoff||0)),r.mirror&&r.anchor!=="free"&&(Ue={x:0,y:0,r:0,l:0,t:0,b:0},Ue[ze]=r.linewidth,r.mirror&&r.mirror!==!0&&(Ue[ze]+=Ge),r.mirror===!0||r.mirror==="ticks"?Ue[c]=r._anchorAxis.domain[dr[1]]:(r.mirror==="all"||r.mirror==="allticks")&&(Ue[c]=[r._counterDomainMin,r._counterDomainMax][dr[1]]))}Pe&&(oe=Th.getComponentMethod("rangeslider","autoMarginOpts")(e,r)),typeof r.automargin=="string"&&(lE(Oe,r.automargin),lE(Ue,r.automargin)),sc.autoMargin(e,i5(r),Oe),sc.autoMargin(e,gE(r),Ue),sc.autoMargin(e,bE(r),oe)}),xr.syncOrAsync(me)}};function lE(e,r){if(e){var t=Object.keys(eE).reduce(function(a,n){return r.indexOf(n)!==-1&&eE[n].forEach(function(i){a[i]=1}),a},{});Object.keys(e).forEach(function(a){t[a]||(a.length===1?e[a]=0:delete e[a])})}}function rhe(e,r){var t=[],a,n=function(i,o){var l=i.xbnd[o];l!==null&&t.push(xr.extendFlat({},i,{x:l}))};if(r.length){for(a=0;a e.range[1],l=e.ticklabelposition&&e.ticklabelposition.indexOf("inside")!==-1,s=!l;if(t){var u=o?-1:1;t=t*u}if(a){var f=e.side,c=l&&(f==="top"||f==="left")||s&&(f==="bottom"||f==="right")?1:-1;a=a*c}return e._id.charAt(0)==="x"?function(v){return uc(n+e._offset+e.l2p(Qx(v))+t,i+a)}:function(v){return uc(i+a,n+e._offset+e.l2p(Qx(v))+t)}};function Qx(e){return e.periodX!==void 0?e.periodX:e.x}function ihe(e){var r=e.ticklabelposition||"",t=e.tickson||"",a=function(p){return r.indexOf(p)!==-1},n=a("top"),i=a("left"),o=a("right"),l=a("bottom"),s=a("inside"),u=t!=="boundaries"&&(l||i||n||o);if(!u&&!s)return[0,0];var f=e.side,c=u?(e.tickwidth||0)/2:0,v=Y1,d=e.tickfont?e.tickfont.size:12;return(l||n)&&(c+=d*_u,v+=(e.linewidth||0)/2),(i||o)&&(c+=(e.linewidth||0)/2,v+=Y1),s&&f==="top"&&(v-=d*(1-_u)),(i||n)&&(c=-c),(f==="bottom"||f==="right")&&(v=-v),[u?c:0,s?v:0]}Ve.makeTickPath=function(e,r,t,a){a||(a={});var n=a.minor;if(n&&!e.minor)return"";var i=a.len!==void 0?a.len:n?e.minor.ticklen:e.ticklen,o=e._id.charAt(0),l=(e.linewidth||1)/2;return o==="x"?"M0,"+(r+l*t)+"v"+i*t:"M"+(r+l*t)+",0h"+i*t};Ve.makeLabelFns=function(e,r,t){var a=e.ticklabelposition||"",n=e.tickson||"",i=function(z){return a.indexOf(z)!==-1},o=i("top"),l=i("left"),s=i("right"),u=i("bottom"),f=n!=="boundaries"&&(u||l||o||s),c=i("inside"),v=a==="inside"&&e.ticks==="inside"||!c&&e.ticks==="outside"&&n!=="boundaries",d=0,p=0,y=v?e.ticklen:0;if(c?y*=-1:f&&(y=0),v&&(d+=y,t)){var m=xr.deg2rad(t);d=y*Math.cos(m)+1,p=y*Math.sin(m)}e.showticklabels&&(v||e.showline)&&(d+=.2*e.tickfont.size),d+=(e.linewidth||1)/2*(c?-1:1);var x={labelStandoff:d,labelShift:p},T,_,b,w,k=0,M=e.side,q=e._id.charAt(0),E=e.tickangle,D;if(q==="x")D=!c&&M==="bottom"||c&&M==="top",w=D?1:-1,c&&(w*=-1),T=p*w,_=r+d*w,b=D?1:-.2,Math.abs(E)===90&&(c?b+=wh:E===-90&&M==="bottom"?b=_u:E===90&&M==="top"?b=wh:b=.5,k=wh/2*(E/90)),x.xFn=function(z){return z.dx+T+k*z.fontSize},x.yFn=function(z){return z.dy+_+z.fontSize*b},x.anchorFn=function(z,I){if(f){if(l)return"end";if(s)return"start"}return!va(I)||I===0||I===180?"middle":I*w<0!==c?"end":"start"},x.heightFn=function(z,I,B){return I<-60||I>60?-.5*B:e.side==="top"!==c?-B:0};else if(q==="y"){if(D=!c&&M==="left"||c&&M==="right",w=D?1:-1,c&&(w*=-1),T=d,_=p*w,b=0,!c&&Math.abs(E)===90&&(E===-90&&M==="left"||E===90&&M==="right"?b=_u:b=.5),c){var P=va(E)?+E:0;if(P!==0){var R=xr.deg2rad(P);k=Math.abs(Math.sin(R))*_u*w,b=0}}x.xFn=function(z){return z.dx+r-(T+z.fontSize*b)*w+k*z.fontSize},x.yFn=function(z){return z.dy+_+z.fontSize*wh},x.anchorFn=function(z,I){return va(I)&&Math.abs(I)===90?"middle":D?"end":"start"},x.heightFn=function(z,I,B){return e.side==="right"&&(I*=-1),I<-30?-B:I<30?-.5*B:0}}return x};function Z1(e){return[e.text,e.x,e.axInfo,e.font,e.fontSize,e.fontColor].join("_")}Ve.drawTicks=function(e,r,t){t=t||{};var a=r._id+"tick",n=[].concat(r.minor&&r.minor.ticks?t.vals.filter(function(o){return o.minor&&!o.noTick}):[]).concat(r.ticks?t.vals.filter(function(o){return!o.minor&&!o.noTick}):[]),i=t.layer.selectAll("path."+a).data(n,Z1);i.exit().remove(),i.enter().append("path").classed(a,1).classed("ticks",1).classed("crisp",t.crisp!==!1).each(function(o){return Ah.stroke(yi.select(this),o.minor?r.minor.tickcolor:r.tickcolor)}).style("stroke-width",function(o){return Xn.crispRound(e,o.minor?r.minor.tickwidth:r.tickwidth,1)+"px"}).attr("d",t.path).style("display",null),X1(r,[uE]),i.attr("transform",t.transFn)};Ve.drawGrid=function(e,r,t){if(t=t||{},r.tickmode!=="sync"){var a=r._id+"grid",n=r.minor&&r.minor.showgrid,i=n?t.vals.filter(function(x){return x.minor}):[],o=r.showgrid?t.vals.filter(function(x){return!x.minor}):[],l=t.counterAxis;if(l&&Ve.shouldShowZeroLine(e,r,l))for(var s=r.tickmode==="array",u=0;u =0;p--){var y=p?v:d;if(y){var m=y.selectAll("path."+a).data(p?o:i,Z1);m.exit().remove(),m.enter().append("path").classed(a,1).classed("crisp",t.crisp!==!1),m.attr("transform",t.transFn).attr("d",t.path).each(function(x){return Ah.stroke(yi.select(this),x.minor?r.minor.gridcolor:r.gridcolor||"#ddd")}).style("stroke-dasharray",function(x){return Xn.dashStyle(x.minor?r.minor.griddash:r.griddash,x.minor?r.minor.gridwidth:r.gridwidth)}).style("stroke-width",function(x){return(x.minor?c:r._gw)+"px"}).style("display",null),typeof t.path=="function"&&m.attr("d",t.path)}}X1(r,[$x,Kx])}};Ve.drawZeroLine=function(e,r,t){t=t||t;var a=r._id+"zl",n=Ve.shouldShowZeroLine(e,r,t.counterAxis),i=t.layer.selectAll("path."+a).data(n?[{x:0,id:r._id}]:[]);i.exit().remove(),i.enter().append("path").classed(a,1).classed("zl",1).classed("crisp",t.crisp!==!1).each(function(){t.layer.selectAll("path").sort(function(o,l){return Fve(o.id,l.id)})}),i.attr("transform",t.transFn).attr("d",t.path).call(Ah.stroke,r.zerolinecolor||Ah.defaultLine).style("stroke-width",Xn.crispRound(e,r.zerolinewidth,r._gw||1)+"px").style("display",null),X1(r,[Jx])};Ve.drawLabels=function(e,r,t){t=t||{};var a=e._fullLayout,n=r._id,i=r.zerolinelayer==="above traces",o=t.cls||n+"tick",l=t.vals.filter(function(H){return H.text}),s=t.labelFns,u=t.secondary?0:r.tickangle,f=(r._prevTickAngles||{})[o],c=t.layer.selectAll("g."+o).data(r.showticklabels?l:[],Z1),v=[];c.enter().append("g").classed(o,1).append("text").attr("text-anchor","middle").each(function(H){var X=yi.select(this),j=e._promises.length;X.call(bu.positionText,s.xFn(H),s.yFn(H)).call(Xn.font,{family:H.font,size:H.fontSize,color:H.fontColor,weight:H.fontWeight,style:H.fontStyle,variant:H.fontVariant,textcase:H.fontTextcase,lineposition:H.fontLineposition,shadow:H.fontShadow}).text(H.text).call(bu.convertToTspans,e),e._promises[j]?v.push(e._promises.pop().then(function(){d(X,u)})):d(X,u)}),X1(r,[QC]),c.exit().remove(),t.repositionOnUpdate&&c.each(function(H){yi.select(this).select("text").call(bu.positionText,s.xFn(H),s.yFn(H))});function d(H,X){H.each(function(j){var ee=yi.select(this),fe=ee.select(".text-math-group"),ie=s.anchorFn(j,X),ue=t.transFn.call(ee.node(),j)+(va(X)&&+X!=0?" rotate("+X+","+s.xFn(j)+","+(s.yFn(j)-j.fontSize/2)+")":""),K=bu.lineCount(ee),we=kh*j.fontSize,se=s.heightFn(j,va(X)?+X:0,(K-1)*we);if(se&&(ue+=uc(0,se)),fe.empty()){var ce=ee.select("text");ce.attr({transform:ue,"text-anchor":ie}),ce.style("display",null),r._adjustTickLabelsOverflow&&r._adjustTickLabelsOverflow()}else{var he=Xn.bBox(fe.node()).width,ye=he*{end:-.5,start:.5}[ie];fe.attr("transform",ue+uc(ye,0))}})}r._adjustTickLabelsOverflow=function(){var H=r.ticklabeloverflow;if(!(!H||H==="allow")){var X=H.indexOf("hide")!==-1,j=r._id.charAt(0)==="x",ee=0,fe=j?e._fullLayout.width:e._fullLayout.height;if(H.indexOf("domain")!==-1){var ie=xr.simpleMap(r.range,r.r2l);ee=r.l2p(ie[0])+r._offset,fe=r.l2p(ie[1])+r._offset}var ue=Math.min(ee,fe),K=Math.max(ee,fe),we=r.side,se=1/0,ce=-1/0;c.each(function(Q){var Z=yi.select(this),le=Z.select(".text-math-group");if(le.empty()){var ve=Xn.bBox(Z.node()),me=0;j?(ve.right>K||ve.left K||ve.top+(r.tickangle?0:Q.fontSize/4) r["_visibleLabelMin_"+ie._id]?Z.style("display","none"):K.K==="tick"&&!ue&&Z.node().style.display!=="none"&&Z.style("display",null)})})})})},d(c,f+1?f:u);function p(){return v.length&&Promise.all(v)}var y=null;function m(){if(d(c,u),l.length&&r.autotickangles&&(r.type!=="log"||String(r.dtick).charAt(0)!=="D")){y=r.autotickangles[0];var H=0,X=[],j,ee=1;c.each(function(Oe){H=Math.max(H,Oe.fontSize);var Ue=r.l2p(Oe.x),oe=e5(this),Ae=Xn.bBox(oe.node());ee=Math.max(ee,bu.lineCount(oe)),X.push({top:0,bottom:10,height:10,left:Ue-Ae.width/2,right:Ue+Ae.width/2+2,width:Ae.width+2})});var fe=(r.tickson==="boundaries"||r.showdividers)&&!t.secondary,ie=l.length,ue=Math.abs((l[ie-1].x-l[0].x)*r._m)/(ie-1),K=fe?ue/2:ue,we=fe?r.ticklen:H*1.25*ee,se=Math.sqrt(Math.pow(K,2)+Math.pow(we,2)),ce=K/se,he=r.autotickangles.map(function(Oe){return Oe*Math.PI/180}),ye=he.find(function(Oe){return Math.abs(Math.cos(Oe))<=ce});ye===void 0&&(ye=he.reduce(function(Oe,Ue){return Math.abs(Math.cos(Oe)) G*B&&(R=B,E[q]=D[q]=z[q])}var Y=Math.abs(R-P);Y-w>0?(Y-=w,w*=1+w/Y):w=0,r._id.charAt(0)!=="y"&&(w=-w),E[M]=_.p2r(_.r2p(D[M])+k*w),_.autorange==="min"||_.autorange==="max reversed"?(E[0]=null,_._rangeInitial0=void 0,_._rangeInitial1=void 0):(_.autorange==="max"||_.autorange==="min reversed")&&(E[1]=null,_._rangeInitial0=void 0,_._rangeInitial1=void 0),a._insideTickLabelsUpdaterange[_._name+".range"]=E}var V=xr.syncOrAsync(x);return V&&V.then&&e._promises.push(V),V};function ohe(e,r,t){var a=r._id+"divider",n=t.vals,i=t.layer.selectAll("path."+a).data(n,Z1);i.exit().remove(),i.enter().insert("path",":first-child").classed(a,1).classed("crisp",1).call(Ah.stroke,r.dividercolor).style("stroke-width",Xn.crispRound(e,r.dividerwidth,1)+"px"),i.attr("transform",t.transFn).attr("d",t.path)}Ve.getPxPosition=function(e,r){var t=e._fullLayout._size,a=r._id.charAt(0),n=r.side,i;if(r.anchor!=="free"?i=r._anchorAxis:a==="x"?i={_offset:t.t+(1-(r.position||0))*t.h,_length:0}:a==="y"&&(i={_offset:t.l+(r.position||0)*t.w+r._shift,_length:0}),n==="top"||n==="left")return i._offset;if(n==="bottom"||n==="right")return i._offset+i._length};function sE(e){var r=e.title.font.size,t=(e.title.text.match(bu.BR_TAG_ALL)||[]).length;return e.title.hasOwnProperty("standoff")?r*(_u+t*kh):t?r*(t+1)*kh:r}function lhe(e,r){var t=e._fullLayout,a=r._id,n=a.charAt(0),i=r.title.font.size,o,l=(r.title.text.match(bu.BR_TAG_ALL)||[]).length;if(r.title.hasOwnProperty("standoff"))r.side==="bottom"||r.side==="right"?o=r._depth+r.title.standoff+i*_u:(r.side==="top"||r.side==="left")&&(o=r._depth+r.title.standoff+i*(wh+l*kh));else{var s=qh(r);if(r.type==="multicategory")o=r._depth;else{var u=1.5*i;s&&(u=.5*i,r.ticks==="outside"&&(u+=r.ticklen)),o=10+u+(r.linewidth?r.linewidth-1:0)}s||(n==="x"?o+=r.side==="top"?i*(r.showticklabels?1:0):i*(r.showticklabels?1.5:.5):o+=r.side==="right"?i*(r.showticklabels?1:.5):i*(r.showticklabels?.5:0))}var f=Ve.getPxPosition(e,r),c,v,d;n==="x"?(v=r._offset+r._length/2,d=r.side==="top"?f-o:f+o):(d=r._offset+r._length/2,v=r.side==="right"?f+o:f-o,c={rotate:"-90",offset:0});var p;if(r.type!=="multicategory"){var y=r._selections[r._id+"tick"];if(p={selection:y,side:r.side},y&&y.node()&&y.node().parentNode){var m=Xn.getTranslate(y.node().parentNode);p.offsetLeft=m.x,p.offsetTop=m.y}r.title.hasOwnProperty("standoff")&&(p.pad=0)}return r._titleStandoff=o,kve.draw(e,a+"title",{propContainer:r,propName:r._name+".title.text",placeholder:t._dfltTitle[n],avoid:p,transform:c,attributes:{x:v,y:d,"text-anchor":"middle"}})}Ve.shouldShowZeroLine=function(e,r,t){var a=xr.simpleMap(r.range,r.r2l);return a[0]*a[1]<=0&&r.zeroline&&(r.type==="linear"||r.type==="-")&&!(r.rangebreaks&&r.maskBreaks(0)===W1)&&(mE(r,0)||!she(e,r,t,a)||uhe(e,r))};Ve.clipEnds=function(e,r){return r.filter(function(t){return mE(e,t.x)})};function mE(e,r){var t=e.l2p(r);return t>1&&t 1)for(n=1;n =n.min&&e =Dve:/%L/.test(r)?e>=Eve:/%[SX]/.test(r)?e>=V1:/%M/.test(r)?e>=Mh:/%[HI]/.test(r)?e>=Fo:/%p/.test(r)?e>=ls:/%[Aadejuwx]/.test(r)?e>=ln:/%[UVW]/.test(r)?e>=Jn:/%[Bbm]/.test(r)?e>=G1:/%[q]/.test(r)?e>=U1:/%[Yy]/.test(r)?e>=H1:!0}});var wE=N((bRe,_E)=>{"use strict";_E.exports=function(r,t,a){var n,i;if(a){var o=t==="reversed"||t==="min reversed"||t==="max reversed";n=a[o?1:0],i=a[o?0:1]}var l=r("autorangeoptions.minallowed",i===null?n:void 0),s=r("autorangeoptions.maxallowed",n===null?i:void 0);l===void 0&&r("autorangeoptions.clipmin"),s===void 0&&r("autorangeoptions.clipmax"),r("autorangeoptions.include")}});var l5=N((xRe,TE)=>{"use strict";var phe=wE();TE.exports=function(r,t,a,n){var i=t._template||{},o=t.type||i.type||"-";a("minallowed"),a("maxallowed");var l=a("range");if(!l){var s;!n.noInsiderange&&o!=="log"&&(s=a("insiderange"),s&&(s[0]===null||s[1]===null)&&(t.insiderange=!1,s=void 0),s&&(l=a("range",s)))}var u=t.getAutorangeDflt(l,n),f=a("autorange",u),c;l&&(l[0]===null&&l[1]===null||(l[0]===null||l[1]===null)&&(f==="reversed"||f===!0)||l[0]!==null&&(f==="min"||f==="max reversed")||l[1]!==null&&(f==="max"||f==="min reversed"))&&(l=void 0,delete t.range,t.autorange=!0,c=!0),c||(u=t.getAutorangeDflt(l,n),f=a("autorange",u)),f&&(phe(a,f,l),(o==="linear"||o==="-")&&a("rangemode")),t.cleanRange()}});var ME=N((_Re,AE)=>{var yhe={left:0,top:0};AE.exports=mhe;function mhe(e,r,t){r=r||e.currentTarget||e.srcElement,Array.isArray(t)||(t=[0,0]);var a=e.clientX||0,n=e.clientY||0,i=ghe(r);return t[0]=a-i.left,t[1]=n-i.top,t}function ghe(e){return e===window||e===document||e===document.body?yhe:e.getBoundingClientRect()}});var s5=N((wRe,kE)=>{"use strict";var bhe=Gb();function xhe(){var e=!1;try{var r=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("test",null,r),window.removeEventListener("test",null,r)}catch(t){e=!1}return e}kE.exports=bhe&&xhe()});var qE=N((TRe,SE)=>{"use strict";SE.exports=function(r,t,a,n,i){var o=(r-a)/(n-a),l=o+t/(n-a),s=(o+l)/2;return i==="left"||i==="bottom"?o:i==="center"||i==="middle"?s:i==="right"||i==="top"?l:o<2/3-s?o:l>4/3-s?l:s}});var EE=N((ARe,CE)=>{"use strict";var LE=Ee(),_he=[["sw-resize","s-resize","se-resize"],["w-resize","move","e-resize"],["nw-resize","n-resize","ne-resize"]];CE.exports=function(r,t,a,n){return a==="left"?r=0:a==="center"?r=1:a==="right"?r=2:r=LE.constrain(Math.floor(r*3),0,2),n==="bottom"?t=0:n==="middle"?t=1:n==="top"?t=2:t=LE.constrain(Math.floor(t*3),0,2),_he[t][r]}});var RE=N((MRe,DE)=>{"use strict";var whe=vh(),The=jp(),Ahe=nh().getGraphDiv,Mhe=eh(),u5=DE.exports={};u5.wrapped=function(e,r,t){e=Ahe(e),e._fullLayout&&The.clear(e._fullLayout._uid+Mhe.HOVERID),u5.raw(e,r,t)};u5.raw=function(r,t){var a=r._fullLayout,n=r._hoverdata;t||(t={}),!(t.target&&!r._dragged&&whe.triggerHandler(r,"plotly_beforehover",t)===!1)&&(a._hoverlayer.selectAll("g").remove(),a._hoverlayer.selectAll("line").remove(),a._hoverlayer.selectAll("circle").remove(),r._hoverdata=void 0,t.target&&n&&r.emit("plotly_unhover",{event:t,points:n}))}});var mi=N((kRe,IE)=>{"use strict";var khe=ME(),f5=Yb(),She=s5(),qhe=Ee().removeElement,Lhe=xa(),wu=IE.exports={};wu.align=qE();wu.getCursor=EE();var FE=RE();wu.unhover=FE.wrapped;wu.unhoverRaw=FE.raw;wu.init=function(r){var t=r.gd,a=1,n=t._context.doubleClickDelay,i=r.element,o,l,s,u,f,c,v,d;t._mouseDownTime||(t._mouseDownTime=0),i.style.pointerEvents="all",i.onmousedown=m,She?(i._ontouchstart&&i.removeEventListener("touchstart",i._ontouchstart),i._ontouchstart=m,i.addEventListener("touchstart",m,{passive:!1})):i.ontouchstart=m;function p(_,b,w){return Math.abs(_) n&&(a=Math.max(a-1,1)),t._dragged)r.doneFn&&r.doneFn();else{var b;c.target===v?b=c:(b={target:v,srcElement:v,toElement:v},Object.keys(c).concat(Object.keys(c.__proto__)).forEach(w=>{var k=c[w];!b[w]&&typeof k!="function"&&(b[w]=k)})),r.clickFn&&r.clickFn(a,b),d||v.dispatchEvent(new MouseEvent("click",_))}t._dragging=!1,t._dragged=!1}};function NE(){var e=document.createElement("div");e.className="dragcover";var r=e.style;return r.position="fixed",r.left=0,r.right=0,r.top=0,r.bottom=0,r.zIndex=999999999,r.background="none",document.body.appendChild(e),e}wu.coverSlip=NE;function PE(e){return khe(e.changedTouches?e.changedTouches[0]:e,document.body)}});var ss=N((SRe,zE)=>{"use strict";zE.exports=function(r,t){(r.attr("class")||"").split(" ").forEach(function(a){a.indexOf("cursor-")===0&&r.classed(a,!1)}),t&&r.classed("cursor-"+t,!0)}});var HE=N((qRe,BE)=>{"use strict";var c5=ss(),Lh="data-savedcursor",OE="!!";BE.exports=function(r,t){var a=r.attr(Lh);if(t){if(!a){for(var n=(r.attr("class")||"").split(" "),i=0;i {"use strict";var v5=ga(),Che=fi();UE.exports={_isSubplotObj:!0,visible:{valType:"boolean",dflt:!0,editType:"legend"},bgcolor:{valType:"color",editType:"legend"},bordercolor:{valType:"color",dflt:Che.defaultLine,editType:"legend"},maxheight:{valType:"number",min:0,editType:"legend"},borderwidth:{valType:"number",min:0,dflt:0,editType:"legend"},font:v5({editType:"legend"}),grouptitlefont:v5({editType:"legend"}),orientation:{valType:"enumerated",values:["v","h"],dflt:"v",editType:"legend"},traceorder:{valType:"flaglist",flags:["reversed","grouped"],extras:["normal"],editType:"legend"},tracegroupgap:{valType:"number",min:0,dflt:10,editType:"legend"},entrywidth:{valType:"number",min:0,editType:"legend"},entrywidthmode:{valType:"enumerated",values:["fraction","pixels"],dflt:"pixels",editType:"legend"},indentation:{valType:"number",min:-15,dflt:0,editType:"legend"},itemsizing:{valType:"enumerated",values:["trace","constant"],dflt:"trace",editType:"legend"},itemwidth:{valType:"number",min:30,dflt:30,editType:"legend"},itemclick:{valType:"enumerated",values:["toggle","toggleothers",!1],dflt:"toggle",editType:"legend"},itemdoubleclick:{valType:"enumerated",values:["toggle","toggleothers",!1],dflt:"toggleothers",editType:"legend"},groupclick:{valType:"enumerated",values:["toggleitem","togglegroup"],dflt:"togglegroup",editType:"legend"},titleclick:{valType:"enumerated",values:["toggle","toggleothers",!1],editType:"legend"},titledoubleclick:{valType:"enumerated",values:["toggle","toggleothers",!1],editType:"legend"},x:{valType:"number",editType:"legend"},xref:{valType:"enumerated",dflt:"paper",values:["container","paper"],editType:"layoutstyle"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"left",editType:"legend"},y:{valType:"number",editType:"legend"},yref:{valType:"enumerated",dflt:"paper",values:["container","paper"],editType:"layoutstyle"},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],editType:"legend"},uirevision:{valType:"any",editType:"none"},valign:{valType:"enumerated",values:["top","middle","bottom"],dflt:"middle",editType:"legend"},title:{text:{valType:"string",dflt:"",editType:"legend"},font:v5({editType:"legend"}),side:{valType:"enumerated",values:["top","left","top left","top center","top right"],editType:"legend"},editType:"legend"},editType:"legend"}});var Eh=N(Ch=>{"use strict";Ch.isGrouped=function(r){return(r.traceorder||"").indexOf("grouped")!==-1};Ch.isVertical=function(r){return r.orientation!=="h"};Ch.isReversed=function(r){return(r.traceorder||"").indexOf("reversed")!==-1};Ch.getId=function(r){return r._id||"legend"}});var p5=N((ERe,GE)=>{"use strict";var J1=br(),$n=Ee(),Ehe=wt(),Dhe=gn(),Rhe=h5(),Phe=Of(),d5=Eh();function Fhe(e,r,t,a,n){var i=r[e]||{},o=Ehe.newContainer(t,e);function l(H,X){return $n.coerce(i,o,Rhe,H,X)}var s=$n.coerceFont(l,"font",t.font);l("bgcolor",t.paper_bgcolor),l("bordercolor");var u=l("visible");if(!u)return;var f,c=function(H,X){var j=f._input,ee=f;return $n.coerce(j,ee,Dhe,H,X)},v=t.font||{},d=$n.coerceFont(l,"grouptitlefont",v,{overrideDflt:{size:Math.round(v.size*1.1)}}),p=0,y=!1,m="normal",x=(t.shapes||[]).filter(function(H){return H.showlegend});function T(H){return J1.traceIs(H,"pie-like")&&H._length!=null&&(Array.isArray(H.legend)||Array.isArray(H.showlegend))}a.filter(T).forEach(function(H){H.visible&&p++;for(var X=0;X H.legend.length)for(var ee=H.legend.length;ee (e==="legend"?1:0));if(k===!1&&(t[e]=void 0),!(k===!1&&!i.uirevision)&&(l("uirevision",t.uirevision),k!==!1)){l("borderwidth");var M=l("orientation"),q=l("yref"),E=l("xref"),D=M==="h",P=q==="paper",R=E==="paper",z,I,B,G="left";D?(z=0,J1.getComponentMethod("rangeslider","isVisible")(r.xaxis)?P?(I=1.1,B="bottom"):(I=1,B="top"):P?(I=-.1,B="top"):(I=0,B="bottom")):(I=1,B="auto",R?z=1.02:(z=1,G="right")),$n.coerce(i,o,{x:{valType:"number",editType:"legend",min:R?-2:0,max:R?3:1,dflt:z}},"x"),$n.coerce(i,o,{y:{valType:"number",editType:"legend",min:P?-2:0,max:P?3:1,dflt:I}},"y"),l("traceorder",m),d5.isGrouped(t[e])&&l("tracegroupgap"),l("entrywidth"),l("entrywidthmode"),l("indentation"),l("itemsizing"),l("itemwidth"),l("itemclick"),l("itemdoubleclick"),l("groupclick"),l("xanchor",G),l("yanchor",B),l("maxheight"),l("valign"),$n.noneOrAll(i,o,["x","y"]);var Y=l("title.text");if(Y){l("title.side",D?"left":"top");var V=$n.extendFlat({},s,{size:$n.bigFont(s.size)});$n.coerceFont(l,"title.font",V);let H=n>1;l("titleclick",H?"toggle":!1),l("titledoubleclick",H?"toggleothers":!1)}}}GE.exports=function(r,t,a){var n,i=a.slice(),o=t.shapes;if(o)for(n=0;n {"use strict";var us=br(),y5=Ee(),Nhe=y5.pushUnique,Ihe=Eh(),VE=!0;m5.handleItemClick=function(r,t,a,n){var i=t._fullLayout;if(t._dragged||t._editing)return;var o=r.data()[0][0];if(o.groupTitle&&o.noClick)return;var l=a.groupclick;n==="toggle"&&a.itemdoubleclick==="toggleothers"&&VE&&t.data&&t._context.showTips&&(y5.notifier(y5._(t,"Double-click on legend to isolate one trace"),"long",t),VE=!1);var s=l==="togglegroup",u=i.hiddenlabels?i.hiddenlabels.slice():[],f=t._fullData,c=(i.shapes||[]).filter(function(Pe){return Pe.showlegend}),v=f.concat(c),d=o.trace;d._isShape&&(d=d._fullInput);var p=d.legendgroup,y,m,x,T,_,b,w={},k=[],M=[],q=[];function E(Pe,Le){var ze=k.indexOf(Pe),Be=w.visible;return Be||(Be=w.visible=[]),k.indexOf(Pe)===-1&&(k.push(Pe),ze=k.length-1),Be[ze]=Le,ze}var D=(i.shapes||[]).map(function(Pe){return Pe._input}),P=!1;function R(Pe,Le){D[Pe].visible=Le,P=!0}function z(Pe,Le){if(!(o.groupTitle&&!s)){var ze=Pe._fullInput||Pe,Be=ze._isShape,Ge=ze.index;Ge===void 0&&(Ge=ze._index);var De=ze.visible===!1?!1:Le;Be?R(Ge,De):E(Ge,De)}}var I=d.legend,B=d._fullInput,G=B&&B._isShape;if(!G&&us.traceIs(d,"pie-like")){var Y=o.label,V=u.indexOf(Y);if(n==="toggle")V===-1?u.push(Y):u.splice(V,1);else if(n==="toggleothers"){var H=V!==-1,X=[];for(y=0;y {"use strict";YE.exports={scrollBarWidth:6,scrollBarMinHeight:20,scrollBarColor:"#808BA4",scrollBarMargin:4,scrollBarEnterAttrs:{rx:20,ry:3,width:0,height:0},titlePad:2,itemGap:5}});var ZE=N((PRe,jE)=>{"use strict";var WE=br(),x5=Eh();jE.exports=function(r,t,a){var n=t._inHover,i=x5.isGrouped(t),o=x5.isReversed(t),l={},s=[],u=!1,f={},c=0,v=0,d,p;function y(H,X,j){if(t.visible!==!1&&!(a&&H!==t._id))if(X===""||!x5.isGrouped(t)){var ee="~~i"+c;s.push(ee),l[ee]=[j],c++}else s.indexOf(X)===-1?(s.push(X),u=!0,l[X]=[j]):l[X].push(j)}for(d=0;d R&&(P=R)}E[d][0]._groupMinRank=P,E[d][0]._preGroupSort=d}var z=function(H,X){return H[0]._groupMinRank-X[0]._groupMinRank||H[0]._preGroupSort-X[0]._preGroupSort},I=function(H,X){return H.trace.legendrank-X.trace.legendrank||H._preSort-X._preSort};for(E.forEach(function(H,X){H[0]._preGroupSort=X}),E.sort(z),d=0;d {"use strict";var $1=Ee();function XE(e){return e.indexOf("e")!==-1?e.replace(/[.]?0+e/,"e"):e.indexOf(".")!==-1?e.replace(/[.]?0+$/,""):e}Tu.formatPiePercent=function(r,t){var a=XE((r*100).toPrecision(3));return $1.numSeparate(a,t)+"%"};Tu.formatPieValue=function(r,t){var a=XE(r.toPrecision(10));return $1.numSeparate(a,t)};Tu.getFirstFilled=function(r,t){if($1.isArrayOrTypedArray(r))for(var a=0;a {"use strict";var zhe=Yr(),Ohe=Tr();JE.exports=function(r,t,a,n){var i=a.marker.pattern;i&&i.shape?zhe.pointStyle(r,a,n,t):Ohe.fill(r,t.color)}});var Q1=N((IRe,eD)=>{"use strict";var KE=Tr(),QE=K1().castOption,Bhe=$E();eD.exports=function(r,t,a,n){var i=a.marker.line,o=QE(i.color,t.pts)||KE.defaultLine,l=QE(i.width,t.pts)||0;r.call(Bhe,t,a,n).style("stroke-width",l).call(KE.stroke,o)}});var A5=N((zRe,oD)=>{"use strict";var sn=Sr(),_5=br(),Ka=Ee(),rD=Ka.strTranslate,Kn=Yr(),gi=Tr(),w5=Zn().extractOpts,ey=Pn(),Hhe=Q1(),Uhe=K1().castOption,Ghe=b5(),tD=12,aD=5,Au=2,Vhe=10,vc=5;oD.exports=function(r,t,a){var n=t._fullLayout;a||(a=n.legend);var i=a.itemsizing==="constant",o=a.itemwidth,l=(o+Ghe.itemGap*2)/2,s=rD(l,0),u=function(M,q,E,D){var P;if(M+1)P=M;else if(q&&q.width>0)P=q.width;else return 0;return i?D:Math.min(P,E)};r.each(function(M){var q=sn.select(this),E=Ka.ensureSingle(q,"g","layers");E.style("opacity",M[0].trace.opacity);var D=a.indentation,P=a.valign,R=M[0].lineHeight,z=M[0].height;if(P==="middle"&&D===0||!R||!z)E.attr("transform",null);else{var I={top:1,bottom:-1}[P],B=I*(.5*(R-z+3))||0,G=a.indentation;E.attr("transform",rD(G,B))}var Y=E.selectAll("g.legendfill").data([M]);Y.enter().append("g").classed("legendfill",!0);var V=E.selectAll("g.legendlines").data([M]);V.enter().append("g").classed("legendlines",!0);var H=E.selectAll("g.legendsymbols").data([M]);H.enter().append("g").classed("legendsymbols",!0),H.selectAll("g.legendpoints").data([M]).enter().append("g").classed("legendpoints",!0)}).each(k).each(v).each(p).each(d).each(m).each(b).each(_).each(f).each(c).each(x).each(T);function f(M){var q=nD(M),E=q.showFill,D=q.showLine,P=q.showGradientLine,R=q.showGradientFill,z=q.anyFill,I=q.anyLine,B=M[0],G=B.trace,Y,V,H=w5(G),X=H.colorscale,j=H.reversescale,ee=function(ce){if(ce.size())if(E)Kn.fillGroupStyle(ce,t,!0);else{var he="legendfill-"+G.uid;Kn.gradient(ce,t,he,T5(j),X,"fill")}},fe=function(ce){if(ce.size()){var he="legendline-"+G.uid;Kn.lineGroupStyle(ce),Kn.gradient(ce,t,he,T5(j),X,"stroke")}},ie=ey.hasMarkers(G)||!z?"M5,0":I?"M5,-2":"M5,-3",ue=sn.select(this),K=ue.select(".legendfill").selectAll("path").data(E||R?[M]:[]);if(K.enter().append("path").classed("js-fill",!0),K.exit().remove(),K.attr("d",ie+"h"+o+"v6h-"+o+"z").call(ee),D||P){var we=u(void 0,G.line,Vhe,aD);V=Ka.minExtend(G,{line:{width:we}}),Y=[Ka.minExtend(B,{trace:V})]}var se=ue.select(".legendlines").selectAll("path").data(D||P?[Y]:[]);se.enter().append("path").classed("js-line",!0),se.exit().remove(),se.attr("d",ie+(P?"l"+o+",0.0001":"h"+o)).call(D?Kn.lineGroupStyle:fe)}function c(M){var q=nD(M),E=q.anyFill,D=q.anyLine,P=q.showLine,R=q.showMarker,z=M[0],I=z.trace,B=!R&&!D&&!E&&ey.hasText(I),G,Y;function V(K,we,se,ce){var he=Ka.nestedProperty(I,K).get(),ye=Ka.isArrayOrTypedArray(he)&&we?we(he):he;if(i&&ye&&ce!==void 0&&(ye=ce),se){if(ye se[1])return se[1]}return ye}function H(K){return z._distinct&&z.index&&K[z.index]?K[z.index]:K[0]}if(R||B||P){var X={},j={};if(R){X.mc=V("marker.color",H),X.mx=V("marker.symbol",H),X.mo=V("marker.opacity",Ka.mean,[.2,1]),X.mlc=V("marker.line.color",H),X.mlw=V("marker.line.width",Ka.mean,[0,5],Au),X.mld=I._isShape?"solid":V("marker.line.dash",H),j.marker={sizeref:1,sizemin:1,sizemode:"diameter"};var ee=V("marker.size",Ka.mean,[2,16],tD);X.ms=ee,j.marker.size=ee}P&&(j.line={width:V("line.width",H,[0,10],aD)}),B&&(X.tx="Aa",X.tp=V("textposition",H),X.ts=10,X.tc=V("textfont.color",H),X.tf=V("textfont.family",H),X.tw=V("textfont.weight",H),X.ty=V("textfont.style",H),X.tv=V("textfont.variant",H),X.tC=V("textfont.textcase",H),X.tE=V("textfont.lineposition",H),X.tS=V("textfont.shadow",H)),G=[Ka.minExtend(z,X)],Y=Ka.minExtend(I,j),Y.selectedpoints=null,Y.texttemplate=null}var fe=sn.select(this).select("g.legendpoints"),ie=fe.selectAll("path.scatterpts").data(R?G:[]);ie.enter().insert("path",":first-child").classed("scatterpts",!0).attr("transform",s),ie.exit().remove(),ie.call(Kn.pointStyle,Y,t),R&&(G[0].mrc=3);var ue=fe.selectAll("g.pointtext").data(B?G:[]);ue.enter().append("g").classed("pointtext",!0).append("text").attr("transform",s),ue.exit().remove(),ue.selectAll("text").call(Kn.textPointStyle,Y,t)}function v(M){var q=M[0].trace,E=q.type==="waterfall";if(M[0]._distinct&&E){var D=M[0].trace[M[0].dir].marker;return M[0].mc=D.color,M[0].mlw=D.line.width,M[0].mlc=D.line.color,y(M,this,"waterfall")}var P=[];q.visible&&E&&(P=M[0].hasTotals?[["increasing","M-6,-6V6H0Z"],["totals","M6,6H0L-6,-6H-0Z"],["decreasing","M6,6V-6H0Z"]]:[["increasing","M-6,-6V6H6Z"],["decreasing","M6,6V-6H-6Z"]]);var R=sn.select(this).select("g.legendpoints").selectAll("path.legendwaterfall").data(P);R.enter().append("path").classed("legendwaterfall",!0).attr("transform",s).style("stroke-miterlimit",1),R.exit().remove(),R.each(function(z){var I=sn.select(this),B=q[z[0]].marker,G=u(void 0,B.line,vc,Au);I.attr("d",z[1]).style("stroke-width",G+"px").call(gi.fill,B.color),G&&I.call(gi.stroke,B.line.color)})}function d(M){y(M,this)}function p(M){y(M,this,"funnel")}function y(M,q,E){var D=M[0].trace,P=D.marker||{},R=P.line||{},z=P.cornerradius?"M6,3a3,3,0,0,1-3,3H-3a3,3,0,0,1-3-3V-3a3,3,0,0,1,3-3H3a3,3,0,0,1,3,3Z":"M6,6H-6V-6H6Z",I=E?D.visible&&D.type===E:_5.traceIs(D,"bar"),B=sn.select(q).select("g.legendpoints").selectAll("path.legend"+E).data(I?[M]:[]);B.enter().append("path").classed("legend"+E,!0).attr("d",z).attr("transform",s),B.exit().remove(),B.each(function(G){var Y=sn.select(this),V=G[0],H=u(V.mlw,P.line,vc,Au);Y.style("stroke-width",H+"px");var X=V.mcc;if(!a._inHover&&"mc"in V){var j=w5(P),ee=j.mid;ee===void 0&&(ee=(j.max+j.min)/2),X=Kn.tryColorscale(P,"")(ee)}var fe=X||V.mc||P.color,ie=P.pattern,ue=Kn.getPatternAttr,K=ie&&(ue(ie.shape,0,"")||ue(ie.path,0,""));if(K){var we=ue(ie.bgcolor,0,null),se=ue(ie.fgcolor,0,null),ce=ie.fgopacity,he=iD(ie.size,8,10),ye=iD(ie.solidity,.5,1),W="legend-"+D.uid;Y.call(Kn.pattern,"legend",t,W,K,he,ye,X,ie.fillmode,we,se,ce)}else Y.call(gi.fill,fe);H&&gi.stroke(Y,V.mlc||R.color)})}function m(M){var q=M[0].trace,E=sn.select(this).select("g.legendpoints").selectAll("path.legendbox").data(q.visible&&_5.traceIs(q,"box-violin")?[M]:[]);E.enter().append("path").classed("legendbox",!0).attr("d","M6,6H-6V-6H6Z").attr("transform",s),E.exit().remove(),E.each(function(){var D=sn.select(this);if((q.boxpoints==="all"||q.points==="all")&&gi.opacity(q.fillcolor)===0&&gi.opacity((q.line||{}).color)===0){var P=Ka.minExtend(q,{marker:{size:i?tD:Ka.constrain(q.marker.size,2,16),sizeref:1,sizemin:1,sizemode:"diameter"}});E.call(Kn.pointStyle,P,t)}else{var R=u(void 0,q.line,vc,Au);D.style("stroke-width",R+"px").call(gi.fill,q.fillcolor),R&&gi.stroke(D,q.line.color)}})}function x(M){var q=M[0].trace,E=sn.select(this).select("g.legendpoints").selectAll("path.legendcandle").data(q.visible&&q.type==="candlestick"?[M,M]:[]);E.enter().append("path").classed("legendcandle",!0).attr("d",function(D,P){return P?"M-15,0H-8M-8,6V-6H8Z":"M15,0H8M8,-6V6H-8Z"}).attr("transform",s).style("stroke-miterlimit",1),E.exit().remove(),E.each(function(D,P){var R=sn.select(this),z=q[P?"increasing":"decreasing"],I=u(void 0,z.line,vc,Au);R.style("stroke-width",I+"px").call(gi.fill,z.fillcolor),I&&gi.stroke(R,z.line.color)})}function T(M){var q=M[0].trace,E=sn.select(this).select("g.legendpoints").selectAll("path.legendohlc").data(q.visible&&q.type==="ohlc"?[M,M]:[]);E.enter().append("path").classed("legendohlc",!0).attr("d",function(D,P){return P?"M-15,0H0M-8,-6V0":"M15,0H0M8,6V0"}).attr("transform",s).style("stroke-miterlimit",1),E.exit().remove(),E.each(function(D,P){var R=sn.select(this),z=q[P?"increasing":"decreasing"],I=u(void 0,z.line,vc,Au);R.style("fill","none").call(Kn.dashLine,z.line.dash,I),I&&gi.stroke(R,z.line.color)})}function _(M){w(M,this,"pie")}function b(M){w(M,this,"funnelarea")}function w(M,q,E){var D=M[0],P=D.trace,R=E?P.visible&&P.type===E:_5.traceIs(P,E),z=sn.select(q).select("g.legendpoints").selectAll("path.legend"+E).data(R?[M]:[]);if(z.enter().append("path").classed("legend"+E,!0).attr("d","M6,6H-6V-6H6Z").attr("transform",s),z.exit().remove(),z.size()){var I=P.marker||{},B=u(Uhe(I.line.width,D.pts),I.line,vc,Au),G="pieLike",Y=Ka.minExtend(P,{marker:{line:{width:B}}},G),V=Ka.minExtend(D,{trace:Y},G);Hhe(z,V,Y,t)}}function k(M){var q=M[0].trace,E,D=[];if(q.visible)switch(q.type){case"histogram2d":case"heatmap":D=[["M-15,-2V4H15V-2Z"]],E=!0;break;case"choropleth":case"choroplethmapbox":case"choroplethmap":D=[["M-6,-6V6H6V-6Z"]],E=!0;break;case"densitymapbox":case"densitymap":D=[["M-6,0 a6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0"]],E="radial";break;case"cone":D=[["M-6,2 A2,2 0 0,0 -6,6 V6L6,4Z"],["M-6,-6 A2,2 0 0,0 -6,-2 L6,-4Z"],["M-6,-2 A2,2 0 0,0 -6,2 L6,0Z"]],E=!1;break;case"streamtube":D=[["M-6,2 A2,2 0 0,0 -6,6 H6 A2,2 0 0,1 6,2 Z"],["M-6,-6 A2,2 0 0,0 -6,-2 H6 A2,2 0 0,1 6,-6 Z"],["M-6,-2 A2,2 0 0,0 -6,2 H6 A2,2 0 0,1 6,-2 Z"]],E=!1;break;case"surface":D=[["M-6,-6 A2,3 0 0,0 -6,0 H6 A2,3 0 0,1 6,-6 Z"],["M-6,1 A2,3 0 0,1 -6,6 H6 A2,3 0 0,0 6,0 Z"]],E=!0;break;case"mesh3d":D=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6H6L0,6Z"]],E=!1;break;case"volume":D=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6H6L0,6Z"]],E=!0;break;case"isosurface":D=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6 A12,24 0 0,0 6,-6 L0,6Z"]],E=!1;break}var P=sn.select(this).select("g.legendpoints").selectAll("path.legend3dandfriends").data(D);P.enter().append("path").classed("legend3dandfriends",!0).attr("transform",s).style("stroke-miterlimit",1),P.exit().remove(),P.each(function(R,z){var I=sn.select(this),B=w5(q),G=B.colorscale,Y=B.reversescale,V=function(ee){if(ee.size()){var fe="legendfill-"+q.uid;Kn.gradient(ee,t,fe,T5(Y,E==="radial"),G,"fill")}},H;if(G){if(!E){var j=G.length;H=z===0?G[Y?j-1:0][1]:z===1?G[Y?0:j-1][1]:G[Math.floor((j-1)/2)][1]}}else{var X=q.vertexcolor||q.facecolor||q.color;H=Ka.isArrayOrTypedArray(X)?X[z]||X[0]:X}I.attr("d",R[0]),H?I.call(gi.fill,H):I.call(V)})}};function T5(e,r){var t=r?"radial":"horizontal";return t+(e?"":"reversed")}function nD(e){var r=e[0].trace,t=r.contours,a=ey.hasLines(r),n=ey.hasMarkers(r),i=r.visible&&r.fill&&r.fill!=="none",o=!1,l=!1;if(t){var s=t.coloring;s==="lines"?o=!0:a=s==="none"||s==="heatmap"||t.showlines,t.type==="constraint"?i=t._operation!=="=":(s==="fill"||s==="heatmap")&&(l=!0)}return{showMarker:n,showLine:a,showFill:i,showGradientLine:o,showGradientFill:l,anyLine:a||o,anyFill:i||l}}function iD(e,r,t){return e&&Ka.isArrayOrTypedArray(e)?r:e>t?t:e}});var q5=N((ORe,pD)=>{"use strict";var bn=Sr(),na=Ee(),k5=aa(),Mu=br(),ay=vh(),M5=mi(),ia=Yr(),Dh=Tr(),ku=Aa(),lD=g5().handleItemClick,sD=g5().handleTitleClick,ha=b5(),S5=Ha(),hD=S5.LINE_SPACING,dc=S5.FROM_TL,uD=S5.FROM_BR,fD=ZE(),Yhe=A5(),pc=Eh(),hc=1,Whe=/^legend[0-9]*$/;pD.exports=function(r,t){if(t)cD(r,t);else{var a=r._fullLayout,n=a._legends,i=a._infolayer.selectAll('[class^="legend"]');i.each(function(){var u=bn.select(this),f=u.attr("class"),c=f.split(" ")[0];c.match(Whe)&&n.indexOf(c)===-1&&u.remove()});for(var o=0;o 1)}var p=a.hiddenlabels||[];if(!l&&(!a.showlegend||!s.length))return o.selectAll("."+n).remove(),a._topdefs.select("#"+i).remove(),k5.autoMargin(e,n);var y=na.ensureSingle(o,"g",n,function(q){l||q.attr("pointer-events","all")}),m=na.ensureSingleById(a._topdefs,"clipPath",i,function(q){q.append("rect")}),x=na.ensureSingle(y,"rect","bg",function(q){q.attr("shape-rendering","crispEdges")});x.call(Dh.stroke,t.bordercolor).call(Dh.fill,t.bgcolor).style("stroke-width",t.borderwidth+"px");var T=na.ensureSingle(y,"g","scrollbox"),_=t.title;t._titleWidth=0,t._titleHeight=0;var b;_.text?(b=na.ensureSingle(T,"text",n+"titletext"),b.attr("text-anchor","start").call(ia.font,_.font).text(_.text),ty(b,T,e,t,hc),!l&&(t.titleclick||t.titledoubleclick)&&Jhe(T,e,t,n)):(T.selectAll("."+n+"titletext").remove(),T.selectAll("."+n+"titletoggle").remove());var w=na.ensureSingle(y,"rect","scrollbar",function(q){q.attr(ha.scrollBarEnterAttrs).call(Dh.fill,ha.scrollBarColor)}),k=T.selectAll("g.groups").data(s);k.enter().append("g").attr("class","groups"),k.exit().remove();var M=k.selectAll("g.traces").data(na.identity);M.enter().append("g").attr("class","traces"),M.exit().remove(),M.style("opacity",function(q){let E=q[0],D=E.trace;if(E.groupTitle){let P=D.legendgroup,R=(a.shapes||[]).filter(function(I){return I.showlegend});return e._fullData.concat(R).some(function(I){return I.legendgroup===P&&(I.legend||"legend")===n&&I.visible===!0})?1:.5}return Mu.traceIs(D,"pie-like")?p.indexOf(q[0].label)!==-1?.5:1:D.visible==="legendonly"?.5:1}).each(function(){bn.select(this).call(Zhe,e,t)}).call(Yhe,e,t).each(function(q){l||q[0].groupTitle&&t.groupclick==="toggleitem"||bn.select(this).call(Xhe,e,n)}),na.syncOrAsync([k5.previousPromises,function(){return Qhe(e,k,M,t,T)},function(){var q=a._size,E=t.borderwidth,D=t.xref==="paper",P=t.yref==="paper";if(_.text){let le=(a.shapes||[]).filter(function(me){return me.showlegend}),ve=e._fullData.concat(le).some(function(me){let Ce=me.legend||"legend";var Pe=Array.isArray(Ce)?Ce.includes(n):Ce===n;return Pe&&me.visible===!0});b.style("opacity",ve?1:.5)}if(!l){var R,z;D?R=q.l+q.w*t.x-dc[ny(t)]*t._width:R=a.width*t.x-dc[ny(t)]*t._width,P?z=q.t+q.h*(1-t.y)-dc[iy(t)]*t._effHeight:z=a.height*(1-t.y)-dc[iy(t)]*t._effHeight;var I=e0e(e,n,R,z);if(I)return;if(a.margin.autoexpand){var B=R,G=z;R=D?na.constrain(R,0,a.width-t._width):B,z=P?na.constrain(z,0,a.height-t._effHeight):G,R!==B&&na.log("Constrain "+n+".x to make legend fit inside graph"),z!==G&&na.log("Constrain "+n+".y to make legend fit inside graph")}ia.setTranslate(y,R,z)}if(w.on(".drag",null),y.on("wheel",null),l||t._height<=t._maxHeight||e._context.staticPlot){var Y=t._effHeight;l&&(Y=t._height),x.attr({width:t._width-E,height:Y-E,x:E/2,y:E/2}),ia.setTranslate(T,0,0),m.select("rect").attr({width:t._width-2*E,height:Y-2*E,x:E,y:E}),ia.setClipUrl(T,i,e),ia.setRect(w,0,0,0,0),delete t._scrollY}else{var V=Math.max(ha.scrollBarMinHeight,t._effHeight*t._effHeight/t._height),H=t._effHeight-V-2*ha.scrollBarMargin,X=t._height-t._effHeight,j=H/X,ee=Math.min(t._scrollY||0,X);x.attr({width:t._width-2*E+ha.scrollBarWidth+ha.scrollBarMargin,height:t._effHeight-E,x:E/2,y:E/2}),m.select("rect").attr({width:t._width-2*E+ha.scrollBarWidth+ha.scrollBarMargin,height:t._effHeight-2*E,x:E,y:E+ee}),ia.setClipUrl(T,i,e),he(ee,V,j),y.on("wheel",function(){ee=na.constrain(t._scrollY+bn.event.deltaY/X*H,0,X),he(ee,V,j),ee!==0&&ee!==X&&bn.event.preventDefault()});var fe,ie,ue,K=function(le,ve,me){var Ce=(me-ve)/j+le;return na.constrain(Ce,0,X)},we=function(le,ve,me){var Ce=(ve-me)/j+le;return na.constrain(Ce,0,X)},se=bn.behavior.drag().on("dragstart",function(){var le=bn.event.sourceEvent;le.type==="touchstart"?fe=le.changedTouches[0].clientY:fe=le.clientY,ue=ee}).on("drag",function(){var le=bn.event.sourceEvent;le.buttons===2||le.ctrlKey||(le.type==="touchmove"?ie=le.changedTouches[0].clientY:ie=le.clientY,ee=K(ue,fe,ie),he(ee,V,j))});w.call(se);var ce=bn.behavior.drag().on("dragstart",function(){var le=bn.event.sourceEvent;le.type==="touchstart"&&(fe=le.changedTouches[0].clientY,ue=ee)}).on("drag",function(){var le=bn.event.sourceEvent;le.type==="touchmove"&&(ie=le.changedTouches[0].clientY,ee=we(ue,fe,ie),he(ee,V,j))});T.call(ce)}function he(le,ve,me){t._scrollY=e._fullLayout[n]._scrollY=le,ia.setTranslate(T,0,-le),ia.setRect(w,t._width,ha.scrollBarMargin+le*me,ha.scrollBarWidth,ve),m.select("rect").attr("y",E+le)}if(e._context.edits.legendPosition){var ye,W,Q,Z;y.classed("cursor-move",!0),M5.init({element:y.node(),gd:e,prepFn:function(le){if(le.target!==w.node()){var ve=ia.getTranslate(y);Q=ve.x,Z=ve.y}},moveFn:function(le,ve){if(Q!==void 0&&Z!==void 0){var me=Q+le,Ce=Z+ve;ia.setTranslate(y,me,Ce),ye=M5.align(me,t._width,q.l,q.l+q.w,t.xanchor),W=M5.align(Ce+t._height,-t._height,q.t+q.h,q.t,t.yanchor)}},doneFn:function(){if(ye!==void 0&&W!==void 0){var le={};le[n+".x"]=ye,le[n+".y"]=W,Mu.call("_guiRelayout",e,le)}},clickFn:function(le,ve){var me=o.selectAll("g.traces").filter(function(){var Ce=this.getBoundingClientRect();return ve.clientX>=Ce.left&&ve.clientX<=Ce.right&&ve.clientY>=Ce.top&&ve.clientY<=Ce.bottom});me.size()>0&&dD(e,t,me,le,ve)}})}}],e)}}function ry(e,r,t){var a=e[0],n=a.width,i=r.entrywidthmode,o=a.trace.legendwidth||r.entrywidth;return i==="fraction"?r._maxWidth*o:t+(o||n)}function dD(e,r,t,a,n){var i=e._fullLayout,o=t.data()[0][0].trace,l=r.itemclick,s=r.itemdoubleclick,u={event:n,node:t.node(),curveNumber:o.index,expandedIndex:o.index,data:e.data,layout:e.layout,frames:e._transitionData._frames,config:e._context,fullData:e._fullData,fullLayout:i};o._group&&(u.group=o._group),Mu.traceIs(o,"pie-like")&&(u.label=t.datum()[0].label);var f=ay.triggerHandler(e,"plotly_legendclick",u);if(a===1){if(f===!1)return;r._clickTimeout=setTimeout(function(){e._fullLayout&&l&&lD(t,e,r,l)},e._context.doubleClickDelay)}else if(a===2){r._clickTimeout&&clearTimeout(r._clickTimeout),e._legendMouseDownTime=0;var c=ay.triggerHandler(e,"plotly_legenddoubleclick",u);c!==!1&&f!==!1&&s&&lD(t,e,r,s)}}function Zhe(e,r,t){var a=pc.getId(t),n=e.data()[0][0],i=n.trace,o=Mu.traceIs(i,"pie-like"),l=!t._inHover&&r._context.edits.legendText&&!o,s=t._maxNameLength,u,f;n.groupTitle?(u=n.groupTitle.text,f=n.groupTitle.font):(f=t.font,t.entries?u=n.text:(u=o?n.label:i.name,i._meta&&(u=na.templateString(u,i._meta))));var c=na.ensureSingle(e,"text",a+"text");c.attr("text-anchor","start").call(ia.font,f).text(l?vD(u,s):u);var v=t.indentation+t.itemwidth+ha.itemGap*2;ku.positionText(c,v,0),l?c.call(ku.makeEditable,{gd:r,text:u}).call(ty,e,r,t).on("edit",function(d){this.text(vD(d,s)).call(ty,e,r,t);var p=n.trace._fullInput||{},y={};return y.name=d,p._isShape?Mu.call("_guiRelayout",r,"shapes["+i.index+"].name",y.name):Mu.call("_guiRestyle",r,y,i.index)}):ty(c,e,r,t)}function vD(e,r){var t=Math.max(4,r);if(e&&e.trim().length>=t/2)return e;e=e||"";for(var a=t-e.length;a>0;a--)e+=" ";return e}function Xhe(e,r,t){var a=r._context.doubleClickDelay,n,i=1,o=na.ensureSingle(e,"rect",t+"toggle",function(l){r._context.staticPlot||l.style("cursor","pointer").attr("pointer-events","all"),l.call(Dh.fill,"rgba(0,0,0,0)")});r._context.staticPlot||(o.on("mousedown",function(){n=new Date().getTime(),n-r._legendMouseDownTimea&&(i=Math.max(i-1,1)),dD(r,l,e,i,bn.event)}}))}function Jhe(e,r,t,a){if(r._fullData.some(function(u){let f=u.legend||"legend";return(Array.isArray(f)?f.includes(a):f===a)&&Mu.traceIs(u,"pie-like")}))return;let i=r._context.doubleClickDelay;var o,l=1;let s=na.ensureSingle(e,"rect",a+"titletoggle",function(u){r._context.staticPlot||u.style("cursor","pointer").attr("pointer-events","all"),u.call(Dh.fill,"rgba(0,0,0,0)")});r._context.staticPlot||(s.on("mousedown",function(){o=new Date().getTime(),o-r._legendMouseDownTime